public void Initialise() { if (PhysicsEntity == null) { if (PhysicsMeshType == PhysicsMeshType.box) { GenerateBoxCollider(); } if (PhysicsMeshType == PhysicsMeshType.sphere) { GenerateSphereCollider(); } if (!movable) { PhysicsEntity.BecomeKinematic(); } } PhysicsEntity.Tag = ParentObject; PhysicsEntity.CollisionInformation.Tag = ParentObject; if (!SystemCore.PhysicsOnBackgroundThread) { PhysicsEntity.WorldTransform = MonoMathHelper.GenerateBepuMatrixFromMono(ParentObject.Transform.AbsoluteTransform); SystemCore.PhysicsSimulation.Add(PhysicsEntity); } else { PhysicsEntity.BufferedStates.States.WorldTransform = MonoMathHelper.GenerateBepuMatrixFromMono(ParentObject.Transform.AbsoluteTransform); SystemCore.PhysicsSimulation.SpaceObjectBuffer.Add(PhysicsEntity); } }
public PhysicsComponent(Entity physicsEntity, bool movable, bool simulated) { Enabled = true; Simulated = simulated; this.PhysicsEntity = physicsEntity; if (!movable) { PhysicsEntity.BecomeKinematic(); } }