protected override void ServerUpdate(ServerUpdateData data) { var item = data.GameObject; if (!(item.Container?.ProtoItemsContainer is ItemsContainerGeneratorSolar)) { // the panel is not installed return; } var worldObjectGenerator = item.Container.OwnerAsStaticObject; if (worldObjectGenerator == null || worldObjectGenerator.IsDestroyed) { return; } // The panel is installed. // Decrease durability proportionally to the generation rate // (degrade only during the daytime and only if active). var rate = ProtoObjectGeneratorSolar.SharedGetElectricityProductionRate(worldObjectGenerator); if (rate <= 0) { return; } var decrease = this.DurabilityDecreasePerMinuteWhenInstalled * (data.DeltaTime / 60.0); decrease *= rate; ItemDurabilitySystem.ServerModifyDurability(item, delta: -(int)decrease); }
public ViewModelWindowGeneratorSolar( IStaticWorldObject objectGenerator, ObjectGeneratorSolarPublicState publicState) { this.objectGenerator = objectGenerator; this.protoGenerator = (ProtoObjectGeneratorSolar)objectGenerator.ProtoGameObject; this.ViewModelItemsContainerExchange = new ViewModelItemsContainerExchange( publicState.PanelsContainer) { IsContainerTitleVisible = false, IsManagementButtonsVisible = false }; this.Refresh(); }
public ViewModelWindowGeneratorSolar( IStaticWorldObject objectGenerator, ObjectGeneratorSolarPublicState publicState) { this.objectGenerator = objectGenerator; this.protoGenerator = (ProtoObjectGeneratorSolar)objectGenerator.ProtoGameObject; this.publicState = publicState; var character = ClientCurrentCharacterHelper.Character; this.ViewModelItemsContainerExchange = new ViewModelItemsContainerExchange( publicState.PanelsContainer, callbackTakeAllItemsSuccess: null) { IsContainerTitleVisible = false, IsManagementButtonsVisible = false }; this.Refresh(); }