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); } }
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; } }