Exemplo n.º 1
0
        private void updateWire()
        {
            if (this.engine != null)
            {
                this.engine.gameObject.SetActive(this.isPowered && this.fuel > 0);
            }
            ushort maxValue = ushort.MaxValue;

            if (base.isPlant)
            {
                byte            b;
                byte            b2;
                BarricadeRegion barricadeRegion;
                BarricadeManager.tryGetPlant(base.transform.parent, out b, out b2, out maxValue, out barricadeRegion);
            }
            List <InteractablePower> list = PowerTool.checkPower(base.transform.position, this.wirerange, maxValue);

            for (int i = 0; i < list.Count; i++)
            {
                InteractablePower interactablePower = list[i];
                if (interactablePower.isWired)
                {
                    if (!this.isPowered || this.fuel == 0)
                    {
                        bool flag = false;
                        List <InteractableGenerator> list2 = PowerTool.checkGenerators(interactablePower.transform.position, 64f, maxValue);
                        for (int j = 0; j < list2.Count; j++)
                        {
                            if (list2[j] != this && list2[j].isPowered && list2[j].fuel > 0 && (list2[j].transform.position - interactablePower.transform.position).sqrMagnitude < list2[j].sqrWirerange)
                            {
                                flag = true;
                                break;
                            }
                        }
                        if (!flag)
                        {
                            interactablePower.updateWired(false);
                        }
                    }
                }
                else if (this.isPowered && this.fuel > 0)
                {
                    interactablePower.updateWired(true);
                }
            }
        }