Advertisement
maxkhl

RapeCube.lua

May 25th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.97 KB | None | 0 0
  1. print("### Default Outpost Omega Extension Mod ###")
  2. print("###   Written by MaxKhl (maxkhl.com)    ###")
  3.  
  4. print("Building 'RapeCube'")
  5. builder = NewBuilder("RapeCube", g_type_item)
  6.  
  7. builder:AddAttribute(g_type_attr_definition,  {"Rape Cube", "I wonder whats inside that cube"})
  8. builder:AddAttribute(g_type_attr_construction,  { getType("OutpostOmega.Game.GameObjects.Structures.Frame"), getType("OutpostOmega.Game.GameObjects.Items.Tool") })
  9.  
  10. builder:OnNewInstance(function(myObject)
  11.  
  12.     myObject.ID = myObject:GetUniqueID("RapeCube")
  13.  
  14.  
  15.     model = myObject:LoadModel(GetFirstContent("CubeModel").Path)
  16.     model:AssignTexture("Cube", myObject, GetFirstContent("CubeTexture"))
  17.     model:GetMesh("Cube"):GetGOPair(myObject).UseAlpha = true
  18.    
  19.     --Setup physics
  20.     myObject.Shape = PhysicBoxShape(2, 2, 2) --X,Y,Z (Y = UP)
  21.     myObject.Mass = 20
  22.     myObject.Static = true
  23.     myObject:PhysicCreateMaterial() --Create the shapes material (needed to apply mass)
  24.     myObject:PhysicEnable() --Tell engine we are done
  25.     myObject:PhysicEnableDebug() --Needs to be enabled to see shape in debugging mode
  26.  
  27.     animate(myObject)
  28.  
  29.     print("New RapeCube created. Prepare your anussss")
  30.  
  31. end)
  32.  
  33. newType = builder:Compile()
  34. print("Object "..newType:ToString().." compiled")
  35.  
  36. function animate(myObject) 
  37.     animType = math.random (3)
  38.    
  39.     if(animType == 1) then
  40.         anim = myObject:Animate("Position", Vector3(myObject.Position.X + 5, myObject.Position.Y, myObject.Position.Z), 5000, "Linear")
  41.         anim.AnimationDone:Add(function()  
  42.             anim = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z + 5), 5000, "Linear")
  43.             anim.AnimationDone:Add(function()  
  44.                 anim = myObject:Animate("Position", Vector3(myObject.Position.X - 5, myObject.Position.Y, myObject.Position.Z), 5000, "Linear")
  45.                 anim.AnimationDone:Add(function()  
  46.                     anim = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z - 5), 5000, "Linear")
  47.                     anim.AnimationDone:Add(function()
  48.                         animate(myObject)
  49.                     end)
  50.                 end)
  51.             end)
  52.         end)
  53.     end
  54.    
  55.     if(animType == 2) then
  56.         upAnimation = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y + 10, myObject.Position.Z), 5000, "Linear")
  57.         upAnimation.AnimationDone:Add(function()
  58.             forwardAnimation = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z + 5), 2500, "Linear")
  59.             forwardAnimation.AnimationDone:Add(function()
  60.                 sidewardAnimation = myObject:Animate("Position", Vector3(myObject.Position.X+10, myObject.Position.Y, myObject.Position.Z), 2500, "Linear")
  61.                 sidewardAnimation.AnimationDone:Add(function()
  62.                     myObject.Static = false
  63.                     myObject.RigidBody.AngularVelocity = Vector3(0, 15, 0)
  64.                     myObject.RigidBody.LinearVelocity = Vector3(-5, 10, -5)
  65.                     print(myObject.ID .. " was released. RUN!")
  66.                 end)
  67.             end)
  68.         end)
  69.     end
  70.    
  71.     if(animType == 3) then   
  72.         anim = myObject:Animate("Position", Vector3(myObject.Position.X + 5, myObject.Position.Y, myObject.Position.Z), 5000, "CircEaseInOut")
  73.         animl = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z + 2.5), 2500, "CircEaseOut")
  74.         animl.AnimationDone:Add(function() 
  75.             animlk = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z - 2.5), 2500, "CircEaseIn")
  76.         end)
  77.  
  78.         anim.AnimationDone:Add(function()
  79.             animas = myObject:Animate("Position", Vector3(myObject.Position.X - 5, myObject.Position.Y, myObject.Position.Z), 5000, "CircEaseInOut")
  80.             animds = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z - 2.5), 2500, "CircEaseOut")
  81.             animds.AnimationDone:Add(function()
  82.                 animlak = myObject:Animate("Position", Vector3(myObject.Position.X, myObject.Position.Y, myObject.Position.Z + 2.5), 2500, "CircEaseIn")
  83.             end)
  84.             animas.AnimationDone:Add(function()
  85.                 animate(myObject)
  86.             end)   
  87.         end)   
  88.     end
  89. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement