public void Deactivate() { Partition.UpdateObject(this, false); foreach (var collisionPair in CollisionPairs.Values) { collisionPair.Body2.CollisionPairHolders.Remove(ID); DeactivatePair(collisionPair); } CollisionPairs.Clear(); foreach (var id in CollisionPairHolders) { LSBody other = PhysicsManager.SimObjects[id]; if (other.IsNotNull()) { CollisionPair collisionPair; if (other.CollisionPairs.TryGetValue(ID, out collisionPair)) { other.CollisionPairs.Remove(this.ID); DeactivatePair(collisionPair); } else { Debug.Log("nope " + ID); } } } CollisionPairHolders.Clear(); PhysicsManager.Dessimilate(this); Active = false; }
public void Simulate() { if (VelocityChanged) { VelocityMagnitude = _velocity.Magnitude(); VelocityChanged = false; } LastPosition = _position; if (VelocityMagnitude != 0) { _position.x += _velocity.x / LockstepManager.FrameRate; _position.y += _velocity.y / LockstepManager.FrameRate; PositionChanged = true; } BuildChangedValues(); PartitionChanged = false; if (PositionChanged || this.PositionChangedBuffer) { Partition.UpdateObject(this); } if (SettingVisuals) { _settingVisualsCounter--; } }
public void EarlySimulate() { if (VelocityChanged) { VelocityFastMagnitude = _velocity.FastMagnitude(); VelocityChanged = false; } if (VelocityFastMagnitude != 0) { _position.x += _velocity.x; _position.y += _velocity.y; PositionChanged = true; } if (PositionChanged || this.PositionChangedBuffer) { Partition.UpdateObject(this); } if (RotationChanged) { } else { } }
public void EarlySimulate() { if (HasParent) { return; } if (VelocityChanged) { VelocityFastMagnitude = Velocity.FastMagnitude(); VelocityChanged = false; } if (VelocityFastMagnitude != 0) { Position.x += Velocity.x; Position.y += Velocity.y; PositionChanged = true; } if (PositionChanged) { Partition.UpdateObject(this); } if (RotationChanged) { } else { } }
public void Simulate() { _SimVelocity(); BuildChangedValues(); PartitionChanged = false; if (PositionChanged || this.PositionChangedBuffer) { Partition.UpdateObject(this); } _SimVisualsCounter(); }
public void Simulate() { if (VelocityChanged) { VelocityFastMagnitude = _velocity.FastMagnitude(); VelocityChanged = false; } if (VelocityFastMagnitude != 0) { _position.x += _velocity.x; _position.y += _velocity.y; PositionChanged = true; } BuildChangedValues(); if (PositionChanged || this.PositionChangedBuffer) { Partition.UpdateObject(this); } }
public void Deactivate() { Partition.UpdateObject(this, false); PhysicsManager.Dessimilate(this); }