// Use this for initialization // void Awake() { // controlBoard = GameObject.FindGameObjectWithTag("GameController").GetComponent <SilantroControls> (); if (controlBoard == null) { Debug.LogError("Control Board is missing, Place Control Board in scene and restart!"); } stopEngine = controlBoard.engineShutdown; dumpFuelKey = controlBoard.dumpFuelControl; refuelTankKey = controlBoard.refuelControl; //FUEL SETUP if (internalFuelTank != null) { TotalFuelRemaining = 0; if (externalTanks.Count > 0) { foreach (SilantroFuelTank external in externalTanks) { TotalFuelRemaining += external.Capacity; } } TotalFuelRemaining += internalFuelTank.Capacity; CurrentTank = internalFuelTank; // } else { Debug.Log("No internal fuel tank is assigned to distributor!!"); } // }
// Update is called once per frame void FixedUpdate() { // if (internalFuelTank.CurrentAmount < minimumFuelAmount) { if (externalTanks.Count > 0) { CurrentTank = externalTanks [0]; if (CurrentTank.tankType == SilantroFuelTank.TankType.External && CurrentTank.CurrentAmount < 0.1f) { if (externalTanks.Contains(CurrentTank)) { externalTanks.Remove(CurrentTank); CurrentTank = externalTanks [0]; } } } else { CurrentTank = internalFuelTank; //Activate fuel Alert if (CurrentTank.CurrentAmount <= minimumFuelAmount) { lowFuel = true; if (!fuelAlertActivated) { // StartCoroutine(LowFuelAction()); fuelAlertActivated = true; } } Debug.Log("Fuel Low"); } } // if (CurrentTank != null) { currentTank = CurrentTank.gameObject.name; // currentTankFuel = CurrentTank.CurrentAmount; tankType = CurrentTank.tankType.ToString(); if (totalConsumptionRate > 0) { float flightTime = (CurrentTank.CurrentAmount) / totalConsumptionRate; timeLeft = string.Format("{0}:{1:00}", (int)flightTime / 60, (int)flightTime % 60); } } TotalFuelRemaining = 0; if (externalTanks.Count > 0) { foreach (SilantroFuelTank external in externalTanks) { TotalFuelRemaining += external.Capacity; } } TotalFuelRemaining += internalFuelTank.CurrentAmount; }
// // Use this for initialization void Start() { aircraft = GetComponent <Rigidbody> (); if (aircraft == null) { Debug.Log("Add Rigidbody component to airplane body"); } // datalog = aircraft.gameObject.GetComponentInChildren <SilantroInstrumentation>(); currentTank = fuelsystem.internalFuelTank; //AIRCRAFT SETUP if (engineType == AircraftType.TurboFan) { turbofans = GetComponentsInChildren <SilantroTurboFan> (); foreach (SilantroTurboFan turbofan in turbofans) { turbofan.attachedFuelTank = currentTank; } AvailableEngines = turbofans.Length; // } else if (engineType == AircraftType.TurboJet) { turboJet = GetComponentsInChildren <SilantroTurboJet> (); AvailableEngines = turboJet.Length; foreach (SilantroTurboJet jet in turboJet) { jet.attachedFuelTank = currentTank; } } else if (engineType == AircraftType.TurboProp) { turboprop = GetComponentsInChildren <SilantroTurboProp> (); AvailableEngines = turboprop.Length; foreach (SilantroTurboProp turboProp in turboprop) { turboProp.attachedFuelTank = currentTank; } } // wings = GetComponentsInChildren <SilantroAerofoil>(); wingArea = 0; if (wings.Length > 0) { foreach (SilantroAerofoil wing in wings) { wingArea += wing.aerofoilArea; } } // GameObject brain = GameObject.FindGameObjectWithTag("Brain"); if (brain.transform.root == gameObject.transform.root) { cog = brain; } // Collider col = gameObject.GetComponent <CapsuleCollider>(); if (col == null) { Debug.Log("Attach a capsule collider to the airplane and restart!!"); } float r = dragSystem.averagefuselargeDiameter / 2f; fuselargeArea = (3.142f * r * r) + (2 * 3.142f * r * dragSystem.averagefuselargeLength); // // if (isDestructible && GetComponent <SilantroHealth> () != null) { GetComponent <SilantroHealth> ().isDistructible = true; SilantroAerofoilHealth[] healths = GetComponentsInChildren <SilantroAerofoilHealth> (); foreach (SilantroAerofoilHealth hlt in healths) { hlt.isDistructible = true; } } else if (!isDestructible && GetComponent <SilantroHealth> () != null) { GetComponent <SilantroHealth> ().isDistructible = false; SilantroAerofoilHealth[] healths = GetComponentsInChildren <SilantroAerofoilHealth> (); foreach (SilantroAerofoilHealth hlt in healths) { hlt.isDistructible = false; } } // //CALCULATE EXTRA DRAG OBJECTS extraDrags = GetComponentsInChildren <SilantroDragMultiplier>(); extraDrag = 0; foreach (SilantroDragMultiplier drag in extraDrags) { if (drag.dragActive) { extraDrag += drag.dragCoefficient; } } // // // AerodynamicSurfaces = wings.Length.ToString(); Engines = AvailableEngines.ToString(); if (datalog != null) { InstrumentBoard = "Active"; } if (fuelsystem != null) { FuelSystem = "Active"; } if (gearHelper != null) { WheelSystem = "Active"; } }