Exemplo n.º 1
0
    private void Update()
    {
        float num = 0f;

        num = (input_was_previously_positive ? 0f : ((delayTicksRemaining <= 0) ? 1f : ((float)(DelayAmountTicks - delayTicksRemaining) / (float)DelayAmountTicks)));
        meter.SetPositionPercent(num);
    }
        private void UpdateMeter()
        {
            float percent_full = Mathf.Clamp01(GetAmountStored() / GetMaxCapacityMinusStorageMargin());

            if (meter == null)
            {
                return;
            }
            meter.SetPositionPercent(percent_full);
        }
    private void UpdateMeter()
    {
        float maxCapacityMinusStorageMargin = GetMaxCapacityMinusStorageMargin();
        float positionPercent = Mathf.Clamp01(GetAmountStored() / maxCapacityMinusStorageMargin);

        if (meter != null)
        {
            meter.SetPositionPercent(positionPercent);
        }
    }
Exemplo n.º 4
0
    protected override void OnStartWork(Worker worker)
    {
        base.OnStartWork(worker);
        Pickupable.PickupableStartWorkInfo pickupableStartWorkInfo = (Pickupable.PickupableStartWorkInfo)worker.startWorkInfo;
        float   amount  = pickupableStartWorkInfo.amount;
        Element element = pickupableStartWorkInfo.originalPickupable.GetComponent <PrimaryElement>().Element;

        session = new WorkSession(Grid.PosToCell(this), element.id, pickupableStartWorkInfo.originalPickupable.GetComponent <SubstanceChunk>(), amount, base.gameObject);
        meter.SetPositionPercent(0f);
        meter.SetSymbolTint(new KAnimHashedString("meter_target"), element.substance.colour);
    }
    private void OnStorageChanged(object data)
    {
        float massAvailable   = storage.GetMassAvailable(SimHashes.CrudeOil);
        float positionPercent = Mathf.Clamp01(massAvailable / maxSrcMass);

        meter.SetPositionPercent(positionPercent);
    }
Exemplo n.º 6
0
        public void Sim200ms(float dt)
        {
            try
            {
                Schedule s = ScheduleManager.Instance.GetSchedules()[scheduleIndex];
                int      currentScheduleBlock = Schedule.GetBlockIdx();

                float meterPercent = (float)(currentScheduleBlock) / 24f;
                meter.SetPositionPercent(meterPercent);

                ScheduleBlock b = s.GetBlock(currentScheduleBlock);
                string        currentScheduleGroup = b.GroupId;

                meter.SetSymbolTint("face", GetBlockColor(b));

                string selectedScheduleGroup = Db.Get().ScheduleGroups.allGroups[blockTypeIndex].Id;

                bool state = (string.Equals(currentScheduleGroup, selectedScheduleGroup));
                SetState(state);
            }
            catch (Exception ex)
            {
                Debug.Log($"Failed to update Schedule Sensor: {ex.ToString()}");
                SetState(false);
            }
        }
Exemplo n.º 7
0
 public void SetLogicMeter(bool on)
 {
     if (logicMeter != null)
     {
         logicMeter.SetPositionPercent((!on) ? 0f : 1f);
     }
 }
 private void RefreshMeter()
 {
     o2_meter.SetPositionPercent(suit_locker.OxygenAvailable);
     fuel_meter.SetPositionPercent(FuelAvailable);
     anim_controller.SetSymbolVisiblity("oxygen_yes_bloom", IsOxygenTankAboveMinimumLevel());
     anim_controller.SetSymbolVisiblity("petrol_yes_bloom", IsFuelTankAboveMinimumLevel());
 }
Exemplo n.º 9
0
    public override void EnergySim200ms(float dt)
    {
        base.EnergySim200ms(dt);
        ushort circuitID = base.CircuitID;

        operational.SetFlag(Generator.wireConnectedFlag, circuitID != 65535);
        if (operational.IsOperational)
        {
            float        num   = 0f;
            CellOffset[] array = solarCellOffsets;
            foreach (CellOffset offset in array)
            {
                int num2 = Grid.LightIntensity[Grid.OffsetCell(Grid.PosToCell(this), offset)];
                num += (float)num2 * 0.00053f;
            }
            operational.SetActive(num > 0f, false);
            num = Mathf.Clamp(num, 0f, 380f);
            Game.Instance.accumulators.Accumulate(accumulator, num * dt);
            if (num > 0f)
            {
                num *= dt;
                num  = Mathf.Max(num, 1f * dt);
                GenerateJoules(num, false);
            }
            meter.SetPositionPercent(Game.Instance.accumulators.GetAverageRate(accumulator) / 380f);
            UpdateStatusItem();
        }
    }
    private void RefreshMeters()
    {
        float           positionPercent = 0f;
        PrimaryElement  primaryElement  = GetComponent <Storage>().FindPrimaryElement(consumedElement);
        float           num             = (float)maxUses * massConsumedPerUse;
        ConduitConsumer component       = GetComponent <ConduitConsumer>();

        if ((UnityEngine.Object)component != (UnityEngine.Object)null)
        {
            num = component.capacityKG;
        }
        if ((UnityEngine.Object)primaryElement != (UnityEngine.Object)null)
        {
            positionPercent = Mathf.Clamp01(primaryElement.Mass / num);
        }
        float          positionPercent2 = 0f;
        PrimaryElement primaryElement2  = GetComponent <Storage>().FindPrimaryElement(outputElement);

        if ((UnityEngine.Object)primaryElement2 != (UnityEngine.Object)null)
        {
            positionPercent2 = Mathf.Clamp01(primaryElement2.Mass / ((float)maxUses * massConsumedPerUse));
        }
        cleanMeter.SetPositionPercent(positionPercent);
        dirtyMeter.SetPositionPercent(positionPercent2);
    }
Exemplo n.º 11
0
 public void UpdateMeter()
 {
     if (hasMeter)
     {
         float positionPercent = Mathf.Clamp01(storage.MassStored() / storage.capacityKg);
         meter.SetPositionPercent(positionPercent);
     }
 }
Exemplo n.º 12
0
 private void UpdateMeter()
 {
     if (!HasMeter)
     {
         this.CreateMeter();
     }
     storageMeter.SetPositionPercent(PercentFull);
 }
Exemplo n.º 13
0
    protected override void OnSpawn()
    {
        base.OnSpawn();
        KBatchedAnimController component = GetComponent <KBatchedAnimController>();

        meter = new MeterController((KAnimControllerBase)component, "meter_target", "meter", Meter.Offset.UserSpecified, Grid.SceneLayer.LogicGatesFront, Vector3.zero, (string[])null);
        meter.SetPositionPercent(1f);
    }
Exemplo n.º 14
0
 public void UpdateMeter()
 {
     if (hasMeter)
     {
         float positionPercent = Mathf.Clamp01(storage.GetMassAvailable(GameTags.AnyWater) / storage.capacityKg);
         meter.SetPositionPercent(positionPercent);
     }
 }
 public void SetLogicMeter(bool on)
 {
     if (logicMeter == null)
     {
         return;
     }
     logicMeter.SetPositionPercent(!on ? 0.0f : 1f);
 }
Exemplo n.º 16
0
    private void UpdatePressurePercent()
    {
        float massAvailable = storage.GetMassAvailable(gasElement);
        float value         = massAvailable / maxGasPressure;

        value = Mathf.Clamp01(value);
        smi.sm.pressurePercent.Set(value, smi);
        pressureMeter.SetPositionPercent(value);
    }
    private void OnStorageChange(object data)
    {
        float amountAvailable = inStorage.GetAmountAvailable(coolantTag);
        float capacityKG      = conduitConsumer.capacityKG;
        float positionPercent = Mathf.Clamp01(amountAvailable / capacityKG);

        if (meter_coolant != null)
        {
            meter_coolant.SetPositionPercent(positionPercent);
        }
    }
Exemplo n.º 18
0
    private void RefreshMeters()
    {
        float          positionPercent = 0f;
        PrimaryElement primaryElement  = GetComponent <Storage>().FindPrimaryElement(consumedElement);

        if ((UnityEngine.Object)primaryElement != (UnityEngine.Object)null)
        {
            positionPercent = Mathf.Clamp01(primaryElement.Mass / GetComponent <ConduitConsumer>().capacityKG);
        }
        cleanMeter.SetPositionPercent(positionPercent);
    }
Exemplo n.º 19
0
 private static void Prefix(EnergyGenerator __instance, Storage ___storage, MeterController ___meter)
 {
     if (__instance.hasMeter)
     {
         float mass = 0;
         foreach (EnergyGenerator.InputItem inputItem in __instance.formula.inputs)
         {
             mass += ___storage.GetAmountAvailable(inputItem.tag);
         }
         ___meter.SetPositionPercent(mass / __instance.formula.inputs[0].maxStoredMass);
     }
 }
 protected override void OnSpawn()
 {
     base.OnSpawn();
     GetComponent <KBatchedAnimController>().Play("grounded", KAnim.PlayMode.Loop, 1f, 0f);
     base.gameObject.Subscribe(1366341636, OnReturn);
     UserMaxCapacity = UserMaxCapacity;
     meter           = new MeterController(GetComponent <KBatchedAnimController>(), "meter_target", "meter", Meter.Offset.Infront, Grid.SceneLayer.NoLayer, "meter_target", "meter_fill", "meter_frame", "meter_OL");
     Subscribe(-1697596308, delegate
     {
         meter.SetPositionPercent(MassStored() / capacityKg);
     });
 }
Exemplo n.º 21
0
 protected override void OnSpawn()
 {
     base.OnSpawn();
     GetComponent <KBatchedAnimController>().Play("grounded", KAnim.PlayMode.Loop, 1f, 0f);
     Subscribe(-1056989049, OnLaunchDelegate);
     Subscribe(238242047, OnLandDelegate);
     Subscribe(493375141, OnRefreshUserMenuDelegate);
     meter = new MeterController(GetComponent <KBatchedAnimController>(), "meter_target", "meter", Meter.Offset.Infront, Grid.SceneLayer.NoLayer, "meter_target", "meter_fill", "meter_frame", "meter_OL");
     Subscribe(-1697596308, delegate
     {
         meter.SetPositionPercent(storage.MassStored() / storage.Capacity());
     });
 }
    protected override void OnSpawn()
    {
        base.OnSpawn();
        KBatchedAnimController component = GetComponent <KBatchedAnimController>();

        meter_coolant = new MeterController((KAnimControllerBase)component, "meter_target", "meter_coolant", Meter.Offset.Infront, Grid.SceneLayer.NoLayer, Vector3.zero, (string[])null);
        meter_metal   = new MeterController((KAnimControllerBase)component, "meter_target_metal", "meter_metal", Meter.Offset.Infront, Grid.SceneLayer.NoLayer, Vector3.zero, (string[])null);
        meter_metal.SetPositionPercent(1f);
        smi = new StatesInstance(this);
        smi.StartSM();
        ConduitFlow liquidConduitFlow = Game.Instance.liquidConduitFlow;

        liquidConduitFlow.AddConduitUpdater(OnConduitUpdate, ConduitFlowPriority.Default);
        Building component2 = GetComponent <Building>();

        outputCell = component2.GetUtilityOutputCell();
        workable.OnWorkTickActions = delegate
        {
            float percentComplete = workable.GetPercentComplete();
            meter_metal.SetPositionPercent(percentComplete);
        };
    }
    private void OnStorageChanged(object data)
    {
        GameObject gameObject = (GameObject)data;

        if (!((Object)gameObject == (Object)null))
        {
            PrimaryElement component = gameObject.GetComponent <PrimaryElement>();
            if (component.ElementID == SimHashes.Petroleum)
            {
                float positionPercent = Mathf.Clamp01(component.Mass / consumer.capacityKG);
                oilMeter.SetPositionPercent(positionPercent);
            }
        }
    }
Exemplo n.º 24
0
    private void UpdateMeter()
    {
        float num = 0f;

        foreach (GameObject item in iceStorage.items)
        {
            PrimaryElement component = item.GetComponent <PrimaryElement>();
            num += component.Temperature;
        }
        num /= (float)iceStorage.items.Count;
        float num2 = Mathf.Clamp01((num - LOW_ICE_TEMP) / (targetTemperature - LOW_ICE_TEMP));

        meter.SetPositionPercent(1f - num2);
    }
 public virtual void EnergySim200ms(float dt)
 {
     this.dt        = dt;
     joulesConsumed = 0f;
     WattsUsed      = 0f;
     ChargeCapacity = chargeWattage * dt;
     if (meter != null)
     {
         float percentFull = PercentFull;
         meter.SetPositionPercent(percentFull);
     }
     UpdateSounds();
     PreviousJoulesAvailable = JoulesAvailable;
     ConsumeEnergy(joulesLostPerSecond * dt, true);
 }
Exemplo n.º 26
0
        public override void EnergySim200ms(float dt)
        {
            base.EnergySim200ms(dt);

            ushort circuitID = base.CircuitID;

            operational.SetFlag(Generator.wireConnectedFlag, circuitID != ushort.MaxValue);

            float display_dt = (lastSampleTime > 0f) ? (Time.time - lastSampleTime) : 1f;

            lastSampleTime = Time.time;

            if (operational.IsOperational)
            {
                GenerateJoules(currentGeneratedPower * dt);
                float meterPercent = Mathf.Clamp((currentEfficiency * 0.95f), 0f, 1f);
                meter.SetPositionPercent(meterPercent);
                GameComps.StructureTemperatures.ProduceEnergy(structureTemperature, currentGeneratedHeat * dt / 1000f, "StirlingEngine", display_dt);
            }
            else
            {
                meter.SetPositionPercent(0);
            }
        }
 private void TryEmit(PrimaryElement primary_elem)
 {
     if (primary_elem.Mass >= emitMass)
     {
         plasticMeter.SetPositionPercent(0f);
         GameObject gameObject = storage.Drop(primary_elem.gameObject, true);
         Rotatable  component  = GetComponent <Rotatable>();
         Vector3    vector     = component.transform.GetPosition() + component.GetRotatedOffset(emitOffset);
         int        i          = Grid.PosToCell(vector);
         if (Grid.Solid[i])
         {
             vector += component.GetRotatedOffset(Vector3.left);
         }
         gameObject.transform.SetPosition(vector);
         PrimaryElement primaryElement = storage.FindPrimaryElement(exhaustElement);
         if ((Object)primaryElement != (Object)null)
         {
             int gameCell = Grid.PosToCell(vector);
             SimMessages.AddRemoveSubstance(gameCell, primaryElement.ElementID, null, primaryElement.Mass, primaryElement.Temperature, primaryElement.DiseaseIdx, primaryElement.DiseaseCount, true, -1);
             primaryElement.Mass = 0f;
             primaryElement.ModifyDiseaseCount(-2147483648, "Polymerizer.Exhaust");
         }
     }
 }
    protected override void OnSpawn()
    {
        KBatchedAnimController component = GetComponent <KBatchedAnimController>();

        plasticMeter = new MeterController((KAnimControllerBase)component, "meter_target", "meter", Meter.Offset.Infront, Grid.SceneLayer.NoLayer, new Vector3(0f, 0f, 0f), (string[])null);
        oilMeter     = new MeterController((KAnimControllerBase)component, "meter2_target", "meter2", Meter.Offset.Infront, Grid.SceneLayer.NoLayer, new Vector3(0f, 0f, 0f), (string[])null);
        component.SetSymbolVisiblity("meter_target", true);
        float          positionPercent = 0f;
        PrimaryElement primaryElement  = storage.FindPrimaryElement(SimHashes.Petroleum);

        if ((Object)primaryElement != (Object)null)
        {
            positionPercent = Mathf.Clamp01(primaryElement.Mass / consumer.capacityKG);
        }
        oilMeter.SetPositionPercent(positionPercent);
        base.smi.StartSM();
        Subscribe(-1697596308, OnStorageChangedDelegate);
    }
Exemplo n.º 29
0
 private void UpdateProgress()
 {
     meter.SetPositionPercent(GetProgress());
 }
 public void UpdateMeter()
 {
     meter.SetPositionPercent(Mathf.Clamp01(base.smi.master.iceStorage.MassStored() / base.smi.master.iceStorage.Capacity()));
 }