private void Synchronized(object sender, ComponentStateEventArgs componentStateEventArgs) { if (IsOutOfSync) { physics.World.Events.PostStep -= postStepHandler; } else { physics.World.Events.PostStep += postStepHandler; } }
protected override void OnAdded(ComponentStateEventArgs registrationArgs) { base.OnAdded(registrationArgs); if (physics.Body.Shape is Multishape) { throw new NotSupportedException("Multishapes not supported!"); } physics.Body.IsStatic = true; physics.Body.BroadphaseTag |= (int)BodyTags.Ghost; physics.Synchronized += syncHandler; }
protected override void OnAdded(ComponentStateEventArgs registrationArgs) { base.OnAdded(registrationArgs); Body.Tag = Record.Name; var offset = Body.Position; var rot = JMatrix.CreateFromQuaternion(transform.Rotation.ToQuaternion()); JVector.Transform(ref offset, ref rot, out offset); Offset = offset.ToVector3(); Body.Orientation = Body.Orientation * rot; Body.Position = offset + transform.Translation.ToJVector(); baseTransform = new Transform(JQuaternion.CreateFromMatrix(Body.Orientation).ToQuaternion(), Body.Position.ToVector3()).Invert() * new Transform(transform.Rotation, transform.Translation); storedScale = transform.Scale; transform.Bind(GetTransform, SetTransform); }
protected override void OnAdded(ComponentStateEventArgs registrationArgs) { base.OnAdded(registrationArgs); Initialize(); }
protected override void OnRemoved(ComponentStateEventArgs e) { base.OnRemoved(e); localParent.RemoveChild(localRoot); }
protected override void OnAdded(ComponentStateEventArgs e) { base.OnAdded(e); }
protected override void OnRemoved(ComponentStateEventArgs registrationArgs) { base.OnRemoved(registrationArgs); physics.Body.BroadphaseTag ^= (int)BodyTags.Ghost; physics.Synchronized -= syncHandler; }