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();
     }
 }
Exemple #3
0
 public override void Update(double deltaTime)
 {
     if (ClientInputManager.IsButtonDown(GameButton.ConstructionMenu))
     {
         ConstructionPlacementSystem.ClientToggleConstructionMenu();
     }
 }