protected override void ServerUpdate(ServerUpdateData data) { var publicState = data.PublicState; var protoStructure = publicState.ConstructionProto; if (protoStructure == null) { // incorrect construction site! destroy it Server.World.DestroyObject(data.GameObject); return; } if (publicState.StructurePointsCurrent < protoStructure.StructurePointsMaxForConstructionSite) { // construction is not completed yet return; } // construction completed! var worldObject = data.GameObject; var byCharacter = publicState.LastBuildActionDoneByCharacter; ConstructionPlacementSystem.ServerReplaceConstructionSiteWithStructure( worldObject, protoStructure, byCharacter); }
protected override void ClientItemHotbarSelectionChanged(ClientHotbarItemData data) { if (!data.IsSelected) { ConstructionPlacementSystem.ClientDisableConstructionPlacement(); } }
public override void Update(double deltaTime) { if (ClientInputManager.IsButtonDown(GameButton.ConstructionMenu)) { ConstructionPlacementSystem.ClientToggleConstructionMenu(); } }