public override void Restore() { base.Restore(); Location = _blob.FetchBlob("location").GetVector3I(); _variant = (uint)_blob.GetLong("variant"); _done = _blob.GetBool("done"); _countPosition = _blob.GetBlob("countPosition").GetVector3D(); _boundingShape = Shape.FromBlob(_blob.FetchBlob("boundingShape")); _configuration = GameContext.TileDatabase.GetTileConfiguration(_blob.GetString("tile")); _goalComponent = _configuration.Components.Get <SoccerGoalComponentBuilder.GoalComponent>(); GoalCount = (int)_blob.GetLong("goalCount", 0); }
public override void Construct(Blob arguments, EntityUniverseFacade entityUniverseFacade) { _configuration = GameContext.TileDatabase.GetTileConfiguration(arguments.GetString("tile")); _goalComponent = _configuration.Components.GetOrDefault <SoccerGoalComponentBuilder.GoalComponent>(); var tile = _configuration.MakeTile(); Vector3D ignored; _boundingShape = tile.Configuration.FetchBoundingBox(tile.Variant(), out ignored).ToShape().Scale(_goalComponent == null ? 1f : _goalComponent.HitBoxScale); Location = arguments.FetchBlob("location").GetVector3I(); _variant = (uint)arguments.GetLong("variant"); Entity.Physics.Construct(arguments.FetchBlob("position").GetVector3D(), Vector3D.Zero); Entity.Physics.MakePhysicsless(); }