Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }