void AddSwitch(AutoTurret aturret)
        {
            ElectricBattery bat = null;

            if (IsBatEnabled())
            {
                bat = AddBattery(aturret.GetParentEntity() as MiniCopter);
            }

            ElectricSwitch aSwitch = aturret.GetComponentInChildren <ElectricSwitch>();

            aSwitch = GameManager.server.CreateEntity(switchPrefab, aturret.transform.position)?.GetComponent <ElectricSwitch>();
            if (aSwitch == null)
            {
                return;
            }
            aSwitch.pickup.enabled = false;
            aSwitch.SetParent(aturret);
            aSwitch.transform.localPosition = new Vector3(0f, -0.65f, 0.325f);
            aSwitch.transform.localRotation = Quaternion.Euler(0, 0, 0);
            DestroyMeshCollider(aSwitch);
            DestroyGroundComp(aSwitch);
            aSwitch.Spawn();
            aSwitch._limitedNetworking = false;
            if (!IsBatEnabled())
            {
                RunWire(aSwitch, 0, aturret, 0, 12);
            }
            else if (bat != null)
            {
                RunWire(bat, 0, aSwitch, 0);
                RunWire(aSwitch, 0, aturret, 0);
            }
        }
Exemplo n.º 2
0
        private void ChangeBattery(ElectricBattery battery)
        {
            if (config.capacity)
            {
                battery.maxCapactiySeconds = 86399;
                battery.capacitySeconds    = battery.maxCapactiySeconds;
            }

            if (config.output)
            {
                battery.maxOutput = 10000;
            }
        }
        ElectricBattery AddBattery(MiniCopter copter)
        {
            ElectricBattery abat = GameManager.server.CreateEntity(batteryPrefab, copter.transform.position) as ElectricBattery;

            abat.maxOutput = 12;
            abat.Spawn();
            DestroyGroundComp(abat);
            abat.pickup.enabled = false;
            abat.SetParent(copter);
            abat.transform.localPosition = new Vector3(-0.7f, 0.2f, -0.2f);
            abat.transform.localRotation = Quaternion.Euler(0, 0, 0);
            abat.SendNetworkUpdate();
            return(abat);
        }
        private void OnEntitySpawned(BaseNetworkable networkObject)
        {
            ElectricBattery battery = networkObject.GetComponent <ElectricBattery>();

            if (battery != null)
            {
                AdjustBattery(battery);
            }
            SolarPanel panel = networkObject.GetComponent <SolarPanel>();

            if (panel != null)
            {
                AdjustSolarPanel(panel);
            }
        }
 private void RevertBattery(ElectricBattery battery)
 {
     if (battery.maxOutput == config.LargeBatteryConfig.MaxOutput)
     {
         // Large battery;
         battery.maxCapactiySeconds = 14400;
         battery.chargeRatio        = 0.8f;
         battery.maxOutput          = 100;
     }
     else if (battery.maxOutput == config.SmallBatteryConfig.MaxOutput)
     {
         battery.maxCapactiySeconds = 900;
         battery.chargeRatio        = 0.8f;
         battery.maxOutput          = 10;
     }
 }
 private void AdjustBattery(ElectricBattery battery)
 {
     if (battery.maxOutput == 100)
     {
         // Large Battery
         battery.maxOutput          = config.LargeBatteryConfig.MaxOutput;
         battery.maxCapactiySeconds = config.LargeBatteryConfig.MaxCapacitySeconds;
         battery.chargeRatio        = config.LargeBatteryConfig.Efficiency;
     }
     else if (battery.maxOutput == 10)
     {
         // Small Battery.
         battery.maxOutput          = config.SmallBatteryConfig.MaxOutput;
         battery.maxCapactiySeconds = config.SmallBatteryConfig.MaxCapacitySeconds;
         battery.chargeRatio        = config.SmallBatteryConfig.Efficiency;
     }
 }