Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @inputs Ents:array Parent:entity
- interval(500)
- #This doesn't work correctly
- function vector array:inertia(){
- local Inertia = vec()
- local Mass = 0
- foreach (I, Entity:entity = This){
- local EntMass = Entity:mass()
- Inertia = Inertia + Entity:inertia() * EntMass
- Mass = Mass + EntMass
- }
- return Inertia / Mass
- }
- function angle array:angVel(){
- local Vel = vec()
- local Mass = 0
- foreach (I, Entity:entity = This){
- local EntMass = Entity:mass()
- Vel = Vel + Entity:vel() * EntMass
- Mass = Mass + EntMass
- }
- return ang(Vel:z(), -Vel:x(), Vel:y()) / Mass
- }
- # This works correctly
- function vector array:massCenter(){
- local MassCenter = vec()
- local Mass = 0
- foreach (I, Entity:entity = This){
- local EntMass = Entity:mass()
- MassCenter = MassCenter + Entity:massCenter() * EntMass
- Mass = Mass + EntMass
- }
- return MassCenter / Mass
- }
- function entity:applyOffsetAngForce(AngForce:angle, Position:vector){
- local Up = This:up()
- local Left = -This:right()
- local Forward = This:forward()
- if (AngForce:pitch() != 0){
- local Pitch = Up * AngForce:pitch() * 0.5
- This:applyOffsetForce(Forward, Position + Pitch)
- This:applyOffsetForce(-Forward, Position - Pitch)
- }
- if (AngForce:yaw() != 0){
- local Yaw = Forward * AngForce:yaw() * 0.5
- This:applyOffsetForce(Left, Position + Yaw)
- This:applyOffsetForce(-Left, Position - Yaw)
- }
- if (AngForce:roll() != 0){
- local Roll = Left * AngForce:roll() * 0.5
- This:applyOffsetForce(Up, Position + Roll)
- This:applyOffsetForce(-Up, Position - Roll)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement