diff --git a/FNPlugin/AlcubierreDrive.cs b/FNPlugin/AlcubierreDrive.cs index 9519eb1a..203ef59a 100644 --- a/FNPlugin/AlcubierreDrive.cs +++ b/FNPlugin/AlcubierreDrive.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; @@ -260,76 +260,32 @@ public override void OnStart(PartModule.StartState state) { warp_effect2.renderer.material.shader = Shader.Find("Unlit/Transparent"); warp_textures = new Texture[33]; - warp_textures[0] = GameDatabase.Instance.GetTexture("WarpPlugin/warp", false); - warp_textures[1] = GameDatabase.Instance.GetTexture("WarpPlugin/warp2", false); - warp_textures[2] = GameDatabase.Instance.GetTexture("WarpPlugin/warp3", false); - warp_textures[3] = GameDatabase.Instance.GetTexture("WarpPlugin/warp4", false); - warp_textures[4] = GameDatabase.Instance.GetTexture("WarpPlugin/warp5", false); - warp_textures[5] = GameDatabase.Instance.GetTexture("WarpPlugin/warp6", false); - warp_textures[6] = GameDatabase.Instance.GetTexture("WarpPlugin/warp7", false); - warp_textures[7] = GameDatabase.Instance.GetTexture("WarpPlugin/warp8", false); - warp_textures[8] = GameDatabase.Instance.GetTexture("WarpPlugin/warp9", false); - warp_textures[9] = GameDatabase.Instance.GetTexture("WarpPlugin/warp10", false); - warp_textures[10] = GameDatabase.Instance.GetTexture("WarpPlugin/warp11", false); - warp_textures[11] = GameDatabase.Instance.GetTexture("WarpPlugin/warp10", false); - warp_textures[12] = GameDatabase.Instance.GetTexture("WarpPlugin/warp11", false); - warp_textures[13] = GameDatabase.Instance.GetTexture("WarpPlugin/warp12", false); - warp_textures[14] = GameDatabase.Instance.GetTexture("WarpPlugin/warp13", false); - warp_textures[15] = GameDatabase.Instance.GetTexture("WarpPlugin/warp14", false); - warp_textures[16] = GameDatabase.Instance.GetTexture("WarpPlugin/warp15", false); - warp_textures[17] = GameDatabase.Instance.GetTexture("WarpPlugin/warp16", false); - warp_textures[18] = GameDatabase.Instance.GetTexture("WarpPlugin/warp15", false); - warp_textures[19] = GameDatabase.Instance.GetTexture("WarpPlugin/warp14", false); - warp_textures[20] = GameDatabase.Instance.GetTexture("WarpPlugin/warp13", false); - warp_textures[21] = GameDatabase.Instance.GetTexture("WarpPlugin/warp12", false); - warp_textures[22] = GameDatabase.Instance.GetTexture("WarpPlugin/warp11", false); - warp_textures[23] = GameDatabase.Instance.GetTexture("WarpPlugin/warp10", false); - warp_textures[24] = GameDatabase.Instance.GetTexture("WarpPlugin/warp9", false); - warp_textures[25] = GameDatabase.Instance.GetTexture("WarpPlugin/warp8", false); - warp_textures[26] = GameDatabase.Instance.GetTexture("WarpPlugin/warp7", false); - warp_textures[27] = GameDatabase.Instance.GetTexture("WarpPlugin/warp6", false); - warp_textures[28] = GameDatabase.Instance.GetTexture("WarpPlugin/warp5", false); - warp_textures[29] = GameDatabase.Instance.GetTexture("WarpPlugin/warp4", false); - warp_textures[30] = GameDatabase.Instance.GetTexture("WarpPlugin/warp3", false); - warp_textures[31] = GameDatabase.Instance.GetTexture("WarpPlugin/warp2", false); - warp_textures[32] = GameDatabase.Instance.GetTexture("WarpPlugin/warp", false); + + const string warp_tecture_path = "WarpPlugin/ParticleFX/warp"; + for (int i = 0; i < 11; i++) + warp_textures[i] = GameDatabase.Instance.GetTexture((i > 0) ? + warp_tecture_path + (i + 1).ToString() : warp_tecture_path, false); + warp_textures[11] = GameDatabase.Instance.GetTexture("WarpPlugin/ParticleFX/warp10", false); + for (int i = 12; i < 33; i++) + { + int j = i > 17 ? 34 - i : i; + warp_textures[i] = GameDatabase.Instance.GetTexture(j > 1 ? + warp_tecture_path + (j + 1).ToString() : warp_tecture_path, false); + } warp_textures2 = new Texture[33]; - warp_textures2[0] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr", false); - warp_textures2[1] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr2", false); - warp_textures2[2] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr3", false); - warp_textures2[3] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr4", false); - warp_textures2[4] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr5", false); - warp_textures2[5] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr6", false); - warp_textures2[6] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr7", false); - warp_textures2[7] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr8", false); - warp_textures2[8] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr9", false); - warp_textures2[9] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr10", false); - warp_textures2[10] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr11", false); - warp_textures2[11] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr10", false); - warp_textures2[12] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr11", false); - warp_textures2[13] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr12", false); - warp_textures2[14] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr13", false); - warp_textures2[15] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr14", false); - warp_textures2[16] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr15", false); - warp_textures2[17] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr16", false); - warp_textures2[18] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr15", false); - warp_textures2[19] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr14", false); - warp_textures2[20] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr13", false); - warp_textures2[21] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr12", false); - warp_textures2[22] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr11", false); - warp_textures2[23] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr10", false); - warp_textures2[24] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr9", false); - warp_textures2[25] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr8", false); - warp_textures2[26] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr7", false); - warp_textures2[27] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr6", false); - warp_textures2[28] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr5", false); - warp_textures2[29] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr4", false); - warp_textures2[30] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr3", false); - warp_textures2[31] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr2", false); - warp_textures2[32] = GameDatabase.Instance.GetTexture("WarpPlugin/warpr", false); - - + + const string warpr_tecture_path = "WarpPlugin/ParticleFX/warpr"; + for (int i = 0; i < 11; i++) + warp_textures2[i] = GameDatabase.Instance.GetTexture((i > 0) ? + warpr_tecture_path + (i + 1).ToString() : warpr_tecture_path, false); + warp_textures2[11] = GameDatabase.Instance.GetTexture("WarpPlugin/ParticleFX/warpr10", false); + for (int i = 12; i < 33; i++) + { + int j = i > 17 ? 34 - i : i; + warp_textures2[i] = GameDatabase.Instance.GetTexture(j > 1 ? + warpr_tecture_path + (j + 1).ToString() : warpr_tecture_path, false); + } warp_effect.renderer.material.color = new Color(Color.cyan.r, Color.cyan.g, Color.cyan.b, 0.5f); warp_effect2.renderer.material.color = new Color(Color.red.r, Color.red.g, Color.red.b, 0.1f); diff --git a/FNPlugin/AluminiumElectrolyser.cs b/FNPlugin/AluminiumElectrolyser.cs index d1d38909..6e4cd8b2 100644 --- a/FNPlugin/AluminiumElectrolyser.cs +++ b/FNPlugin/AluminiumElectrolyser.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/AnthraquinoneProcessor.cs b/FNPlugin/AnthraquinoneProcessor.cs index cc04c7ac..1b14079d 100644 --- a/FNPlugin/AnthraquinoneProcessor.cs +++ b/FNPlugin/AnthraquinoneProcessor.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/AntimatterCollector.cs b/FNPlugin/AntimatterCollector.cs index 06bd01e1..2020d6e8 100644 --- a/FNPlugin/AntimatterCollector.cs +++ b/FNPlugin/AntimatterCollector.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { public class AntimatterCollector : PartModule { diff --git a/FNPlugin/AntimatterFactory.cs b/FNPlugin/AntimatterFactory.cs index a373830b..2f7be090 100644 --- a/FNPlugin/AntimatterFactory.cs +++ b/FNPlugin/AntimatterFactory.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class AntimatterFactory { diff --git a/FNPlugin/AntimatterStorageTank.cs b/FNPlugin/AntimatterStorageTank.cs index 3f77e1bc..91941ece 100644 --- a/FNPlugin/AntimatterStorageTank.cs +++ b/FNPlugin/AntimatterStorageTank.cs @@ -1,4 +1,4 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System; @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class AntimatterStorageTank : FNResourceSuppliableModule { @@ -57,7 +57,7 @@ public void doExplode() { lightGameObject.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); lightGameObject.AddComponent(); lightGameObject.renderer.material.shader = Shader.Find("Unlit/Transparent"); - lightGameObject.renderer.material.mainTexture = GameDatabase.Instance.GetTexture("WarpPlugin/explode", false); + lightGameObject.renderer.material.mainTexture = GameDatabase.Instance.GetTexture("WarpPlugin/ParticleFX/explode", false); lightGameObject.renderer.material.color = new Color(Color.white.r, Color.white.g, Color.white.b, 0.9f); Light light = lightGameObject.light; lightGameObject.transform.position = part.transform.position; diff --git a/FNPlugin/AtmosphericIntake.cs b/FNPlugin/AtmosphericIntake.cs index 303e7c1c..d4622c07 100644 --- a/FNPlugin/AtmosphericIntake.cs +++ b/FNPlugin/AtmosphericIntake.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/ElectricEngineControllerFX.cs b/FNPlugin/ElectricEngineControllerFX.cs index f83376a5..6df7c579 100644 --- a/FNPlugin/ElectricEngineControllerFX.cs +++ b/FNPlugin/ElectricEngineControllerFX.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { diff --git a/FNPlugin/FNLCMassSpectrometer.cs b/FNPlugin/FNLCMassSpectrometer.cs index 4355d812..161bbf8c 100644 --- a/FNPlugin/FNLCMassSpectrometer.cs +++ b/FNPlugin/FNLCMassSpectrometer.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class FNLCMassSpectrometer : PartModule { diff --git a/FNPlugin/FNMassSpectrometer.cs b/FNPlugin/FNMassSpectrometer.cs index a9b2aea1..ad5eb07c 100644 --- a/FNPlugin/FNMassSpectrometer.cs +++ b/FNPlugin/FNMassSpectrometer.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class FNMassSpectrometer : PartModule{ diff --git a/FNPlugin/FNModuleCryostat.cs b/FNPlugin/FNModuleCryostat.cs index f85034e6..78bcebb4 100644 --- a/FNPlugin/FNModuleCryostat.cs +++ b/FNPlugin/FNModuleCryostat.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { [KSPModule("Cyrostat Tank")] @@ -40,18 +40,23 @@ public override void OnUpdate() { } public override void OnFixedUpdate() { - if (cryostat_resource != null && cryostat_resource.amount > 0) { + if (cryostat_resource != null && cryostat_resource.amount > 0.0) + { double charge = consumeFNResource(powerReqKW / 1000.0 * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES) * 1000.0; - if (charge <= powerReqKW * TimeWarp.fixedDeltaTime) { + if (charge <= powerReqKW * TimeWarp.fixedDeltaTime) + { double rem_charge = powerReqKW * TimeWarp.fixedDeltaTime - charge; charge += ORSHelper.fixedRequestResource(part, "ElectricCharge", rem_charge); } - power_d = charge/TimeWarp.fixedDeltaTime; + power_d = charge / TimeWarp.fixedDeltaTime; - if (charge >= powerReqKW) { + if (charge >= powerReqKW) + { cryostat_resource.amount = Math.Max(0, cryostat_resource.amount - boilOffRate * TimeWarp.fixedDeltaTime * cryostat_resource.maxAmount); - } else { - cryostat_resource.amount = Math.Max(0, cryostat_resource.amount - (boilOffRate + boilOffAddition) * TimeWarp.fixedDeltaTime * cryostat_resource.maxAmount*boilOffMultiplier); + } + else + { + cryostat_resource.amount = Math.Max(0, cryostat_resource.amount - (boilOffRate + boilOffAddition) * TimeWarp.fixedDeltaTime * cryostat_resource.maxAmount * boilOffMultiplier); } } } diff --git a/FNPlugin/FNModuleRadiation.cs b/FNPlugin/FNModuleRadiation.cs index a52bb9e8..d19a37b6 100644 --- a/FNPlugin/FNModuleRadiation.cs +++ b/FNPlugin/FNModuleRadiation.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { [KSPModule("Radiation Status")] diff --git a/FNPlugin/FNModuleResourceExtraction.cs b/FNPlugin/FNModuleResourceExtraction.cs index 481bd33b..4a308d84 100644 --- a/FNPlugin/FNModuleResourceExtraction.cs +++ b/FNPlugin/FNModuleResourceExtraction.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { [KSPModule("Resource Extractor")] diff --git a/FNPlugin/FNNozzleController.cs b/FNPlugin/FNNozzleController.cs index 6e1a5834..537697dd 100644 --- a/FNPlugin/FNNozzleController.cs +++ b/FNPlugin/FNNozzleController.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/FNNozzleControllerFX.cs b/FNPlugin/FNNozzleControllerFX.cs index 5eda6b4f..c52b0e91 100644 --- a/FNPlugin/FNNozzleControllerFX.cs +++ b/FNPlugin/FNNozzleControllerFX.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/FNRadiator.cs b/FNPlugin/FNRadiator.cs index 435cd4d6..aa6162a2 100644 --- a/FNPlugin/FNRadiator.cs +++ b/FNPlugin/FNRadiator.cs @@ -194,7 +194,6 @@ public override void OnStart(PartModule.StartState state) { if (hasTechsRequiredToUpgrade()) { isupgraded = true; hasrequiredupgrade = true; - isupgraded = true; } return; } @@ -208,7 +207,9 @@ public override void OnStart(PartModule.StartState state) { anim [animName].layer = 1; if (radiatorIsEnabled) { - anim.Blend (animName, 1, 0); + anim[animName].normalizedTime = 1.0f; + anim[animName].enabled = true; + anim.Sample(); } else { //anim.Blend (animName, 0, 0); } @@ -284,7 +285,7 @@ public override void OnFixedUpdate() { pressure += dynamic_pressure; float low_temp = FlightGlobals.getExternalTemperature (vessel.transform.position); - float delta_temp = Mathf.Max(0,radiatorTemp - low_temp); + float delta_temp = Mathf.Max(0, (float)current_rad_temp - low_temp); conv_power_dissip = pressure * delta_temp * radiatorArea * rad_const_h/1e6f * TimeWarp.fixedDeltaTime*convectiveBonus; if (!radiatorIsEnabled) { conv_power_dissip = conv_power_dissip / 2.0f; diff --git a/FNPlugin/FNRefinery.cs b/FNPlugin/FNRefinery.cs index e306050b..e5b8e3cd 100644 --- a/FNPlugin/FNRefinery.cs +++ b/FNPlugin/FNRefinery.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { [KSPModule("Refinery")] diff --git a/FNPlugin/FNResourceManager.cs b/FNPlugin/FNResourceManager.cs index 4cfb1f92..b4e8bf03 100644 --- a/FNPlugin/FNResourceManager.cs +++ b/FNPlugin/FNResourceManager.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { public class FNResourceManager : ORSResourceManager { @@ -22,21 +22,20 @@ protected override void pluginSpecificImpl() { flow_type = FNRESOURCE_FLOWTYPE_EVEN; } - if (String.Equals(this.resource_name, FNResourceManager.FNRESOURCE_WASTEHEAT)) { // passive dissip of waste heat - a little bit of this + if (String.Equals(this.resource_name, FNResourceManager.FNRESOURCE_WASTEHEAT) && + !PluginHelper.isThermalDissipationDisabled()) + { // passive dissip of waste heat - a little bit of this double vessel_mass = my_vessel.GetTotalMass(); double passive_dissip = passive_temp_p4 * GameConstants.stefan_const * vessel_mass * 2.0; internl_power_extract += passive_dissip * TimeWarp.fixedDeltaTime; - if (my_vessel.altitude <= PluginHelper.getMaxAtmosphericAltitude(my_vessel.mainBody)) { // passive convection - a lot of this + if (my_vessel.altitude <= PluginHelper.getMaxAtmosphericAltitude(my_vessel.mainBody)) + { // passive convection - a lot of this double pressure = FlightGlobals.getStaticPressure(my_vessel.transform.position); double delta_temp = 20; double conv_power_dissip = pressure * delta_temp * vessel_mass * 2.0 * GameConstants.rad_const_h / 1e6 * TimeWarp.fixedDeltaTime; internl_power_extract += conv_power_dissip; } - - if (internl_power_extract < 0 && PluginHelper.isThermalDissipationDisabled()) { // set buildup/dissip of waste heat to 0 if waste heat is disabled - internl_power_extract = 0; - } } } diff --git a/FNPlugin/FNResourceOvermanager.cs b/FNPlugin/FNResourceOvermanager.cs index 10e306fb..f0bf4b64 100644 --- a/FNPlugin/FNResourceOvermanager.cs +++ b/FNPlugin/FNResourceOvermanager.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; using UnityEngine; namespace FNPlugin { diff --git a/FNPlugin/FNResourceScanner.cs b/FNPlugin/FNResourceScanner.cs index d3f1a390..d11c5c0a 100644 --- a/FNPlugin/FNResourceScanner.cs +++ b/FNPlugin/FNResourceScanner.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class FNResourceScanner : ORSResourceScanner { diff --git a/FNPlugin/FNResourceSuppliableModule.cs b/FNPlugin/FNResourceSuppliableModule.cs index fb263a92..ffdd0607 100644 --- a/FNPlugin/FNResourceSuppliableModule.cs +++ b/FNPlugin/FNResourceSuppliableModule.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { abstract class FNResourceSuppliableModule : ORSResourceSuppliableModule{ diff --git a/FNPlugin/FNSolarPanelWasteHeatModule.cs b/FNPlugin/FNSolarPanelWasteHeatModule.cs index f075de6d..132706a4 100644 --- a/FNPlugin/FNSolarPanelWasteHeatModule.cs +++ b/FNPlugin/FNSolarPanelWasteHeatModule.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; @@ -43,13 +43,16 @@ public void FixedUpdate() { if (solarPanel != null) { - float solar_rate = solarPanel.flowRate * TimeWarp.fixedDeltaTime; - float heat_rate = solar_rate * 0.5f / 1000.0f; - double inv_square_mult = Math.Pow(Vector3d.Distance(FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBIN].transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2) / Math.Pow(Vector3d.Distance(vessel.transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2); FloatCurve satcurve = new FloatCurve(); satcurve.Add(0.0f, (float)inv_square_mult); - solarPanel.powerCurve = satcurve; + solarPanel.powerCurve = satcurve; + + float solar_rate = solarPanel.flowRate * TimeWarp.fixedDeltaTime; + float clamper = PluginHelper.isSolarPanelHeatingClamped() ? + (float)Math.Min(Math.Max((Math.Sqrt(inv_square_mult) - 1.5), 0.0), 1.0) : + 1.0f; + float heat_rate = clamper * solar_rate * 0.5f / 1000.0f; if (getResourceBarRatio(FNResourceManager.FNRESOURCE_WASTEHEAT) >= 0.98 && solarPanel.panelState == ModuleDeployableSolarPanel.panelStates.EXTENDED && solarPanel.sunTracking) { diff --git a/FNPlugin/FlightUIStarter.cs b/FNPlugin/FlightUIStarter.cs index 4f011d0f..60d2de76 100644 --- a/FNPlugin/FlightUIStarter.cs +++ b/FNPlugin/FlightUIStarter.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { [KSPAddon(KSPAddon.Startup.Flight, false)] @@ -16,7 +16,7 @@ public class FlightUIStarter : MonoBehaviour{ public static bool show_window = false; public void Start() { - guibuttontexture = GameDatabase.Instance.GetTexture("WarpPlugin/megajoule_click", false); + guibuttontexture = GameDatabase.Instance.GetTexture("WarpPlugin/UITextures/megajoule_click", false); if (!PluginHelper.using_toolbar) { button_position = new Rect(Screen.width - guibuttontexture.width, Screen.height - guibuttontexture.height - 150, guibuttontexture.width, guibuttontexture.height); } @@ -29,24 +29,33 @@ public void Update() { } } - protected void OnGUI() { + protected void OnGUI() + { string resourcename = FNResourceManager.FNRESOURCE_MEGAJOULES; Vessel vessel = FlightGlobals.ActiveVessel; ORSResourceManager mega_manager = null; - if (vessel != null) { - if (FNResourceOvermanager.getResourceOvermanagerForResource(resourcename).hasManagerForVessel(vessel) && !hide_button) { + if (vessel != null) + { + if (FNResourceOvermanager.getResourceOvermanagerForResource(resourcename).hasManagerForVessel(vessel) && !hide_button) + { mega_manager = FNResourceOvermanager.getResourceOvermanagerForResource(resourcename).getManagerForVessel(vessel); - if (mega_manager.getPartModule() != null) { + if (mega_manager.getPartModule() != null) + { mega_manager.OnGUI(); - if (!PluginHelper.using_toolbar) { + if (!PluginHelper.using_toolbar) + { GUILayout.BeginArea(button_position); - if (GUILayout.Button(guibuttontexture)) { + if (GUILayout.Button(guibuttontexture)) + { mega_manager.showWindow(); } GUILayout.EndArea(); - } else { - if (show_window) { + } + else + { + if (show_window) + { mega_manager.showWindow(); show_window = false; } diff --git a/FNPlugin/ISRUScoop.cs b/FNPlugin/ISRUScoop.cs index ac4b6464..90ec1d7c 100644 --- a/FNPlugin/ISRUScoop.cs +++ b/FNPlugin/ISRUScoop.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class ISRUScoop : FNResourceSuppliableModule { diff --git a/FNPlugin/InterstellarFissionMSRGC.cs b/FNPlugin/InterstellarFissionMSRGC.cs index efde1e37..136af2b3 100644 --- a/FNPlugin/InterstellarFissionMSRGC.cs +++ b/FNPlugin/InterstellarFissionMSRGC.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; using System.Linq; @@ -80,16 +80,24 @@ public void Refuel() public override float MaximumThermalPower { get - { - if (part.Resources[InterstellarResourcesConfiguration.Instance.Actinides] != null) - { - double fuel_mass = current_fuel_mode.ReactorFuels.Sum(fuel => getFuelAvailability(fuel) * fuel.Density); - double actinide_mass = part.Resources[InterstellarResourcesConfiguration.Instance.Actinides].amount; - double fuel_actinide_mass_ratio = Math.Min(fuel_mass / (actinide_mass * current_fuel_mode.NormalisedReactionRate * current_fuel_mode.NormalisedReactionRate * current_fuel_mode.NormalisedReactionRate * 2.5), 1.0); - fuel_actinide_mass_ratio = (double.IsInfinity(fuel_actinide_mass_ratio) || double.IsNaN(fuel_actinide_mass_ratio)) ? 1.0 : fuel_actinide_mass_ratio; - return (float)(base.MaximumThermalPower * Math.Sqrt(fuel_actinide_mass_ratio)); + { + try + { + if (part.Resources[InterstellarResourcesConfiguration.Instance.Actinides] != null) + { + double fuel_mass = current_fuel_mode.ReactorFuels.Sum(fuel => getFuelAvailability(fuel) * fuel.Density); + double actinide_mass = part.Resources[InterstellarResourcesConfiguration.Instance.Actinides].amount; + double fuel_actinide_mass_ratio = Math.Min(fuel_mass / (actinide_mass * current_fuel_mode.NormalisedReactionRate * current_fuel_mode.NormalisedReactionRate * current_fuel_mode.NormalisedReactionRate * 2.5), 1.0); + fuel_actinide_mass_ratio = (double.IsInfinity(fuel_actinide_mass_ratio) || double.IsNaN(fuel_actinide_mass_ratio)) ? 1.0 : fuel_actinide_mass_ratio; + return (float)(base.MaximumThermalPower * Math.Sqrt(fuel_actinide_mass_ratio)); + } + return base.MaximumThermalPower; + } + catch (Exception error) + { + UnityEngine.Debug.Log("[KSPI] - InterstellarFissionMSRGC.MaximumThermalPower exception"); + return base.MaximumThermalPower; } - return base.MaximumThermalPower; } } @@ -98,17 +106,23 @@ public override float MaximumThermalPower public override float CoreTemperature { get - { - double temp_scale; - if (vessel != null && FNRadiator.hasRadiatorsForVessel(vessel)) - { - temp_scale = FNRadiator.getAverageMaximumRadiatorTemperatureForVessel(vessel); - } else - { - temp_scale = base.CoreTemperature/2.0; - } - double temp_diff = (base.CoreTemperature - temp_scale)*Math.Sqrt(powerPcnt/100.0); - return (float) (temp_scale + temp_diff); + { + if (HighLogic.LoadedSceneIsFlight && !isupgraded) + { + double temp_scale; + if (vessel != null && FNRadiator.hasRadiatorsForVessel(vessel)) + { + temp_scale = FNRadiator.getAverageMaximumRadiatorTemperatureForVessel(vessel); + } + else + { + temp_scale = base.CoreTemperature / 2.0; + } + double temp_diff = (base.CoreTemperature - temp_scale) * Math.Sqrt(powerPcnt / 100.0); + return (float)(temp_scale + temp_diff); + } + else + return base.CoreTemperature; } } diff --git a/FNPlugin/InterstellarFissionPBDP.cs b/FNPlugin/InterstellarFissionPBDP.cs index 00e18f02..08a7954c 100644 --- a/FNPlugin/InterstellarFissionPBDP.cs +++ b/FNPlugin/InterstellarFissionPBDP.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; using System.Linq; diff --git a/FNPlugin/InterstellarMagneticNozzleControllerFX.cs b/FNPlugin/InterstellarMagneticNozzleControllerFX.cs index 8b422275..508af197 100644 --- a/FNPlugin/InterstellarMagneticNozzleControllerFX.cs +++ b/FNPlugin/InterstellarMagneticNozzleControllerFX.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/InterstellarReactor.cs b/FNPlugin/InterstellarReactor.cs index 3c5c7567..1bd65fb8 100644 --- a/FNPlugin/InterstellarReactor.cs +++ b/FNPlugin/InterstellarReactor.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class InterstellarReactor : FNResourceSuppliableModule, IThermalSource, IUpgradeableModule { @@ -253,7 +253,7 @@ public override void OnStart(PartModule.StartState state) } this.part.force_activate(); - RenderingManager.AddToPostDrawQueue(0, OnGUI); + //RenderingManager.AddToPostDrawQueue(0, OnGUI); print("[KSP Interstellar] Configuring Reactor"); } @@ -293,7 +293,7 @@ public override void OnUpdate() last_draw_update = update_count; } - if (!vessel.isActiveVessel || part == null) RenderingManager.RemoveFromPostDrawQueue(0, OnGUI); + //if (!vessel.isActiveVessel || part == null) RenderingManager.RemoveFromPostDrawQueue(0, OnGUI); update_count++; } @@ -348,7 +348,8 @@ public override void OnFixedUpdate() double lith_rate = breed_rate * TimeWarp.fixedDeltaTime / lithium_def.density; double lith_used = ORSHelper.fixedRequestResource(part, InterstellarResourcesConfiguration.Instance.Lithium, lith_rate); double lt_density_ratio = lithium_def.density / tritium_def.density; - tritium_produced_f = (float)(-ORSHelper.fixedRequestResource(part, InterstellarResourcesConfiguration.Instance.Tritium, -lith_used*3.0/7.0*lt_density_ratio) / TimeWarp.fixedDeltaTime); + tritium_produced_f = (float)(-ORSHelper.fixedRequestResource(part, InterstellarResourcesConfiguration.Instance.Tritium, + -lith_used*3.0/7.0*lt_density_ratio) / TimeWarp.fixedDeltaTime); if (tritium_produced_f <= 0) breedtritium = false; } @@ -526,9 +527,9 @@ protected double getFuelAvailability(ReactorFuel fuel) return part.GetConnectedResources(fuel.FuelName).Sum(rs => rs.amount); } - private void OnGUI() + public void OnGUI() { - if (this.vessel == FlightGlobals.ActiveVessel && render_window) + if (this.vessel == FlightGlobals.ActiveVessel && render_window) windowPosition = GUILayout.Window(windowID, windowPosition, Window, "Reactor System Interface"); } diff --git a/FNPlugin/InterstellarTelescope.cs b/FNPlugin/InterstellarTelescope.cs index 1deeb994..979241d0 100644 --- a/FNPlugin/InterstellarTelescope.cs +++ b/FNPlugin/InterstellarTelescope.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; using System.Linq; diff --git a/FNPlugin/InterstellarTokomakFusionReator.cs b/FNPlugin/InterstellarTokomakFusionReator.cs index a06b9c58..cd8587c9 100644 --- a/FNPlugin/InterstellarTokomakFusionReator.cs +++ b/FNPlugin/InterstellarTokomakFusionReator.cs @@ -1,91 +1,101 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace FNPlugin { - [KSPModule("Tokamak Reactor")] - class InterstellarTokamakFusionReator : InterstellarFusionReactor - { - [KSPField(isPersistant = true)] - public int fuel_mode = 0; - - [KSPField(isPersistant = false)] - public float powerRequirements; - - [KSPField(isPersistant = false, guiActive = true, guiName = "Plasma Heating Consumption")] - public string tokomakPower; - - // - protected bool fusion_alert = false; - protected double power_consumed; - protected float plasma_ratio = 1.0f; - - // properties - - public override double CurrentMeVPerChargedProduct { get { return current_fuel_mode != null ? current_fuel_mode.MeVPerChargedProduct : 0; } } - - public override float MaximumThermalPower { get { return base.MaximumThermalPower * Mathf.Pow(plasma_ratio, 4.0f); } } - - public override float MaximumChargedPower { get { return base.MaximumChargedPower * Mathf.Pow(plasma_ratio, 4.0f); } } - - public override float MinimumPower { get { return MaximumPower * minimumThrottle; } } - - public override string TypeName { get { return (isupgraded ? upgradedName != "" ? upgradedName : originalName : originalName) + " Reactor"; } } - - public override bool IsNeutronRich { get { return !current_fuel_mode.Aneutronic; } } - - public float HeatingPowerRequirements { get { return current_fuel_mode == null ? powerRequirements : (float)(powerRequirements * current_fuel_mode.NormalisedPowerRequirements); } } - - [KSPEvent(guiActive = true, guiName = "Switch Fuel Mode", active = false)] - public void SwapFuelMode() { - fuel_mode++; - if (fuel_mode >= fuel_modes.Count) { - fuel_mode = 0; - } - current_fuel_mode = fuel_modes[fuel_mode]; - } - - public override void OnUpdate() { - if (getCurrentResourceDemand(FNResourceManager.FNRESOURCE_MEGAJOULES) > getStableResourceSupply(FNResourceManager.FNRESOURCE_MEGAJOULES) && getResourceBarRatio(FNResourceManager.FNRESOURCE_MEGAJOULES) < 0.1 && IsEnabled && !fusion_alert) { - ScreenMessages.PostScreenMessage("Warning: Fusion Reactor plasma heating cannot be guaranteed, reducing power requirements is recommended.", 10.0f, ScreenMessageStyle.UPPER_CENTER); - fusion_alert = true; - } else { - fusion_alert = false; - } - Events["SwapFuelMode"].active = isupgraded; - tokomakPower = PluginHelper.getFormattedPowerString(power_consumed); - base.OnUpdate(); - } - - public override void OnFixedUpdate() { - base.OnFixedUpdate(); - if (IsEnabled) { - power_consumed = consumeFNResource(HeatingPowerRequirements * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES) / TimeWarp.fixedDeltaTime; - if (power_consumed < HeatingPowerRequirements) power_consumed += part.RequestResource("ElectricCharge", (HeatingPowerRequirements - power_consumed) * 1000 * TimeWarp.fixedDeltaTime) / TimeWarp.fixedDeltaTime / 1000; - plasma_ratio = (float)(power_consumed / HeatingPowerRequirements); - } - } - - public override void OnStart(PartModule.StartState state) - { - if (state != StartState.Editor) breedtritium = true; - base.OnStart(state); - } - - public override string getResourceManagerDisplayName() { - return TypeName; - } - - public override int getPowerPriority() { - return 1; - } - - protected override void setDefaultFuelMode() - { - current_fuel_mode = (fuel_mode < fuel_modes.Count) ? fuel_modes[fuel_mode] : fuel_modes.FirstOrDefault(); - } - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace FNPlugin { + + class InterstellarTokamakFusionReator : InterstellarFusionReactor + { + [KSPField(isPersistant = true)] + public int fuel_mode = 0; + + [KSPField(isPersistant = false)] + public float powerRequirements; + + [KSPField(isPersistant = false, guiActive = true, guiName = "Heating maintance")] + public string tokomakPower; + + // + protected bool fusion_alert = false; + protected double power_consumed = 0.0; + protected float plasma_ratio = 1.0f; + + // properties + + public override double CurrentMeVPerChargedProduct { get { return current_fuel_mode != null ? current_fuel_mode.MeVPerChargedProduct : 0; } } + + public override float MaximumThermalPower { get { return base.MaximumThermalPower * (plasma_ratio > 0.0f ? Mathf.Pow(plasma_ratio, 4.0f) : 0.0f); } } + + public override float MaximumChargedPower { get { return base.MaximumChargedPower * (plasma_ratio > 0.0f ? Mathf.Pow(plasma_ratio, 4.0f) : 0.0f); } } + + public override float MinimumPower { get { return MaximumPower * minimumThrottle; } } + + public override string TypeName { get { return (isupgraded ? upgradedName != "" ? upgradedName : originalName : originalName) + " Reactor"; } } + + public override bool IsNeutronRich { get { return !current_fuel_mode.Aneutronic; } } + + public float HeatingPowerRequirements { get { return current_fuel_mode == null ? powerRequirements : (float)(powerRequirements * current_fuel_mode.NormalisedPowerRequirements); } } + + [KSPEvent(guiActive = true, guiName = "Switch Fuel Mode", active = false)] + public void SwapFuelMode() { + if (fuel_modes == null || fuel_modes.Count == 0) + return; + fuel_mode++; + if (fuel_mode >= fuel_modes.Count) { + fuel_mode = 0; + } + current_fuel_mode = fuel_modes[fuel_mode]; + } + + public override void OnUpdate() + { + base.OnUpdate(); + if (getCurrentResourceDemand(FNResourceManager.FNRESOURCE_MEGAJOULES) > + getStableResourceSupply(FNResourceManager.FNRESOURCE_MEGAJOULES) && + getResourceBarRatio(FNResourceManager.FNRESOURCE_MEGAJOULES) < 0.1 + && IsEnabled && !fusion_alert) + { + ScreenMessages.PostScreenMessage("Warning: Fusion Reactor plasma heating cannot be guaranteed, reducing power requirements is recommended.", 10.0f, ScreenMessageStyle.UPPER_CENTER); + fusion_alert = true; + } else + { + fusion_alert = false; + } + Events["SwapFuelMode"].active = isupgraded; + tokomakPower = PluginHelper.getFormattedPowerString(power_consumed); + } + + public override void OnFixedUpdate() { + base.OnFixedUpdate(); + if (IsEnabled) + { + power_consumed = consumeFNResource(HeatingPowerRequirements * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES) / TimeWarp.fixedDeltaTime; + if (power_consumed < HeatingPowerRequirements) + power_consumed += part.RequestResource("ElectricCharge", (HeatingPowerRequirements - power_consumed) * 1000 * TimeWarp.fixedDeltaTime) / TimeWarp.fixedDeltaTime / 1000.0; + plasma_ratio = (HeatingPowerRequirements != 0.0f) ? (float)(power_consumed / HeatingPowerRequirements) : 1.0f; + } + } + + public override void OnStart(PartModule.StartState state) + { + if (state != StartState.Editor) breedtritium = true; + base.OnStart(state); + } + + public override string getResourceManagerDisplayName() { + return TypeName; + } + + public override int getPowerPriority() { + return 1; + } + + protected override void setDefaultFuelMode() + { + current_fuel_mode = (fuel_mode < fuel_modes.Count) ? fuel_modes[fuel_mode] : fuel_modes.FirstOrDefault(); + } + + } +} diff --git a/InterstellarToolbar/InterstellarToolbar.cs b/FNPlugin/InterstellarToolbar.cs similarity index 86% rename from InterstellarToolbar/InterstellarToolbar.cs rename to FNPlugin/InterstellarToolbar.cs index a33cd53c..99e95214 100644 --- a/InterstellarToolbar/InterstellarToolbar.cs +++ b/FNPlugin/InterstellarToolbar.cs @@ -1,46 +1,46 @@ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Toolbar; -using UnityEngine; -using FNPlugin; - - -namespace InterstellarToolbar { - [KSPAddon(KSPAddon.Startup.EveryScene, false)] - class InterstellarToolbar : MonoBehaviour { - private IButton button_mega; - private IButton button_thermal; - protected bool show_megajoule_window = false; - - public void Start() { - VABThermalUI.render_window = false; - PluginHelper.using_toolbar = true; - button_mega = ToolbarManager.Instance.add("interstellar", "mega_button"); - button_mega.TexturePath = "WarpPlugin/megajoule_click2"; - button_mega.ToolTip = "Show Megajoule Power Manager"; - - button_mega.OnClick += (e) => { - FlightUIStarter.show_window = true; - }; - - button_thermal = ToolbarManager.Instance.add("interstellar", "thermal_button"); - button_thermal.TexturePath = "WarpPlugin/thermal_click"; - button_thermal.ToolTip = "Toggle VAB Thermal Helper"; - - button_thermal.OnClick += (e) => { - if (HighLogic.LoadedSceneIsEditor) { - VABThermalUI.render_window = !VABThermalUI.render_window; - } - }; - } - - public void OnDestroy() { - button_mega.Destroy(); - button_thermal.Destroy(); - } - - } -} + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Toolbar; +using UnityEngine; +using FNPlugin; + + +namespace InterstellarToolbar { + [KSPAddon(KSPAddon.Startup.EveryScene, false)] + class InterstellarToolbar : MonoBehaviour { + private IButton button_mega; + private IButton button_thermal; + protected bool show_megajoule_window = false; + + public void Start() { + VABThermalUI.render_window = false; + PluginHelper.using_toolbar = true; + button_mega = ToolbarManager.Instance.add("interstellar", "mega_button"); + button_mega.TexturePath = "WarpPlugin/UITextures/megajoule_click2"; + button_mega.ToolTip = "Show Megajoule Power Manager"; + + button_mega.OnClick += (e) => { + FlightUIStarter.show_window = true; + }; + + button_thermal = ToolbarManager.Instance.add("interstellar", "thermal_button"); + button_thermal.TexturePath = "WarpPlugin/UITextures/thermal_click"; + button_thermal.ToolTip = "Toggle VAB Thermal Helper"; + + button_thermal.OnClick += (e) => { + if (HighLogic.LoadedSceneIsEditor) { + VABThermalUI.render_window = !VABThermalUI.render_window; + } + }; + } + + public void OnDestroy() { + button_mega.Destroy(); + button_thermal.Destroy(); + } + + } +} diff --git a/FNPlugin/MicrowavePowerReceiver.cs b/FNPlugin/MicrowavePowerReceiver.cs index c49f3f8b..f126fdfc 100644 --- a/FNPlugin/MicrowavePowerReceiver.cs +++ b/FNPlugin/MicrowavePowerReceiver.cs @@ -5,8 +5,10 @@ using System.Text; using UnityEngine; -namespace FNPlugin { - class MicrowavePowerReceiver : FNResourceSuppliableModule, IThermalSource { +namespace FNPlugin +{ + class MicrowavePowerReceiver : FNResourceSuppliableModule, IThermalSource + { //Persistent True [KSPField(isPersistant = true)] public bool receiverIsEnabled; @@ -41,7 +43,7 @@ class MicrowavePowerReceiver : FNResourceSuppliableModule, IThermalSource { [KSPField(isPersistant = false, guiActive = true, guiName = "Total Efficiency")] public string toteff; [KSPField(isPersistant = true, guiActive = true, guiName = "Reception"), UI_FloatRange(stepIncrement = 0.005f, maxValue = 100, minValue = 1)] - public float receiptPower; + public float receiptPower = 100; //Internal @@ -50,22 +52,21 @@ class MicrowavePowerReceiver : FNResourceSuppliableModule, IThermalSource { // protected Animation anim; protected Animation animT; - protected bool play_down = true; + protected bool play_down = false; protected bool play_up = true; protected int connectedsatsi = 0; protected int connectedrelaysi = 0; protected int networkDepth = 0; protected double efficiency_d = 0; + protected double powerInputMegajoules = 0; protected double powerInput = 0; protected long deactivate_timer = 0; - protected List vmps; - protected List vrps; protected MicrowavePowerTransmitter part_transmitter; protected bool has_transmitter = false; static readonly double microwaveAngleTan = Math.Tan(GameConstants.microwave_angle);//this doesn't change during game so it's readonly double penaltyFreeDistance = 1;//should be set to proper value by OnStart method - public float CoreTemperature { get { return 1500; } } + public float CoreTemperature { get { return PluginHelper.isRecieverCoreTempTweaked() ? 3500 : 1500; } } public float MaximumPower { get { return MaximumThermalPower; } } @@ -81,117 +82,78 @@ class MicrowavePowerReceiver : FNResourceSuppliableModule, IThermalSource { [KSPEvent(guiActive = true, guiName = "Activate Receiver", active = true)] - public void ActivateReceiver() { + public void ActivateReceiver() + { receiverIsEnabled = true; - receiptPower = 100; } [KSPEvent(guiActive = true, guiName = "Disable Receiver", active = true)] - public void DisableReceiver() { + public void DisableReceiver() + { receiverIsEnabled = false; } [KSPAction("Activate Receiver")] - public void ActivateReceiverAction(KSPActionParam param) { + public void ActivateReceiverAction(KSPActionParam param) + { ActivateReceiver(); } [KSPAction("Disable Receiver")] - public void DisableReceiverAction(KSPActionParam param) { + public void DisableReceiverAction(KSPActionParam param) + { DisableReceiver(); } [KSPAction("Toggle Receiver")] - public void ToggleReceiverAction(KSPActionParam param) { + public void ToggleReceiverAction(KSPActionParam param) + { receiverIsEnabled = !receiverIsEnabled; } - public override void OnStart(PartModule.StartState state) { + public override void OnStart(PartModule.StartState state) + { String[] resources_to_supply = { FNResourceManager.FNRESOURCE_MEGAJOULES, FNResourceManager.FNRESOURCE_WASTEHEAT, FNResourceManager.FNRESOURCE_THERMALPOWER }; this.resources_to_supply = resources_to_supply; base.OnStart(state); if (state == StartState.Editor) { return; } - if (part.FindModulesImplementing().Count == 1) { + if (part.FindModulesImplementing().Count == 1) + { part_transmitter = part.FindModulesImplementing().First(); has_transmitter = true; } - if (animTName != null) { + if (animTName != null) + { animT = part.FindModelAnimators(animTName).FirstOrDefault(); - if (animT != null) { + if (animT != null) + { + animT[animTName].enabled = true; animT[animTName].layer = 1; animT[animTName].normalizedTime = 0f; animT[animTName].speed = 0.001f; - animT.Play(); + animT.Sample(); } } - if (animName != null) { + if (animName != null) + { anim = part.FindModelAnimators(animName).FirstOrDefault(); - if (anim != null) { - anim[animName].layer = 1; - if (connectedsatsi > 0 || connectedrelaysi > 0) { - anim[animName].normalizedTime = 1f; - anim[animName].speed = -1f; - - } else { - anim[animName].normalizedTime = 0f; - anim[animName].speed = 1f; - - } - anim.Play(); - } } - vmps = new List(); - vrps = new List(); - foreach (Vessel vess in FlightGlobals.Vessels) { - String vesselID = vess.id.ToString(); - - if (vess.isActiveVessel == false && vess.vesselName.ToLower().IndexOf("debris") == -1) { - ConfigNode config = PluginHelper.getPluginSaveFile(); - if (config.HasNode("VESSEL_MICROWAVE_POWER_" + vesselID)) { - ConfigNode power_node = config.GetNode("VESSEL_MICROWAVE_POWER_" + vesselID); - double nuclear_power = 0; - double solar_power = 0; - if (power_node.HasValue("nuclear_power")) { - nuclear_power = double.Parse(power_node.GetValue("nuclear_power")); - - } - if (power_node.HasValue("solar_power")) { - solar_power = double.Parse(power_node.GetValue("solar_power")); - } - if (nuclear_power > 0 || solar_power > 0) { - VesselMicrowavePersistence vmp = new VesselMicrowavePersistence(vess); - vmp.setSolarPower(solar_power); - vmp.setNuclearPower(nuclear_power); - vmps.Add(vmp); - } - } - if (config.HasNode("VESSEL_MICROWAVE_RELAY_" + vesselID)) { - ConfigNode relay_node = config.GetNode("VESSEL_MICROWAVE_RELAY_" + vesselID); - if (relay_node.HasValue("relay")) { - bool relay = bool.Parse(relay_node.GetValue("relay")); - if (relay) { - VesselRelayPersistence vrp = new VesselRelayPersistence(vess); - vrp.setActive(relay); - vrps.Add(vrp); - } - } - } - } - } penaltyFreeDistance = Math.Sqrt(1 / ((microwaveAngleTan * microwaveAngleTan) / collectorArea)); this.part.force_activate(); - } - public override void OnUpdate() { + public override void OnUpdate() + { bool transmitter_on = false; - if (has_transmitter) { - if (part_transmitter.isActive()) { + if (has_transmitter) + { + if (part_transmitter.isActive()) + { transmitter_on = true; } } @@ -199,243 +161,311 @@ public override void OnUpdate() { Events["DisableReceiver"].active = receiverIsEnabled; Fields["toteff"].guiActive = (connectedsatsi > 0 || connectedrelaysi > 0); - if (receiverIsEnabled) { - if (powerInput > 1000) { + if (receiverIsEnabled) + { + if (powerInput > 1000) + { beamedpower = (powerInput / 1000).ToString("0.00") + "MW"; - } else { + } + else + { beamedpower = powerInput.ToString("0.00") + "KW"; } - } else { + } + else + { beamedpower = "Offline."; } - connectedsats = string.Format("{0}/{1}", connectedsatsi, vmps.Count); - connectedrelays = string.Format("{0}/{1}", connectedrelaysi, vrps.Count); + connectedsats = string.Format("{0}/{1}", connectedsatsi, MicrowaveSources.instance.transmitters.Count); + connectedrelays = string.Format("{0}/{1}", connectedrelaysi, MicrowaveSources.instance.relays.Count); networkDepthString = networkDepth.ToString(); toteff = (efficiency_d * 100).ToString("0.00") + "%"; - if (anim != null) { - if (connectedsatsi > 0 || connectedrelaysi > 0) { - if (play_up) { + if (anim != null) + { + if (connectedsatsi > 0 || connectedrelaysi > 0) + { + if (play_up) + { play_down = true; play_up = false; anim[animName].speed = 1f; - anim[animName].normalizedTime = 0f; anim.Blend(animName, 2f); } - } else { - if (play_down) { + } + else + { + if (play_down) + { play_down = false; play_up = true; + if (anim[animName].normalizedTime == 0.0f) + anim[animName].normalizedTime = 1.0f; anim[animName].speed = -1f; - anim[animName].normalizedTime = 1f; anim.Blend(animName, 2f); } } } } - public override void OnFixedUpdate() { - int activeSatsIncr = 0; - //int activeRelsIncr = 0; - double total_power = 0; - connectedsatsi = 0; - connectedrelaysi = 0; - networkDepth = 0; + uint counter = 0; // OnFixedUpdate cycle counter + + public override void OnFixedUpdate() + { base.OnFixedUpdate(); - if (receiverIsEnabled) { - if (getResourceBarRatio(FNResourceManager.FNRESOURCE_WASTEHEAT) >= 0.95 && !isThermalReceiver) { + if (receiverIsEnabled) + { + if (getResourceBarRatio(FNResourceManager.FNRESOURCE_WASTEHEAT) >= 0.95 && !isThermalReceiver) + { receiverIsEnabled = false; deactivate_timer++; - if (FlightGlobals.ActiveVessel == vessel && deactivate_timer > 2) { + if (FlightGlobals.ActiveVessel == vessel && deactivate_timer > 2) + { ScreenMessages.PostScreenMessage("Warning Dangerous Overheating Detected: Emergency microwave power shutdown occuring NOW!", 5.0f, ScreenMessageStyle.UPPER_CENTER); } return; } - double atmosphericefficiency = Math.Exp(-FlightGlobals.getStaticPressure(vessel.transform.position) / 5); - efficiency_d = GameConstants.microwave_dish_efficiency * atmosphericefficiency; - deactivate_timer = 0; - - - HashSet usedRelays = new HashSet(); - //Transmitters power calculation - foreach (var connectedTransmitterEntry in GetConnectedTransmitters()) { - VesselMicrowavePersistence transmitter = connectedTransmitterEntry.Key; - Vessel transmitterVessel = connectedTransmitterEntry.Key.getVessel(); - double routeEfficiency = connectedTransmitterEntry.Value.Key; - IEnumerable relays = connectedTransmitterEntry.Value.Value; - - received_power[transmitterVessel] = 0; - - // calculate maximum power receivable from satellite - double satPowerCap = transmitter.getAvailablePower() * efficiency_d; - double currentPowerFromSat = MicrowavePowerReceiver.getEnumeratedPowerFromSatelliteForAllVesssels(transmitter); - double powerAvailableFromSat = (satPowerCap - currentPowerFromSat); - double satPower = Math.Min(GetSatPower(transmitter, routeEfficiency), powerAvailableFromSat); // get sat power and make sure we conserve enegy - received_power[transmitterVessel] = satPower * atmosphericefficiency; - total_power += satPower; - if (satPower > 0) { - activeSatsIncr++; - if (relays != null) { - foreach (var relay in relays) { - usedRelays.Add(relay); + + if (++counter % 10 == 1) // recalculate input once per 10 physics cycles. Relay route algorythm is too expensive + { + double total_power = 0; + int activeSatsIncr = 0; + connectedsatsi = 0; + connectedrelaysi = 0; + networkDepth = 0; + + double atmosphericefficiency = Math.Exp(-FlightGlobals.getStaticPressure(vessel.transform.position) / 5); + efficiency_d = GameConstants.microwave_dish_efficiency * atmosphericefficiency; + deactivate_timer = 0; + + + HashSet usedRelays = new HashSet(); + //Transmitters power calculation + foreach (var connectedTransmitterEntry in GetConnectedTransmitters()) + { + VesselMicrowavePersistence transmitter = connectedTransmitterEntry.Key; + Vessel transmitterVessel = connectedTransmitterEntry.Key.getVessel(); + double routeEfficiency = connectedTransmitterEntry.Value.Key; + IEnumerable relays = connectedTransmitterEntry.Value.Value; + + received_power[transmitterVessel] = 0; + + // calculate maximum power receivable from satellite + double satPowerCap = transmitter.getAvailablePower() * efficiency_d; + double currentPowerFromSat = MicrowavePowerReceiver.getEnumeratedPowerFromSatelliteForAllVesssels(transmitter); + double powerAvailableFromSat = (satPowerCap - currentPowerFromSat); + double satPower = Math.Min(GetSatPower(transmitter, routeEfficiency), powerAvailableFromSat); // get sat power and make sure we conserve enegy + received_power[transmitterVessel] = satPower * atmosphericefficiency; + total_power += satPower; + if (satPower > 0) + { + activeSatsIncr++; + if (relays != null) + { + foreach (var relay in relays) + { + usedRelays.Add(relay); + } + networkDepth = Math.Max(networkDepth, relays.Count()); } - networkDepth = Math.Max(networkDepth, relays.Count()); } } - } - connectedsatsi = activeSatsIncr; - connectedrelaysi = usedRelays.Count; - - double powerInputMegajoules = total_power / 1000.0 * GameConstants.microwave_dish_efficiency * atmosphericefficiency; - powerInput = powerInputMegajoules * 1000.0f * receiptPower/100.0f; + connectedsatsi = activeSatsIncr; + connectedrelaysi = usedRelays.Count; + powerInputMegajoules = total_power / 1000.0 * GameConstants.microwave_dish_efficiency * atmosphericefficiency * receiptPower / 100.0f; + powerInput = powerInputMegajoules * 1000.0f; + } float animateTemp = (float)powerInputMegajoules / 3000; - if (animateTemp > 1) { + if (animateTemp > 1) + { animateTemp = 1; } - if (animT != null) { - animT[animTName].speed = 0.001f; + if (animT != null) + { animT[animTName].normalizedTime = animateTemp; - animT.Blend(animTName, 2f); + animT.Sample(); } - if (!isThermalReceiver) { + if (!isThermalReceiver) + { supplyFNResource(powerInputMegajoules * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES); - double waste_head_production = powerInputMegajoules / GameConstants.microwave_dish_efficiency * (1.0f - GameConstants.microwave_dish_efficiency); - supplyFNResource(waste_head_production * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_WASTEHEAT); - } else { + double waste_heat_production = powerInputMegajoules / GameConstants.microwave_dish_efficiency * (1.0f - GameConstants.microwave_dish_efficiency); + supplyFNResource(waste_heat_production * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_WASTEHEAT); + } + else + { double cur_thermal_power = supplyFNResource(powerInputMegajoules * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_THERMALPOWER) / TimeWarp.fixedDeltaTime; - if (ThermalPower <= 0) { + if (ThermalPower <= 0) + { ThermalPower = (float)(cur_thermal_power); - } else { + } + else + { ThermalPower = (float)(cur_thermal_power * GameConstants.microwave_alpha + (1.0f - GameConstants.microwave_alpha) * ThermalPower); } } - } else { + } + else + { + connectedsatsi = 0; + connectedrelaysi = 0; received_power.Clear(); } } - public float getMegajoules() { + public float getMegajoules() + { return (float)(powerInput / 1000); } - public float getCoreTemp() { + public float getCoreTemp() + { return 1500.0f; } - public virtual float GetCoreTempAtRadiatorTemp(float rad_temp) { - if (isThermalReceiver) { + public virtual float GetCoreTempAtRadiatorTemp(float rad_temp) + { + if (isThermalReceiver) + { return 1500; - } else { + } + else + { return float.MaxValue; } } - public float getThermalPower() { + public float getThermalPower() + { return ThermalPower; } - public float GetThermalPowerAtTemp(float temp) { + public float GetThermalPowerAtTemp(float temp) + { return ThermalPower; } - public bool getIsNuclear() { + public bool getIsNuclear() + { return false; } - public float getRadius() { + public float getRadius() + { return radius; } - public bool isActive() { + public bool isActive() + { return receiverIsEnabled; } - public bool shouldScaleDownJetISP() { + public bool shouldScaleDownJetISP() + { return false; } - public bool isVolatileSource() { + public bool isVolatileSource() + { return true; } - public float getChargedPower() { + public float getChargedPower() + { return 0; } - public float getMinimumThermalPower() { + public float getMinimumThermalPower() + { return 0; } - public void enableIfPossible() { - if (!receiverIsEnabled) { + public void enableIfPossible() + { + if (!receiverIsEnabled) + { receiverIsEnabled = true; } } - public override string GetInfo() { + public override string GetInfo() + { return "Collector Area: " + collectorArea + " m^2"; } - public double getPowerFromSatellite(VesselMicrowavePersistence vmp) { - if (received_power.ContainsKey(vmp.getVessel()) && receiverIsEnabled) { + public double getPowerFromSatellite(VesselMicrowavePersistence vmp) + { + if (received_power.ContainsKey(vmp.getVessel()) && receiverIsEnabled) + { return received_power[vmp.getVessel()]; } return 0; } - protected bool lineOfSightTo(Vessel vess) { + protected bool lineOfSightTo(Vessel vess) + { Vector3d a = vessel.transform.position; - Vector3d b = vess.transform.position; - foreach (CelestialBody referenceBody in FlightGlobals.Bodies) { + Vector3d b = PluginHelper.getVesselPos(vess); + if (Vector3d.Distance(a, b) < 2500.0) // if both vessels are active + return true; + foreach (CelestialBody referenceBody in FlightGlobals.Bodies) + { Vector3d refminusa = referenceBody.position - a; Vector3d bminusa = b - a; - if (Vector3d.Dot(refminusa, bminusa) > 0) { - if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { - Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; - if (tang.magnitude < referenceBody.Radius) { - return false; - } - } + if (Vector3d.Dot(refminusa, bminusa) > 0 && (bminusa.magnitude > refminusa.magnitude - referenceBody.Radius)) + { + Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; + Vector3d tang_knot = referenceBody.position - tang; + Vector3d intersection_vector = (a - tang_knot).normalized * + Math.Sqrt(referenceBody.Radius * referenceBody.Radius - tang.sqrMagnitude); + if (intersection_vector.sqrMagnitude > (b - tang_knot).sqrMagnitude) + return false; } } return true; } - public static double getEnumeratedPowerFromSatelliteForAllVesssels(VesselMicrowavePersistence vmp) { + public static double getEnumeratedPowerFromSatelliteForAllVesssels(VesselMicrowavePersistence vmp) + { double enumerated_power = 0; - foreach (Vessel vess in FlightGlobals.Vessels) { + foreach (Vessel vess in FlightGlobals.Vessels) + { List receivers = vess.FindPartModulesImplementing(); - foreach (MicrowavePowerReceiver receiver in receivers) { + foreach (MicrowavePowerReceiver receiver in receivers) + { enumerated_power += receiver.getPowerFromSatellite(vmp); } } return enumerated_power; } - protected double GetSatPower(VesselMicrowavePersistence transmitter, double efficiency) { + protected double GetSatPower(VesselMicrowavePersistence transmitter, double efficiency) + { double availablePower = transmitter.getAvailablePower(); return availablePower * efficiency; } #region RelayRouting - protected double ComputeVisibilityAndDistance(VesselRelayPersistence r, Vessel v) { - return r.lineOfSightTo(v) ? Vector3d.Distance(r.getVessel().transform.position, v.transform.position) : -1; + protected double ComputeVisibilityAndDistance(VesselRelayPersistence r, Vessel v) + { + return r.lineOfSightTo(v) ? Vector3d.Distance(PluginHelper.getVesselPos(r.getVessel()), PluginHelper.getVesselPos(v)) : -1; } - protected double ComputeDistance(Vessel v1, Vessel v2) { - return Vector3d.Distance(v1.transform.position, v2.transform.position); + protected double ComputeDistance(Vessel v1, Vessel v2) + { + return Vector3d.Distance(PluginHelper.getVesselPos(v1), PluginHelper.getVesselPos(v2)); } - protected double ComputeTransmissionEfficiency(double distance, double facingFactor) { + protected double ComputeTransmissionEfficiency(double distance, double facingFactor) + { double powerdissip = 1; if (distance > penaltyFreeDistance)//if distance is <= penaltyFreeDistance then powerdissip will always be 1 @@ -445,15 +475,20 @@ protected double ComputeTransmissionEfficiency(double distance, double facingFac return facingFactor / powerdissip; } - protected double ComputeFacingFactor(Vessel powerVessel) { + protected double ComputeFacingFactor(Vessel powerVessel) + { double facingFactor = 1; - Vector3d directionVector = (powerVessel.transform.position - vessel.transform.position).normalized; - if (!isInlineReceiver) { + Vector3d powerv = PluginHelper.getVesselPos(powerVessel); + Vector3d directionVector = (powerv - vessel.transform.position).normalized; + if (!isInlineReceiver) + { //Scale energy reception based on angle of reciever to transmitter facingFactor = Vector3d.Dot(part.transform.up, directionVector); facingFactor = Math.Max(0, facingFactor); - } else { + } + else + { facingFactor = 1.0 - Math.Abs(Vector3d.Dot(part.transform.up, directionVector)); facingFactor = Math.Min(facingFactor, 1); } @@ -465,7 +500,8 @@ protected double ComputeFacingFactor(Vessel powerVessel) { /// Returns transmitters which to which this vessel can connect, route efficiency and relays used for each one. /// /// Maximum number of relays which can be used for connection to transmitter - protected IDictionary>> GetConnectedTransmitters(int maxHops = 25) { + protected IDictionary>> GetConnectedTransmitters(int maxHops = 25) + { //these two dictionaries store transmitters and relays and best currently known route to them which is replaced if better one is found. @@ -475,10 +511,14 @@ protected IDictionary();//stores all transmiters to which we want to connect - foreach (VesselMicrowavePersistence transmitter in vmps) { //first check for direct connection from current vessel to transmitters, will always be optimal - if (transmitter.getAvailablePower() > 0) { //ignore if no power or transmitter is on the same vessel - if (!isInlineReceiver || transmitter.getVessel() != vessel) { - if (lineOfSightTo(transmitter.getVessel())) { + foreach (VesselMicrowavePersistence transmitter in MicrowaveSources.instance.transmitters.Values) + { //first check for direct connection from current vessel to transmitters, will always be optimal + if (transmitter.getAvailablePower() > 0) + { //ignore if no power or transmitter is on the same vessel + if (!isInlineReceiver || transmitter.getVessel() != vessel) + { + if (lineOfSightTo(transmitter.getVessel())) + { double distance = ComputeDistance(vessel, transmitter.getVessel()); double facingFactor = ComputeFacingFactor(transmitter.getVessel()); double efficiency = ComputeTransmissionEfficiency(distance, facingFactor); @@ -497,9 +537,12 @@ protected IDictionary>();//relays which are in line of sight, and we have not yet checked what they can see. Their index in relaysToCheck is also stored int relayIndex = 0; - foreach (VesselRelayPersistence relay in vrps) { - if (relay.isActive()) { - if (lineOfSightTo(relay.getVessel())) { + foreach (VesselRelayPersistence relay in MicrowaveSources.instance.relays.Values) + { + if (relay.isActive()) + { + if (lineOfSightTo(relay.getVessel())) + { double distance = ComputeDistance(vessel, relay.getVessel()); double facingFactor = ComputeFacingFactor(relay.getVessel()); double efficiency = ComputeTransmissionEfficiency(distance, facingFactor); @@ -517,18 +560,22 @@ protected IDictionary coveredRelays = new HashSet(); //runs as long as there is any relay to which we can connect and maximum number of hops have not been breached - while (hops < maxHops && currentRelayGroup.Any()) { + while (hops < maxHops && currentRelayGroup.Any()) + { var nextRelayGroup = new List>();//will put every relay which is in line of sight of any relay from currentRelayGroup here foreach (var relayEntry in currentRelayGroup) //relays visible from receiver in first iteration, then relays visible from them etc.... { @@ -557,11 +605,14 @@ protected IDictionary(nextRelay, r)); //in next iteration we will check what next relay can see coveredRelays.Add(r); @@ -623,10 +677,12 @@ protected IDictionary>>(); - foreach (var transmitterEntry in transmitterRouteDictionary) { + foreach (var transmitterEntry in transmitterRouteDictionary) + { Stack relays = new Stack();//Last in, first out so relay visible from receiver will always be first VesselRelayPersistence relay = transmitterEntry.Value.PreviousRelay; - while (relay != null) { + while (relay != null) + { relays.Push(relay); relay = relayRouteDictionary[relay].PreviousRelay; } diff --git a/FNPlugin/MicrowavePowerReceiverBackup.cs b/FNPlugin/MicrowavePowerReceiverBackup.cs deleted file mode 100644 index fedefede..00000000 --- a/FNPlugin/MicrowavePowerReceiverBackup.cs +++ /dev/null @@ -1,276 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace FNPlugin { - class MicrowavePowerReceiverBackup : FNResourceSuppliableModule{ - [KSPField(isPersistant = false, guiActive = true, guiName = "Input Power")] - public string beamedpower; - [KSPField(isPersistant = false, guiActive = true, guiName = "Satellites Connected")] - public string connectedsats; - [KSPField(isPersistant = false, guiActive = true, guiName = "Relay Connected")] - public string connectedrelays; - [KSPField(isPersistant = false, guiActive = true, guiName = "Total Efficiency")] - public string toteff; - [KSPField(isPersistant = true)] - bool IsEnabled; - bool aIsRelay; - public float powerInput; - private int connectedsatsf = 0; - private int connectedrelaysf = 0; - private int activeCount = 0; - private static int dishcount; - private int mycount = -1; - private float totefff; - private float rangelosses; - const float angle = 3.64773814E-10f; - const float efficiency = 0.85f; - - [KSPField(isPersistant = false)] - public string animName; - [KSPField(isPersistant = false)] - public float collectorArea = 1; - - protected Animation anim; - protected int deactivate_timer = 0; - - //protected bool responsible_for_megajoulemanager; - //protected FNResourceManager megamanager; - - protected bool play_down = true; - protected bool play_up = true; - - [KSPEvent(guiActive = true, guiName = "Activate Receiver", active = true)] - public void ActivateReceiver() { - IsEnabled = true; - } - - [KSPEvent(guiActive = true, guiName = "Disable Receiver", active = true)] - public void DisableReceiver() { - IsEnabled = false; - } - - [KSPAction("Activate Receiver")] - public void ActivateReceiverAction(KSPActionParam param) { - ActivateReceiver(); - } - - [KSPAction("Disable Receiver")] - public void DisableReceiverAction(KSPActionParam param) { - DisableReceiver(); - } - - [KSPAction("Toggle Receiver")] - public void ToggleReceiverAction(KSPActionParam param) { - IsEnabled = !IsEnabled; - } - - public override void OnStart(PartModule.StartState state) { - Actions["ActivateReceiverAction"].guiName = Events["ActivateReceiver"].guiName = String.Format("Activate Receiver"); - Actions["DisableReceiverAction"].guiName = Events["DisableReceiver"].guiName = String.Format("Disable Receiver"); - Actions["ToggleReceiverAction"].guiName = String.Format("Toggle Receiver"); - - base.OnStart (state); - if (state == StartState.Editor) { return; } - this.part.force_activate(); - - anim = part.FindModelAnimators (animName).FirstOrDefault (); - if (anim != null) { - anim [animName].layer = 1; - if (connectedsatsf > 0 || connectedrelaysf > 0) { - anim [animName].normalizedTime = 1f; - anim [animName].speed = -1f; - - } else { - anim [animName].normalizedTime = 0f; - anim [animName].speed = 1f; - - } - anim.Play (); - } - - if (mycount == -1) { - mycount = dishcount; - dishcount++; - } - } - - public override void OnUpdate() { - Events["ActivateReceiver"].active = !IsEnabled; - Events["DisableReceiver"].active = IsEnabled; - Fields["toteff"].guiActive = (connectedsatsf > 0 || connectedrelaysf > 0); - - if (IsEnabled) { - if (powerInput > 1000) { - beamedpower = (powerInput/1000).ToString () + "MW"; - } else { - beamedpower = powerInput.ToString () + "KW"; - } - } else { - beamedpower = "Offline."; - } - connectedsats = connectedsatsf.ToString(); - connectedrelays = connectedrelaysf.ToString(); - toteff = totefff.ToString() + "%"; - - if (connectedsatsf > 0 || connectedrelaysf > 0) { - if (play_up) { - play_down = true; - play_up = false; - anim [animName].speed = 1f; - anim [animName].normalizedTime = 0f; - anim.Blend (animName, 2f); - } - } else { - if (play_down) { - play_down = false; - play_up = true; - anim [animName].speed = -1f; - anim [animName].normalizedTime = 1f; - anim.Blend (animName, 2f); - } - - } - } - - public override void OnFixedUpdate() { - String[] resources_to_supply = {FNResourceManager.FNRESOURCE_MEGAJOULES,FNResourceManager.FNRESOURCE_WASTEHEAT}; - this.resources_to_supply = resources_to_supply; - - base.OnFixedUpdate (); - - ConfigNode config = PluginHelper.getPluginSaveFile(); - float powerInputIncr = 0; - float powerInputRelay = 0; - int activeSatsIncr = 0; - float rangelosses = 0; - if (config != null && IsEnabled) { - if (getResourceBarRatio (FNResourceManager.FNRESOURCE_WASTEHEAT) >= 0.95) { - IsEnabled = false; - deactivate_timer++; - if (FlightGlobals.ActiveVessel == vessel && deactivate_timer > 2) { - ScreenMessages.PostScreenMessage ("Warning Dangerous Overheating Detected: Emergency microwave power shutdown occuring NOW!", 5.0f, ScreenMessageStyle.UPPER_CENTER); - } - return; - } - deactivate_timer = 0; - - //Check to see if active vessel is a relay - for now we do not want a relay to connect to another relay to prevent energy loops - String aid = vessel.id.ToString (); - if (config.HasValue (aid) == true) { - String agenType = config.GetValue (aid + "type"); - if (agenType == "relay") { - aIsRelay = true; - } else { - aIsRelay = false; - } - } - - //if (activeCount % 100 == 0) { - List vessels = FlightGlobals.Vessels; - //print(vessels.Count.ToString() + "\n"); - - //loop through vessels and attempt to add any active sattilites - foreach (Vessel vess in vessels) { - String vid = vess.id.ToString(); - String vname = vess.vesselName.ToString().ToLower(); - //print(vid + "\n"); - - //prevent adding active vessel as sat, skip calculations on debris, only add vessels with config value and line of sight to active vessel - if (vess.isActiveVessel == false && vname.IndexOf("debris") == -1 && config.HasValue(vid) == true && lineOfSightTo(vess) == true) { - String powerinputsat = config.GetValue (vid); - String vgenType = config.GetValue (vid + "type"); - // if sat is not relay/nuclear check that it has line of site to sun - // NOTE: we need to add a check for relay to check lineOfSiteToSource(vess), and if solar a lineOfSiteFromSourceToSun - to check that the source which it is relaying is still attached to it, and if it is a solar source that it is recieving solar energy - if((vgenType == "solar" && PluginHelper.lineOfSightToSun(vess)) || vgenType == "relay" || vgenType == "nuclear") { - float inputPowerFixedAlt = 0;// = float.Parse (powerinputsat) * PluginHelper.getSatFloatCurve ().Evaluate ((float)FlightGlobals.Bodies [0].GetAltitude (vess.transform.position)); - float distance = (float)Vector3d.Distance (vessel.transform.position, vess.transform.position); - float powerdissip = (float)(Math.Tan (angle) * distance * Math.Tan (angle) * distance); - powerdissip = Math.Max (powerdissip/collectorArea, 1); - if (vgenType != "relay" && inputPowerFixedAlt > 0) { - rangelosses += powerdissip; - //Scale energy reception based on angle of reciever to transmitter - Vector3d direction_vector = (vess.transform.position-vessel.transform.position).normalized; - float facing_factor = Vector3.Dot (part.transform.up, direction_vector); - facing_factor = Mathf.Max (0, facing_factor); - powerInputIncr += inputPowerFixedAlt / powerdissip*facing_factor; - activeSatsIncr++; - connectedrelaysf = 0; - //print ("warp: sat added - genType: " + vgenType); - } - // only attach to one relay IF no sattilites are available for direct connection - else if(aIsRelay == false && activeSatsIncr < 1 && inputPowerFixedAlt > 0){ - rangelosses = powerdissip; - //Scale energy reception based on angle of reciever to transmitter - Vector3d direction_vector = (vess.transform.position-vessel.transform.position).normalized; - float facing_factor = Vector3.Dot (part.transform.up, direction_vector); - facing_factor = Mathf.Max (0, facing_factor); - powerInputRelay = inputPowerFixedAlt / powerdissip*facing_factor; - connectedrelaysf = 1; - activeSatsIncr = 0; - //print ("warp: relay added"); - } - } - } - } - - float atmosphericefficiency = (float) Math.Exp(-FlightGlobals.getStaticPressure(vessel.transform.position) / 5); - - if (activeSatsIncr > 0 && powerInputIncr > 0) { - this.rangelosses = rangelosses / activeSatsIncr; - totefff = efficiency * atmosphericefficiency*100/rangelosses; - powerInput = powerInputIncr * efficiency * atmosphericefficiency; - connectedsatsf = activeSatsIncr; - //print ("warp: connected sat"); - } - else if (connectedrelaysf > 0 && powerInputRelay > 0) { - this.rangelosses = rangelosses / connectedrelaysf; - totefff = efficiency * atmosphericefficiency*100/rangelosses; - powerInput = powerInputRelay * efficiency * atmosphericefficiency; - connectedsatsf = 0; - //print("warp: connected relay"); - } - else { - connectedrelaysf = 0; - connectedsatsf = 0; - powerInput = 0; - //print ("warp: no active sats or relays available"); - } - //} - }else{ - connectedrelaysf = 0; - connectedsatsf = 0; - powerInput = 0; - } - - - float powerInputMegajoules = powerInput/1000.0f; - supplyFNResource(powerInputMegajoules * TimeWarp.fixedDeltaTime,FNResourceManager.FNRESOURCE_MEGAJOULES); - float waste_head_production = powerInput/1000.0f/ efficiency * (1.0f - efficiency); - supplyFNResource (waste_head_production * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_WASTEHEAT); - //activeCount++; - } - - protected bool lineOfSightTo(Vessel vess) { - Vector3d a = vessel.transform.position; - Vector3d b = vess.transform.position; - foreach (CelestialBody referenceBody in FlightGlobals.Bodies) { - Vector3d refminusa = referenceBody.position - a; - Vector3d bminusa = b - a; - if (Vector3d.Dot(refminusa, bminusa) > 0) { - if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { - Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; - if (tang.magnitude < referenceBody.Radius) { - return false; - } - } - } - } - return true; - } - } - - -} diff --git a/FNPlugin/MicrowavePowerTransmitter.cs b/FNPlugin/MicrowavePowerTransmitter.cs index 50b37b04..1cff7243 100644 --- a/FNPlugin/MicrowavePowerTransmitter.cs +++ b/FNPlugin/MicrowavePowerTransmitter.cs @@ -4,14 +4,21 @@ using System.Text; using UnityEngine; -namespace FNPlugin { - class MicrowavePowerTransmitter : FNResourceSuppliableModule { +namespace FNPlugin +{ + class MicrowavePowerTransmitter : FNResourceSuppliableModule + { //Persistent True [KSPField(isPersistant = true)] public bool IsEnabled; [KSPField(isPersistant = true)] public bool relay; + [KSPField(isPersistant = true)] + protected float nuclear_power = 0; + [KSPField(isPersistant = true)] + protected float solar_power = 0; + //Persistent False [KSPField(isPersistant = false)] public string animName; @@ -22,14 +29,11 @@ class MicrowavePowerTransmitter : FNResourceSuppliableModule { [KSPField(isPersistant = false, guiActive = true, guiName = "Beamed Power")] public string beamedpower; [KSPField(isPersistant = true, guiActive = true, guiName = "Transmission"), UI_FloatRange(stepIncrement = 0.005f, maxValue = 100, minValue = 1)] - public float transmitPower; + public float transmitPower = 100; //Internal protected Animation anim; - protected double nuclear_power; - protected double solar_power; - protected long activeCount = 0; - protected double displayed_solar_power = 0; + protected float displayed_solar_power = 0; protected List generators; protected List receivers; protected List panels; @@ -37,109 +41,118 @@ class MicrowavePowerTransmitter : FNResourceSuppliableModule { protected bool has_receiver = false; [KSPEvent(guiActive = true, guiName = "Activate Transmitter", active = true)] - public void ActivateTransmitter() { + public void ActivateTransmitter() + { if (relay) { return; } - if (anim != null) { + if (anim != null) + { anim[animName].speed = 1f; - anim[animName].normalizedTime = 0f; anim.Blend(animName, 2f); } - transmitPower = 100; - activeCount = 8; IsEnabled = true; } [KSPEvent(guiActive = true, guiName = "Deactivate Transmitter", active = false)] - public void DeactivateTransmitter() { + public void DeactivateTransmitter() + { if (relay) { return; } - if (anim != null) { + if (anim != null) + { + if (anim[animName].normalizedTime == 0.0f) + anim[animName].normalizedTime = 1.0f; anim[animName].speed = -1f; - anim[animName].normalizedTime = 1f; anim.Blend(animName, 2f); } - activeCount = 8; IsEnabled = false; } [KSPEvent(guiActive = true, guiName = "Activate Relay", active = true)] - public void ActivateRelay() { + public void ActivateRelay() + { if (IsEnabled) { return; } - if (anim != null) { + if (anim != null) + { anim[animName].speed = 1f; - anim[animName].normalizedTime = 0f; anim.Blend(animName, 2f); } - activeCount = 8; IsEnabled = true; relay = true; } [KSPEvent(guiActive = true, guiName = "Deactivate Relay", active = true)] - public void DeactivateRelay() { + public void DeactivateRelay() + { if (!relay) { return; } - if (anim != null) { - anim[animName].speed = 1f; - anim[animName].normalizedTime = 0f; + if (anim != null) + { + if (anim[animName].normalizedTime == 0.0f) + anim[animName].normalizedTime = 1.0f; + anim[animName].speed = -1.0f; anim.Blend(animName, 2f); } - activeCount = 8; IsEnabled = false; relay = false; } [KSPAction("Activate Transmitter")] - public void ActivateTransmitterAction(KSPActionParam param) { + public void ActivateTransmitterAction(KSPActionParam param) + { ActivateTransmitter(); } [KSPAction("Deactivate Transmitter")] - public void DeactivateTransmitterAction(KSPActionParam param) { + public void DeactivateTransmitterAction(KSPActionParam param) + { DeactivateTransmitter(); } [KSPAction("Activate Relay")] - public void ActivateRelayAction(KSPActionParam param) { + public void ActivateRelayAction(KSPActionParam param) + { ActivateRelay(); } [KSPAction("Deactivate Relay")] - public void DeactivateRelayAction(KSPActionParam param) { + public void DeactivateRelayAction(KSPActionParam param) + { DeactivateRelay(); } - public override void OnStart(PartModule.StartState state) { + public override void OnStart(PartModule.StartState state) + { if (state == StartState.Editor) { return; } generators = vessel.FindPartModulesImplementing(); receivers = vessel.FindPartModulesImplementing(); panels = vessel.FindPartModulesImplementing(); - if (part.FindModulesImplementing().Count == 1) { + if (part.FindModulesImplementing().Count == 1) + { part_receiver = part.FindModulesImplementing().First(); has_receiver = true; } anim = part.FindModelAnimators(animName).FirstOrDefault(); - if (anim != null) { + if (anim != null) + { anim[animName].layer = 1; - if (!IsEnabled) { + if (IsEnabled) + { anim[animName].normalizedTime = 1f; - anim[animName].speed = -1f; - - } else { - anim[animName].normalizedTime = 0f; - anim[animName].speed = 1f; - + anim[animName].enabled = true; + anim.Sample(); } - anim.Play(); } this.part.force_activate(); } - public override void OnUpdate() { + public override void OnUpdate() + { bool receiver_on = false; - if (has_receiver) { - if (part_receiver.isActive()) { + if (has_receiver) + { + if (part_receiver.isActive()) + { receiver_on = true; } } @@ -150,154 +163,203 @@ public override void OnUpdate() { Fields["beamedpower"].guiActive = IsEnabled && !relay; Fields["transmitPower"].guiActive = IsEnabled && !relay; - if (IsEnabled) { - if (relay) { + if (IsEnabled) + { + if (relay) + { statusStr = "Relay Active"; - } else { + } + else + { statusStr = "Transmitter Active"; } - } else { + } + else + { statusStr = "Inactive."; } double inputPower = nuclear_power + displayed_solar_power; - if (inputPower > 1000) { - if (inputPower > 1e6) { + if (inputPower > 1000) + { + if (inputPower > 1e6) + { beamedpower = (inputPower / 1e6).ToString("0.000") + " GW"; - } else { + } + else + { beamedpower = (inputPower / 1000).ToString("0.000") + " MW"; } - } else { + } + else + { beamedpower = inputPower.ToString("0.000") + " KW"; } } - public override void OnFixedUpdate() { - activeCount++; + public override void OnFixedUpdate() + { nuclear_power = 0; solar_power = 0; displayed_solar_power = 0; - if (IsEnabled && !relay) { - foreach (FNGenerator generator in generators) { - if (generator.isActive()) { + + base.OnFixedUpdate(); + if (IsEnabled && !relay) + { + foreach (FNGenerator generator in generators) + { + if (generator.isActive()) + { IThermalSource thermal_source = generator.getThermalSource(); - if (thermal_source != null && !thermal_source.IsVolatileSource) { - double output = generator.getMaxPowerOutput(); - if (thermal_source is InterstellarFusionReactor) { + if (thermal_source != null && !thermal_source.IsVolatileSource) + { + float output = generator.getMaxPowerOutput(); + if (thermal_source is InterstellarFusionReactor) + { InterstellarFusionReactor fusion_reactor = thermal_source as InterstellarFusionReactor; - output = output * 0.92; + output = output * 0.92f; } - output = output * transmitPower / 100.0; - double gpower = consumeFNResource(output * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES); + output = output * transmitPower / 100.0f; + float gpower = consumeFNResource(output * TimeWarp.fixedDeltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES); nuclear_power += gpower * 1000 / TimeWarp.fixedDeltaTime; } } } - foreach (ModuleDeployableSolarPanel panel in panels) { - double output = panel.flowRate; - double spower = part.RequestResource("ElectricCharge", output * TimeWarp.fixedDeltaTime); + foreach (ModuleDeployableSolarPanel panel in panels) + { + float output = panel.flowRate; + float spower = part.RequestResource("ElectricCharge", output * TimeWarp.fixedDeltaTime); double inv_square_mult = Math.Pow(Vector3d.Distance(FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBIN].transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2) / Math.Pow(Vector3d.Distance(vessel.transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2); displayed_solar_power += spower / TimeWarp.fixedDeltaTime; //scale solar power to what it would be in Kerbin orbit for file storage - solar_power += spower / TimeWarp.fixedDeltaTime/inv_square_mult; + solar_power += (float)(spower / TimeWarp.fixedDeltaTime / inv_square_mult); } } - if (double.IsInfinity(nuclear_power) || double.IsNaN(nuclear_power)) { + if (double.IsInfinity(nuclear_power) || double.IsNaN(nuclear_power)) + { nuclear_power = 0; } - if (double.IsInfinity(solar_power) || double.IsNaN(solar_power)) { + if (double.IsInfinity(solar_power) || double.IsNaN(solar_power)) + { solar_power = 0; - } - - if (activeCount % 1000 == 9) { - ConfigNode config = PluginHelper.getPluginSaveFile(); - string vesselID = vessel.id.ToString(); - if (config.HasNode("VESSEL_MICROWAVE_POWER_" + vesselID)) { - ConfigNode power_node = config.GetNode("VESSEL_MICROWAVE_POWER_" + vesselID); - if (power_node.HasValue("nuclear_power")) { - power_node.SetValue("nuclear_power", MicrowavePowerTransmitter.getEnumeratedNuclearPowerForVessel(vessel).ToString("E")); - } else { - power_node.AddValue("nuclear_power", MicrowavePowerTransmitter.getEnumeratedNuclearPowerForVessel(vessel).ToString("E")); - } - if (power_node.HasValue("solar_power")) { - power_node.SetValue("solar_power", MicrowavePowerTransmitter.getEnumeratedSolarPowerForVessel(vessel).ToString("E")); - } else { - power_node.AddValue("solar_power", MicrowavePowerTransmitter.getEnumeratedSolarPowerForVessel(vessel).ToString("E")); - } - - } else { - ConfigNode power_node = config.AddNode("VESSEL_MICROWAVE_POWER_" + vesselID); - power_node.AddValue("nuclear_power", MicrowavePowerTransmitter.getEnumeratedNuclearPowerForVessel(vessel).ToString("E")); - power_node.AddValue("solar_power", MicrowavePowerTransmitter.getEnumeratedSolarPowerForVessel(vessel).ToString("E")); - } - - if (config.HasNode("VESSEL_MICROWAVE_RELAY_" + vesselID)) { - ConfigNode relay_node = config.GetNode("VESSEL_MICROWAVE_RELAY_" + vesselID); - if (relay_node.HasValue("relay")) { - relay_node.SetValue("relay", MicrowavePowerTransmitter.vesselIsRelay(vessel).ToString()); - } else { - relay_node.AddValue("relay", MicrowavePowerTransmitter.vesselIsRelay(vessel).ToString()); - } - } else { - ConfigNode relay_node = config.AddNode("VESSEL_MICROWAVE_RELAY_" + vesselID); - relay_node.AddValue("relay", MicrowavePowerTransmitter.vesselIsRelay(vessel).ToString()); - } - - config.Save(PluginHelper.getPluginSaveFilePath()); } - activeCount++; } - public double getNuclearPower() { + public double getNuclearPower() + { return nuclear_power; } - public double getSolarPower() { + public double getSolarPower() + { return solar_power; } - public bool getIsRelay() { + public bool getIsRelay() + { return relay; } - public bool isActive() { + public bool isActive() + { return IsEnabled; } - public override string getResourceManagerDisplayName() { + public override string getResourceManagerDisplayName() + { return "Microwave Transmitter"; } - public static double getEnumeratedNuclearPowerForVessel(Vessel vess) { + public static double getEnumeratedNuclearPowerForVessel(Vessel vess) + { List transmitters = vess.FindPartModulesImplementing(); double total_nuclear_power = 0; - foreach (MicrowavePowerTransmitter transmitter in transmitters) { + foreach (MicrowavePowerTransmitter transmitter in transmitters) + { total_nuclear_power += transmitter.getNuclearPower(); } return total_nuclear_power; } - public static double getEnumeratedSolarPowerForVessel(Vessel vess) { + public static double getEnumeratedSolarPowerForVessel(Vessel vess) + { List transmitters = vess.FindPartModulesImplementing(); double total_solar_power = 0; - foreach (MicrowavePowerTransmitter transmitter in transmitters) { + foreach (MicrowavePowerTransmitter transmitter in transmitters) + { total_solar_power += transmitter.getSolarPower(); } return total_solar_power; } - public static bool vesselIsRelay(Vessel vess) { + public static bool vesselIsRelay(Vessel vess) + { List transmitters = vess.FindPartModulesImplementing(); - foreach (MicrowavePowerTransmitter transmitter in transmitters) { - if (transmitter.getIsRelay()) { + foreach (MicrowavePowerTransmitter transmitter in transmitters) + { + if (transmitter.getIsRelay() && transmitter.isActive()) + { return true; } } return false; } + public static double getEnumeratedNuclearPowerForVessel(ProtoVessel vess) + { + double total_nuclear_power = 0; + foreach (var ppart in vess.protoPartSnapshots) + { + foreach (var pmodule in ppart.modules) + { + if (pmodule.moduleName == "MicrowavePowerTransmitter") + { + string nuclear_power = pmodule.moduleValues.GetValue("nuclear_power"); + if (nuclear_power != null) + total_nuclear_power += double.Parse(nuclear_power); + } + } + } + return total_nuclear_power; + } + + public static double getEnumeratedSolarPowerForVessel(ProtoVessel vess) + { + double total_solar_power = 0; + foreach (var ppart in vess.protoPartSnapshots) + { + foreach (var pmodule in ppart.modules) + { + if (pmodule.moduleName == "MicrowavePowerTransmitter") + { + string solar_power = pmodule.moduleValues.GetValue("solar_power"); + if (solar_power != null) + total_solar_power += double.Parse(solar_power); + } + } + } + return total_solar_power; + } + + public static bool vesselIsRelay(ProtoVessel vess) + { + foreach (var ppart in vess.protoPartSnapshots) + { + foreach (var pmodule in ppart.modules) + { + if (pmodule.moduleName == "MicrowavePowerTransmitter") + { + string relay_value = pmodule.moduleValues.GetValue("relay"); + if (relay_value != null) + return bool.Parse(relay_value); + } + } + } + return false; + } + } } diff --git a/FNPlugin/MicrowavePowerTransmitterBackup.cs b/FNPlugin/MicrowavePowerTransmitterBackup.cs deleted file mode 100644 index e60a61df..00000000 --- a/FNPlugin/MicrowavePowerTransmitterBackup.cs +++ /dev/null @@ -1,184 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace FNPlugin { - class MicrowavePowerTransmitterBackup : FNResourceSuppliableModule { - [KSPField(isPersistant = true)] - bool IsEnabled; - [KSPField(isPersistant = false, guiActive = true, guiName = "Beamed Power")] - public string beamedpower; - float inputPower = 0; - private int activeCount = 0; - - bool nuclear = false; - bool microwave = false; - bool solar = false; - - [KSPField(isPersistant = false)] - public string animName; - - protected Animation anim; - - - [KSPEvent(guiActive = true, guiName = "Activate Transmitter", active = true)] - public void ActivateTransmitter() { - if (anim != null) { - anim [animName].speed = 1f; - anim [animName].normalizedTime = 0f; - anim.Blend (animName, 2f); - } - IsEnabled = true; - } - - [KSPEvent(guiActive = true, guiName = "Deactivate Transmitter", active = false)] - public void DeactivateTransmitter() { - if (anim != null) { - anim [animName].speed = -1f; - anim [animName].normalizedTime = 1f; - anim.Blend (animName, 2f); - } - IsEnabled = false; - } - - [KSPAction("Activate Transmitter")] - public void ActivateTransmitterAction(KSPActionParam param) { - ActivateTransmitter(); - } - - [KSPAction("Deactivate Transmitter")] - public void DeactivateTransmitterAction(KSPActionParam param) { - DeactivateTransmitter(); - } - - public override void OnStart(PartModule.StartState state) { - Actions["ActivateTransmitterAction"].guiName = Events["ActivateTransmitter"].guiName = String.Format("Activate Transmitter"); - Actions["DeactivateTransmitterAction"].guiName = Events["DeactivateTransmitter"].guiName = String.Format("Deactivate Transmitter"); - - if (state == StartState.Editor) { return; } - this.part.force_activate(); - - anim = part.FindModelAnimators (animName).FirstOrDefault (); - if (anim != null) { - anim [animName].layer = 1; - if (!IsEnabled) { - anim [animName].normalizedTime = 1f; - anim [animName].speed = -1f; - - } else { - anim [animName].normalizedTime = 0f; - anim [animName].speed = 1f; - - } - anim.Play (); - } - - List vesselparts = vessel.parts; - for (int i = 0; i < vesselparts.Count; ++i) { - Part cPart = vesselparts.ElementAt(i); - PartModuleList pml = cPart.Modules; - for (int j = 0; j < pml.Count; ++j) { - var curSolarPan = pml.GetModule(j) as ModuleDeployableSolarPanel; - if (curSolarPan != null) { - //curSolarPan.powerCurve = PluginHelper.getSatFloatCurve(); - } - } - } - - - } - - public override void OnUpdate() { - Events["ActivateTransmitter"].active = !IsEnabled; - Events["DeactivateTransmitter"].active = IsEnabled; - if (inputPower > 1000) { - beamedpower = (inputPower / 1000).ToString ("0.000") + "MW"; - } else { - beamedpower = inputPower.ToString ("0.000") + "KW"; - } - } - - public override void OnFixedUpdate() { - activeCount++; - - - if (IsEnabled) { - List vesselparts = vessel.parts; - float electrical_current_available = 0; - for (int i = 0; i < vesselparts.Count; ++i) { - Part cPart = vesselparts.ElementAt (i); - PartModuleList pml = cPart.Modules; - for (int j = 0; j < pml.Count; ++j) { - var curFNGen = pml.GetModule (j) as FNGenerator; - var curMwRec = pml.GetModule (j) as MicrowavePowerReceiver; - var curSolarPan = pml.GetModule (j) as ModuleDeployableSolarPanel; - if (curFNGen != null) { - float consumeMJ = curFNGen.getMaxPowerOutput () * TimeWarp.fixedDeltaTime; - float cvalue = consumeFNResource(consumeMJ,FNResourceManager.FNRESOURCE_MEGAJOULES); - electrical_current_available = cvalue*1000/TimeWarp.fixedDeltaTime; - nuclear = true; - } - else if (curMwRec != null && nuclear == false) { - //electrical_current_available = curMwRec.powerInput; - part.RequestResource ("ElectricCharge", electrical_current_available * TimeWarp.fixedDeltaTime); - microwave = true; - } - else if (curSolarPan != null && nuclear == false && microwave == false) { - electrical_current_available += curSolarPan.flowRate; - part.RequestResource ("ElectricCharge", electrical_current_available * TimeWarp.fixedDeltaTime); - solar = true; - } - } - } - inputPower = electrical_current_available; - } else { - inputPower = 0; - } - - if (activeCount % 1000 == 9) { - ConfigNode config = PluginHelper.getPluginSaveFile (); - string genType = "undefined"; - - //float inputPowerFixedAlt = (float) ((double)inputPower * (Math.Pow(FlightGlobals.Bodies[0].GetAltitude(vessel.transform.position), 2)) / PluginHelper.FIXED_SAT_ALTITUDE / PluginHelper.FIXED_SAT_ALTITUDE); - float inputPowerFixedAlt = 0; - if (nuclear == true) { - inputPowerFixedAlt = inputPower; - //print ("warp: nuclear inputPower " + inputPowerFixedAlt); - genType = "nuclear"; - } else if (microwave == true) { - inputPowerFixedAlt = inputPower; - //print ("warp: relay inputPower " + inputPowerFixedAlt); - genType = "relay"; - } else if (solar == true) { - //inputPowerFixedAlt = inputPower / PluginHelper.getSatFloatCurve ().Evaluate ((float)FlightGlobals.Bodies [0].GetAltitude (vessel.transform.position)); - //print ("warp: solar inputPower " + inputPowerFixedAlt); - genType = "solar"; - } - - if (genType != "undefined") { - string vesselIDSolar = vessel.id.ToString (); - string outputPower = inputPowerFixedAlt.ToString ("0.000"); - if (!config.HasValue (vesselIDSolar)) { - config.AddValue (vesselIDSolar, outputPower); - } else { - config.SetValue (vesselIDSolar, outputPower); - } - - if (!config.HasValue (vesselIDSolar + "type")) { - config.AddValue (vesselIDSolar + "type", genType); - } else { - config.SetValue (vesselIDSolar + "type", genType); - } - - config.Save (PluginHelper.getPluginSaveFilePath ()); - } - } - - - } - - - } -} diff --git a/FNPlugin/MicrowaveSources.cs b/FNPlugin/MicrowaveSources.cs new file mode 100644 index 00000000..81c8dd11 --- /dev/null +++ b/FNPlugin/MicrowaveSources.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace FNPlugin +{ + [KSPAddon(KSPAddon.Startup.EveryScene, false)] + class MicrowaveSources : MonoBehaviour + { + class VesselComparator : IEqualityComparer + { + public int GetHashCode(Vessel foo) { return foo.id.GetHashCode().GetHashCode(); } + public bool Equals(Vessel foo1, Vessel foo2) { return foo1.id == foo2.id; } + } + + public Dictionary transmitters = + new Dictionary(new VesselComparator()); + + public Dictionary relays = + new Dictionary(new VesselComparator()); + + public static MicrowaveSources instance + { + get; + private set; + } + + void Start() + { + instance = this; + Debug.Log("[KSP Interstellar]: MicrowaveSources initialized"); + } + + uint unloaded_counter = 0; + + public void calculateTransmitters() + { + unloaded_counter++; + + foreach (var vessel in FlightGlobals.Vessels) + { + if (vessel.state == Vessel.State.DEAD) + continue; + + // if vessek is offloaded to rails, parse protovessel + if (vessel.state == Vessel.State.INACTIVE) + { + if (unloaded_counter % 30 != 1) // sometimes rebuild unloaded vessels as transmitters and relays + continue; + // parse transmitter + var trans_pers = new VesselMicrowavePersistence(vessel); + trans_pers.setNuclearPower(MicrowavePowerTransmitter.getEnumeratedNuclearPowerForVessel(vessel.protoVessel)); + trans_pers.setSolarPower(MicrowavePowerTransmitter.getEnumeratedSolarPowerForVessel(vessel.protoVessel)); + if (trans_pers.getAvailablePower() > 1.0) + { + transmitters[vessel] = trans_pers; + } + else + transmitters.Remove(vessel); + // parse relay + var persistence = new VesselRelayPersistence(vessel); + persistence.setActive(MicrowavePowerTransmitter.vesselIsRelay(vessel.protoVessel)); + if (persistence.isActive()) + relays[vessel] = persistence; + else + relays.Remove(vessel); + continue; + } + + // if vessel is loaded + var transes = vessel.FindPartModulesImplementing(); + if (transes.Count > 0) + { + var persistence = new VesselMicrowavePersistence(vessel); + persistence.setNuclearPower(MicrowavePowerTransmitter.getEnumeratedNuclearPowerForVessel(vessel)); + persistence.setSolarPower(MicrowavePowerTransmitter.getEnumeratedSolarPowerForVessel(vessel)); + if (persistence.getAvailablePower() > 0.1) + { + transmitters[vessel] = persistence; + } + else + transmitters.Remove(vessel); + } + + if (MicrowavePowerTransmitter.vesselIsRelay(vessel)) + { + var persistence = new VesselRelayPersistence(vessel); + persistence.setActive(true); + relays[vessel] = persistence; + } + else + relays.Remove(vessel); + } + } + + uint counter = 0; + void Update() // update every 40 frames + { + if (counter++ % 30 == 0 && HighLogic.LoadedSceneIsGame) + calculateTransmitters(); + } + } +} diff --git a/FNPlugin/ModuleElementRadioactiveDecay.cs b/FNPlugin/ModuleElementRadioactiveDecay.cs index 92b2a8ac..77fbc74c 100644 --- a/FNPlugin/ModuleElementRadioactiveDecay.cs +++ b/FNPlugin/ModuleElementRadioactiveDecay.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { [KSPModule("Radioactive Decay")] diff --git a/FNPlugin/ModuleSolarSail.cs b/FNPlugin/ModuleSolarSail.cs index 30947bc2..3efa539f 100644 --- a/FNPlugin/ModuleSolarSail.cs +++ b/FNPlugin/ModuleSolarSail.cs @@ -135,12 +135,20 @@ private Vector3d CalculateSolarForce() { if (this.part != null) { Vector3d sunPosition = FlightGlobals.fetch.bodies[0].position; Vector3d ownPosition = this.part.transform.position; + Vector3d ownsunPosition = ownPosition - sunPosition; Vector3d normal = this.part.transform.up; if (surfaceTransform != null) { normal = surfaceTransform.forward; } - Vector3d force = normal * Vector3d.Dot((ownPosition - sunPosition).normalized, normal); - return force * surfaceArea * reflectedPhotonRatio * solarForceAtDistance(); + // If normal points away from sun, negate so our force is always away from the sun + // so that turning the backside towards the sun thrusts correctly + if (Vector3d.Dot (normal, ownsunPosition) < 0) { + normal = -normal; + } + // Magnitude of force proportional to cosine-squared of angle between sun-line and normal + double cosConeAngle = Vector3.Dot (ownsunPosition.normalized, normal); + Vector3d force = normal * cosConeAngle * cosConeAngle * surfaceArea * reflectedPhotonRatio * solarForceAtDistance(); + return force; } else { return Vector3d.zero; } diff --git a/FNPlugin/MonopropellantProducer.cs b/FNPlugin/MonopropellantProducer.cs index 00927081..c596ebaf 100644 --- a/FNPlugin/MonopropellantProducer.cs +++ b/FNPlugin/MonopropellantProducer.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/NuclearFuelReprocessor.cs b/FNPlugin/NuclearFuelReprocessor.cs index 813c59e6..91d9400e 100644 --- a/FNPlugin/NuclearFuelReprocessor.cs +++ b/FNPlugin/NuclearFuelReprocessor.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/PluginHelper.cs b/FNPlugin/PluginHelper.cs index 17044b48..b78498d4 100644 --- a/FNPlugin/PluginHelper.cs +++ b/FNPlugin/PluginHelper.cs @@ -5,9 +5,11 @@ using UnityEngine; using System.Reflection; -namespace FNPlugin { +namespace FNPlugin +{ [KSPAddon(KSPAddon.Startup.SpaceCentre, false)] - public class PluginHelper : MonoBehaviour { + public class PluginHelper : MonoBehaviour + { public const double FIXED_SAT_ALTITUDE = 13599840256; public const int REF_BODY_KERBOL = 0; public const int REF_BODY_KERBIN = 1; @@ -29,64 +31,74 @@ public class PluginHelper : MonoBehaviour { public static bool using_toolbar = false; - public const int interstellar_major_version = 10; - public const int interstellar_minor_version = 0; - - protected static bool plugin_init = false; - protected static bool is_thermal_dissip_disabled_init = false; - protected static bool is_thermal_dissip_disabled = false; + public const int interstellar_major_version = 13; + public const int interstellar_minor_version = 5; + + protected static bool plugin_init = false; + protected static bool is_thermal_dissip_disabled = false; + protected static bool is_panel_heating_clamped = false; + protected static bool is_reciever_temp_tweaked = false; protected static GameDatabase gdb; protected static bool resources_configured = false; - protected static bool tech_checked = false; - protected static TechUpdateWindow tech_window = null; - protected static int installed_tech_tree_version_id = 0; - protected static int new_tech_tree_version_id = 0; public static bool TechnologyIsInUse { get { return (HighLogic.CurrentGame.Mode == Game.Modes.CAREER || HighLogic.CurrentGame.Mode == Game.Modes.SCIENCE_SANDBOX); } } public static ConfigNode PluginSettingsConfig { get { return GameDatabase.Instance.GetConfigNode("WarpPlugin/WarpPluginSettings/WarpPluginSettings"); } } - - public static string getPluginSaveFilePath() { + + public static string getPluginSaveFilePath() + { return KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/WarpPlugin.cfg"; } - public static string getTechTreeFilePath() { - return KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/tree.cfg"; + public static string getPluginSettingsFilePath() + { + return KSPUtil.ApplicationRootPath + "GameData/WarpPlugin/WarpPluginSettings.cfg"; } - public static string getNewTechTreeFilePath() { - return KSPUtil.ApplicationRootPath + "GameData/WarpPlugin/tree.cfg"; + public static bool isThermalDissipationDisabled() + { + return is_thermal_dissip_disabled; } - public static string getPluginSettingsFilePath() { - return KSPUtil.ApplicationRootPath + "GameData/WarpPlugin/WarpPluginSettings.cfg"; + public static bool isSolarPanelHeatingClamped() + { + return is_panel_heating_clamped; } - public static bool isThermalDissipationDisabled() { - return is_thermal_dissip_disabled; - } - - public static bool hasTech(string techid) { - try{ - string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; - ConfigNode config = ConfigNode.Load (persistentfile); - ConfigNode gameconf = config.GetNode ("GAME"); - ConfigNode[] scenarios = gameconf.GetNodes ("SCENARIO"); - foreach (ConfigNode scenario in scenarios) { - if (scenario.GetValue ("name") == "ResearchAndDevelopment") { - ConfigNode[] techs = scenario.GetNodes ("Tech"); - foreach (ConfigNode technode in techs) { - if (technode.GetValue ("id") == techid) { - return true; - } - } - } - } - return false; - } catch (Exception ex) { - return false; - } - } + public static bool isRecieverCoreTempTweaked() + { + return is_reciever_temp_tweaked; + } + + public static bool hasTech(string techid) + { + try + { + string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; + ConfigNode config = ConfigNode.Load(persistentfile); + ConfigNode gameconf = config.GetNode("GAME"); + ConfigNode[] scenarios = gameconf.GetNodes("SCENARIO"); + foreach (ConfigNode scenario in scenarios) + { + if (scenario.GetValue("name") == "ResearchAndDevelopment") + { + ConfigNode[] techs = scenario.GetNodes("Tech"); + foreach (ConfigNode technode in techs) + { + if (technode.GetValue("id") == techid) + { + return true; + } + } + } + } + return false; + } + catch (Exception) + { + return false; + } + } public static bool upgradeAvailable(string techid) { @@ -98,7 +110,8 @@ public static bool upgradeAvailable(string techid) { return true; } - } else + } + else { return true; } @@ -106,100 +119,116 @@ public static bool upgradeAvailable(string techid) return false; } - public static float getKerbalRadiationDose(int kerbalidx) { - try{ - string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; - ConfigNode config = ConfigNode.Load (persistentfile); - ConfigNode gameconf = config.GetNode ("GAME"); - ConfigNode crew_roster = gameconf.GetNode("ROSTER"); - ConfigNode[] crew = crew_roster.GetNodes("CREW"); - ConfigNode sought_kerbal = crew[kerbalidx]; - if(sought_kerbal.HasValue("totalDose")) { - float dose = float.Parse(sought_kerbal.GetValue("totalDose")); - return dose; - } - return 0.0f; - }catch (Exception ex) { - print (ex); - return 0.0f; - } - } - - public static ConfigNode getKerbal(int kerbalidx) { - try{ - string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; - ConfigNode config = ConfigNode.Load (persistentfile); - ConfigNode gameconf = config.GetNode ("GAME"); - ConfigNode crew_roster = gameconf.GetNode("ROSTER"); - ConfigNode[] crew = crew_roster.GetNodes("CREW"); - ConfigNode sought_kerbal = crew[kerbalidx]; - return sought_kerbal; - }catch (Exception ex) { - print (ex); - return null; - } - } - - public static void saveKerbalRadiationdose(int kerbalidx, float rad) { - try{ - string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; - ConfigNode config = ConfigNode.Load (persistentfile); - ConfigNode gameconf = config.GetNode ("GAME"); - ConfigNode crew_roster = gameconf.GetNode("ROSTER"); - ConfigNode[] crew = crew_roster.GetNodes("CREW"); - ConfigNode sought_kerbal = crew[kerbalidx]; - if(sought_kerbal.HasValue("totalDose")) { - sought_kerbal.SetValue("totalDose",rad.ToString("E")); - }else{ - sought_kerbal.AddValue("totalDose",rad.ToString("E")); - } - config.Save(persistentfile); - }catch (Exception ex) { - print (ex); - } - } - - public static ConfigNode getPluginSaveFile() { - ConfigNode config = ConfigNode.Load (PluginHelper.getPluginSaveFilePath ()); - if (config == null) { - config = new ConfigNode (); - config.AddValue("writtenat",DateTime.Now.ToString()); - config.Save(PluginHelper.getPluginSaveFilePath ()); - } - return config; - } - - public static ConfigNode getPluginSettingsFile() { - ConfigNode config = ConfigNode.Load(PluginHelper.getPluginSettingsFilePath()); - if (config == null) { - config = new ConfigNode(); + public static float getKerbalRadiationDose(int kerbalidx) + { + try + { + string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; + ConfigNode config = ConfigNode.Load(persistentfile); + ConfigNode gameconf = config.GetNode("GAME"); + ConfigNode crew_roster = gameconf.GetNode("ROSTER"); + ConfigNode[] crew = crew_roster.GetNodes("CREW"); + ConfigNode sought_kerbal = crew[kerbalidx]; + if (sought_kerbal.HasValue("totalDose")) + { + float dose = float.Parse(sought_kerbal.GetValue("totalDose")); + return dose; + } + return 0.0f; + } + catch (Exception ex) + { + print(ex); + return 0.0f; + } + } + + public static ConfigNode getKerbal(int kerbalidx) + { + try + { + string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; + ConfigNode config = ConfigNode.Load(persistentfile); + ConfigNode gameconf = config.GetNode("GAME"); + ConfigNode crew_roster = gameconf.GetNode("ROSTER"); + ConfigNode[] crew = crew_roster.GetNodes("CREW"); + ConfigNode sought_kerbal = crew[kerbalidx]; + return sought_kerbal; + } + catch (Exception ex) + { + print(ex); + return null; + } + } + + public static void saveKerbalRadiationdose(int kerbalidx, float rad) + { + try + { + string persistentfile = KSPUtil.ApplicationRootPath + "saves/" + HighLogic.SaveFolder + "/persistent.sfs"; + ConfigNode config = ConfigNode.Load(persistentfile); + ConfigNode gameconf = config.GetNode("GAME"); + ConfigNode crew_roster = gameconf.GetNode("ROSTER"); + ConfigNode[] crew = crew_roster.GetNodes("CREW"); + ConfigNode sought_kerbal = crew[kerbalidx]; + if (sought_kerbal.HasValue("totalDose")) + { + sought_kerbal.SetValue("totalDose", rad.ToString("E")); + } + else + { + sought_kerbal.AddValue("totalDose", rad.ToString("E")); + } + config.Save(persistentfile); + } + catch (Exception ex) + { + print(ex); } - return config; } - public static ConfigNode getTechTreeFile() { - ConfigNode config = ConfigNode.Load(PluginHelper.getTechTreeFilePath()); + public static ConfigNode getPluginSaveFile() + { + ConfigNode config = ConfigNode.Load(PluginHelper.getPluginSaveFilePath()); + if (config == null) + { + config = new ConfigNode(); + config.AddValue("writtenat", DateTime.Now.ToString()); + config.Save(PluginHelper.getPluginSaveFilePath()); + } return config; } - public static ConfigNode getNewTechTreeFile() { - ConfigNode config = ConfigNode.Load(PluginHelper.getNewTechTreeFilePath()); + public static ConfigNode getPluginSettingsFile() + { + ConfigNode config = ConfigNode.Load(PluginHelper.getPluginSettingsFilePath()); + if (config == null) + { + config = new ConfigNode(); + } return config; } - public static bool lineOfSightToSun(Vessel vess) { - Vector3d a = vess.transform.position; + public static bool lineOfSightToSun(Vessel vess) + { + Vector3d a = PluginHelper.getVesselPos(vess); Vector3d b = FlightGlobals.Bodies[0].transform.position; - foreach (CelestialBody referenceBody in FlightGlobals.Bodies) { - if (referenceBody.flightGlobalsIndex == 0) { // the sun should not block line of sight to the sun + foreach (CelestialBody referenceBody in FlightGlobals.Bodies) + { + if (referenceBody.flightGlobalsIndex == 0) + { // the sun should not block line of sight to the sun continue; } Vector3d refminusa = referenceBody.position - a; Vector3d bminusa = b - a; - if (Vector3d.Dot(refminusa, bminusa) > 0) { - if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { + if (Vector3d.Dot(refminusa, bminusa) > 0) + { + if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) + { Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; - if (tang.magnitude < referenceBody.Radius) { + if (tang.magnitude < referenceBody.Radius) + { return false; } } @@ -208,216 +237,280 @@ public static bool lineOfSightToSun(Vessel vess) { return true; } - public static float getMaxAtmosphericAltitude(CelestialBody body) { - if (!body.atmosphere) { - return 0; - } - return (float) -body.atmosphereScaleHeight * 1000.0f * Mathf.Log(1e-6f); - } - - public static float getScienceMultiplier(int refbody, bool landed) { - float multiplier = 1; - - if (refbody == REF_BODY_DUNA || refbody == REF_BODY_EVE || refbody == REF_BODY_IKE || refbody == REF_BODY_GILLY) { - multiplier = 5f; - } else if (refbody == REF_BODY_MUN || refbody == REF_BODY_MINMUS) { - multiplier = 2.5f; - } else if (refbody == REF_BODY_JOOL || refbody == REF_BODY_TYLO || refbody == REF_BODY_POL || refbody == REF_BODY_BOP) { - multiplier = 10f; - } else if (refbody == REF_BODY_LAYTHE || refbody == REF_BODY_VALL) { - multiplier = 12f; - } else if (refbody == REF_BODY_EELOO || refbody == REF_BODY_MOHO) { - multiplier = 20f; - } else if (refbody == REF_BODY_DRES) { - multiplier = 7.5f; - } else if (refbody == REF_BODY_KERBIN) { - multiplier = 1f; - } else if (refbody == REF_BODY_KERBOL) { - multiplier = 15f; - }else { - multiplier = 0f; - } - - if (landed) { - if (refbody == REF_BODY_TYLO) { - multiplier = multiplier*3f; - } else if (refbody == REF_BODY_EVE) { - multiplier = multiplier*2.5f; - } else { - multiplier = multiplier*2f; - } - } + public static Vector3d getVesselPos(Vessel v) + { + Vector3d v1p = (v.state == Vessel.State.ACTIVE) ? (Vector3d)v.transform.position : v.GetWorldPos3D(); + return v1p; + } + + public static float getMaxAtmosphericAltitude(CelestialBody body) + { + if (!body.atmosphere) + { + return 0; + } + return (float)-body.atmosphereScaleHeight * 1000.0f * Mathf.Log(1e-6f); + } + + public static float getScienceMultiplier(int refbody, bool landed) + { + float multiplier = 1; + + if (refbody == REF_BODY_DUNA || refbody == REF_BODY_EVE || refbody == REF_BODY_IKE || refbody == REF_BODY_GILLY) + { + multiplier = 5f; + } + else if (refbody == REF_BODY_MUN || refbody == REF_BODY_MINMUS) + { + multiplier = 2.5f; + } + else if (refbody == REF_BODY_JOOL || refbody == REF_BODY_TYLO || refbody == REF_BODY_POL || refbody == REF_BODY_BOP) + { + multiplier = 10f; + } + else if (refbody == REF_BODY_LAYTHE || refbody == REF_BODY_VALL) + { + multiplier = 12f; + } + else if (refbody == REF_BODY_EELOO || refbody == REF_BODY_MOHO) + { + multiplier = 20f; + } + else if (refbody == REF_BODY_DRES) + { + multiplier = 7.5f; + } + else if (refbody == REF_BODY_KERBIN) + { + multiplier = 1f; + } + else if (refbody == REF_BODY_KERBOL) + { + multiplier = 15f; + } + else + { + multiplier = 0f; + } + + if (landed) + { + if (refbody == REF_BODY_TYLO) + { + multiplier = multiplier * 3f; + } + else if (refbody == REF_BODY_EVE) + { + multiplier = multiplier * 2.5f; + } + else + { + multiplier = multiplier * 2f; + } + } return multiplier; } - public static float getImpactorScienceMultiplier(int refbody) { + public static float getImpactorScienceMultiplier(int refbody) + { float multiplier = 1; - if (refbody == REF_BODY_DUNA || refbody == REF_BODY_EVE || refbody == REF_BODY_IKE || refbody == REF_BODY_GILLY) { + if (refbody == REF_BODY_DUNA || refbody == REF_BODY_EVE || refbody == REF_BODY_IKE || refbody == REF_BODY_GILLY) + { multiplier = 7f; - } else if (refbody == REF_BODY_MUN || refbody == REF_BODY_MINMUS) { + } + else if (refbody == REF_BODY_MUN || refbody == REF_BODY_MINMUS) + { multiplier = 5f; - } else if (refbody == REF_BODY_JOOL || refbody == REF_BODY_TYLO || refbody == REF_BODY_POL || refbody == REF_BODY_BOP) { + } + else if (refbody == REF_BODY_JOOL || refbody == REF_BODY_TYLO || refbody == REF_BODY_POL || refbody == REF_BODY_BOP) + { multiplier = 9f; - } else if (refbody == REF_BODY_LAYTHE || refbody == REF_BODY_VALL) { + } + else if (refbody == REF_BODY_LAYTHE || refbody == REF_BODY_VALL) + { multiplier = 11f; - } else if (refbody == REF_BODY_EELOO || refbody == REF_BODY_MOHO) { + } + else if (refbody == REF_BODY_EELOO || refbody == REF_BODY_MOHO) + { multiplier = 14f; - } else if (refbody == REF_BODY_DRES) { + } + else if (refbody == REF_BODY_DRES) + { multiplier = 8f; - } else if (refbody == REF_BODY_KERBIN) { + } + else if (refbody == REF_BODY_KERBIN) + { multiplier = 0.5f; - } else { + } + else + { multiplier = 0f; } return multiplier; } - public static string getFormattedPowerString(double power) { - if (power > 1000) { - if (power > 20000) { + public static string getFormattedPowerString(double power) + { + if (power > 1000) + { + if (power > 20000) + { return (power / 1000).ToString("0") + " GW"; - } else { + } + else + { return (power / 1000).ToString("0.0") + " GW"; } - } else { - if (power > 20) { + } + else + { + if (power > 20) + { return power.ToString("0") + " MW"; - } else { - if (power > 1) { - return power.ToString("0.0") + " MW"; - } else { - return (power * 1000).ToString("0.0") + " KW"; - } } - } - } - - public void Start() { - tech_window = new TechUpdateWindow(); - tech_checked = false; - - if (!tech_checked) { - ConfigNode tech_nodes = PluginHelper.getTechTreeFile(); - ConfigNode new_tech_nodes = PluginHelper.getNewTechTreeFile(); - - if (tech_nodes != null) { - if (tech_nodes.HasNode("VERSION")) { - ConfigNode version_node = tech_nodes.GetNode("VERSION"); - if (version_node.HasValue("id")) { - installed_tech_tree_version_id = Convert.ToInt32(version_node.GetValue("id")); - } + else + { + if (power > 1) + { + return power.ToString("0.0") + " MW"; } - } - if (new_tech_nodes != null) { - if (new_tech_nodes.HasNode("VERSION")) { - ConfigNode version_node2 = new_tech_nodes.GetNode("VERSION"); - if (version_node2.HasValue("id")) { - new_tech_tree_version_id = Convert.ToInt32(version_node2.GetValue("id")); - } + else + { + return (power * 1000).ToString("0.0") + " KW"; } } - if (new_tech_tree_version_id > installed_tech_tree_version_id) { - tech_window.Show(); - } - - tech_checked = true; } } - public void Update() { + public void Update() + { this.enabled = true; AvailablePart intakePart = PartLoader.getPartInfoByName("CircularIntake"); - if (intakePart != null) { - if (intakePart.partPrefab.FindModulesImplementing().Count <= 0 && PartLoader.Instance.IsReady()) { + if (intakePart != null) + { + if (intakePart.partPrefab.FindModulesImplementing().Count <= 0 && PartLoader.Instance.IsReady()) + { plugin_init = false; } } - if (!resources_configured) { + if (!resources_configured) + { ConfigNode plugin_settings = GameDatabase.Instance.GetConfigNode("WarpPlugin/WarpPluginSettings/WarpPluginSettings"); - if (plugin_settings != null) { - if (plugin_settings.HasValue("ThermalMechanicsDisabled")) { + if (plugin_settings != null) + { + if (plugin_settings.HasValue("ThermalMechanicsDisabled")) + { PluginHelper.is_thermal_dissip_disabled = bool.Parse(plugin_settings.GetValue("ThermalMechanicsDisabled")); - Debug.Log("[KSP Interstellar] ThermalMechanics set to enabled: " + !PluginHelper.is_thermal_dissip_disabled); + Debug.Log("[KSP Interstellar] ThermalMechanics set to : " + + (!PluginHelper.is_thermal_dissip_disabled).ToString()); + } + if (plugin_settings.HasValue("SolarPanelClampedHeating")) + { + PluginHelper.is_panel_heating_clamped = bool.Parse(plugin_settings.GetValue("SolarPanelClampedHeating")); + Debug.Log("[KSP Interstellar] Solar panels clamped heating set to enabled: " + + PluginHelper.is_panel_heating_clamped.ToString()); + } + if (plugin_settings.HasValue("RecieverTempTweak")) + { + PluginHelper.is_reciever_temp_tweaked = bool.Parse(plugin_settings.GetValue("RecieverTempTweak")); + Debug.Log("[KSP Interstellar] Microwave reciever CoreTemp tweak is set to enabled: " + + PluginHelper.is_reciever_temp_tweaked.ToString()); } resources_configured = true; - } else { + } + else + { showInstallationErrorMessage(); } - + } - - if (!plugin_init) { + + if (!plugin_init) + { gdb = GameDatabase.Instance; - plugin_init = true; + plugin_init = true; AvailablePart kerbalRadiationPart = PartLoader.getPartInfoByName("kerbalEVA"); - if (kerbalRadiationPart.partPrefab.Modules != null) { - if (kerbalRadiationPart.partPrefab.FindModulesImplementing().Count == 0) { + if (kerbalRadiationPart.partPrefab.Modules != null) + { + if (kerbalRadiationPart.partPrefab.FindModulesImplementing().Count == 0) + { kerbalRadiationPart.partPrefab.gameObject.AddComponent(); } - } else { + } + else + { kerbalRadiationPart.partPrefab.gameObject.AddComponent(); } - List available_parts = PartLoader.LoadedPartsList; - foreach (AvailablePart available_part in available_parts) { - Part prefab_available_part = available_part.partPrefab; - try { - if(prefab_available_part.Modules != null) { - - if(prefab_available_part.FindModulesImplementing().Count > 0) { - ModuleResourceIntake intake = prefab_available_part.Modules["ModuleResourceIntake"] as ModuleResourceIntake; - if(intake.resourceName == "IntakeAir") { - Type type = AssemblyLoader.GetClassByName(typeof(PartModule), "AtmosphericIntake"); - AtmosphericIntake pm = null; - if(type != null) { - pm = prefab_available_part.gameObject.AddComponent(type) as AtmosphericIntake; - prefab_available_part.Modules.Add(pm); - pm.area = intake.area*intake.unitScalar*intake.maxIntakeSpeed/20; - } + List available_parts = PartLoader.LoadedPartsList; + foreach (AvailablePart available_part in available_parts) + { + Part prefab_available_part = available_part.partPrefab; + try + { + if (prefab_available_part.Modules != null) + { + + if (prefab_available_part.FindModulesImplementing().Count > 0) + { + ModuleResourceIntake intake = prefab_available_part.Modules["ModuleResourceIntake"] as ModuleResourceIntake; + if (intake.resourceName == "IntakeAir") + { + var pm = prefab_available_part.gameObject.AddComponent(); + prefab_available_part.Modules.Add(pm); + pm.area = intake.area * intake.unitScalar * intake.maxIntakeSpeed / 20; PartResource intake_air_resource = prefab_available_part.Resources["IntakeAir"]; if (intake_air_resource != null && !prefab_available_part.Resources.Contains(InterstellarResourcesConfiguration.Instance.IntakeAtmosphere)) { - ConfigNode node = new ConfigNode("RESOURCE"); + ConfigNode node = new ConfigNode("RESOURCE"); node.AddValue("name", InterstellarResourcesConfiguration.Instance.IntakeAtmosphere); - node.AddValue("maxAmount", intake_air_resource.maxAmount); - node.AddValue("amount", intake_air_resource.amount); - prefab_available_part.AddResource(node); - } - } + node.AddValue("maxAmount", intake_air_resource.maxAmount); + node.AddValue("amount", intake_air_resource.amount); + prefab_available_part.AddResource(node); + } + } - } + } - if (prefab_available_part.FindModulesImplementing().Count > 0) { + if (prefab_available_part.FindModulesImplementing().Count > 0) + { ModuleDeployableSolarPanel panel = prefab_available_part.Modules["ModuleDeployableSolarPanel"] as ModuleDeployableSolarPanel; - if (panel.chargeRate > 0) { + if (panel.chargeRate > 0) + { Type type = AssemblyLoader.GetClassByName(typeof(PartModule), "FNSolarPanelWasteHeatModule"); FNSolarPanelWasteHeatModule pm = null; - if (type != null) { + if (type != null) + { pm = prefab_available_part.gameObject.AddComponent(type) as FNSolarPanelWasteHeatModule; prefab_available_part.Modules.Add(pm); } } - - - if (!prefab_available_part.Resources.Contains("WasteHeat") && panel.chargeRate > 0) { + + + if (!prefab_available_part.Resources.Contains("WasteHeat") && panel.chargeRate > 0) + { ConfigNode node = new ConfigNode("RESOURCE"); node.AddValue("name", "WasteHeat"); node.AddValue("maxAmount", panel.chargeRate * 100); node.AddValue("amount", 0); PartResource pr = prefab_available_part.AddResource(node); - if (available_part.resourceInfo != null && pr != null) { - if (available_part.resourceInfo.Length == 0) { + if (available_part.resourceInfo != null && pr != null) + { + if (available_part.resourceInfo.Length == 0) + { available_part.resourceInfo = pr.resourceName + ":" + pr.amount + " / " + pr.maxAmount; - } else { + } + else + { available_part.resourceInfo = available_part.resourceInfo + "\n" + pr.resourceName + ":" + pr.amount + " / " + pr.maxAmount; } } @@ -425,62 +518,73 @@ public void Update() { } - if(prefab_available_part.FindModulesImplementing().Count() > 0) { - available_part.moduleInfo = prefab_available_part.FindModulesImplementing().First().GetInfo(); + if (prefab_available_part.FindModulesImplementing().Count() > 0) + { + available_part.moduleInfo = prefab_available_part.FindModulesImplementing().First().GetInfo(); available_part.moduleInfos.RemoveAll(modi => modi.moduleName == "Engine"); AvailablePart.ModuleInfo mod_info = available_part.moduleInfos.Where(modi => modi.moduleName == "Electric Engine Controller").First(); mod_info.moduleName = "Electric Engine"; - } + } - if(prefab_available_part.FindModulesImplementing().Count() > 0) { - available_part.moduleInfo = prefab_available_part.FindModulesImplementing().First().GetInfo(); + if (prefab_available_part.FindModulesImplementing().Count() > 0) + { + available_part.moduleInfo = prefab_available_part.FindModulesImplementing().First().GetInfo(); available_part.moduleInfos.RemoveAll(modi => modi.moduleName == "Engine"); AvailablePart.ModuleInfo mod_info = available_part.moduleInfos.Where(modi => modi.moduleName == "FNNozzle Controller").First(); mod_info.moduleName = "Thermal Nozzle"; - } - - if(prefab_available_part.CrewCapacity > 0 || prefab_available_part.FindModulesImplementing().Count > 0) { - Type type = AssemblyLoader.GetClassByName(typeof(PartModule), "FNModuleRadiation"); - FNModuleRadiation pm = null; - if(type != null) { - pm = prefab_available_part.gameObject.AddComponent(type) as FNModuleRadiation; - prefab_available_part.Modules.Add(pm); - double rad_hardness = prefab_available_part.mass /(Math.Max(prefab_available_part.CrewCapacity,0.1))*7.5; - pm.rad_hardness = rad_hardness; + } + + if (prefab_available_part.CrewCapacity > 0 || prefab_available_part.FindModulesImplementing().Count > 0) + { + Type type = AssemblyLoader.GetClassByName(typeof(PartModule), "FNModuleRadiation"); + FNModuleRadiation pm = null; + if (type != null) + { + pm = prefab_available_part.gameObject.AddComponent(type) as FNModuleRadiation; + prefab_available_part.Modules.Add(pm); + double rad_hardness = prefab_available_part.mass / (Math.Max(prefab_available_part.CrewCapacity, 0.1)) * 7.5; + pm.rad_hardness = rad_hardness; AvailablePart.ModuleInfo minfo = new AvailablePart.ModuleInfo(); minfo.moduleName = "Radiation Status"; minfo.info = pm.GetInfo(); available_part.moduleInfos.Add(minfo); - } + } print("Adding ModuleRadiation to " + prefab_available_part.name); - } - } - }catch(Exception ex) { - if (prefab_available_part != null) { + } + } + } + catch (Exception ex) + { + if (prefab_available_part != null) + { print("[KSP Interstellar] Exception caught adding to: " + prefab_available_part.name + " part: " + ex.ToString()); - } else { + } + else + { print("[KSP Interstellar] Exception caught adding to unknown module"); } - } + } + + + } + } + //Destroy (this); + } + + protected static bool warning_displayed = false; - } - } + public static void showInstallationErrorMessage() + { + if (!warning_displayed) + { + PopupDialog.SpawnPopupDialog("KSP Interstellar Installation Error", "KSP Interstellar is unable to detect files required for proper functioning. Please make sure that this mod has been installed to [Base KSP directory]/GameData/WarpPlugin.", "OK", false, HighLogic.Skin); + warning_displayed = true; + } + } - //Destroy (this); - } - - protected static bool warning_displayed = false; - public static void showInstallationErrorMessage() { - if (!warning_displayed) { - PopupDialog.SpawnPopupDialog ("KSP Interstellar Installation Error", "KSP Interstellar is unable to detect files required for proper functioning. Please make sure that this mod has been installed to [Base KSP directory]/GameData/WarpPlugin.", "OK", false, HighLogic.Skin); - warning_displayed = true; - } - } - - } } diff --git a/FNPlugin/ReactorFuel.cs b/FNPlugin/ReactorFuel.cs index 9a0496ff..22ee0155 100644 --- a/FNPlugin/ReactorFuel.cs +++ b/FNPlugin/ReactorFuel.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class ReactorFuel { diff --git a/FNPlugin/SabatierReactor.cs b/FNPlugin/SabatierReactor.cs index 173ce0d9..f986a830 100644 --- a/FNPlugin/SabatierReactor.cs +++ b/FNPlugin/SabatierReactor.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/ScienceModule.cs b/FNPlugin/ScienceModule.cs index ab4b02ab..9a75803c 100644 --- a/FNPlugin/ScienceModule.cs +++ b/FNPlugin/ScienceModule.cs @@ -1,11 +1,11 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class ScienceModule : ModuleModableScienceGenerator, ITelescopeController diff --git a/FNPlugin/TechUpdateWindow.cs b/FNPlugin/TechUpdateWindow.cs deleted file mode 100644 index 4acd2722..00000000 --- a/FNPlugin/TechUpdateWindow.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace FNPlugin { - public class TechUpdateWindow { - protected bool render_window = false; - protected Rect windowPosition = new Rect(20, 20, 350, 100); - protected int windowID = 983479; - protected GUIStyle bold_label; - - public TechUpdateWindow() { - RenderingManager.AddToPostDrawQueue(0, OnGUI); - } - - public void Show() { - render_window = true; - } - - private void OnGUI() { - if (render_window) { - windowPosition = GUILayout.Window(windowID, windowPosition, Window, "Interstellar Tech Tree Update"); - } - } - - private void Window(int windowID) { - bold_label = new GUIStyle(GUI.skin.label); - bold_label.fontStyle = FontStyle.Bold; - if (GUI.Button(new Rect(windowPosition.width - 20, 2, 18, 18), "x")) { - render_window = false; - } - GUILayout.BeginVertical(); - GUILayout.BeginHorizontal(); - GUILayout.Label("An Update to the Interstellar Tech Tree is Available",bold_label,GUILayout.ExpandWidth(true)); - GUILayout.EndHorizontal(); - GUILayout.BeginHorizontal(); - if (GUILayout.Button("Install Update",GUILayout.Width(160))) { - UpdateTechTree(); - render_window = false; - } - if (GUILayout.Button("Dismiss", GUILayout.Width(160))) { - render_window = false; - } - GUILayout.EndHorizontal(); - GUILayout.EndVertical(); - } - - protected void UpdateTechTree() { - ConfigNode new_tech_nodes = PluginHelper.getNewTechTreeFile(); - if (new_tech_nodes != null) { - new_tech_nodes.Save(PluginHelper.getTechTreeFilePath()); - PopupDialog.SpawnPopupDialog("Restart KSP", "Changes to the tech tree have been applied, please restart KSP before continuing.", "OK", false, GUI.skin); - } - } - } -} diff --git a/FNPlugin/UF4Ammonolysiser.cs b/FNPlugin/UF4Ammonolysiser.cs index 32f08b92..805b1946 100644 --- a/FNPlugin/UF4Ammonolysiser.cs +++ b/FNPlugin/UF4Ammonolysiser.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/VanAllen.cs b/FNPlugin/VanAllen.cs index c09600f9..c0ee8279 100644 --- a/FNPlugin/VanAllen.cs +++ b/FNPlugin/VanAllen.cs @@ -1,10 +1,10 @@ -extern alias ORSv1_4_2; +extern alias ORSv1_4_3; using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ORSv1_4_2::OpenResourceSystem; +using ORSv1_4_3::OpenResourceSystem; namespace FNPlugin { class VanAllen { diff --git a/FNPlugin/VesselExtensions.cs b/FNPlugin/VesselExtensions.cs index 3c5830a3..9e3bbc2b 100644 --- a/FNPlugin/VesselExtensions.cs +++ b/FNPlugin/VesselExtensions.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/FNPlugin/VesselMicrowavePersistence.cs b/FNPlugin/VesselMicrowavePersistence.cs index 80608380..8441fa0a 100644 --- a/FNPlugin/VesselMicrowavePersistence.cs +++ b/FNPlugin/VesselMicrowavePersistence.cs @@ -1,47 +1,49 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace FNPlugin { - class VesselMicrowavePersistence { - Vessel vessel; - double nuclear_power; - double solar_power; - - public VesselMicrowavePersistence(Vessel vessel) { - this.vessel = vessel; - } - - public double getAvailablePower() { - double power = 0; - if (PluginHelper.lineOfSightToSun(vessel) && solar_power > 0) { - double inv_square_mult = Math.Pow(Vector3d.Distance(vessel.transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2) / Math.Pow(Vector3d.Distance(FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBIN].transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2); - power = nuclear_power + solar_power/inv_square_mult; - } else { - power = nuclear_power; - } - return power; - } - - public double getNuclearPower() { - return nuclear_power; - } - - public double getSolarPower() { - return solar_power; - } - - public Vessel getVessel() { - return vessel; - } - - public void setNuclearPower(double nuclear_power) { - this.nuclear_power = nuclear_power; - } - - public void setSolarPower(double solar_power) { - this.solar_power = solar_power; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FNPlugin { + class VesselMicrowavePersistence { + Vessel vessel; + double nuclear_power; + double solar_power; + + public VesselMicrowavePersistence(Vessel vessel) { + this.vessel = vessel; + } + + public double getAvailablePower() + { + Vector3d vessel_pos = PluginHelper.getVesselPos(vessel); + double power = 0; + if (PluginHelper.lineOfSightToSun(vessel) && solar_power > 0) { + double inv_square_mult = Math.Pow(Vector3d.Distance(vessel_pos, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2) / Math.Pow(Vector3d.Distance(FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBIN].transform.position, FlightGlobals.Bodies[PluginHelper.REF_BODY_KERBOL].transform.position), 2); + power = nuclear_power + solar_power/inv_square_mult; + } else { + power = nuclear_power; + } + return power; + } + + public double getNuclearPower() { + return nuclear_power; + } + + public double getSolarPower() { + return solar_power; + } + + public Vessel getVessel() { + return vessel; + } + + public void setNuclearPower(double nuclear_power) { + this.nuclear_power = nuclear_power; + } + + public void setSolarPower(double solar_power) { + this.solar_power = solar_power; + } + } +} diff --git a/FNPlugin/VesselRelayPersistence.cs b/FNPlugin/VesselRelayPersistence.cs index 1040a09d..ed7755e0 100644 --- a/FNPlugin/VesselRelayPersistence.cs +++ b/FNPlugin/VesselRelayPersistence.cs @@ -1,45 +1,45 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace FNPlugin { - class VesselRelayPersistence { - Vessel vessel; - bool relay; - - public VesselRelayPersistence(Vessel vessel) { - this.vessel = vessel; - } - - public bool isActive() { - return relay; - } - - public Vessel getVessel() { - return vessel; - } - - public void setActive(bool active) { - relay = active; - } - - public bool lineOfSightTo(Vessel vess) { - Vector3d a = vessel.transform.position; - Vector3d b = vess.transform.position; - foreach (CelestialBody referenceBody in FlightGlobals.Bodies) { - Vector3d refminusa = referenceBody.position - a; - Vector3d bminusa = b - a; - if (Vector3d.Dot(refminusa, bminusa) > 0) { - if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { - Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; - if (tang.magnitude < referenceBody.Radius) { - return false; - } - } - } - } - return true; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FNPlugin { + class VesselRelayPersistence { + Vessel vessel; + bool relay; + + public VesselRelayPersistence(Vessel vessel) { + this.vessel = vessel; + } + + public bool isActive() { + return relay; + } + + public Vessel getVessel() { + return vessel; + } + + public void setActive(bool active) { + relay = active; + } + + public bool lineOfSightTo(Vessel vess) { + Vector3d a = PluginHelper.getVesselPos(vessel); + Vector3d b = PluginHelper.getVesselPos(vess); + foreach (CelestialBody referenceBody in FlightGlobals.Bodies) { + Vector3d refminusa = referenceBody.position - a; + Vector3d bminusa = b - a; + if (Vector3d.Dot(refminusa, bminusa) > 0) { + if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { + Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; + if (tang.magnitude < referenceBody.Radius) { + return false; + } + } + } + } + return true; + } + } +} diff --git a/FNPlugin/WarpPlugin.csproj b/FNPlugin/WarpPlugin.csproj index ce9615ba..eb276719 100644 --- a/FNPlugin/WarpPlugin.csproj +++ b/FNPlugin/WarpPlugin.csproj @@ -1,151 +1,190 @@ - - - - - Debug - AnyCPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B} - Library - Properties - FNPlugin - Interstellar - v3.5 - 512 - 12.0.0 - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - C:\Games\Kerbal Space Program 0.25\KSP_Data\Managed\Assembly-CSharp.dll - - - - C:\Games\Kerbal Space Program 0.24\GameData\OpenResourceSystem\Plugins\OpenResourceSystem_1_4_2.dll - ORSv1_4_2 - - - - - - - - - False - C:\Games\Kerbal Space Program 0.25\KSP_Data\Managed\UnityEngine.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + AnyCPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B} + Library + Properties + FNPlugin + Interstellar + v3.5 + 512 + 12.0.0 + 2.0 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Games\Kerbal Space Program 0.90\GameData\WarpPlugin\Plugins\ + TRACE + prompt + 4 + + + bin\Release KSP 0.25\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + ..\..\..\..\..\Games\Kerbal Space Program 0.90\GameData\WarpPlugin\Plugins\ + DEBUG;TRACE + false + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + + False + ..\..\..\..\..\Games\Kerbal Space Program 0.90\KSP_Data\Managed\Assembly-CSharp.dll + False + + + False + ..\..\..\..\..\Games\Kerbal Space Program\KSP_Data\Managed\Assembly-CSharp.dll + False + + + ..\OpenResourceSystem\bin\$(Configuration)\OpenResourceSystem_1_4_3.dll + ORSv1_4_3 + False + + + + + + + + + False + ..\..\..\..\..\Games\Kerbal Space Program 0.90\GameData\000_Toolbar\Toolbar.dll + False + + + False + ..\..\..\..\..\Games\Kerbal Space Program\GameData\000_Toolbar\Toolbar.dll + False + + + False + ..\..\..\..\..\Games\Kerbal Space Program 0.90\KSP_Data\Managed\UnityEngine.dll + False + + + False + ..\..\..\..\..\Games\Kerbal Space Program\KSP_Data\Managed\UnityEngine.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FNPlugin/WarpPlugin.sln b/FNPlugin/WarpPlugin.sln deleted file mode 100644 index 3f24c1f1..00000000 --- a/FNPlugin/WarpPlugin.sln +++ /dev/null @@ -1,35 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2012 for Windows Desktop -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WarpPlugin", "WarpPlugin.csproj", "{AD686AF3-DDDC-4991-909F-EAD9C16C469B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenResourceSystem", "..\OpenResourceSystem\OpenResourceSystem.csproj", "{BCA16E74-23E5-4327-9D24-B908A8CE3836}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InterstellarToolbar", "..\InterstellarToolbar\InterstellarToolbar.csproj", "{E07DD2EF-6BDB-4519-92C3-6C9E2D944361}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release|Any CPU.Build.0 = Release|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release|Any CPU.Build.0 = Release|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = WarpPlugin.csproj - EndGlobalSection -EndGlobal diff --git a/FNPlugin/WaterElectroliser.cs b/FNPlugin/WaterElectroliser.cs index 1e15cb55..63dee633 100644 --- a/FNPlugin/WaterElectroliser.cs +++ b/FNPlugin/WaterElectroliser.cs @@ -1,5 +1,5 @@ -extern alias ORSv1_4_2; -using ORSv1_4_2::OpenResourceSystem; +extern alias ORSv1_4_3; +using ORSv1_4_3::OpenResourceSystem; using System; using System.Collections.Generic; diff --git a/GameData/WarpPlugin/KSPI_scale_fixes.cfg b/GameData/WarpPlugin/KSPI_scale_fixes.cfg new file mode 100644 index 00000000..5e79a364 --- /dev/null +++ b/GameData/WarpPlugin/KSPI_scale_fixes.cfg @@ -0,0 +1,68 @@ +// Corrections for Interstellar parts whose scale factors were affected by +// changes in KSP 0.25 + +@PART[AluminiumHybrid1]:AFTER[WarpPlugin] { + @MODEL { + @scale = 1, 1, 1 + } +} +//Magnetic Nozzle and ATTILA fixes by Jim Meillente + +@PART[KSPIMagneticNozzle1]:AFTER[WarpPlugin] +{ + @MODEL,0 + { + @scale = 0.825,0.7,0.825 + } + @node_stack_top = 0.0, 0.401, 0.0, 0.0, 1.0, 0.0, 1 + @node_stack_bottom = 0.0, -0.21, 0.0, 0.0, 1.0, 0.0, 1 +} +@PART[KSPIMagneticNozzle2]:AFTER[WarpPlugin] +{ + @MODEL,0 + { + @scale = 1.675,1.4,1.675 + } + @node_stack_top = 0.0, 0.80, 0.0, 0.0, 1.0, 0.0, 2 + @node_stack_bottom = 0.0, -0.50, 0.0, 0.0, 1.0, 0.0, 2 +} +@PART[KSPIMagneticNozzle3]:AFTER[WarpPlugin] +{ + @MODEL,0 + { + @scale = 2.5,2.1,2.5 + } + @node_stack_top = 0.0, 1.205, 0.0, 0.0, 1.0, 0.0, 3 + @node_stack_bottom = 0.0, -0.75, 0.0, 0.0, 1.0, 0.0, 3 +} + +@PART[FNSmallerAugmentedArcjet]:AFTER[WarpPlugin] +{ + @MODEL,0 + { + @scale = 0.825,1.18,0.825 + } +} +@PART[FNSmallAugmentedArcjet]:AFTER[WarpPlugin] +{ + @MODEL,0 + { + @scale = 0.80,0.55,0.80 + } +} + +@PART[BigXenonTank]:AFTER[WarpPlugin] { + @MODEL { + @scale = 1, 1, 1 + } + @scale = 1 + @rescaleFactor = 4 +} + +@PART[FNDeuteriumCryostat2]:AFTER[WarpPlugin] { + // If I subtract this tank's 18,000 deuterium and the 1.25m tank's 2,250 + // tritium from the configured cost, I get √2,350 empty cost. + // This figure is calculated to give the same √2,350 empty cost using the + // correct 18,000 tritium. + @cost = 41,486,042.8 +} diff --git a/GameData/WarpPlugin/tree.cfg b/GameData/WarpPlugin/KSPI_techtree_0.25.cfg similarity index 95% rename from GameData/WarpPlugin/tree.cfg rename to GameData/WarpPlugin/KSPI_techtree_0.25.cfg index 68e6421b..ba9dc58a 100644 --- a/GameData/WarpPlugin/tree.cfg +++ b/GameData/WarpPlugin/KSPI_techtree_0.25.cfg @@ -1,1220 +1,1221 @@ -VERSION -{ - id = 1 -} - -NODE -{ - name = newnode_7144 - techID = interstellarTechFusionPower - pos = -404.5,1175,-18 - icon = NUCLEARPROPULSION - cost = 3000 - title = Basic Nuclear Fusion - description = This technology represents the first steps into fusion power using large reactors compressing a plasma with large magnets or initiatiating the reaction with tiny quantities of Antimatter. - anyParent = False - hideIfEmpty = False - parents = node6_nuclearPropulsion,node7_metaMaterials - PARTS - { - name = FNFissionFusionCatReactor - name = FusionReactor250 - name = FusionReactor375 - - } -} -NODE -{ - name = newnode_71440 - techID = interstellarTechFusionPower2 - pos = -321,1063.667,-17 - icon = NUCLEARPROPULSION - cost = 3000 - title = Advanced Fusion Power - description = The development of Inertial Confinement fusion technology allows the miniaturisation of fusion power as well as the production of massive new engines that really unlock rapid transit throughout the solar system. - anyParent = False - hideIfEmpty = False - parents = newnode_7144 - PARTS - { - name = FusionReactor0625 - name = FusionReactor125 - name = vista - } -} -NODE -{ - name = newnode_9820 - techID = interstellarTechAccelerator - pos = -203.1667,618.3334,-6 - icon = EXPERIMENTALSCIENCE - cost = 2000 - title = Particle Accelerators - description = Particle accelerators provide the basis for antimatter technology, allowing the first experiments with respect to its capture and storage. - anyParent = False - hideIfEmpty = False - parents = node7_advScienceTech - PARTS - { - name = AntimatterCollector - name = AntimatterTank125 - name = AntimatterTank250 - name = AntimatterTank375 - } -} -NODE -{ - name = newnode_5951 - techID = interstellarTechAntimatterPower - pos = -205.3333,952.3334,-5 - icon = EXPERIMENTALELECTRICS - cost = 4000 - title = Antimatter Power - description = Not so much a new method of power production as energy storage, but the energy density of the fuel cannot be rivalled. - anyParent = False - hideIfEmpty = False - parents = node8_experimentalElectrics,newnode_9820,newnode_71440 - PARTS - { - name = AntimatterReactor125 - name = AntimatterReactor250 - name = AntimatterReactor375 - } -} -NODE -{ - name = newnode_8234 - techID = interstellarTechUHEPhysics - pos = -70.5,952.3334,-8 - icon = EXPERIMENTALSCIENCE - cost = 10000 - title = Ultra-High Energy Physics - description = Probing extremely high energy levels has yielded the keys to the production of Exotic Matter, allowing the production of novel new technologies previously thought impossible. - anyParent = False - hideIfEmpty = False - parents = newnode_5951 - PARTS - { - name = WarpDrive - name = WarpDrive2 - name = WarpDrive3 - } -} -NODE -{ - name = node8_nanolathing - techID = nanolathing - pos = -475.6188,1039.445,-1 - icon = NANOLATHING - cost = 1000 - title = Nanolathing - description = The very latest in construction technology. - anyParent = False - hideIfEmpty = True - parents = node7_composites - PARTS - { - } -} -NODE -{ - name = node8_automation - techID = automation - pos = -475.6188,796.7432,-1 - icon = AUTOMATION - cost = 1000 - title = Automation - description = We can't think of anything that could go wrong with letting an experimental AI handle every aspect of a mission. - anyParent = False - hideIfEmpty = True - parents = node7_advUnmanned - PARTS - { - name = computerCore - } -} -NODE -{ - name = node8_robotics - techID = robotics - pos = -475.6188,734.037,-1 - icon = ROBOTICS - cost = 1000 - title = Robotics - description = The rumours of robot-led world domination are greatly exaggerated. - anyParent = False - hideIfEmpty = True - parents = node7_advUnmanned - PARTS - { - } -} -NODE -{ - name = node8_experimentalMotors - techID = experimentalMotors - pos = -475.6188,500,-1 - icon = EXPERIMENTALMOTORS - cost = 1000 - title = Experimental Motors - description = The latest breakthroughs that are driving motor technology forwards, and in reverse, and steering too. - anyParent = False - hideIfEmpty = True - parents = node7_advancedMotors - PARTS - { - } -} -NODE -{ - name = node8_experimentalScience - techID = experimentalScience - pos = -475.6188,574.0369,-1 - icon = EXPERIMENTALSCIENCE - cost = 1000 - title = Experimental Science - description = Explore novel fields of science that we didn't even know were there. - anyParent = False - hideIfEmpty = True - parents = node7_advScienceTech - PARTS - { - } -} -NODE -{ - name = node8_experimentalAerodynamics - techID = experimentalAerodynamics - pos = -475.6188,970.0212,-1 - icon = EXPERIMENTALAERODYNAMICS - cost = 1000 - title = Experimental Aerodynamics - description = Winged flight technology is soaring to unprecendented heights. It could even be said that it's properly taking off now. - anyParent = False - hideIfEmpty = True - parents = node7_heavyAerodynamics - PARTS - { - } -} -NODE -{ - name = node8_experimentalElectrics - techID = experimentalElectrics - pos = -375.6188,671.9929,-1 - icon = EXPERIMENTALELECTRICS - cost = 1000 - title = Experimental Electrics - description = The very latest in electrical systems technology. Our engineers are buzzing with excitement over it. They also seem to glow in the dark now. Fascinating! - anyParent = False - hideIfEmpty = True - parents = node7_specializedElectrics - PARTS - { - name = microwaveThermalEnergyReceiverL - name = microwaveThermalEnergyReceiverM - name = microwaveThermalEnergyReceiverS - name = phasedArray1 - } -} -NODE -{ - name = node8_aerospaceTech - techID = aerospaceTech - pos = -475.6188,897.4948,-1 - icon = AEROSPACETECH - cost = 1000 - title = Aerospace Tech - description = The absolute cutting-edge in aerospace technology. Quite literally, some of those edges are very sharp. Handle with care. - anyParent = False - hideIfEmpty = True - parents = node7_hypersonicFlight - PARTS - { - } -} -NODE -{ - name = node8_experimentalRocketry - techID = experimentalRocketry - pos = -475.6188,1250.797,-1 - icon = EXPERIMENTALROCKETRY - cost = 1000 - title = Experimental Rocketry - description = Don't take "experimental" lightly. - anyParent = False - hideIfEmpty = True - parents = node7_veryHeavyRocketry,node7_metaMaterials - PARTS - { - } -} -NODE -{ - name = node6_advAerodynamics - techID = advAerodynamics - pos = -832.9991,938.7086,-1 - icon = ADVAERODYNAMICS - cost = 300 - title = Advanced Aerodynamics - description = Advances in fluid dynamics research technology have allowed development of a new set of streamlined aircraft components, And also these parts here. - anyParent = False - hideIfEmpty = False - parents = node5_supersonicFlight - PARTS - { - name = noseConeAdapter - name = standardNoseCone - name = wingConnector - name = structuralPylon - name = structuralWing - } -} -NODE -{ - name = node7_advScienceTech - techID = advScienceTech - pos = -635,574.0369,-1 - icon = ADVSCIENCETECH - cost = 550 - title = Advanced Science Tech - description = Scientific advancements allow new advanced technologies for advancing Science. - anyParent = True - hideIfEmpty = False - parents = node6_electronics,node6_fieldScience - PARTS - { - name = avionicsNoseCone - name = sensorGravimeter - name = scienceModule - name = FNGCMS - name = FNInlineRefinery - name = FNLCMS - name = FNRefinery - } -} -NODE -{ - name = node7_advUnmanned - techID = advUnmanned - pos = -635,765,-1 - icon = ADVUNMANNED - cost = 550 - title = Advanced Unmanned Tech - description = Improvements in remote control technology for a new generation of probe designs. - anyParent = True - hideIfEmpty = False - parents = node6_unmannedTech,node6_largeElectrics - PARTS - { - name = probeCoreCube - name = probeStackLarge - name = probeStackSmall - } -} -NODE -{ - name = node7_specializedElectrics - techID = specializedElectrics - pos = -635,671.9929,-1 - icon = SPECIALIZEDELECTRICS - cost = 550 - title = Specialized Electrics - description = Experience the warm glow of the latest in electrical technology. Figuratively, of course, and maybe also quite literally as well. Actually, try to avoid direct exposure. - anyParent = True - hideIfEmpty = False - parents = node6_largeElectrics,node6_electronics - PARTS - { - name = batteryBankLarge - name = rtg - name = microwaveReceiver - name = microwaveTransmitter - } -} -NODE -{ - name = node5_actuators - techID = actuators - pos = -1043,983.7364,-1 - icon = GENERIC - cost = 160 - title = Actuators - description = Perfecting the art of making things mobile, without the explicit use of explosives. Our engineers assure us, this is actually a good thing. - anyParent = True - hideIfEmpty = False - parents = node4_advConstruction - PARTS - { - name = GrapplingDevice - } -} -NODE -{ - name = node7_hypersonicFlight - techID = hypersonicFlight - pos = -635,897.2978,-1 - icon = HYPERSONICFLIGHT - cost = 550 - title = Hypersonic Flight - description = Push your aircraft to the upper limits of airspeed and sanity. - anyParent = True - hideIfEmpty = False - parents = node6_highAltitudeFlight,node6_advAerodynamics - PARTS - { - name = AdvancedCanard - name = CanardController - name = RAPIER - name = toroidalAerospike - name = atmosphericScoop - name = atmosphericScoop2 - name = radial.atmospheric.scoop1 - name = radial.atmospheric.scoop2 - } -} -NODE -{ - name = node7_advancedMotors - techID = advancedMotors - pos = -635,500,-1 - icon = ADVANCEDMOTORS - cost = 550 - title = Advanced Motors - description = Wheel technology is just rolling along now. You could even say our engineers are on a roll with it. - anyParent = False - hideIfEmpty = False - parents = node6_fieldScience - PARTS - { - name = roverWheel3 - name = wheelMed - } -} -NODE -{ - name = node6_advMetalWorks - techID = advMetalworks - pos = -832.9991,1038.498,-1 - icon = ADVMETALWORKS - cost = 300 - title = Advanced MetalWorks - description = These new construction techniques allow for craft designs that were considered insane not too long ago... and still are. But they're now possible! - anyParent = True - hideIfEmpty = False - parents = node5_actuators,node5_specializedConstruction - PARTS - { - name = trussPiece3x - name = dockingPort3 - name = stackPoint1 - name = stackQuadCoupler - name = stackSeparator - name = stackSeparatorBig - name = stackSeparatorMini - } -} -NODE -{ - name = node6_largeControl - techID = largeControl - pos = -832.9991,1113.887,-1 - icon = LARGECONTROL - cost = 300 - title = Large Control - description = A newer state-of-the-art in control technology. - anyParent = False - hideIfEmpty = False - parents = node5_specializedControl - PARTS - { - name = LaunchEscapeSystem - name = cupola - name = mk2LanderCabin - name = RCSTank1-2 - } -} -NODE -{ - name = node6_unmannedTech - techID = unmannedTech - pos = -832.9991,796.7432,-1 - icon = UNMANNEDTECH - cost = 300 - title = Unmanned Tech - description = Warning: May contain traces of sentience. - anyParent = True - hideIfEmpty = False - parents = node5_precisionEngineering - PARTS - { - name = probeCoreHex - name = probeCoreOcto2 - } -} -NODE -{ - name = node6_highAltitudeFlight - techID = highAltitudeFlight - pos = -832.9991,854.3693,-1 - icon = HIGHALTITUDEFLIGHT - cost = 300 - title = High Altitude Flight - description = New breakthroughs in engine and intake development to enable flying through the upper reaches of the atmosphere. - anyParent = True - hideIfEmpty = False - parents = node5_supersonicFlight,node4_advFlightControl - PARTS - { - name = turboFanEngine - name = smallHardpoint - name = ramAirIntake - name = ThermalTurbojet - name = ThermalTurbojet2 - name = warpAtmIntake - name = warpAtmIntake2 - } -} -NODE -{ - name = node6_electronics - techID = electronics - pos = -832.9991,614.4313,-1 - icon = ELECTRONICS - cost = 300 - title = Electronics - description = Hopefully these won't become obsolete in the next couple of months. - anyParent = False - hideIfEmpty = False - parents = node5_advElectrics - PARTS - { - name = commDish - name = sensorAccelerometer - name = FNDeuteriumCryostat - name = FNHeliumCryostat - name = FNIRTelescope - name = DTMagnetometer - name = sensorGammaRaySpectrometer - name = sensorGammaRaySpectrometer2 - } -} -NODE -{ - name = node6_largeElectrics - techID = largeElectrics - pos = -832.9991,671.9929,-1 - icon = LARGEELECTRICS - cost = 300 - title = Large Electrics - description = Maximize your energy production and storage potential by maximizing the size of the electrical components on your vessels. - anyParent = False - hideIfEmpty = False - parents = node5_advElectrics - PARTS - { - name = batteryBank - name = largeSolarPanel - name = Brayton2 - name = Brayton3 - name = Brayton1 - name = tinyBrayton - name = radiator0 - name = radiator1 - name = radiator2 - } -} -NODE -{ - name = node5_supersonicFlight - techID = supersonicFlight - pos = -1043,897.5981,-1 - icon = SUPERSONICFLIGHT - cost = 160 - title = Supersonic Flight - description = A new line of aircraft parts that allow for unprecedented maneuverability and speed. - anyParent = False - hideIfEmpty = False - parents = node4_aerodynamicSystems - PARTS - { - name = deltaWing - name = mk2Fuselage - name = mk2SpacePlaneAdapter - name = nacelleBody - name = radialEngineBody - name = CircularIntake - } -} -NODE -{ - name = node7_veryHeavyRocketry - techID = veryHeavyRocketry - pos = -635,1250.411,-1 - icon = VERYHEAVYROCKETRY - cost = 550 - title = Very Heavy Rocketry - description = While ever-larger rockets may not be the answer every time, for all other times, we've developed these. - anyParent = True - hideIfEmpty = False - parents = node5_heavierRocketry,node6_largeControl - PARTS - { - name = Size3AdvancedEngine - name = size3Decoupler - name = Size3EngineCluster - name = Size3LargeTank - name = Size3MediumTank - name = Size3SmallTank - name = Size3to2Adapter - name = AluminiumHybrid1 - name = 375PureLiquidTank - } -} -NODE -{ - name = node6_ionPropulsion - techID = ionPropulsion - pos = -832.9991,731.5032,-1 - icon = IONPROPULSION - cost = 300 - title = Ion Propulsion - description = Turns out, it's not science fiction. - anyParent = False - hideIfEmpty = False - parents = node5_precisionEngineering,node5_advElectrics - PARTS - { - name = ionEngine - name = xenonTank - name = xenonTankRadial - name = FNSmallerAugmentedArcjet - name = FNSmallAugmentedArcjet - name = smallerMPD - name = smallMPD - name = MPD - name = BigXenonTank - } -} -NODE -{ - name = node6_nuclearPropulsion - techID = nuclearPropulsion - pos = -832.9991,1184.784,-1 - icon = NUCLEARPROPULSION - cost = 300 - title = Nuclear Propulsion - description = Nuclear engines don't burn fuel, they totally annihilate it. We just hope it doesn't begin any conflicts. - anyParent = False - hideIfEmpty = False - parents = node5_heavierRocketry,node5_specializedControl - PARTS - { - name = nuclearEngine - name = NuclearReactor375 - name = NuclearReactor250 - name = NuclearReactor0625 - name = NuclearReactor125 - name = FNPFissionReactor0625 - name = FNPFissionReactor125 - name = FNPFissionReactor250 - name = FNPFissionReactor375 - name = smallerThermalRocketNozzle - name = smallThermalRocketNozzle - name = ThermalRocketNozzle - name = bigThermalRocketNozzle - name = FNAntimatterBottle - name = HexCanDeutTritLarge - name = HexCanHe3Large - } -} -NODE -{ - name = node6_fieldScience - techID = fieldScience - pos = -832.9991,532.4777,-1 - icon = FIELDSCIENCE - cost = 300 - title = Field Science - description = Freedom to roam as far as curiosity will take you, or as long as batteries last. - anyParent = True - hideIfEmpty = False - parents = node5_advExploration,node5_advLanding - PARTS - { - name = seatExternalCmd - name = roverBody - name = roverWheel1 - name = roverWheel2 - } -} -NODE -{ - name = node7_composites - techID = composites - pos = -635,1038.984,-1 - icon = COMPOSITES - cost = 550 - title = Composites - description = Lightweight and strong! and don't worry, we're sure the glue will dry off in no time. - anyParent = False - hideIfEmpty = False - parents = node6_advMetalWorks - PARTS - { - name = structuralIBeam1 - name = structuralIBeam2 - name = structuralIBeam3 - name = structuralMiniNode - name = structuralPanel1 - name = structuralPanel2 - name = strutCube - name = strutOcto - } -} -NODE -{ - name = node7_heavyAerodynamics - techID = heavyAerodynamics - pos = -635,969.6069,-1 - icon = HEAVYAERODYNAMICS - cost = 550 - title = Heavy Aerodynamics - description = Advances in construction technology enabled new breakthroughs in aerospace materials. - anyParent = True - hideIfEmpty = False - parents = node6_advMetalWorks,node6_advAerodynamics - PARTS - { - name = rocketNoseCone - name = mark3Cockpit - name = mk3Fuselage - name = mk3spacePlaneAdapter - } -} -NODE -{ - name = node7_metaMaterials - techID = metaMaterials - pos = -635,1113.875,-1 - icon = METAMATERIALS - cost = 550 - title = Meta-Materials - description = An advancemement in spacecraft construction so revolutionary, you won't even mind that its naming was wildly inaccurate. - anyParent = True - hideIfEmpty = False - parents = node6_advMetalWorks,node6_largeControl - PARTS - { - name = adapterLargeSmallBi - name = adapterLargeSmallQuad - name = adapterLargeSmallTri - name = stationHub - name = dockingPortLarge - name = dockingPortLateral - name = SM-Solar-Sail - } -} -NODE -{ - name = node5_advLanding - techID = advLanding - pos = -1043,493.0854,-1 - icon = LANDING - cost = 160 - title = Advanced Landing - description = Further advances in landing devices, allowing for more controlled descents and a much higher number of parts still attached to the ship after touchdown. - anyParent = False - hideIfEmpty = False - parents = node4_landing - PARTS - { - name = landingLeg1-2 - name = parachuteDrogue - } -} -NODE -{ - name = node4_aerodynamicSystems - techID = aerodynamicSystems - pos = -1247,897.689,-1 - icon = AERODYNAMICSYSTEMS - cost = 90 - title = Aerodynamics - description = New breakthroughs from C7 Aerospace allow for new types of craft to be built. We're looking into hiring some of their engineers as well. - anyParent = True - hideIfEmpty = False - parents = node3_generalConstruction,node3_flightControl - PARTS - { - name = StandardCtrlSrf - name = airplaneTail - name = smallCtrlSrf - name = sweptWing - name = tailfin - name = JetEngine - name = MK1Fuselage - name = airScoop - } -} -NODE -{ - name = node5_specializedConstruction - techID = specializedConstruction - pos = -1043,1037.738,-1 - icon = SPECIALIZEDCONSTRUCTION - cost = 160 - title = Specialized Construction - description = Specialized construction techniques provide new ways of attaching things together, and detaching things on purpose. - anyParent = True - hideIfEmpty = False - parents = node4_advConstruction - PARTS - { - name = crewCabin - name = adapterSmallMiniShort - name = adapterSmallMiniTall - name = trussAdapter - name = dockingPort1 - name = dockingPort2 - name = stackBiCoupler - } -} -NODE -{ - name = node5_heavierRocketry - techID = heavierRocketry - pos = -1043,1250.411,-1 - icon = HEAVIERROCKETRY - cost = 160 - title = Heavier Rocketry - description = There may be an upper limit to how large a rocket can be built, but we're not there yet. - anyParent = True - hideIfEmpty = False - parents = node4_heavyRocketry,node4_fuelSystems - PARTS - { - name = Size2LFB - name = liquidEngine1-2 - name = fuelTank3-2 - name = 25PureLiquidTank - } -} -NODE -{ - name = node5_specializedControl - techID = specializedControl - pos = -1043,1113.71,-1 - icon = SPECIALIZEDCONTROL - cost = 160 - title = Specialized Control - description = A new state-of-the-art in control technology. - anyParent = True - hideIfEmpty = False - parents = node4_fuelSystems,node4_advConstruction - PARTS - { - name = asasmodule1-2 - name = landerCabinSmall - name = Mark1-2Pod - name = rcsTankRadialLong - name = linearRcs - name = parachuteLarge - } -} -NODE -{ - name = node5_advElectrics - techID = advElectrics - pos = -1043,671.9929,-1 - icon = ADVELECTRICS - cost = 160 - title = Advanced Electrics - description = We're fairly certain no one will ever need more than 64kw of power for anything. - anyParent = False - hideIfEmpty = False - parents = node4_electrics - PARTS - { - name = ksp.r.largeBatteryPack - name = solarPanels1 - name = solarPanels2 - name = solarPanels3 - name = solarPanels4 - name = circradiatorKT - name = circradiatorKT2 - name = circradiatorKT3 - name = LargeFlatRadiator - name = RadialRadiatorzzz - name = RadialRadiatorzzz2 - } -} -NODE -{ - name = node5_precisionEngineering - techID = precisionEngineering - pos = -1043,764.6053,-1 - icon = PRECISIONENGINEERING - cost = 160 - title = Precision Engineering - description = Precise engineering techniques allow for construction of ever smaller parts. - anyParent = True - hideIfEmpty = False - parents = node4_advFlightControl,node4_electrics - PARTS - { - name = microEngine - name = radialEngineMini - name = smallRadialEngine - name = miniFuelTank - name = rcsTankMini - name = toroidalFuelTank - name = stackDecouplerMini - } -} -NODE -{ - name = node5_advExploration - techID = advExploration - pos = -1043,580.8679,-1 - icon = ADVEXPLORATION - cost = 160 - title = Advanced Exploration - description = They are Self-Deploying Astronaut Mobility Enhancement Devices, I don't know what you mean by "ladders". - anyParent = True - hideIfEmpty = False - parents = node4_electrics,node4_spaceExploration - PARTS - { - name = sensorBarometer - name = telescopicLadder - name = telescopicLadderBay - } -} -NODE -{ - name = node4_fuelSystems - techID = fuelSystems - pos = -1247,1114.295,-1 - icon = FUELSYSTEMS - cost = 90 - title = Fuel Systems - description = Advancements towards a better understanding of how fuel flows through a rocket. - anyParent = True - hideIfEmpty = False - parents = node3_advRocketry,node3_generalConstruction - PARTS - { - name = liquidEngineMini - name = radialRCSTank - name = RCSFuelTank - name = fuelLine - name = RCSBlock - } -} -NODE -{ - name = node4_heavyRocketry - techID = heavyRocketry - pos = -1247,1250.411,-1 - icon = HEAVYROCKETRY - cost = 90 - title = Heavy Rocketry - description = The next logical step for rocketry technology is to just go bigger. - anyParent = False - hideIfEmpty = False - parents = node3_advRocketry - PARTS - { - name = MassiveBooster - name = engineLargeSkipper - name = liquidEngine2-2 - name = fuelTank1-2 - name = fuelTank2-2 - } -} -NODE -{ - name = node4_landing - techID = landing - pos = -1247,493,-1 - icon = ADVLANDING - cost = 90 - title = Landing - description = Our Engineers are nothing if not optimistic. - anyParent = False - hideIfEmpty = False - parents = node3_scienceTech - PARTS - { - name = miniLandingLeg - name = SmallGearBay - } -} -NODE -{ - name = node4_spaceExploration - techID = spaceExploration - pos = -1247,580.6476,-1 - icon = EVATECH - cost = 90 - title = Space Exploration - description = To boldly go where no green man has gone before. - anyParent = False - hideIfEmpty = False - parents = node3_scienceTech - PARTS - { - name = Large.Crewed.Lab - name = ladder1 - name = sensorThermometer - } -} -NODE -{ - name = node4_electrics - techID = electrics - pos = -1247,671.9929,-1 - icon = ELECTRICS - cost = 90 - title = Electrics - description = We did know about electricity before inventing space flight. The big breakthrough here was combining the two. - anyParent = True - hideIfEmpty = False - parents = node3_flightControl,node3_scienceTech - PARTS - { - name = batteryBankMini - name = solarPanels5 - name = spotLight1 - name = spotLight2 - } -} -NODE -{ - name = node4_advFlightControl - techID = advFlightControl - pos = -1247,796.7432,-1 - icon = ADVFLIGHTCONTROL - cost = 90 - title = Advanced Flight Control - description = The latest advancements in keeping the correct end of the ship pointing towards where you want it to go. - anyParent = False - hideIfEmpty = False - parents = node3_flightControl - PARTS - { - name = winglet3 - name = advSasModule - name = Mark2Cockpit - name = probeCoreOcto - } -} -NODE -{ - name = node4_advConstruction - techID = advConstruction - pos = -1247,1037.251,-1 - icon = ADVCONSTRUCTION - cost = 90 - title = Advanced Construction - description = New advances in construction make it possible to build larger than ever before. - anyParent = False - hideIfEmpty = False - parents = node3_generalConstruction - PARTS - { - name = fuelTank4-2 - name = Mk1FuselageStructural - name = decoupler1-2 - name = largeAdapter - name = largeAdapter2 - name = radialDecoupler1-2 - } -} -NODE -{ - name = node3_flightControl - techID = flightControl - pos = -1469.98,796.7432,-1 - icon = FLIGHTCONTROL - cost = 45 - title = Flight Control - description = Tumbling out of control may be fun, but our engineers insist there's more to rocket science than that. - anyParent = True - hideIfEmpty = False - parents = node2_stability,node2_survivability - PARTS - { - name = R8winglet - name = Mark1Cockpit - name = probeCoreSphere - name = sasModule - } -} -NODE -{ - name = node3_generalConstruction - techID = generalConstruction - pos = -1469.98,1037.423,-1 - icon = GENERALCONSTRUCTION - cost = 45 - title = General Construction - description = New equipment to help out in keeping things stable, especially useful when the size of the spacecraft defies the current bounds of sanity. - anyParent = True - hideIfEmpty = False - parents = node2_generalRocketry,node2_stability - PARTS - { - name = strutConnector - name = launchClamp1 - name = radialDecoupler2 - name = stackTriCoupler - } -} -NODE -{ - name = node3_scienceTech - techID = scienceTech - pos = -1469.98,580.6995,-1 - icon = SCIENCETECH - cost = 45 - title = Science Tech - description = We are going to ask all the big questions of the Universe... eventually. For now, we're starting with these. - anyParent = False - hideIfEmpty = False - parents = node2_survivability - PARTS - { - name = batteryPack - name = science.module - name = mediumDishAntenna - } -} -NODE -{ - name = node3_advRocketry - techID = advRocketry - pos = -1469.98,1184.784,-1 - icon = ADVROCKETRY - cost = 45 - title = Advanced Rocketry - description = A new step ahead in rocket technology. - anyParent = False - hideIfEmpty = False - parents = node2_generalRocketry - PARTS - { - name = radialLiquidEngine1-2 - name = fuelTank.long - } -} -NODE -{ - name = node2_stability - techID = stability - pos = -1693.861,896.566,-1 - icon = STABILITY - cost = 18 - title = Stability - description = Reaching for the stars starts with keeping our spacecraft pointed generally in the right direction. - anyParent = False - hideIfEmpty = False - parents = node1_basicRocketry - PARTS - { - name = noseCone - name = winglet - name = radialDecoupler - } -} -NODE -{ - name = node1_basicRocketry - techID = basicRocketry - pos = -1901.18,896.566,-1 - icon = BASICROCKETRY - cost = 5 - title = Basic Rocketry - description = How hard can Rocket Science be anyway? - anyParent = False - hideIfEmpty = False - parents = node0_start - PARTS - { - name = fuelTank - name = fuelTankSmallFlat - name = GooExperiment - name = stackDecoupler - } -} -NODE -{ - name = node2_survivability - techID = survivability - pos = -1732.888,699.7489,-1 - icon = SURVIVABILITY - cost = 15 - title = Survivability - description = The art and science of landing and walking away from it. - anyParent = False - hideIfEmpty = False - parents = node1_basicRocketry - PARTS - { - name = liquidEngine3 - name = landingLeg1 - name = parachuteRadial - } -} -NODE -{ - name = node2_generalRocketry - techID = generalRocketry - pos = -1652.237,1074.484,-1 - icon = GENERALROCKETRY - cost = 20 - title = General Rocketry - description = More engines, more fuel, more ambitious ideas. - anyParent = False - hideIfEmpty = False - parents = node1_basicRocketry - PARTS - { - name = liquidEngine2 - name = sepMotor1 - name = solidBooster1-1 - } -} -NODE -{ - name = node0_start - techID = start - pos = -2022.448,896.566,-1 - icon = START - cost = 0 - title = Start - description = The technology we started out with. - anyParent = False - hideIfEmpty = False - parents = - PARTS - { - name = mk1pod - name = liquidEngine - name = solidBooster - name = fuelTankSmall - name = trussPiece1x - name = longAntenna - name = parachuteSingle - name = FNAmmoniaTank - name = FNLiquidWaterTank - name = HexCanLithium - name = HexCanThoriumFl4 - name = HexCanUraniumFl6 - name = HexCanUraniumN - name = AntimatterDevTank125 - name = AntimatterDevTank250 - name = AntimatterDevTank375 - } -} +TECHNOLOGY_TREE_DEFINITION +{ +id = UnofficialKSPI_0.25 +label = Unofficial KSPI for KSP 0.25 +NODE +{ + name = newnode_7144 + techID = interstellarTechFusionPower + pos = -404.5,1175,-18 + icon = NUCLEARPROPULSION + cost = 3000 + title = Basic Nuclear Fusion + description = This technology represents the first steps into fusion power using large reactors compressing a plasma with large magnets or initiatiating the reaction with tiny quantities of Antimatter. + anyParent = False + hideIfEmpty = False + parents = node6_nuclearPropulsion,node7_metaMaterials + PARTS + { + name = FNFissionFusionCatReactor + name = FusionReactor250 + name = FusionReactor375 + name = KSPIMagneticNozzle1 + name = KSPIMagneticNozzle2 + name = KSPIMagneticNozzle3 + } +} +NODE +{ + name = newnode_71440 + techID = interstellarTechFusionPower2 + pos = -321,1063.667,-17 + icon = NUCLEARPROPULSION + cost = 3000 + title = Advanced Fusion Power + description = The development of Inertial Confinement fusion technology allows the miniaturisation of fusion power as well as the production of massive new engines that really unlock rapid transit throughout the solar system. + anyParent = False + hideIfEmpty = False + parents = newnode_7144 + PARTS + { + name = FusionReactor0625 + name = FusionReactor125 + name = vista + } +} +NODE +{ + name = newnode_9820 + techID = interstellarTechAccelerator + pos = -203.1667,618.3334,-6 + icon = EXPERIMENTALSCIENCE + cost = 2000 + title = Particle Accelerators + description = Particle accelerators provide the basis for antimatter technology, allowing the first experiments with respect to its capture and storage. + anyParent = False + hideIfEmpty = False + parents = node7_advScienceTech + PARTS + { + name = AntimatterCollector + name = AntimatterTank125 + name = AntimatterTank250 + name = AntimatterTank375 + } +} +NODE +{ + name = newnode_5951 + techID = interstellarTechAntimatterPower + pos = -205.3333,952.3334,-5 + icon = EXPERIMENTALELECTRICS + cost = 4000 + title = Antimatter Power + description = Not so much a new method of power production as energy storage, but the energy density of the fuel cannot be rivalled. + anyParent = False + hideIfEmpty = False + parents = node8_experimentalElectrics,newnode_9820,newnode_71440 + PARTS + { + name = AntimatterReactor125 + name = AntimatterReactor250 + name = AntimatterReactor375 + } +} +NODE +{ + name = newnode_8234 + techID = interstellarTechUHEPhysics + pos = -70.5,952.3334,-8 + icon = EXPERIMENTALSCIENCE + cost = 10000 + title = Ultra-High Energy Physics + description = Probing extremely high energy levels has yielded the keys to the production of Exotic Matter, allowing the production of novel new technologies previously thought impossible. + anyParent = False + hideIfEmpty = False + parents = newnode_5951 + PARTS + { + name = WarpDrive + name = WarpDrive2 + name = WarpDrive3 + } +} +NODE +{ + name = node8_nanolathing + techID = nanolathing + pos = -475.6188,1039.445,-1 + icon = NANOLATHING + cost = 1000 + title = Nanolathing + description = The very latest in construction technology. + anyParent = False + hideIfEmpty = True + parents = node7_composites + PARTS + { + } +} +NODE +{ + name = node8_automation + techID = automation + pos = -475.6188,796.7432,-1 + icon = AUTOMATION + cost = 1000 + title = Automation + description = We can't think of anything that could go wrong with letting an experimental AI handle every aspect of a mission. + anyParent = False + hideIfEmpty = True + parents = node7_advUnmanned + PARTS + { + name = computerCore + } +} +NODE +{ + name = node8_robotics + techID = robotics + pos = -475.6188,734.037,-1 + icon = ROBOTICS + cost = 1000 + title = Robotics + description = The rumours of robot-led world domination are greatly exaggerated. + anyParent = False + hideIfEmpty = True + parents = node7_advUnmanned + PARTS + { + } +} +NODE +{ + name = node8_experimentalMotors + techID = experimentalMotors + pos = -475.6188,500,-1 + icon = EXPERIMENTALMOTORS + cost = 1000 + title = Experimental Motors + description = The latest breakthroughs that are driving motor technology forwards, and in reverse, and steering too. + anyParent = False + hideIfEmpty = True + parents = node7_advancedMotors + PARTS + { + } +} +NODE +{ + name = node8_experimentalScience + techID = experimentalScience + pos = -475.6188,574.0369,-1 + icon = EXPERIMENTALSCIENCE + cost = 1000 + title = Experimental Science + description = Explore novel fields of science that we didn't even know were there. + anyParent = False + hideIfEmpty = True + parents = node7_advScienceTech + PARTS + { + } +} +NODE +{ + name = node8_experimentalAerodynamics + techID = experimentalAerodynamics + pos = -475.6188,970.0212,-1 + icon = EXPERIMENTALAERODYNAMICS + cost = 1000 + title = Experimental Aerodynamics + description = Winged flight technology is soaring to unprecendented heights. It could even be said that it's properly taking off now. + anyParent = False + hideIfEmpty = True + parents = node7_heavyAerodynamics + PARTS + { + } +} +NODE +{ + name = node8_experimentalElectrics + techID = experimentalElectrics + pos = -375.6188,671.9929,-1 + icon = EXPERIMENTALELECTRICS + cost = 1000 + title = Experimental Electrics + description = The very latest in electrical systems technology. Our engineers are buzzing with excitement over it. They also seem to glow in the dark now. Fascinating! + anyParent = False + hideIfEmpty = True + parents = node7_specializedElectrics + PARTS + { + name = microwaveThermalEnergyReceiverL + name = microwaveThermalEnergyReceiverM + name = microwaveThermalEnergyReceiverS + name = phasedArray1 + } +} +NODE +{ + name = node8_aerospaceTech + techID = aerospaceTech + pos = -475.6188,897.4948,-1 + icon = AEROSPACETECH + cost = 1000 + title = Aerospace Tech + description = The absolute cutting-edge in aerospace technology. Quite literally, some of those edges are very sharp. Handle with care. + anyParent = False + hideIfEmpty = True + parents = node7_hypersonicFlight + PARTS + { + } +} +NODE +{ + name = node8_experimentalRocketry + techID = experimentalRocketry + pos = -475.6188,1250.797,-1 + icon = EXPERIMENTALROCKETRY + cost = 1000 + title = Experimental Rocketry + description = Don't take "experimental" lightly. + anyParent = False + hideIfEmpty = True + parents = node7_veryHeavyRocketry,node7_metaMaterials + PARTS + { + } +} +NODE +{ + name = node6_advAerodynamics + techID = advAerodynamics + pos = -832.9991,938.7086,-1 + icon = ADVAERODYNAMICS + cost = 300 + title = Advanced Aerodynamics + description = Advances in fluid dynamics research technology have allowed development of a new set of streamlined aircraft components, And also these parts here. + anyParent = False + hideIfEmpty = False + parents = node5_supersonicFlight + PARTS + { + name = noseConeAdapter + name = standardNoseCone + name = wingConnector + name = structuralPylon + name = structuralWing + } +} +NODE +{ + name = node7_advScienceTech + techID = advScienceTech + pos = -635,574.0369,-1 + icon = ADVSCIENCETECH + cost = 550 + title = Advanced Science Tech + description = Scientific advancements allow new advanced technologies for advancing Science. + anyParent = True + hideIfEmpty = False + parents = node6_electronics,node6_fieldScience + PARTS + { + name = avionicsNoseCone + name = sensorGravimeter + name = scienceModule + name = FNGCMS + name = FNInlineRefinery + name = FNLCMS + name = FNRefinery + } +} +NODE +{ + name = node7_advUnmanned + techID = advUnmanned + pos = -635,765,-1 + icon = ADVUNMANNED + cost = 550 + title = Advanced Unmanned Tech + description = Improvements in remote control technology for a new generation of probe designs. + anyParent = True + hideIfEmpty = False + parents = node6_unmannedTech,node6_largeElectrics + PARTS + { + name = probeCoreCube + name = probeStackLarge + name = probeStackSmall + } +} +NODE +{ + name = node7_specializedElectrics + techID = specializedElectrics + pos = -635,671.9929,-1 + icon = SPECIALIZEDELECTRICS + cost = 550 + title = Specialized Electrics + description = Experience the warm glow of the latest in electrical technology. Figuratively, of course, and maybe also quite literally as well. Actually, try to avoid direct exposure. + anyParent = True + hideIfEmpty = False + parents = node6_largeElectrics,node6_electronics + PARTS + { + name = batteryBankLarge + name = rtg + name = microwaveReceiver + name = microwaveTransmitter + } +} +NODE +{ + name = node5_actuators + techID = actuators + pos = -1043,983.7364,-1 + icon = GENERIC + cost = 160 + title = Actuators + description = Perfecting the art of making things mobile, without the explicit use of explosives. Our engineers assure us, this is actually a good thing. + anyParent = True + hideIfEmpty = False + parents = node4_advConstruction + PARTS + { + name = GrapplingDevice + } +} +NODE +{ + name = node7_hypersonicFlight + techID = hypersonicFlight + pos = -635,897.2978,-1 + icon = HYPERSONICFLIGHT + cost = 550 + title = Hypersonic Flight + description = Push your aircraft to the upper limits of airspeed and sanity. + anyParent = True + hideIfEmpty = False + parents = node6_highAltitudeFlight,node6_advAerodynamics + PARTS + { + name = AdvancedCanard + name = CanardController + name = RAPIER + name = toroidalAerospike + name = atmosphericScoop + name = atmosphericScoop2 + name = radial.atmospheric.scoop1 + name = radial.atmospheric.scoop2 + } +} +NODE +{ + name = node7_advancedMotors + techID = advancedMotors + pos = -635,500,-1 + icon = ADVANCEDMOTORS + cost = 550 + title = Advanced Motors + description = Wheel technology is just rolling along now. You could even say our engineers are on a roll with it. + anyParent = False + hideIfEmpty = False + parents = node6_fieldScience + PARTS + { + name = roverWheel3 + name = wheelMed + } +} +NODE +{ + name = node6_advMetalWorks + techID = advMetalworks + pos = -832.9991,1038.498,-1 + icon = ADVMETALWORKS + cost = 300 + title = Advanced MetalWorks + description = These new construction techniques allow for craft designs that were considered insane not too long ago... and still are. But they're now possible! + anyParent = True + hideIfEmpty = False + parents = node5_actuators,node5_specializedConstruction + PARTS + { + name = trussPiece3x + name = dockingPort3 + name = stackPoint1 + name = stackQuadCoupler + name = stackSeparator + name = stackSeparatorBig + name = stackSeparatorMini + } +} +NODE +{ + name = node6_largeControl + techID = largeControl + pos = -832.9991,1113.887,-1 + icon = LARGECONTROL + cost = 300 + title = Large Control + description = A newer state-of-the-art in control technology. + anyParent = False + hideIfEmpty = False + parents = node5_specializedControl + PARTS + { + name = LaunchEscapeSystem + name = cupola + name = mk2LanderCabin + name = RCSTank1-2 + } +} +NODE +{ + name = node6_unmannedTech + techID = unmannedTech + pos = -832.9991,796.7432,-1 + icon = UNMANNEDTECH + cost = 300 + title = Unmanned Tech + description = Warning: May contain traces of sentience. + anyParent = True + hideIfEmpty = False + parents = node5_precisionEngineering + PARTS + { + name = probeCoreHex + name = probeCoreOcto2 + } +} +NODE +{ + name = node6_highAltitudeFlight + techID = highAltitudeFlight + pos = -832.9991,854.3693,-1 + icon = HIGHALTITUDEFLIGHT + cost = 300 + title = High Altitude Flight + description = New breakthroughs in engine and intake development to enable flying through the upper reaches of the atmosphere. + anyParent = True + hideIfEmpty = False + parents = node5_supersonicFlight,node4_advFlightControl + PARTS + { + name = turboFanEngine + name = smallHardpoint + name = ramAirIntake + name = ThermalTurbojet + name = ThermalTurbojet2 + name = warpAtmIntake + name = warpAtmIntake2 + } +} +NODE +{ + name = node6_electronics + techID = electronics + pos = -832.9991,614.4313,-1 + icon = ELECTRONICS + cost = 300 + title = Electronics + description = Hopefully these won't become obsolete in the next couple of months. + anyParent = False + hideIfEmpty = False + parents = node5_advElectrics + PARTS + { + name = commDish + name = sensorAccelerometer + name = FNDeuteriumCryostat + name = FNHeliumCryostat + name = FNIRTelescope + name = DTMagnetometer + name = sensorGammaRaySpectrometer + name = sensorGammaRaySpectrometer2 + } +} +NODE +{ + name = node6_largeElectrics + techID = largeElectrics + pos = -832.9991,671.9929,-1 + icon = LARGEELECTRICS + cost = 300 + title = Large Electrics + description = Maximize your energy production and storage potential by maximizing the size of the electrical components on your vessels. + anyParent = False + hideIfEmpty = False + parents = node5_advElectrics + PARTS + { + name = batteryBank + name = largeSolarPanel + name = Brayton2 + name = Brayton3 + name = Brayton1 + name = tinyBrayton + name = radiator0 + name = radiator1 + name = radiator2 + } +} +NODE +{ + name = node5_supersonicFlight + techID = supersonicFlight + pos = -1043,897.5981,-1 + icon = SUPERSONICFLIGHT + cost = 160 + title = Supersonic Flight + description = A new line of aircraft parts that allow for unprecedented maneuverability and speed. + anyParent = False + hideIfEmpty = False + parents = node4_aerodynamicSystems + PARTS + { + name = deltaWing + name = mk2Fuselage + name = mk2SpacePlaneAdapter + name = nacelleBody + name = radialEngineBody + name = CircularIntake + } +} +NODE +{ + name = node7_veryHeavyRocketry + techID = veryHeavyRocketry + pos = -635,1250.411,-1 + icon = VERYHEAVYROCKETRY + cost = 550 + title = Very Heavy Rocketry + description = While ever-larger rockets may not be the answer every time, for all other times, we've developed these. + anyParent = True + hideIfEmpty = False + parents = node5_heavierRocketry,node6_largeControl + PARTS + { + name = Size3AdvancedEngine + name = size3Decoupler + name = Size3EngineCluster + name = Size3LargeTank + name = Size3MediumTank + name = Size3SmallTank + name = Size3to2Adapter + name = AluminiumHybrid1 + name = 375PureLiquidTank + } +} +NODE +{ + name = node6_ionPropulsion + techID = ionPropulsion + pos = -832.9991,731.5032,-1 + icon = IONPROPULSION + cost = 300 + title = Ion Propulsion + description = Turns out, it's not science fiction. + anyParent = False + hideIfEmpty = False + parents = node5_precisionEngineering,node5_advElectrics + PARTS + { + name = ionEngine + name = xenonTank + name = xenonTankRadial + name = FNSmallerAugmentedArcjet + name = FNSmallAugmentedArcjet + name = smallerMPD + name = smallMPD + name = MPD + name = BigXenonTank + } +} +NODE +{ + name = node6_nuclearPropulsion + techID = nuclearPropulsion + pos = -832.9991,1184.784,-1 + icon = NUCLEARPROPULSION + cost = 300 + title = Nuclear Propulsion + description = Nuclear engines don't burn fuel, they totally annihilate it. We just hope it doesn't begin any conflicts. + anyParent = False + hideIfEmpty = False + parents = node5_heavierRocketry,node5_specializedControl + PARTS + { + name = nuclearEngine + name = NuclearReactor375 + name = NuclearReactor250 + name = NuclearReactor0625 + name = NuclearReactor125 + name = FNPFissionReactor0625 + name = FNPFissionReactor125 + name = FNPFissionReactor250 + name = FNPFissionReactor375 + name = smallerThermalRocketNozzle + name = smallThermalRocketNozzle + name = ThermalRocketNozzle + name = bigThermalRocketNozzle + name = FNAntimatterBottle + name = HexCanDeutTritLarge + name = HexCanHe3Large + } +} +NODE +{ + name = node6_fieldScience + techID = fieldScience + pos = -832.9991,532.4777,-1 + icon = FIELDSCIENCE + cost = 300 + title = Field Science + description = Freedom to roam as far as curiosity will take you, or as long as batteries last. + anyParent = True + hideIfEmpty = False + parents = node5_advExploration,node5_advLanding + PARTS + { + name = seatExternalCmd + name = roverBody + name = roverWheel1 + name = roverWheel2 + } +} +NODE +{ + name = node7_composites + techID = composites + pos = -635,1038.984,-1 + icon = COMPOSITES + cost = 550 + title = Composites + description = Lightweight and strong! and don't worry, we're sure the glue will dry off in no time. + anyParent = False + hideIfEmpty = False + parents = node6_advMetalWorks + PARTS + { + name = structuralIBeam1 + name = structuralIBeam2 + name = structuralIBeam3 + name = structuralMiniNode + name = structuralPanel1 + name = structuralPanel2 + name = strutCube + name = strutOcto + } +} +NODE +{ + name = node7_heavyAerodynamics + techID = heavyAerodynamics + pos = -635,969.6069,-1 + icon = HEAVYAERODYNAMICS + cost = 550 + title = Heavy Aerodynamics + description = Advances in construction technology enabled new breakthroughs in aerospace materials. + anyParent = True + hideIfEmpty = False + parents = node6_advMetalWorks,node6_advAerodynamics + PARTS + { + name = rocketNoseCone + name = mark3Cockpit + name = mk3Fuselage + name = mk3spacePlaneAdapter + } +} +NODE +{ + name = node7_metaMaterials + techID = metaMaterials + pos = -635,1113.875,-1 + icon = METAMATERIALS + cost = 550 + title = Meta-Materials + description = An advancemement in spacecraft construction so revolutionary, you won't even mind that its naming was wildly inaccurate. + anyParent = True + hideIfEmpty = False + parents = node6_advMetalWorks,node6_largeControl + PARTS + { + name = adapterLargeSmallBi + name = adapterLargeSmallQuad + name = adapterLargeSmallTri + name = stationHub + name = dockingPortLarge + name = dockingPortLateral + name = SM-Solar-Sail + } +} +NODE +{ + name = node5_advLanding + techID = advLanding + pos = -1043,493.0854,-1 + icon = LANDING + cost = 160 + title = Advanced Landing + description = Further advances in landing devices, allowing for more controlled descents and a much higher number of parts still attached to the ship after touchdown. + anyParent = False + hideIfEmpty = False + parents = node4_landing + PARTS + { + name = landingLeg1-2 + name = parachuteDrogue + } +} +NODE +{ + name = node4_aerodynamicSystems + techID = aerodynamicSystems + pos = -1247,897.689,-1 + icon = AERODYNAMICSYSTEMS + cost = 90 + title = Aerodynamics + description = New breakthroughs from C7 Aerospace allow for new types of craft to be built. We're looking into hiring some of their engineers as well. + anyParent = True + hideIfEmpty = False + parents = node3_generalConstruction,node3_flightControl + PARTS + { + name = StandardCtrlSrf + name = airplaneTail + name = smallCtrlSrf + name = sweptWing + name = tailfin + name = JetEngine + name = MK1Fuselage + name = airScoop + } +} +NODE +{ + name = node5_specializedConstruction + techID = specializedConstruction + pos = -1043,1037.738,-1 + icon = SPECIALIZEDCONSTRUCTION + cost = 160 + title = Specialized Construction + description = Specialized construction techniques provide new ways of attaching things together, and detaching things on purpose. + anyParent = True + hideIfEmpty = False + parents = node4_advConstruction + PARTS + { + name = crewCabin + name = adapterSmallMiniShort + name = adapterSmallMiniTall + name = trussAdapter + name = dockingPort1 + name = dockingPort2 + name = stackBiCoupler + } +} +NODE +{ + name = node5_heavierRocketry + techID = heavierRocketry + pos = -1043,1250.411,-1 + icon = HEAVIERROCKETRY + cost = 160 + title = Heavier Rocketry + description = There may be an upper limit to how large a rocket can be built, but we're not there yet. + anyParent = True + hideIfEmpty = False + parents = node4_heavyRocketry,node4_fuelSystems + PARTS + { + name = Size2LFB + name = liquidEngine1-2 + name = fuelTank3-2 + name = 25PureLiquidTank + } +} +NODE +{ + name = node5_specializedControl + techID = specializedControl + pos = -1043,1113.71,-1 + icon = SPECIALIZEDCONTROL + cost = 160 + title = Specialized Control + description = A new state-of-the-art in control technology. + anyParent = True + hideIfEmpty = False + parents = node4_fuelSystems,node4_advConstruction + PARTS + { + name = asasmodule1-2 + name = landerCabinSmall + name = Mark1-2Pod + name = rcsTankRadialLong + name = linearRcs + name = parachuteLarge + } +} +NODE +{ + name = node5_advElectrics + techID = advElectrics + pos = -1043,671.9929,-1 + icon = ADVELECTRICS + cost = 160 + title = Advanced Electrics + description = We're fairly certain no one will ever need more than 64kw of power for anything. + anyParent = False + hideIfEmpty = False + parents = node4_electrics + PARTS + { + name = ksp.r.largeBatteryPack + name = solarPanels1 + name = solarPanels2 + name = solarPanels3 + name = solarPanels4 + name = circradiatorKT + name = circradiatorKT2 + name = circradiatorKT3 + name = LargeFlatRadiator + name = RadialRadiatorzzz + name = RadialRadiatorzzz2 + } +} +NODE +{ + name = node5_precisionEngineering + techID = precisionEngineering + pos = -1043,764.6053,-1 + icon = PRECISIONENGINEERING + cost = 160 + title = Precision Engineering + description = Precise engineering techniques allow for construction of ever smaller parts. + anyParent = True + hideIfEmpty = False + parents = node4_advFlightControl,node4_electrics + PARTS + { + name = microEngine + name = radialEngineMini + name = smallRadialEngine + name = miniFuelTank + name = rcsTankMini + name = toroidalFuelTank + name = stackDecouplerMini + } +} +NODE +{ + name = node5_advExploration + techID = advExploration + pos = -1043,580.8679,-1 + icon = ADVEXPLORATION + cost = 160 + title = Advanced Exploration + description = They are Self-Deploying Astronaut Mobility Enhancement Devices, I don't know what you mean by "ladders". + anyParent = True + hideIfEmpty = False + parents = node4_electrics,node4_spaceExploration + PARTS + { + name = sensorBarometer + name = telescopicLadder + name = telescopicLadderBay + } +} +NODE +{ + name = node4_fuelSystems + techID = fuelSystems + pos = -1247,1114.295,-1 + icon = FUELSYSTEMS + cost = 90 + title = Fuel Systems + description = Advancements towards a better understanding of how fuel flows through a rocket. + anyParent = True + hideIfEmpty = False + parents = node3_advRocketry,node3_generalConstruction + PARTS + { + name = liquidEngineMini + name = radialRCSTank + name = RCSFuelTank + name = fuelLine + name = RCSBlock + } +} +NODE +{ + name = node4_heavyRocketry + techID = heavyRocketry + pos = -1247,1250.411,-1 + icon = HEAVYROCKETRY + cost = 90 + title = Heavy Rocketry + description = The next logical step for rocketry technology is to just go bigger. + anyParent = False + hideIfEmpty = False + parents = node3_advRocketry + PARTS + { + name = MassiveBooster + name = engineLargeSkipper + name = liquidEngine2-2 + name = fuelTank1-2 + name = fuelTank2-2 + } +} +NODE +{ + name = node4_landing + techID = landing + pos = -1247,493,-1 + icon = ADVLANDING + cost = 90 + title = Landing + description = Our Engineers are nothing if not optimistic. + anyParent = False + hideIfEmpty = False + parents = node3_scienceTech + PARTS + { + name = miniLandingLeg + name = SmallGearBay + } +} +NODE +{ + name = node4_spaceExploration + techID = spaceExploration + pos = -1247,580.6476,-1 + icon = EVATECH + cost = 90 + title = Space Exploration + description = To boldly go where no green man has gone before. + anyParent = False + hideIfEmpty = False + parents = node3_scienceTech + PARTS + { + name = Large.Crewed.Lab + name = ladder1 + name = sensorThermometer + } +} +NODE +{ + name = node4_electrics + techID = electrics + pos = -1247,671.9929,-1 + icon = ELECTRICS + cost = 90 + title = Electrics + description = We did know about electricity before inventing space flight. The big breakthrough here was combining the two. + anyParent = True + hideIfEmpty = False + parents = node3_flightControl,node3_scienceTech + PARTS + { + name = batteryBankMini + name = solarPanels5 + name = spotLight1 + name = spotLight2 + } +} +NODE +{ + name = node4_advFlightControl + techID = advFlightControl + pos = -1247,796.7432,-1 + icon = ADVFLIGHTCONTROL + cost = 90 + title = Advanced Flight Control + description = The latest advancements in keeping the correct end of the ship pointing towards where you want it to go. + anyParent = False + hideIfEmpty = False + parents = node3_flightControl + PARTS + { + name = winglet3 + name = advSasModule + name = Mark2Cockpit + name = probeCoreOcto + } +} +NODE +{ + name = node4_advConstruction + techID = advConstruction + pos = -1247,1037.251,-1 + icon = ADVCONSTRUCTION + cost = 90 + title = Advanced Construction + description = New advances in construction make it possible to build larger than ever before. + anyParent = False + hideIfEmpty = False + parents = node3_generalConstruction + PARTS + { + name = fuelTank4-2 + name = Mk1FuselageStructural + name = decoupler1-2 + name = largeAdapter + name = largeAdapter2 + name = radialDecoupler1-2 + } +} +NODE +{ + name = node3_flightControl + techID = flightControl + pos = -1469.98,796.7432,-1 + icon = FLIGHTCONTROL + cost = 45 + title = Flight Control + description = Tumbling out of control may be fun, but our engineers insist there's more to rocket science than that. + anyParent = True + hideIfEmpty = False + parents = node2_stability,node2_survivability + PARTS + { + name = R8winglet + name = Mark1Cockpit + name = probeCoreSphere + name = sasModule + } +} +NODE +{ + name = node3_generalConstruction + techID = generalConstruction + pos = -1469.98,1037.423,-1 + icon = GENERALCONSTRUCTION + cost = 45 + title = General Construction + description = New equipment to help out in keeping things stable, especially useful when the size of the spacecraft defies the current bounds of sanity. + anyParent = True + hideIfEmpty = False + parents = node2_generalRocketry,node2_stability + PARTS + { + name = strutConnector + name = launchClamp1 + name = radialDecoupler2 + name = stackTriCoupler + } +} +NODE +{ + name = node3_scienceTech + techID = scienceTech + pos = -1469.98,580.6995,-1 + icon = SCIENCETECH + cost = 45 + title = Science Tech + description = We are going to ask all the big questions of the Universe... eventually. For now, we're starting with these. + anyParent = False + hideIfEmpty = False + parents = node2_survivability + PARTS + { + name = batteryPack + name = science.module + name = mediumDishAntenna + } +} +NODE +{ + name = node3_advRocketry + techID = advRocketry + pos = -1469.98,1184.784,-1 + icon = ADVROCKETRY + cost = 45 + title = Advanced Rocketry + description = A new step ahead in rocket technology. + anyParent = False + hideIfEmpty = False + parents = node2_generalRocketry + PARTS + { + name = radialLiquidEngine1-2 + name = fuelTank.long + } +} +NODE +{ + name = node2_stability + techID = stability + pos = -1693.861,896.566,-1 + icon = STABILITY + cost = 18 + title = Stability + description = Reaching for the stars starts with keeping our spacecraft pointed generally in the right direction. + anyParent = False + hideIfEmpty = False + parents = node1_basicRocketry + PARTS + { + name = noseCone + name = winglet + name = radialDecoupler + } +} +NODE +{ + name = node1_basicRocketry + techID = basicRocketry + pos = -1901.18,896.566,-1 + icon = BASICROCKETRY + cost = 5 + title = Basic Rocketry + description = How hard can Rocket Science be anyway? + anyParent = False + hideIfEmpty = False + parents = node0_start + PARTS + { + name = fuelTank + name = fuelTankSmallFlat + name = GooExperiment + name = stackDecoupler + } +} +NODE +{ + name = node2_survivability + techID = survivability + pos = -1732.888,699.7489,-1 + icon = SURVIVABILITY + cost = 15 + title = Survivability + description = The art and science of landing and walking away from it. + anyParent = False + hideIfEmpty = False + parents = node1_basicRocketry + PARTS + { + name = liquidEngine3 + name = landingLeg1 + name = parachuteRadial + } +} +NODE +{ + name = node2_generalRocketry + techID = generalRocketry + pos = -1652.237,1074.484,-1 + icon = GENERALROCKETRY + cost = 20 + title = General Rocketry + description = More engines, more fuel, more ambitious ideas. + anyParent = False + hideIfEmpty = False + parents = node1_basicRocketry + PARTS + { + name = liquidEngine2 + name = sepMotor1 + name = solidBooster1-1 + } +} +NODE +{ + name = node0_start + techID = start + pos = -2022.448,896.566,-1 + icon = START + cost = 0 + title = Start + description = The technology we started out with. + anyParent = False + hideIfEmpty = False + parents = + PARTS + { + name = mk1pod + name = liquidEngine + name = solidBooster + name = fuelTankSmall + name = trussPiece1x + name = longAntenna + name = parachuteSingle + name = FNAmmoniaTank + name = FNLiquidWaterTank + name = HexCanLithium + name = HexCanThoriumFl4 + name = HexCanUraniumFl6 + name = HexCanUraniumN + name = AntimatterDevTank125 + name = AntimatterDevTank250 + name = AntimatterDevTank375 + } +} diff --git a/GameData/WarpPlugin/KSPI_techtree_0.90.cfg b/GameData/WarpPlugin/KSPI_techtree_0.90.cfg new file mode 100644 index 00000000..d4d874e6 --- /dev/null +++ b/GameData/WarpPlugin/KSPI_techtree_0.90.cfg @@ -0,0 +1,1240 @@ +TECHNOLOGY_TREE_DEFINITION +{ +id = KSPI_boris_090 +label = Unofficial KSPI +NODE +{ + name = newnode_7144 + techID = interstellarTechFusionPower + pos = -404.5,1175,-18 + icon = NUCLEARPROPULSION + cost = 3000 + title = Basic Nuclear Fusion + description = This technology represents the first steps into fusion power using large reactors compressing a plasma with large magnets or initiatiating the reaction with tiny quantities of Antimatter. + anyParent = False + hideIfEmpty = False + parents = node6_nuclearPropulsion,node7_metaMaterials + PARTS + { + name = FNFissionFusionCatReactor + name = FusionReactor250 + name = FusionReactor375 + name = KSPIMagneticNozzle1 + name = KSPIMagneticNozzle2 + name = KSPIMagneticNozzle3 + } +} +NODE +{ + name = newnode_71440 + techID = interstellarTechFusionPower2 + pos = -321,1063.667,-17 + icon = NUCLEARPROPULSION + cost = 3000 + title = Advanced Fusion Power + description = The development of Inertial Confinement fusion technology allows the miniaturisation of fusion power as well as the production of massive new engines that really unlock rapid transit throughout the solar system. + anyParent = False + hideIfEmpty = False + parents = newnode_7144 + PARTS + { + name = FusionReactor0625 + name = FusionReactor125 + name = vista + } +} +NODE +{ + name = newnode_9820 + techID = interstellarTechAccelerator + pos = -203.1667,618.3334,-6 + icon = EXPERIMENTALSCIENCE + cost = 2000 + title = Particle Accelerators + description = Particle accelerators provide the basis for antimatter technology, allowing the first experiments with respect to its capture and storage. + anyParent = False + hideIfEmpty = False + parents = node7_advScienceTech + PARTS + { + name = AntimatterCollector + name = AntimatterTank125 + name = AntimatterTank250 + name = AntimatterTank375 + } +} +NODE +{ + name = newnode_5951 + techID = interstellarTechAntimatterPower + pos = -205.3333,952.3334,-5 + icon = EXPERIMENTALELECTRICS + cost = 4000 + title = Antimatter Power + description = Not so much a new method of power production as energy storage, but the energy density of the fuel cannot be rivalled. + anyParent = False + hideIfEmpty = False + parents = node8_experimentalElectrics,newnode_9820,newnode_71440 + PARTS + { + name = AntimatterReactor125 + name = AntimatterReactor250 + name = AntimatterReactor375 + } +} +NODE +{ + name = newnode_8234 + techID = interstellarTechUHEPhysics + pos = -70.5,952.3334,-8 + icon = EXPERIMENTALSCIENCE + cost = 10000 + title = Ultra-High Energy Physics + description = Probing extremely high energy levels has yielded the keys to the production of Exotic Matter, allowing the production of novel new technologies previously thought impossible. + anyParent = False + hideIfEmpty = False + parents = newnode_5951 + PARTS + { + name = WarpDrive + name = WarpDrive2 + name = WarpDrive3 + } +} +NODE +{ + name = node8_nanolathing + techID = nanolathing + pos = -475.6188,1039.445,-1 + icon = NANOLATHING + cost = 1000 + title = Nanolathing + description = The very latest in construction technology. + anyParent = False + hideIfEmpty = True + parents = node7_composites + PARTS + { + } +} +NODE +{ + name = node8_automation + techID = automation + pos = -475.6188,796.7432,-1 + icon = AUTOMATION + cost = 1000 + title = Automation + description = We can't think of anything that could go wrong with letting an experimental AI handle every aspect of a mission. + anyParent = False + hideIfEmpty = True + parents = node7_advUnmanned + PARTS + { + name = computerCore + } +} +NODE +{ + name = node8_robotics + techID = robotics + pos = -475.6188,734.037,-1 + icon = ROBOTICS + cost = 1000 + title = Robotics + description = The rumours of robot-led world domination are greatly exaggerated. + anyParent = False + hideIfEmpty = True + parents = node7_advUnmanned + PARTS + { + } +} +NODE +{ + name = node8_experimentalMotors + techID = experimentalMotors + pos = -475.6188,500,-1 + icon = EXPERIMENTALMOTORS + cost = 1000 + title = Experimental Motors + description = The latest breakthroughs that are driving motor technology forwards, and in reverse, and steering too. + anyParent = False + hideIfEmpty = True + parents = node7_advancedMotors + PARTS + { + } +} +NODE +{ + name = node8_experimentalScience + techID = experimentalScience + pos = -475.6188,574.0369,-1 + icon = EXPERIMENTALSCIENCE + cost = 1000 + title = Experimental Science + description = Explore novel fields of science that we didn't even know were there. + anyParent = False + hideIfEmpty = True + parents = node7_advScienceTech + PARTS + { + } +} +NODE +{ + name = node8_experimentalAerodynamics + techID = experimentalAerodynamics + pos = -475.6188,970.0212,-1 + icon = EXPERIMENTALAERODYNAMICS + cost = 1000 + title = Experimental Aerodynamics + description = Winged flight technology is soaring to unprecendented heights. It could even be said that it's properly taking off now. + anyParent = False + hideIfEmpty = True + parents = node7_heavyAerodynamics + PARTS + { + } +} +NODE +{ + name = node8_experimentalElectrics + techID = experimentalElectrics + pos = -375.6188,671.9929,-1 + icon = EXPERIMENTALELECTRICS + cost = 1000 + title = Experimental Electrics + description = The very latest in electrical systems technology. Our engineers are buzzing with excitement over it. They also seem to glow in the dark now. Fascinating! + anyParent = False + hideIfEmpty = True + parents = node7_specializedElectrics + PARTS + { + name = microwaveThermalEnergyReceiverL + name = microwaveThermalEnergyReceiverM + name = microwaveThermalEnergyReceiverS + name = phasedArray1 + } +} +NODE +{ + name = node8_aerospaceTech + techID = aerospaceTech + pos = -475.6188,897.4948,-1 + icon = AEROSPACETECH + cost = 1000 + title = Aerospace Tech + description = The absolute cutting-edge in aerospace technology. Quite literally, some of those edges are very sharp. Handle with care. + anyParent = False + hideIfEmpty = True + parents = node7_hypersonicFlight + PARTS + { + } +} +NODE +{ + name = node8_experimentalRocketry + techID = experimentalRocketry + pos = -475.6188,1250.797,-1 + icon = EXPERIMENTALROCKETRY + cost = 1000 + title = Experimental Rocketry + description = Don't take "experimental" lightly. + anyParent = False + hideIfEmpty = True + parents = node7_veryHeavyRocketry,node7_metaMaterials + PARTS + { + } +} +NODE +{ + name = node6_advAerodynamics + techID = advAerodynamics + pos = -832.9991,938.7086,-1 + icon = ADVAERODYNAMICS + cost = 300 + title = Advanced Aerodynamics + description = Advances in fluid dynamics research technology have allowed development of a new set of streamlined aircraft components, And also these parts here. + anyParent = False + hideIfEmpty = False + parents = node5_supersonicFlight + PARTS + { + name = noseConeAdapter + name = standardNoseCone + name = wingConnector + name = structuralPylon + name = structuralWing + name = adapterSize2-Mk2 + } +} +NODE +{ + name = node7_advScienceTech + techID = advScienceTech + pos = -635,574.0369,-1 + icon = ADVSCIENCETECH + cost = 550 + title = Advanced Science Tech + description = Scientific advancements allow new advanced technologies for advancing Science. + anyParent = True + hideIfEmpty = False + parents = node6_electronics,node6_fieldScience + PARTS + { + name = avionicsNoseCone + name = sensorGravimeter + name = scienceModule + name = FNGCMS + name = FNInlineRefinery + name = FNLCMS + name = FNRefinery + } +} +NODE +{ + name = node7_advUnmanned + techID = advUnmanned + pos = -635,765,-1 + icon = ADVUNMANNED + cost = 550 + title = Advanced Unmanned Tech + description = Improvements in remote control technology for a new generation of probe designs. + anyParent = True + hideIfEmpty = False + parents = node6_unmannedTech,node6_largeElectrics + PARTS + { + name = probeCoreCube + name = probeStackLarge + name = probeStackSmall + } +} +NODE +{ + name = node7_specializedElectrics + techID = specializedElectrics + pos = -635,671.9929,-1 + icon = SPECIALIZEDELECTRICS + cost = 550 + title = Specialized Electrics + description = Experience the warm glow of the latest in electrical technology. Figuratively, of course, and maybe also quite literally as well. Actually, try to avoid direct exposure. + anyParent = True + hideIfEmpty = False + parents = node6_largeElectrics,node6_electronics + PARTS + { + name = batteryBankLarge + name = rtg + name = microwaveReceiver + name = microwaveTransmitter + } +} +NODE +{ + name = node5_actuators + techID = actuators + pos = -1043,983.7364,-1 + icon = GENERIC + cost = 160 + title = Actuators + description = Perfecting the art of making things mobile, without the explicit use of explosives. Our engineers assure us, this is actually a good thing. + anyParent = True + hideIfEmpty = False + parents = node4_advConstruction + PARTS + { + name = GrapplingDevice + } +} +NODE +{ + name = node7_hypersonicFlight + techID = hypersonicFlight + pos = -635,897.2978,-1 + icon = HYPERSONICFLIGHT + cost = 550 + title = Hypersonic Flight + description = Push your aircraft to the upper limits of airspeed and sanity. + anyParent = True + hideIfEmpty = False + parents = node6_highAltitudeFlight,node6_advAerodynamics + PARTS + { + name = AdvancedCanard + name = CanardController + name = RAPIER + name = toroidalAerospike + name = atmosphericScoop + name = atmosphericScoop2 + name = radial.atmospheric.scoop1 + name = radial.atmospheric.scoop2 + } +} +NODE +{ + name = node7_advancedMotors + techID = advancedMotors + pos = -635,500,-1 + icon = ADVANCEDMOTORS + cost = 550 + title = Advanced Motors + description = Wheel technology is just rolling along now. You could even say our engineers are on a roll with it. + anyParent = False + hideIfEmpty = False + parents = node6_fieldScience + PARTS + { + name = roverWheel3 + name = wheelMed + } +} +NODE +{ + name = node6_advMetalWorks + techID = advMetalworks + pos = -832.9991,1038.498,-1 + icon = ADVMETALWORKS + cost = 300 + title = Advanced MetalWorks + description = These new construction techniques allow for craft designs that were considered insane not too long ago... and still are. But they're now possible! + anyParent = True + hideIfEmpty = False + parents = node5_actuators,node5_specializedConstruction + PARTS + { + name = trussPiece3x + name = dockingPort3 + name = stackPoint1 + name = stackQuadCoupler + name = stackSeparator + name = stackSeparatorBig + name = stackSeparatorMini + name = adapterSize2-Size1 + name = adapterSize2-Size1Slant + } +} +NODE +{ + name = node6_largeControl + techID = largeControl + pos = -832.9991,1113.887,-1 + icon = LARGECONTROL + cost = 300 + title = Large Control + description = A newer state-of-the-art in control technology. + anyParent = False + hideIfEmpty = False + parents = node5_specializedControl + PARTS + { + name = LaunchEscapeSystem + name = cupola + name = mk2LanderCabin + name = RCSTank1-2 + } +} +NODE +{ + name = node6_unmannedTech + techID = unmannedTech + pos = -832.9991,796.7432,-1 + icon = UNMANNEDTECH + cost = 300 + title = Unmanned Tech + description = Warning: May contain traces of sentience. + anyParent = True + hideIfEmpty = False + parents = node5_precisionEngineering + PARTS + { + name = probeCoreHex + name = probeCoreOcto2 + } +} +NODE +{ + name = node6_highAltitudeFlight + techID = highAltitudeFlight + pos = -832.9991,854.3693,-1 + icon = HIGHALTITUDEFLIGHT + cost = 300 + title = High Altitude Flight + description = New breakthroughs in engine and intake development to enable flying through the upper reaches of the atmosphere. + anyParent = True + hideIfEmpty = False + parents = node5_supersonicFlight,node4_advFlightControl + PARTS + { + name = turboFanEngine + name = smallHardpoint + name = ramAirIntake + name = ThermalTurbojet + name = ThermalTurbojet2 + name = warpAtmIntake + name = warpAtmIntake2 + } +} +NODE +{ + name = node6_electronics + techID = electronics + pos = -832.9991,614.4313,-1 + icon = ELECTRONICS + cost = 300 + title = Electronics + description = Hopefully these won't become obsolete in the next couple of months. + anyParent = False + hideIfEmpty = False + parents = node5_advElectrics + PARTS + { + name = commDish + name = sensorAccelerometer + name = FNDeuteriumCryostat + name = FNHeliumCryostat + name = FNIRTelescope + name = DTMagnetometer + name = sensorGammaRaySpectrometer + name = sensorGammaRaySpectrometer2 + } +} +NODE +{ + name = node6_largeElectrics + techID = largeElectrics + pos = -832.9991,671.9929,-1 + icon = LARGEELECTRICS + cost = 300 + title = Large Electrics + description = Maximize your energy production and storage potential by maximizing the size of the electrical components on your vessels. + anyParent = False + hideIfEmpty = False + parents = node5_advElectrics + PARTS + { + name = batteryBank + name = largeSolarPanel + name = Brayton2 + name = Brayton3 + name = Brayton1 + name = tinyBrayton + name = radiator0 + name = radiator1 + name = radiator2 + } +} +NODE +{ + name = node5_supersonicFlight + techID = supersonicFlight + pos = -1043,897.5981,-1 + icon = SUPERSONICFLIGHT + cost = 160 + title = Supersonic Flight + description = A new line of aircraft parts that allow for unprecedented maneuverability and speed. + anyParent = False + hideIfEmpty = False + parents = node4_aerodynamicSystems + PARTS + { + name = deltaWing + name = mk2Fuselage + name = mk2SpacePlaneAdapter + name = nacelleBody + name = radialEngineBody + name = CircularIntake + } +} +NODE +{ + name = node7_veryHeavyRocketry + techID = veryHeavyRocketry + pos = -635,1250.411,-1 + icon = VERYHEAVYROCKETRY + cost = 550 + title = Very Heavy Rocketry + description = While ever-larger rockets may not be the answer every time, for all other times, we've developed these. + anyParent = True + hideIfEmpty = False + parents = node5_heavierRocketry,node6_largeControl + PARTS + { + name = Size3AdvancedEngine + name = size3Decoupler + name = Size3EngineCluster + name = Size3LargeTank + name = Size3MediumTank + name = Size3SmallTank + name = Size3to2Adapter + name = AluminiumHybrid1 + name = 375PureLiquidTank + } +} +NODE +{ + name = node6_ionPropulsion + techID = ionPropulsion + pos = -832.9991,731.5032,-1 + icon = IONPROPULSION + cost = 300 + title = Ion Propulsion + description = Turns out, it's not science fiction. + anyParent = False + hideIfEmpty = False + parents = node5_precisionEngineering,node5_advElectrics + PARTS + { + name = ionEngine + name = xenonTank + name = xenonTankRadial + name = FNSmallerAugmentedArcjet + name = FNSmallAugmentedArcjet + name = smallerMPD + name = smallMPD + name = MPD + name = BigXenonTank + } +} +NODE +{ + name = node6_nuclearPropulsion + techID = nuclearPropulsion + pos = -832.9991,1184.784,-1 + icon = NUCLEARPROPULSION + cost = 300 + title = Nuclear Propulsion + description = Nuclear engines don't burn fuel, they totally annihilate it. We just hope it doesn't begin any conflicts. + anyParent = False + hideIfEmpty = False + parents = node5_heavierRocketry,node5_specializedControl + PARTS + { + name = nuclearEngine + name = NuclearReactor375 + name = NuclearReactor250 + name = NuclearReactor0625 + name = NuclearReactor125 + name = FNPFissionReactor0625 + name = FNPFissionReactor125 + name = FNPFissionReactor250 + name = FNPFissionReactor375 + name = smallerThermalRocketNozzle + name = smallThermalRocketNozzle + name = ThermalRocketNozzle + name = bigThermalRocketNozzle + name = FNAntimatterBottle + name = HexCanDeutTritLarge + name = HexCanHe3Large + } +} +NODE +{ + name = node6_fieldScience + techID = fieldScience + pos = -832.9991,532.4777,-1 + icon = FIELDSCIENCE + cost = 300 + title = Field Science + description = Freedom to roam as far as curiosity will take you, or as long as batteries last. + anyParent = True + hideIfEmpty = False + parents = node5_advExploration,node5_advLanding + PARTS + { + name = seatExternalCmd + name = roverBody + name = roverWheel1 + name = roverWheel2 + } +} +NODE +{ + name = node7_composites + techID = composites + pos = -635,1038.984,-1 + icon = COMPOSITES + cost = 550 + title = Composites + description = Lightweight and strong! and don't worry, we're sure the glue will dry off in no time. + anyParent = False + hideIfEmpty = False + parents = node6_advMetalWorks + PARTS + { + name = structuralIBeam1 + name = structuralIBeam2 + name = structuralIBeam3 + name = structuralMiniNode + name = structuralPanel1 + name = structuralPanel2 + name = strutCube + name = strutOcto + } +} +NODE +{ + name = node7_heavyAerodynamics + techID = heavyAerodynamics + pos = -635,969.6069,-1 + icon = HEAVYAERODYNAMICS + cost = 550 + title = Heavy Aerodynamics + description = Advances in construction technology enabled new breakthroughs in aerospace materials. + anyParent = True + hideIfEmpty = False + parents = node6_advMetalWorks,node6_advAerodynamics + PARTS + { + name = rocketNoseCone + name = mk3Cockpit_Shuttle + name = mk3Fuselage + name = mk3CrewCabin + name = mk3spacePlaneAdapter + name = mk3CargoBayM + name = mk3CargoBayS + name = mk3CargoBayL + name = mk3FuselageMONO + name = mk3FuselageLFO_100 + name = mk3FuselageLFO_50 + name = mk3FuselageLFO_25 + name = mk3FuselageLF_100 + name = mk3FuselageLF_50 + name = mk3FuselageLF_25 + name = adapterSize3-Mk3 + name = adapterMk3-Mk2 + name = adapterMk3-Size2 + name = adapterMk3-Size2Slant + } +} +NODE +{ + name = node7_metaMaterials + techID = metaMaterials + pos = -635,1113.875,-1 + icon = METAMATERIALS + cost = 550 + title = Meta-Materials + description = An advancemement in spacecraft construction so revolutionary, you won't even mind that its naming was wildly inaccurate. + anyParent = True + hideIfEmpty = False + parents = node6_advMetalWorks,node6_largeControl + PARTS + { + name = adapterLargeSmallBi + name = adapterLargeSmallQuad + name = adapterLargeSmallTri + name = stationHub + name = dockingPortLarge + name = dockingPortLateral + name = SM-Solar-Sail + } +} +NODE +{ + name = node5_advLanding + techID = advLanding + pos = -1043,493.0854,-1 + icon = LANDING + cost = 160 + title = Advanced Landing + description = Further advances in landing devices, allowing for more controlled descents and a much higher number of parts still attached to the ship after touchdown. + anyParent = False + hideIfEmpty = False + parents = node4_landing + PARTS + { + name = landingLeg1-2 + name = parachuteDrogue + } +} +NODE +{ + name = node4_aerodynamicSystems + techID = aerodynamicSystems + pos = -1247,897.689,-1 + icon = AERODYNAMICSYSTEMS + cost = 90 + title = Aerodynamics + description = New breakthroughs from C7 Aerospace allow for new types of craft to be built. We're looking into hiring some of their engineers as well. + anyParent = True + hideIfEmpty = False + parents = node3_generalConstruction,node3_flightControl + PARTS + { + name = StandardCtrlSrf + name = airplaneTail + name = smallCtrlSrf + name = sweptWing + name = tailfin + name = JetEngine + name = MK1Fuselage + name = airScoop + } +} +NODE +{ + name = node5_specializedConstruction + techID = specializedConstruction + pos = -1043,1037.738,-1 + icon = SPECIALIZEDCONSTRUCTION + cost = 160 + title = Specialized Construction + description = Specialized construction techniques provide new ways of attaching things together, and detaching things on purpose. + anyParent = True + hideIfEmpty = False + parents = node4_advConstruction + PARTS + { + name = crewCabin + name = adapterSmallMiniShort + name = adapterSmallMiniTall + name = trussAdapter + name = dockingPort1 + name = dockingPort2 + name = stackBiCoupler + } +} +NODE +{ + name = node5_heavierRocketry + techID = heavierRocketry + pos = -1043,1250.411,-1 + icon = HEAVIERROCKETRY + cost = 160 + title = Heavier Rocketry + description = There may be an upper limit to how large a rocket can be built, but we're not there yet. + anyParent = True + hideIfEmpty = False + parents = node4_heavyRocketry,node4_fuelSystems + PARTS + { + name = Size2LFB + name = liquidEngine1-2 + name = fuelTank3-2 + name = 25PureLiquidTank + } +} +NODE +{ + name = node5_specializedControl + techID = specializedControl + pos = -1043,1113.71,-1 + icon = SPECIALIZEDCONTROL + cost = 160 + title = Specialized Control + description = A new state-of-the-art in control technology. + anyParent = True + hideIfEmpty = False + parents = node4_fuelSystems,node4_advConstruction + PARTS + { + name = asasmodule1-2 + name = landerCabinSmall + name = Mark1-2Pod + name = rcsTankRadialLong + name = linearRcs + name = parachuteLarge + } +} +NODE +{ + name = node5_advElectrics + techID = advElectrics + pos = -1043,671.9929,-1 + icon = ADVELECTRICS + cost = 160 + title = Advanced Electrics + description = We're fairly certain no one will ever need more than 64kw of power for anything. + anyParent = False + hideIfEmpty = False + parents = node4_electrics + PARTS + { + name = ksp.r.largeBatteryPack + name = solarPanels1 + name = solarPanels2 + name = solarPanels3 + name = solarPanels4 + name = circradiatorKT + name = circradiatorKT2 + name = circradiatorKT3 + name = LargeFlatRadiator + name = RadialRadiatorzzz + name = RadialRadiatorzzz2 + } +} +NODE +{ + name = node5_precisionEngineering + techID = precisionEngineering + pos = -1043,764.6053,-1 + icon = PRECISIONENGINEERING + cost = 160 + title = Precision Engineering + description = Precise engineering techniques allow for construction of ever smaller parts. + anyParent = True + hideIfEmpty = False + parents = node4_advFlightControl,node4_electrics + PARTS + { + name = microEngine + name = radialEngineMini + name = smallRadialEngine + name = miniFuelTank + name = rcsTankMini + name = toroidalFuelTank + name = stackDecouplerMini + } +} +NODE +{ + name = node5_advExploration + techID = advExploration + pos = -1043,580.8679,-1 + icon = ADVEXPLORATION + cost = 160 + title = Advanced Exploration + description = They are Self-Deploying Astronaut Mobility Enhancement Devices, I don't know what you mean by "ladders". + anyParent = True + hideIfEmpty = False + parents = node4_electrics,node4_spaceExploration + PARTS + { + name = sensorBarometer + name = telescopicLadder + name = telescopicLadderBay + } +} +NODE +{ + name = node4_fuelSystems + techID = fuelSystems + pos = -1247,1114.295,-1 + icon = FUELSYSTEMS + cost = 90 + title = Fuel Systems + description = Advancements towards a better understanding of how fuel flows through a rocket. + anyParent = True + hideIfEmpty = False + parents = node3_advRocketry,node3_generalConstruction + PARTS + { + name = liquidEngineMini + name = fuelLine + } +} +NODE +{ + name = node4_heavyRocketry + techID = heavyRocketry + pos = -1247,1250.411,-1 + icon = HEAVYROCKETRY + cost = 90 + title = Heavy Rocketry + description = The next logical step for rocketry technology is to just go bigger. + anyParent = False + hideIfEmpty = False + parents = node3_advRocketry + PARTS + { + name = MassiveBooster + name = engineLargeSkipper + name = liquidEngine2-2 + name = fuelTank1-2 + name = fuelTank2-2 + } +} +NODE +{ + name = node4_landing + techID = landing + pos = -1247,493,-1 + icon = ADVLANDING + cost = 90 + title = Landing + description = Our Engineers are nothing if not optimistic. + anyParent = False + hideIfEmpty = False + parents = node3_scienceTech + PARTS + { + name = miniLandingLeg + name = SmallGearBay + } +} +NODE +{ + name = node4_spaceExploration + techID = spaceExploration + pos = -1247,580.6476,-1 + icon = EVATECH + cost = 90 + title = Space Exploration + description = To boldly go where no green man has gone before. + anyParent = False + hideIfEmpty = False + parents = node3_scienceTech + PARTS + { + name = Large.Crewed.Lab + name = ladder1 + name = sensorThermometer + } +} +NODE +{ + name = node4_electrics + techID = electrics + pos = -1247,671.9929,-1 + icon = ELECTRICS + cost = 90 + title = Electrics + description = We did know about electricity before inventing space flight. The big breakthrough here was combining the two. + anyParent = True + hideIfEmpty = False + parents = node3_flightControl,node3_scienceTech + PARTS + { + name = batteryBankMini + name = solarPanels5 + name = spotLight1 + name = spotLight2 + } +} +NODE +{ + name = node4_advFlightControl + techID = advFlightControl + pos = -1247,796.7432,-1 + icon = ADVFLIGHTCONTROL + cost = 90 + title = Advanced Flight Control + description = The latest advancements in keeping the correct end of the ship pointing towards where you want it to go. + anyParent = False + hideIfEmpty = False + parents = node3_flightControl + PARTS + { + name = radialRCSTank + name = RCSFuelTank + name = RCSBlock + name = winglet3 + name = advSasModule + name = Mark2Cockpit + name = probeCoreOcto + } +} +NODE +{ + name = node4_advConstruction + techID = advConstruction + pos = -1247,1037.251,-1 + icon = ADVCONSTRUCTION + cost = 90 + title = Advanced Construction + description = New advances in construction make it possible to build larger than ever before. + anyParent = False + hideIfEmpty = False + parents = node3_generalConstruction + PARTS + { + name = fuelTank4-2 + name = Mk1FuselageStructural + name = decoupler1-2 + name = largeAdapter + name = largeAdapter2 + name = radialDecoupler1-2 + } +} +NODE +{ + name = node3_flightControl + techID = flightControl + pos = -1469.98,796.7432,-1 + icon = FLIGHTCONTROL + cost = 45 + title = Flight Control + description = Tumbling out of control may be fun, but our engineers insist there's more to rocket science than that. + anyParent = True + hideIfEmpty = False + parents = node2_stability,node2_survivability + PARTS + { + name = R8winglet + name = Mark1Cockpit + name = probeCoreSphere + name = sasModule + } +} +NODE +{ + name = node3_generalConstruction + techID = generalConstruction + pos = -1469.98,1037.423,-1 + icon = GENERALCONSTRUCTION + cost = 45 + title = General Construction + description = New equipment to help out in keeping things stable, especially useful when the size of the spacecraft defies the current bounds of sanity. + anyParent = True + hideIfEmpty = False + parents = node2_generalRocketry,node2_stability + PARTS + { + name = strutConnector + name = launchClamp1 + name = radialDecoupler2 + name = stackTriCoupler + } +} +NODE +{ + name = node3_scienceTech + techID = scienceTech + pos = -1469.98,580.6995,-1 + icon = SCIENCETECH + cost = 45 + title = Science Tech + description = We are going to ask all the big questions of the Universe... eventually. For now, we're starting with these. + anyParent = False + hideIfEmpty = False + parents = node2_survivability + PARTS + { + name = batteryPack + name = science.module + name = mediumDishAntenna + } +} +NODE +{ + name = node3_advRocketry + techID = advRocketry + pos = -1469.98,1184.784,-1 + icon = ADVROCKETRY + cost = 45 + title = Advanced Rocketry + description = A new step ahead in rocket technology. + anyParent = False + hideIfEmpty = False + parents = node2_generalRocketry + PARTS + { + name = radialLiquidEngine1-2 + name = fuelTank.long + } +} +NODE +{ + name = node2_stability + techID = stability + pos = -1693.861,896.566,-1 + icon = STABILITY + cost = 18 + title = Stability + description = Reaching for the stars starts with keeping our spacecraft pointed generally in the right direction. + anyParent = False + hideIfEmpty = False + parents = node1_basicRocketry + PARTS + { + name = noseCone + name = winglet + name = radialDecoupler + } +} +NODE +{ + name = node1_basicRocketry + techID = basicRocketry + pos = -1901.18,896.566,-1 + icon = BASICROCKETRY + cost = 5 + title = Basic Rocketry + description = How hard can Rocket Science be anyway? + anyParent = False + hideIfEmpty = False + parents = node0_start + PARTS + { + name = fuelTank + name = fuelTankSmallFlat + name = GooExperiment + name = stackDecoupler + } +} +NODE +{ + name = node2_survivability + techID = survivability + pos = -1732.888,699.7489,-1 + icon = SURVIVABILITY + cost = 15 + title = Survivability + description = The art and science of landing and walking away from it. + anyParent = False + hideIfEmpty = False + parents = node1_basicRocketry + PARTS + { + name = liquidEngine3 + name = landingLeg1 + name = parachuteRadial + } +} +NODE +{ + name = node2_generalRocketry + techID = generalRocketry + pos = -1652.237,1074.484,-1 + icon = GENERALROCKETRY + cost = 20 + title = General Rocketry + description = More engines, more fuel, more ambitious ideas. + anyParent = False + hideIfEmpty = False + parents = node1_basicRocketry + PARTS + { + name = liquidEngine2 + name = sepMotor1 + name = solidBooster1-1 + } +} +NODE +{ + name = node0_start + techID = start + pos = -2022.448,896.566,-1 + icon = START + cost = 0 + title = Start + description = The technology we started out with. + anyParent = False + hideIfEmpty = False + parents = + PARTS + { + name = mk1pod + name = liquidEngine + name = solidBooster + name = fuelTankSmall + name = trussPiece1x + name = longAntenna + name = parachuteSingle + name = FNAmmoniaTank + name = FNLiquidWaterTank + name = HexCanLithium + name = HexCanThoriumFl4 + name = HexCanUraniumFl6 + name = HexCanUraniumN + name = AntimatterDevTank125 + name = AntimatterDevTank250 + name = AntimatterDevTank375 + } +} +} diff --git a/GameData/WarpPlugin/License.txt b/GameData/WarpPlugin/License.txt index 35e4d782..4b7eac7c 100644 --- a/GameData/WarpPlugin/License.txt +++ b/GameData/WarpPlugin/License.txt @@ -1,60 +1,60 @@ -KSP INTERSTELLAR LICENSE - -Legal Terms -=========== - -0. Definitions --------------- - - Throughout this license, the terms `Package', `Project', `Work' and `archive' refer to the set of files originally distributed by the author as KSP Interstellar, be they named as alpha, beta or final release. - - `Modified version' refers to the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. - - `You' refers to the licensee, or person using the Project, where `using' is a generic term including compiling the Project's source code as well as linking it to form a `program' or `executable'. This program is referred to as `a program using KSP Interstellar.' - - `Source form' means the source code, documentation source, and configuration files for the Package. - - `Compiled form' means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. - - `Contribution' shall mean any Work of authorship, including the original version of the Project and any modifications or additions to that Work or derivative Works thereof, that is intentionally submitted to the Licensor for inclusion in the Work by the copyright owner by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, `submitted' means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - - `Contributor' refers to the Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by the Licensor and subsequently incorporated within the Work. - - This license applies to all files distributed in the original Project, including all source code, configuration files, binaries and documentation, unless otherwise stated in the file in its original, unmodified form as distributed in the original archive. - If You are unsure whether or not a particular file is covered by this license, You must contact me to verify this. - - The Project is copyright (C) 2013-2014 by Fractal_UK. - All rights are reserved except as specified below. - -1. No Warranty --------------- - - THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS 'AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE WORK AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -2. Redistribution ------------------ - - This license grants a worldwide, royalty-free, perpetual and irrevocable right and license to use, execute, perform, compile, display, copy, create derivative Works of, distribute and sublicense the Project (in both source and compiled forms) and derivative Works thereof for any purpose; and to authorize others to exercise some or all of the rights granted herein, subject to the following conditions: - - o Redistribution of the Source form must retain an unmodified copy of this license file. The original files must be clearly indicated in accompanying documentation. The copyright notices accompanying the unaltered, original files must be preserved with any such distribution. - - o Redistribution in Compiled form must provide a disclaimer that states that the software is based in part on the Work of the KSP Interstellar team in the distribution documentation. You are also required to provide a URL to the original KSP Interstellar distribution in Your documentation. Finally, all redistributions of the Compiled form must additionally include copies of the Source form under the terms listed above. - - o If Your Modified version has been derived from a Modified version made by someone other than You, You are nevertheless required to ensure that Your modified mersion complies with the requirements of this license. - - These conditions apply to any software derived from or based on the Project, not just the unmodified files. If You use our Work, You must acknowledge us. - -3. Contributions ------------------ - - Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement You may have executed with the Licensor regarding such Contributions. - -4. Accepting Warranty or Additional Liability. ------------------ - - While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -5. Trademarks ------------------ - +KSP INTERSTELLAR LICENSE + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `Package', `Project', `Work' and `archive' refer to the set of files originally distributed by the author as KSP Interstellar, be they named as alpha, beta or final release. + + `Modified version' refers to the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. + + `You' refers to the licensee, or person using the Project, where `using' is a generic term including compiling the Project's source code as well as linking it to form a `program' or `executable'. This program is referred to as `a program using KSP Interstellar.' + + `Source form' means the source code, documentation source, and configuration files for the Package. + + `Compiled form' means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. + + `Contribution' shall mean any Work of authorship, including the original version of the Project and any modifications or additions to that Work or derivative Works thereof, that is intentionally submitted to the Licensor for inclusion in the Work by the copyright owner by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, `submitted' means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + + `Contributor' refers to the Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by the Licensor and subsequently incorporated within the Work. + + This license applies to all files distributed in the original Project, including all source code, configuration files, binaries and documentation, unless otherwise stated in the file in its original, unmodified form as distributed in the original archive. + If You are unsure whether or not a particular file is covered by this license, You must contact me to verify this. + + The Project is copyright (C) 2013-2014 by Fractal_UK. + All rights are reserved except as specified below. + +1. No Warranty +-------------- + + THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS 'AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE WORK AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and irrevocable right and license to use, execute, perform, compile, display, copy, create derivative Works of, distribute and sublicense the Project (in both source and compiled forms) and derivative Works thereof for any purpose; and to authorize others to exercise some or all of the rights granted herein, subject to the following conditions: + + o Redistribution of the Source form must retain an unmodified copy of this license file. The original files must be clearly indicated in accompanying documentation. The copyright notices accompanying the unaltered, original files must be preserved with any such distribution. + + o Redistribution in Compiled form must provide a disclaimer that states that the software is based in part on the Work of the KSP Interstellar team in the distribution documentation. You are also required to provide a URL to the original KSP Interstellar distribution in Your documentation. Finally, all redistributions of the Compiled form must additionally include copies of the Source form under the terms listed above. + + o If Your Modified version has been derived from a Modified version made by someone other than You, You are nevertheless required to ensure that Your modified mersion complies with the requirements of this license. + + These conditions apply to any software derived from or based on the Project, not just the unmodified files. If You use our Work, You must acknowledge us. + +3. Contributions +----------------- + + Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement You may have executed with the Licensor regarding such Contributions. + +4. Accepting Warranty or Additional Liability. +----------------- + + While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +5. Trademarks +----------------- + This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of this license file. \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Command/computerCore/part.cfg b/GameData/WarpPlugin/Parts/Command/computerCore/part.cfg index 10ee5fb7..046ef461 100644 --- a/GameData/WarpPlugin/Parts/Command/computerCore/part.cfg +++ b/GameData/WarpPlugin/Parts/Command/computerCore/part.cfg @@ -1,89 +1,95 @@ -PART -{ -name = computerCore -module = Part -author = AArtisan & Fractal - -MODEL -{ - model = WarpPlugin/Parts/Command/computerCore/model - scale = 1,1,1 - rotation = 0,0,0 -} -rescaleFactor = 1 - -CrewCapacity = 0 - -node_stack_bottom = 0.0, -0.29, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_top = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 2 - -cost = 2000 -category = Pods -subcategory = 0 -title = Computer Core -manufacturer = STEADLER Engineering Corps -description = A very large supercomputing system. - -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -TechRequired = automation -entryCost = 14000 -mass = 0.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -breakingForce = 9000 -breakingTorque = 9000 -explosionPotential = 0 - -vesselType = Probe - - -MODULE -{ - name = ModuleCommand - minimumCrew = 0 -} - -RESOURCE -{ - name = Megajoules - amount = 1 - maxAmount = 1 -} - -MODULE -{ - name = ModuleReactionWheel - - PitchTorque = 1.5 - YawTorque = 1.5 - RollTorque = 1.5 - - RESOURCE - { - name = ElectricCharge - rate = 0.15 - } -} - -MODULE -{ - name = ModuleSAS -} - -MODULE -{ - name = ComputerCore - originalName = Standard Mainframe Core - megajouleRate = 1 - upgradedName = AGI Core - upgradeCost = 1200 - upgradedMegajouleRate = 5 - upgradeTechReq = none -} +PART +{ +name = computerCore +module = Part +author = AArtisan & Fractal + +MODEL +{ + model = WarpPlugin/Parts/Command/computerCore/model + scale = 1,1,1 + rotation = 0,0,0 +} +rescaleFactor = 1 + +CrewCapacity = 0 + +node_stack_bottom = 0.0, -0.29, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_top = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 2 + +cost = 2000 +category = Pods +subcategory = 0 +title = Computer Core +manufacturer = STEADLER Engineering Corps +description = A very large supercomputing system. + +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +TechRequired = automation +entryCost = 14000 +mass = 0.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +breakingForce = 9000 +breakingTorque = 9000 +explosionPotential = 0 + +vesselType = Probe + + +MODULE +{ + name = ModuleCommand + minimumCrew = 0 +} + +RESOURCE +{ + name = Megajoules + amount = 1 + maxAmount = 1 +} + +MODULE +{ + name = ModuleReactionWheel + + PitchTorque = 1.5 + YawTorque = 1.5 + RollTorque = 1.5 + + RESOURCE + { + name = ElectricCharge + rate = 0.15 + } +} + +MODULE +{ + name = ModuleSAS + SASServiceLevel = 3 +} + +MODULE +{ + name = ComputerCore + originalName = Standard Mainframe Core + megajouleRate = 1 + upgradedName = AGI Core + upgradeCost = 1200 + upgradedMegajouleRate = 5 + upgradeTechReq = none + experimentID = ExpKSPIComputerCore + rerunnable = true + deployEventName = Collect Data + reviewEventName = Review Data + resetEventName = Reset Data +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Command/scienceModule/part.cfg b/GameData/WarpPlugin/Parts/Command/scienceModule/part.cfg index fd4418b6..38d6d385 100644 --- a/GameData/WarpPlugin/Parts/Command/scienceModule/part.cfg +++ b/GameData/WarpPlugin/Parts/Command/scienceModule/part.cfg @@ -1,65 +1,70 @@ -PART -{ -name = scienceModule -module = Part -author = Fractal -///model by z -mesh = sci_model.mu -scale = 1 -rescaleFactor = 1 - -node_stack_top = 0.0, 1.7602737, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.7501, 0.0, 0.0, 1.0, 0.0 - -CrewCapacity = 2 - -INTERNAL -{ - name = crewtestInternals -} - -TechRequired = advScienceTech -entryCost = 11000 -cost = 4000 -category = Science -subcategory = 0 -title = Science Laboratory -manufacturer = Zefram Kerman's Warp Supplies Co. -description = The science laboratory, a location for Kerbals to contemplate novel and innovative approaches to blowing things up. - -attachRules = 1,0,1,1,0 - -mass = 2.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - -vesselType = Ship - - - -MODULE -{ - name = ScienceModule - animName1 = sci1 - animName2 = sci2 -} - - -MODULE -{ -name = ModuleAnimateGeneric -animationName = light -startEventGUIName = Lights ON -endEventGUIName = Lights OFF -} - - - - -} +PART +{ +name = scienceModule +module = Part +author = Fractal +///model by z +mesh = sci_model.mu +scale = 1 +rescaleFactor = 1 + +node_stack_top = 0.0, 1.7602737, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.7501, 0.0, 0.0, 1.0, 0.0, 2 + +CrewCapacity = 2 + +INTERNAL +{ + name = crewtestInternals +} + +TechRequired = advScienceTech +entryCost = 11000 +cost = 4000 +category = Science +subcategory = 0 +title = Science Laboratory +manufacturer = Zefram Kerman's Warp Supplies Co. +description = The science laboratory, a location for Kerbals to contemplate novel and innovative approaches to blowing things up. + +attachRules = 1,0,1,1,0 + +mass = 2.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + +vesselType = Ship + + + +MODULE +{ + name = ScienceModule + animName1 = sci1 + animName2 = sci2 + experimentID = ExpKSPIScienceLab + rerunnable = true + deployEventName = Collect Lab Data + reviewEventName = Review Lab Data + resetEventName = Reset Lab Data +} + + +MODULE +{ +name = ModuleAnimateGeneric +animationName = light +startEventGUIName = Lights ON +endEventGUIName = Lights OFF +} + + + + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/AntimatterCollector/part.cfg b/GameData/WarpPlugin/Parts/Electrical/AntimatterCollector/part.cfg index 4832ed31..57648229 100644 --- a/GameData/WarpPlugin/Parts/Electrical/AntimatterCollector/part.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/AntimatterCollector/part.cfg @@ -1,39 +1,39 @@ -PART -{ -name = AntimatterCollector -module = Part -author = Fractal -///model by z -mesh = model.mu -scale = 1 -rescaleFactor = 2 - -node_stack_top = 0.0, 0.42856, 0.0, 0.0, 1.0, 0.0, 0 -node_stack_bottom = 0.0, -0.4357, 0.0, 0.0, 1.0, 0.0, 0 - -TechRequired = experimentalScience -entryCost = 20000 -cost = 10 -category = Utility -subcategory = 0 -title = Antimatter Collector -manufacturer = Zefram Kerman's Warp Supplies Co. -description = Harvests antimatter from planetary magnetospheres. The rate at which antimatter acquisition occurs is dependant upon the magnetic field strength of the planet in question. -attachRules = 1,1,1,1,0 - -// --- standard part parameters --- -mass = 4 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3000 - -MODULE -{ - name = AntimatterCollector -} -} +PART +{ +name = AntimatterCollector +module = Part +author = Fractal +///model by z +mesh = model.mu +scale = 1 +rescaleFactor = 2 + +node_stack_top = 0.0, 0.42856, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.4357, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = experimentalScience +entryCost = 20000 +cost = 10 +category = Utility +subcategory = 0 +title = Antimatter Collector +manufacturer = Zefram Kerman's Warp Supplies Co. +description = Harvests antimatter from planetary magnetospheres. The rate at which antimatter acquisition occurs is dependant upon the magnetic field strength of the planet in question. +attachRules = 1,1,1,1,0 + +// --- standard part parameters --- +mass = 4 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3000 + +MODULE +{ + name = AntimatterCollector +} +} diff --git a/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor125.cfg b/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor125.cfg index c6cc585d..37cc3885 100644 --- a/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor125.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor125.cfg @@ -1,69 +1,69 @@ -PART -{ -name = AntimatterReactor125 -module = Part -author = Fractal - -mesh = model.mu -rescaleFactor = 0.5 - -node_stack_top = 0.0, 1.2665, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.2665, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 0.0, 0.0, 1.4, 0.0, 0.0, -1.0, 1 - -TechRequired = experimentalRocketry -entryCost = 8000000 -cost = 25000 -category = Utility -subcategory = 0 -title = 1.25m Antimatter Reactor -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A solid core antimatter reactor. - -attachRules = 1,1,1,1,0 - -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - - -MODULE -{ - name = FNAntimatterReactor - ReactorTemp = 6698 - PowerOutput = 5000 - resourceRate = 0.1385 - originalName = Gas Core - upgradedName = Plasma Core - upgradedReactorTemp = 140278 - upgradedPowerOutput = 15000 - upgradeCost = 120 - upgradedResourceRate = 0.4155 - upgradeTechReq = interstellarTechUHEPhysics - animName = e5 - radius = 1.25 - consumeGlobal = true - reactorType = 32 - fuelEfficiency = 0.3 - upgradedFuelEfficiency = 0.3 -} -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 5000 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 50000 -} -} - +PART +{ +name = AntimatterReactor125 +module = Part +author = Fractal + +mesh = model.mu +rescaleFactor = 0.5 + +node_stack_top = 0.0, 1.2665, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -1.2665, 0.0, 0.0, 1.0, 0.0, 1 +node_attach = 0.0, 0.0, 1.4, 0.0, 0.0, -1.0, 1 + +TechRequired = experimentalRocketry +entryCost = 8000000 +cost = 25000 +category = Utility +subcategory = 0 +title = 1.25m Antimatter Reactor +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A solid core antimatter reactor. + +attachRules = 1,1,1,1,0 + +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + + +MODULE +{ + name = FNAntimatterReactor + ReactorTemp = 6698 + PowerOutput = 5000 + resourceRate = 0.1385 + originalName = Gas Core + upgradedName = Plasma Core + upgradedReactorTemp = 140278 + upgradedPowerOutput = 15000 + upgradeCost = 120 + upgradedResourceRate = 0.4155 + upgradeTechReq = interstellarTechUHEPhysics + animName = e5 + radius = 1.25 + consumeGlobal = true + reactorType = 32 + fuelEfficiency = 0.3 + upgradedFuelEfficiency = 0.3 +} +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 5000 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 50000 +} +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor250.cfg b/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor250.cfg index 52a4960e..128bd6ee 100644 --- a/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor250.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor250.cfg @@ -1,67 +1,67 @@ -PART -{ -name = AntimatterReactor250 -module = Part -author = Fractal - -mesh = model.mu -rescaleFactor = 1 - -node_stack_top = 0.0, 1.2665, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.2665, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 0.0, 0.0, 1.4, 0.0, 0.0, -1.0, 1 - -TechRequired = experimentalRocketry -entryCost = 30000000 -cost = 50000 -category = Utility -subcategory = 0 -title = 2.5m Antimatter Reactor -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A gas core antimatter reactor. - -attachRules = 1,1,1,1,0 - -mass = 16 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - - -MODULE -{ - name = FNAntimatterReactor - ReactorTemp = 15012 - PowerOutput = 40000 - originalName = Gas Core - upgradedName = Plasma Core - upgradedReactorTemp = 409977 - upgradedPowerOutput = 120000 - upgradeCost = 150 - upgradeTechReq = interstellarTechUHEPhysics - animName = e5 - radius = 2.5 - consumeGlobal = true - reactorType = 32 - fuelEfficiency = 0.3 - upgradedFuelEfficiency = 0.3 -} -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 40000 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} -} - +PART +{ +name = AntimatterReactor250 +module = Part +author = Fractal + +mesh = model.mu +rescaleFactor = 1 + +node_stack_top = 0.0, 1.2665, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.2665, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.0, 0.0, 1.4, 0.0, 0.0, -1.0, 1 + +TechRequired = experimentalRocketry +entryCost = 30000000 +cost = 50000 +category = Utility +subcategory = 0 +title = 2.5m Antimatter Reactor +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A gas core antimatter reactor. + +attachRules = 1,1,1,1,0 + +mass = 16 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + + +MODULE +{ + name = FNAntimatterReactor + ReactorTemp = 15012 + PowerOutput = 40000 + originalName = Gas Core + upgradedName = Plasma Core + upgradedReactorTemp = 409977 + upgradedPowerOutput = 120000 + upgradeCost = 150 + upgradeTechReq = interstellarTechUHEPhysics + animName = e5 + radius = 2.5 + consumeGlobal = true + reactorType = 32 + fuelEfficiency = 0.3 + upgradedFuelEfficiency = 0.3 +} +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 40000 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor375.cfg b/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor375.cfg index 7ec05f97..208f4ac7 100644 --- a/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor375.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/AntimatterReactors/AntimatterReactor375.cfg @@ -1,67 +1,67 @@ -PART -{ -name = AntimatterReactor375 -module = Part -author = Fractal - -mesh = model.mu -rescaleFactor = 1.5 - -node_stack_top = 0.0, 1.2665, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.2665, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 0.0, 0.0, 1.4, 0.0, 0.0, -1.0, 1 - -cost = 150000 -category = Utility -subcategory = 0 -title = 3.75m Antimatter Reactor -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A plasma core antimatter reactor. - -attachRules = 1,1,1,1,0 - -TechRequired = experimentalRocketry -entryCost = 90000000 -mass = 54 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 1500 -breakingTorque = 1500 -maxTemp = 3600 - - -MODULE -{ - name = FNAntimatterReactor - ReactorTemp = 22922 - PowerOutput = 135000 - originalName = Gas Core - upgradedName = Plasma Core - upgradedReactorTemp = 646146 - upgradedPowerOutput = 405000 - upgradeCost = 180 - upgradeTechReq = interstellarTechUHEPhysics - animName = e5 - radius = 3.75 - consumeGlobal = true - reactorType = 32 - fuelEfficiency = 0.3 - upgradedFuelEfficiency = 0.3 -} -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 135000 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 1350000 -} -} - +PART +{ +name = AntimatterReactor375 +module = Part +author = Fractal + +mesh = model.mu +rescaleFactor = 1.5 + +node_stack_top = 0.0, 1.2665, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.2665, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.0, 0.0, 1.4, 0.0, 0.0, -1.0, 1 + +cost = 150000 +category = Utility +subcategory = 0 +title = 3.75m Antimatter Reactor +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A plasma core antimatter reactor. + +attachRules = 1,1,1,1,0 + +TechRequired = experimentalRocketry +entryCost = 90000000 +mass = 54 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 1500 +breakingTorque = 1500 +maxTemp = 3600 + + +MODULE +{ + name = FNAntimatterReactor + ReactorTemp = 22922 + PowerOutput = 135000 + originalName = Gas Core + upgradedName = Plasma Core + upgradedReactorTemp = 646146 + upgradedPowerOutput = 405000 + upgradeCost = 180 + upgradeTechReq = interstellarTechUHEPhysics + animName = e5 + radius = 3.75 + consumeGlobal = true + reactorType = 32 + fuelEfficiency = 0.3 + upgradedFuelEfficiency = 0.3 +} +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 135000 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 1350000 +} +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton2.cfg b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton2.cfg index 831fc6fd..b25fba0c 100644 --- a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton2.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton2.cfg @@ -1,70 +1,70 @@ -PART { - -name = Brayton2 -module = Part -author = Squad - -mesh = model.mu -rescaleFactor = 1 - -node_stack_top = 0.0, 0.935, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.925, 0.0, 0.0, 1.0, 0.0, 1 -node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 - -TechRequired = largeElectrics -entryCost = 1000 -cost = 8000 -category = Utility -subcategory = 0 -title = 2.5m Electric Generator -manufacturer = Brayton Kerman's Power Parts Inc. -description = A larger Brayton cycle engine that turns thermal power into electrical power. - -attachRules = 1,1,1,1,0 - -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 6 -maxTemp = 2900 -breakingForce = 800 -breakingTorque = 800 - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 20000 -} - -RESOURCE -{ - name = ElectricCharge - amount = 1000 - maxAmount = 1000 -} - - -MODULE -{ - name = FNGenerator - pCarnotEff = 0.31 - maxThermalPower = 40000 - upgradedpCarnotEff = 0.6 - upgradedName = KTEC Solid State Generator - originalName = Brayton Cycle Gas Turbine - upgradeTechReq = experimentalElectrics - upgradeCost = 220 - animName = e6 - radius = 2.5 - altUpgradedName = Direct Conversion Generator -} - - - - - - -} +PART { + +name = Brayton2 +module = Part +author = Squad + +mesh = model.mu +rescaleFactor = 1 + +node_stack_top = 0.0, 0.935, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.925, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 + +TechRequired = largeElectrics +entryCost = 1000 +cost = 8000 +category = Utility +subcategory = 0 +title = 2.5m Electric Generator +manufacturer = Brayton Kerman's Power Parts Inc. +description = A larger Brayton cycle engine that turns thermal power into electrical power. + +attachRules = 1,1,1,1,0 + +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 6 +maxTemp = 2900 +breakingForce = 800 +breakingTorque = 800 + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 20000 +} + +RESOURCE +{ + name = ElectricCharge + amount = 1000 + maxAmount = 1000 +} + + +MODULE +{ + name = FNGenerator + pCarnotEff = 0.31 + maxThermalPower = 40000 + upgradedpCarnotEff = 0.6 + upgradedName = KTEC Solid State Generator + originalName = Brayton Cycle Gas Turbine + upgradeTechReq = experimentalElectrics + upgradeCost = 220 + animName = e6 + radius = 2.5 + altUpgradedName = Direct Conversion Generator +} + + + + + + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton3.cfg b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton3.cfg index 406b2674..86c229d1 100644 --- a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton3.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsL/Brayton3.cfg @@ -1,70 +1,70 @@ -PART { - -name = Brayton3 -module = Part -author = Squad - -mesh = model.mu -rescaleFactor = 1.5 - -node_stack_top = 0.0, 0.935, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.925, 0.0, 0.0, 1.0, 0.0, 1 -node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 - -TechRequired = largeElectrics -entryCost = 24000 -cost = 1000 -category = Utility -subcategory = 0 -title = 3.75m Electric Generator -manufacturer = Brayton Kerman's Power Parts Inc. -description = An even larger Brayton cycle engine that turns thermal power into electrical power. - -attachRules = 1,1,1,1,0 - -mass = 8 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 6 -maxTemp = 2900 -breakingForce = 3500 -breakingTorque = 3500 - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 80000 -} - -RESOURCE -{ - name = ElectricCharge - amount = 1000 - maxAmount = 1000 -} - - -MODULE -{ - name = FNGenerator - pCarnotEff = 0.31 - maxThermalPower = 135000 - upgradedpCarnotEff = 0.6 - upgradedName = KTEC Solid State Generator - originalName = Brayton Cycle Gas Turbine - upgradeTechReq = experimentalElectrics - upgradeCost = 240 - animName = e6 - radius = 3.75 - altUpgradedName = Direct Conversion Generator -} - - - - - - -} +PART { + +name = Brayton3 +module = Part +author = Squad + +mesh = model.mu +rescaleFactor = 1.5 + +node_stack_top = 0.0, 0.935, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.925, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 + +TechRequired = largeElectrics +entryCost = 24000 +cost = 1000 +category = Utility +subcategory = 0 +title = 3.75m Electric Generator +manufacturer = Brayton Kerman's Power Parts Inc. +description = An even larger Brayton cycle engine that turns thermal power into electrical power. + +attachRules = 1,1,1,1,0 + +mass = 8 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 6 +maxTemp = 2900 +breakingForce = 3500 +breakingTorque = 3500 + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 80000 +} + +RESOURCE +{ + name = ElectricCharge + amount = 1000 + maxAmount = 1000 +} + + +MODULE +{ + name = FNGenerator + pCarnotEff = 0.31 + maxThermalPower = 135000 + upgradedpCarnotEff = 0.6 + upgradedName = KTEC Solid State Generator + originalName = Brayton Cycle Gas Turbine + upgradeTechReq = experimentalElectrics + upgradeCost = 240 + animName = e6 + radius = 3.75 + altUpgradedName = Direct Conversion Generator +} + + + + + + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/Brayton1.cfg b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/Brayton1.cfg index 2903559f..c3ab011e 100644 --- a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/Brayton1.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/Brayton1.cfg @@ -1,65 +1,65 @@ -PART { - -name = Brayton1 -module = Part -author = Fractal - -mesh = model.mu -rescaleFactor = 1 - -node_stack_top = 0.0, 0.75, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.75, 0.0, 0.0, 1.0, 0.0, 1 -node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 - -TechRequired = largeElectrics -entryCost = 1000 -cost = 2000 -category = Utility -subcategory = 0 -title = 1.25m Electric Generator -manufacturer = Brayton Kerman's Power Parts Inc. -description = A Brayton cycle engine that turns thermal power into electrical power. - -attachRules = 1,1,1,1,0 - -mass = 0.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 6 -maxTemp = 2900 -breakingForce = 100 -breakingTorque = 100 - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 5000 -} - -RESOURCE -{ - name = ElectricCharge - amount = 1000 - maxAmount = 1000 -} - - -MODULE -{ - name = FNGenerator - pCarnotEff = 0.31 - maxThermalPower = 5000 - upgradedpCarnotEff = 0.6 - upgradedName = KTEC Solid State Generator - originalName = Brayton Cycle Gas Turbine - upgradeTechReq = experimentalElectrics - upgradeCost = 200 - animName = e7 - radius = 1.25 - altUpgradedName = Direct Conversion Generator -} - -} +PART { + +name = Brayton1 +module = Part +author = Fractal + +mesh = model.mu +rescaleFactor = 1 + +node_stack_top = 0.0, 0.75, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.75, 0.0, 0.0, 1.0, 0.0, 1 +node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 + +TechRequired = largeElectrics +entryCost = 1000 +cost = 2000 +category = Utility +subcategory = 0 +title = 1.25m Electric Generator +manufacturer = Brayton Kerman's Power Parts Inc. +description = A Brayton cycle engine that turns thermal power into electrical power. + +attachRules = 1,1,1,1,0 + +mass = 0.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 6 +maxTemp = 2900 +breakingForce = 100 +breakingTorque = 100 + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 5000 +} + +RESOURCE +{ + name = ElectricCharge + amount = 1000 + maxAmount = 1000 +} + + +MODULE +{ + name = FNGenerator + pCarnotEff = 0.31 + maxThermalPower = 5000 + upgradedpCarnotEff = 0.6 + upgradedName = KTEC Solid State Generator + originalName = Brayton Cycle Gas Turbine + upgradeTechReq = experimentalElectrics + upgradeCost = 200 + animName = e7 + radius = 1.25 + altUpgradedName = Direct Conversion Generator +} + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/tinyBrayton.cfg b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/tinyBrayton.cfg index 93ddde6f..98341f56 100644 --- a/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/tinyBrayton.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/ElectricalGeneratorsS/tinyBrayton.cfg @@ -1,65 +1,65 @@ -PART { - -name = tinyBrayton -module = Part -author = Fractal - -mesh = model.mu -rescaleFactor = 0.5 - -node_stack_top = 0.0, 0.75, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.75, 0.0, 0.0, 1.0, 0.0, 1 -node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 - -TechRequired = largeElectrics -entryCost = 1000 -cost = 500 -category = Utility -subcategory = 0 -title = 62.5cm Electric Generator -manufacturer = Brayton Kerman's Power Parts Inc. -description = A really tiny Brayton cycle engine that turns thermal power into electrical power. - -attachRules = 1,1,1,1,0 - -mass = 0.125 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 6 -maxTemp = 2900 -breakingForce = 50 -breakingTorque = 50 - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 1250 -} - -RESOURCE -{ - name = ElectricCharge - amount = 1000 - maxAmount = 1000 -} - - -MODULE -{ - name = FNGenerator - pCarnotEff = 0.31 - maxThermalPower = 400 - upgradedpCarnotEff = 0.6 - upgradedName = KTEC Solid State Generator - originalName = Brayton Cycle Gas Turbine - upgradeTechReq = experimentalElectrics - upgradeCost = 180 - animName = e7 - radius = 0.625 - altUpgradedName = Direct Conversion Generator -} - -} +PART { + +name = tinyBrayton +module = Part +author = Fractal + +mesh = model.mu +rescaleFactor = 0.5 + +node_stack_top = 0.0, 0.75, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.75, 0.0, 0.0, 1.0, 0.0, 1 +node_attach = 0.5, 0.0, 0.0, 1.0, 0.0, 0.0 + +TechRequired = largeElectrics +entryCost = 1000 +cost = 500 +category = Utility +subcategory = 0 +title = 62.5cm Electric Generator +manufacturer = Brayton Kerman's Power Parts Inc. +description = A really tiny Brayton cycle engine that turns thermal power into electrical power. + +attachRules = 1,1,1,1,0 + +mass = 0.125 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 6 +maxTemp = 2900 +breakingForce = 50 +breakingTorque = 50 + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 1250 +} + +RESOURCE +{ + name = ElectricCharge + amount = 1000 + maxAmount = 1000 +} + + +MODULE +{ + name = FNGenerator + pCarnotEff = 0.31 + maxThermalPower = 400 + upgradedpCarnotEff = 0.6 + upgradedName = KTEC Solid State Generator + originalName = Brayton Cycle Gas Turbine + upgradeTechReq = experimentalElectrics + upgradeCost = 180 + animName = e7 + radius = 0.625 + altUpgradedName = Direct Conversion Generator +} + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/FissFussReactor/part.cfg b/GameData/WarpPlugin/Parts/Electrical/FissFussReactor/part.cfg index abf7c829..5458eb48 100644 --- a/GameData/WarpPlugin/Parts/Electrical/FissFussReactor/part.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/FissFussReactor/part.cfg @@ -1,96 +1,97 @@ -PART -{ -name = FNFissionFusionCatReactor -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/FissFussReactor/model - rotation = 0,0,0 - scale = 1,1,1 -} -scale = 1 -rescaleFactor = 1 - -node_stack_bottom = 0.0, -2.375, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_top = 0.0, 2.375, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 0.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = interstellarTechFusionPower -entryCost = 34200 -cost = 725539.672 -category = Utility -subcategory = 0 -title = Antimatter Initiated Reactor -manufacturer = Geomax Plc. -description = An Antimatter Initated Fission/Fusion Reactor, it uses small quantities of antiprotons to produce fission in Uranium nuclei which in turn provide the energy to ignite fusion in a Deuterium/Helium-3 pellet. The reactor contains the antiprotons magnetically and electrostatically in a vacuum. This requires fewer bulky components compared to Tokomak designs but does require a healthy supply of antimatter to operate for long periods. - -attachRules = 1,1,1,1,0 - -mass = 12 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 2500 -breakingTorque = 2500 -maxTemp = 2900 - -MODULE -{ - name = InterstellarCatalysedFissionFusion - originalName = AIM Microfission - upgradedName = AIM Microfusion - ReactorTemp = 19394 - upgradedReactorTemp = 68319 - ThermalPower = 14793 - upgradedThermalPower = 44379 - radius = 3.75 - reactorType = 16 - upgradedReactorType = 64 - fuelEfficiency = 0.31 - upgradedFuelEfficiency = 0.95 - upgradeCost = 250 - upgradeTechReq = interstellarTechAntimatterPower -} - -RESOURCE -{ - name = ChargedParticles - amount = 0 - maxAmount = 44000 -} -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 4400 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 350000 -} -RESOURCE -{ - name = LqdDeuterium - amount = 500 - maxAmount = 500 -} -RESOURCE -{ - name = LqdHelium3 - amount = 0 - maxAmount = 1000 -} -RESOURCE -{ - name = UraniumNitride - amount = 20 - maxAmount = 20 -} - -} +PART +{ +name = FNFissionFusionCatReactor +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/FissFussReactor/model + rotation = 0,0,0 + scale = 1,1,1 +} +scale = 1 +rescaleFactor = 1 + +node_stack_bottom = 0.0, -2.375, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_top = 0.0, 2.375, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = interstellarTechFusionPower +entryCost = 34200 +cost = 725539.672 +category = Utility +subcategory = 0 +title = Antimatter Initiated Reactor +manufacturer = Geomax Plc. +description = An Antimatter Initated Fission/Fusion Reactor, it uses small quantities of antiprotons to produce fission in Uranium nuclei which in turn provide the energy to ignite fusion in a Deuterium/Helium-3 pellet. The reactor contains the antiprotons magnetically and electrostatically in a vacuum. This requires fewer bulky components compared to Tokomak designs but does require a healthy supply of antimatter to operate for long periods. + +attachRules = 1,1,1,1,0 + +mass = 12 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 2500 +breakingTorque = 2500 +maxTemp = 2900 + +MODULE +{ + name = InterstellarCatalysedFissionFusion + originalName = AIM Microfission + upgradedName = AIM Microfusion + ReactorTemp = 19394 + upgradedReactorTemp = 23319 + PowerOutput = 14793 + upgradedPowerOutput = 44379 + radius = 3.75 + reactorType = 16 + upgradedReactorType = 64 + fuelEfficiency = 0.31 + upgradedFuelEfficiency = 0.95 + upgradeCost = 250 + upgradeTechReq = interstellarTechAntimatterPower + consumeGlobal = true +} + +RESOURCE +{ + name = ChargedParticles + amount = 0 + maxAmount = 44000 +} +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 4400 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 350000 +} +RESOURCE +{ + name = LqdDeuterium + amount = 500 + maxAmount = 500 +} +RESOURCE +{ + name = LqdHelium3 + amount = 0 + maxAmount = 1000 +} +RESOURCE +{ + name = UraniumNitride + amount = 20 + maxAmount = 20 +} + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/FlatRadiator/part.cfg b/GameData/WarpPlugin/Parts/Electrical/FlatRadiator/part.cfg index df5026b8..7f78a157 100644 --- a/GameData/WarpPlugin/Parts/Electrical/FlatRadiator/part.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/FlatRadiator/part.cfg @@ -1,60 +1,60 @@ -PART -{ -name = SmallFlatRadiator -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/FlatRadiator/model - rotation = 0,0,180 -} -scale = 1 -rescaleFactor = 1 - -node_attach = 0, 0.2, 0, 0.0, 1.0, 0.0 - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = Flat Radiator -manufacturer = Boltzkerman Co. -description = A flat static radiator panel - -attachRules = 1,1,1,1,0 - - -mass = 0.1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -breakingForce = 2000 -breakingTorque = 2000 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 1 - radiatorTemp = 1350 - radiatorArea = 8 - originalName = Mo Li Heat Pipe - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 100000 -} +PART +{ +name = SmallFlatRadiator +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/FlatRadiator/model + rotation = 0,0,180 +} +scale = 1 +rescaleFactor = 1 + +node_attach = 0, 0.2, 0, 0.0, 1.0, 0.0 + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = Flat Radiator +manufacturer = Boltzkerman Co. +description = A flat static radiator panel + +attachRules = 1,1,1,1,0 + + +mass = 0.1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +breakingForce = 2000 +breakingTorque = 2000 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 1 + radiatorTemp = 1350 + radiatorArea = 8 + originalName = Mo Li Heat Pipe + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 100000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator0.cfg b/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator0.cfg index e56bfb67..f7628afc 100644 --- a/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator0.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator0.cfg @@ -1,58 +1,58 @@ -PART -{ -// --- general parameters --- -name = radiator0 -module = Part -author = zzz - -// --- asset parameters --- -mesh = model.mu -rescaleFactor = 1 - -// --- node definitions --- -// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z -node_attach = 0.06, 0.0, 0.0, 1.0, 0.0, 0.0 - -// --- editor parameters --- -TechRequired = largeElectrics -entryCost = 14500 -cost = 300 -category = Utility -subcategory = 0 -title = Small Heat Radiator -manufacturer = Boltzkerman Co. -description = Radiates heat into space via the Stefan-Boltzkerman law. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 0,1,0,0,1 - -// --- standard part parameters --- -mass = 0.2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 1 -crashTolerance = 8 -maxTemp = 3200 - -MODULE -{ - name = FNRadiator - animName = a1 - radiatorTemp = 1350 - radiatorArea = 100 - originalName = Mo Li Heat Pipe - upgradeCost = 15 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 625000 -} - - -} +PART +{ +// --- general parameters --- +name = radiator0 +module = Part +author = zzz + +// --- asset parameters --- +mesh = model.mu +rescaleFactor = 1 + +// --- node definitions --- +// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z +node_attach = 0.06, 0.0, 0.0, 1.0, 0.0, 0.0 + +// --- editor parameters --- +TechRequired = largeElectrics +entryCost = 14500 +cost = 300 +category = Utility +subcategory = 0 +title = Small Heat Radiator +manufacturer = Boltzkerman Co. +description = Radiates heat into space via the Stefan-Boltzkerman law. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 0,1,0,0,1 + +// --- standard part parameters --- +mass = 0.2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 1 +crashTolerance = 8 +maxTemp = 3200 + +MODULE +{ + name = FNRadiator + animName = a1 + radiatorTemp = 1350 + radiatorArea = 100 + originalName = Mo Li Heat Pipe + upgradeCost = 15 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 625000 +} + + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator1.cfg b/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator1.cfg index 84d4cc8e..a46c4880 100644 --- a/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator1.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator1.cfg @@ -1,60 +1,60 @@ -PART -{ -// --- general parameters --- -name = radiator1 -module = Part -author = zzz - -// --- asset parameters --- -mesh = model.mu -rescaleFactor = 2 - -// --- node definitions --- -// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z -node_attach = 0.06, 0.0, 0.0, 1.0, 0.0, 0.0 - -// --- editor parameters --- -TechRequired = largeElectrics -entryCost = 14500 -cost = 300 -category = Utility -subcategory = 0 -title = Heat Radiator -manufacturer = Boltzkerman Co. -description = Radiates heat into space via the Stefan-Boltzkerman law. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 0,1,0,0,1 - -// --- standard part parameters --- -mass = 0.8 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 1 -crashTolerance = 8 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3200 - -MODULE -{ - name = FNRadiator - animName = a1 - radiatorTemp = 1350 - radiatorArea = 400 - originalName = Mo Li Heat Pipe - upgradeCost = 10 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 2500000 -} - - -} +PART +{ +// --- general parameters --- +name = radiator1 +module = Part +author = zzz + +// --- asset parameters --- +mesh = model.mu +rescaleFactor = 2 + +// --- node definitions --- +// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z +node_attach = 0.06, 0.0, 0.0, 1.0, 0.0, 0.0 + +// --- editor parameters --- +TechRequired = largeElectrics +entryCost = 14500 +cost = 300 +category = Utility +subcategory = 0 +title = Heat Radiator +manufacturer = Boltzkerman Co. +description = Radiates heat into space via the Stefan-Boltzkerman law. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 0,1,0,0,1 + +// --- standard part parameters --- +mass = 0.8 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 1 +crashTolerance = 8 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3200 + +MODULE +{ + name = FNRadiator + animName = a1 + radiatorTemp = 1350 + radiatorArea = 400 + originalName = Mo Li Heat Pipe + upgradeCost = 10 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 2500000 +} + + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator2.cfg b/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator2.cfg index 15c2423e..8cabe7c2 100644 --- a/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator2.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/HeatRadiator/radiator2.cfg @@ -1,60 +1,60 @@ -PART -{ -// --- general parameters --- -name = radiator2 -module = Part -author = zzz - -// --- asset parameters --- -mesh = model.mu -rescaleFactor = 4 - -// --- node definitions --- -// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z -node_attach = 0.06, 0.0, 0.0, 1.0, 0.0, 0.0 - -// --- editor parameters --- -TechRequired = largeElectrics -entryCost = 14500 -cost = 300 -category = Utility -subcategory = 0 -title = Huge Heat Radiator -manufacturer = Boltzkerman Co. -description = Radiates heat into space via the Stefan-Boltzkerman law. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 0,1,0,0,1 - -// --- standard part parameters --- -mass = 3.2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 1 -crashTolerance = 8 -breakingForce = 2000 -breakingTorque = 2000 -maxTemp = 3200 - -MODULE -{ - name = FNRadiator - animName = a1 - radiatorTemp = 1350 - radiatorArea = 1600 - originalName = Mo Li Heat Pipe - upgradeCost = 15 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 10000000 -} - - -} +PART +{ +// --- general parameters --- +name = radiator2 +module = Part +author = zzz + +// --- asset parameters --- +mesh = model.mu +rescaleFactor = 4 + +// --- node definitions --- +// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z +node_attach = 0.06, 0.0, 0.0, 1.0, 0.0, 0.0 + +// --- editor parameters --- +TechRequired = largeElectrics +entryCost = 14500 +cost = 300 +category = Utility +subcategory = 0 +title = Huge Heat Radiator +manufacturer = Boltzkerman Co. +description = Radiates heat into space via the Stefan-Boltzkerman law. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 0,1,0,0,1 + +// --- standard part parameters --- +mass = 3.2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 1 +crashTolerance = 8 +breakingForce = 2000 +breakingTorque = 2000 +maxTemp = 3200 + +MODULE +{ + name = FNRadiator + animName = a1 + radiatorTemp = 1350 + radiatorArea = 1600 + originalName = Mo Li Heat Pipe + upgradeCost = 15 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 10000000 +} + + +} diff --git a/GameData/WarpPlugin/Parts/Electrical/LargeFlatRadiator/radiator.cfg b/GameData/WarpPlugin/Parts/Electrical/LargeFlatRadiator/radiator.cfg index 4fb47f2f..3c929d3a 100644 --- a/GameData/WarpPlugin/Parts/Electrical/LargeFlatRadiator/radiator.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/LargeFlatRadiator/radiator.cfg @@ -1,61 +1,61 @@ -PART -{ -name = LargeFlatRadiator -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/LargeFlatRadiator/model - rotation = 0,90,90 - scale = 0.9,0.6,1 -} -scale = 1 -rescaleFactor = 2 - -node_attach = 0, 1.25, -1.188, 0.0, 0.0, 0.0 - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = Large Flat Radiator -manufacturer = Boltzkerman Co. -description = An enormous static radiator designed for radiating heat away from craft sporting the largest of reactors. - -attachRules = 1,1,1,1,0 - - -mass = 5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -breakingForce = 2000 -breakingTorque = 2000 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 1 - radiatorTemp = 1350 - radiatorArea = 2500 - originalName = Mo Li Heat Pipe - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} +PART +{ +name = LargeFlatRadiator +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/LargeFlatRadiator/model + rotation = 0,90,90 + scale = 1.8,1.2,2 +} +scale = 1 +rescaleFactor = 2 + +node_attach = 0, 1.25, -1.188, 0.0, 0.0, 0.0 + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = Large Flat Radiator +manufacturer = Boltzkerman Co. +description = An enormous static radiator designed for radiating heat away from craft sporting the largest of reactors. + +attachRules = 1,1,1,1,0 + + +mass = 5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +breakingForce = 2000 +breakingTorque = 2000 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 1 + radiatorTemp = 1350 + radiatorArea = 2500 + originalName = Mo Li Heat Pipe + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part.cfg b/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part.cfg index 34d51a1d..0f53c639 100644 --- a/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part.cfg @@ -1,89 +1,89 @@ -PART -{ -name = FusionReactor250 -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/LargeFusionReactor/model - rotation = 0,0,0 - scale = 1,1,1 -} -rescaleFactor = 1 - - -node_stack_top = 0.0, 1.5, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.5, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = experimentalRocketry -entryCost = 6750 -cost = 100001.08 -category = Utility -subcategory = 0 -title = 2.5m Fusion Reactor -manufacturer = Kareva -description = A large Tokamak based fusion reactor design, unlike the smaller models, these design use large magnetic coils to contain the plasma within a helical magnetic field. The plasma is then heated to enormous temperatures using microwaves and an applied current. These designs are best suited to use with Deuterium/Tritium plasmas. - -attachRules = 1,0,1,1,0 - -mass = 9 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - -MODULE -{ - name = InterstellarTokamakFusionReator - ReactorTemp = 15513 - PowerOutput = 2277 - upgradedReactorTemp = 93078 - upgradedPowerOutput = 6831 - upgradedName = High-Q Tokamak - originalName = D-T Tokamak - upgradeTechReq = interstellarTechFusionPower2 - upgradeCost = 200 - radius = 2.5 - minimumThrottle = 0.1 - powerRequirements = 45.54 - chargedParticleRatio = 0.2 - consumeGlobal = true - reactorType = 4 - upgradedReactorType = 8 - fuelEfficiency = 0.99 - upgradedFuelEfficiency = 0.99 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 2000 -} -RESOURCE -{ - name = ChargedParticles - amount = 0 - maxAmount = 2000 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 60000 -} - -RESOURCE -{ - name = Lithium - amount = 180 - maxAmount = 180 -} -} +PART +{ +name = FusionReactor250 +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/LargeFusionReactor/model + rotation = 0,0,0 + scale = 1,1,1 +} +rescaleFactor = 1 + + +node_stack_top = 0.0, 1.5, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.5, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = experimentalRocketry +entryCost = 6750 +cost = 100001.08 +category = Utility +subcategory = 0 +title = 2.5m Fusion Reactor +manufacturer = Kareva +description = A large Tokamak based fusion reactor design, unlike the smaller models, these design use large magnetic coils to contain the plasma within a helical magnetic field. The plasma is then heated to enormous temperatures using microwaves and an applied current. These designs are best suited to use with Deuterium/Tritium plasmas. + +attachRules = 1,0,1,1,0 + +mass = 9 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + +MODULE +{ + name = InterstellarTokamakFusionReator + ReactorTemp = 15513 + PowerOutput = 2277 + upgradedReactorTemp = 23078 + upgradedPowerOutput = 6831 + upgradedName = High-Q Tokamak + originalName = D-T Tokamak + upgradeTechReq = interstellarTechFusionPower2 + upgradeCost = 200 + radius = 2.5 + minimumThrottle = 0.1 + powerRequirements = 45.54 + chargedParticleRatio = 0.2 + consumeGlobal = true + reactorType = 4 + upgradedReactorType = 8 + fuelEfficiency = 0.99 + upgradedFuelEfficiency = 0.99 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 2000 +} +RESOURCE +{ + name = ChargedParticles + amount = 0 + maxAmount = 2000 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 60000 +} + +RESOURCE +{ + name = Lithium + amount = 180 + maxAmount = 180 +} +} diff --git a/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part2.cfg b/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part2.cfg index 5db922d3..57b8881f 100644 --- a/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part2.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/LargeFusionReactor/part2.cfg @@ -1,88 +1,88 @@ -PART -{ -name = FusionReactor375 -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/LargeFusionReactor/model - rotation = 0,0,0 - scale = 1.5,1.5,1.5 -} -rescaleFactor = 1 - - -node_stack_top = 0.0, 2.25, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -2.25, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = experimentalRocketry -entryCost = 4500 -cost = 200009 -category = Utility -subcategory = 0 -title = 3.75m Fusion Reactor -manufacturer = Kareva -description = A large Tokamak based fusion reactor design, unlike the smaller models, these design use large magnetic coils to contain the plasma within a helical magnetic field. The plasma is then heated to enormous temperatures using microwaves and an applied current. These designs are best suited to use with Deuterium/Tritium plasmas. - -attachRules = 1,0,1,1,0 - -mass = 36.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 1500 -breakingTorque = 1500 -maxTemp = 2900 - -MODULE -{ - name = InterstellarTokamakFusionReator - ReactorTemp = 15513 - PowerOutput = 18216 - upgradedReactorTemp = 93078 - upgradedPowerOutput = 54648 - upgradedName = High-Q Tokamak - originalName = D-T Tokamak - upgradeTechReq = interstellarTechFusionPower2 - upgradeCost = 250 - radius = 3.75 - minimumThrottle = 0.1 - powerRequirements = 184.69 - chargedParticleRatio = 0.2 - consumeGlobal = true - reactorType = 4 - upgradedReactorType = 8 - fuelEfficiency = 0.99 - upgradedFuelEfficiency = 0.99 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 12000 -} -RESOURCE -{ - name = ChargedParticles - amount = 0 - maxAmount = 12000 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 350000 -} - -RESOURCE -{ - name = Lithium - amount = 1500 - maxAmount = 1500 -} -} +PART +{ +name = FusionReactor375 +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/LargeFusionReactor/model + rotation = 0,0,0 + scale = 1,1,1 +} +rescaleFactor = 1.5 + + +node_stack_top = 0.0, 1.5, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.5, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = experimentalRocketry +entryCost = 4500 +cost = 200009 +category = Utility +subcategory = 0 +title = 3.75m Fusion Reactor +manufacturer = Kareva +description = A large Tokamak based fusion reactor design, unlike the smaller models, these design use large magnetic coils to contain the plasma within a helical magnetic field. The plasma is then heated to enormous temperatures using microwaves and an applied current. These designs are best suited to use with Deuterium/Tritium plasmas. + +attachRules = 1,0,1,1,0 + +mass = 36.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 1500 +breakingTorque = 1500 +maxTemp = 2900 + +MODULE +{ + name = InterstellarTokamakFusionReator + ReactorTemp = 15513 + PowerOutput = 18216 + upgradedReactorTemp = 23078 + upgradedPowerOutput = 54648 + upgradedName = High-Q Tokamak + originalName = D-T Tokamak + upgradeTechReq = interstellarTechFusionPower2 + upgradeCost = 250 + radius = 3.75 + minimumThrottle = 0.1 + powerRequirements = 184.69 + chargedParticleRatio = 0.2 + consumeGlobal = true + reactorType = 4 + upgradedReactorType = 8 + fuelEfficiency = 0.99 + upgradedFuelEfficiency = 0.99 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 12000 +} +RESOURCE +{ + name = ChargedParticles + amount = 0 + maxAmount = 12000 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 350000 +} + +RESOURCE +{ + name = Lithium + amount = 1500 + maxAmount = 1500 +} +} diff --git a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-1500.cfg b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-1500.cfg index 00c32cf5..2dd84629 100644 --- a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-1500.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-1500.cfg @@ -1,85 +1,85 @@ -PART -{ -name = NuclearReactor375 -module = Part -author = Vap & Fractal - -mesh = Nuke_Reactor_Sr.mu -rescaleFactor = 1.93 - -node_stack_top = 0.0, 0.975, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -0.975, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = nuclearPropulsion -entryCost = 2600 -cost = 72969 -category = Utility -subcategory = 0 -title = 3.75m "Aegletes 2" Fission Reactor -manufacturer = Kerbin Electric Inc. -description = One of the largest nuclear reactors ever constructed by Kerbals, it is designed to fulfill the largest of power requirements and push the largest of upper stages into orbit and beyond. -attachRules = 1,0,1,1,0 - -mass = 28 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 1500 -breakingTorque = 1500 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionMSRGC - ReactorTemp = 1674 - PowerOutput = 3000 - upgradedReactorTemp = 15590 - upgradedPowerOutput = 9000 - upgradedName = Gas Core Reactor - originalName = Molten Salt Reactor - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 180 - radius = 3.75 - minimumThrottle = 0.25 - consumeGlobal = false - reactorType = 1 - upgradedReactorType = 1 - fuelEfficiency = 0.1376 - upgradedFuelEfficiency = 0.1584 -} - - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 9000 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 90000 -} -RESOURCE -{ - name = UF4 - amount = 3000 - maxAmount = 3000 -} -RESOURCE -{ - name = ThF4 - amount = 0 - maxAmount = 3000 -} -RESOURCE -{ - name = Actinides - amount = 0 - maxAmount = 3000 -} -} - +PART +{ +name = NuclearReactor375 +module = Part +author = Vap & Fractal + +mesh = Nuke_Reactor_Sr.mu +rescaleFactor = 1.93 + +node_stack_top = 0.0, 0.975, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.975, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = nuclearPropulsion +entryCost = 2600 +cost = 72969 +category = Utility +subcategory = 0 +title = 3.75m "Aegletes 2" Fission Reactor +manufacturer = Kerbin Electric Inc. +description = One of the largest nuclear reactors ever constructed by Kerbals, it is designed to fulfill the largest of power requirements and push the largest of upper stages into orbit and beyond. +attachRules = 1,0,1,1,0 + +mass = 28 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 1500 +breakingTorque = 1500 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionMSRGC + ReactorTemp = 1674 + PowerOutput = 3000 + upgradedReactorTemp = 15590 + upgradedPowerOutput = 9000 + upgradedName = Gas Core Reactor + originalName = Molten Salt Reactor + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 180 + radius = 3.75 + minimumThrottle = 0.25 + consumeGlobal = false + reactorType = 1 + upgradedReactorType = 1 + fuelEfficiency = 0.1376 + upgradedFuelEfficiency = 0.1584 +} + + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 9000 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 90000 +} +RESOURCE +{ + name = UF4 + amount = 3000 + maxAmount = 3000 +} +RESOURCE +{ + name = ThF4 + amount = 0 + maxAmount = 3000 +} +RESOURCE +{ + name = Actinides + amount = 0 + maxAmount = 3000 +} +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-300.cfg b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-300.cfg index 943106e9..f44d6804 100644 --- a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-300.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor1Sphere/25-300.cfg @@ -1,84 +1,84 @@ -PART -{ -name = NuclearReactor250 -module = Part -author = Vap & Fractal - -mesh = Nuke_Reactor_Sr.mu -rescaleFactor = 1.2175 - -node_stack_top = 0.0, 0.975, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -0.975, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = nuclearPropulsion -entryCost = 1700 -cost = 36387.6 -category = Utility -subcategory = 0 -title = 2.5m "Aegletes" Fission Reactor -manufacturer = Kerbin Electric Inc. -description = The Aegletes was thought to be the answer to all space nuclear reactor needs before KSC later decided that bigger was always better and comissioned the Aegletes 2. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -mass = 8 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionMSRGC - ReactorTemp = 1674 - PowerOutput = 500 - upgradedReactorTemp = 15590 - upgradedPowerOutput = 1500 - upgradedName = Gas Core Reactor - originalName = Molten Salt Reactor - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 150 - radius = 2.5 - minimumThrottle = 0.25 - consumeGlobal = false - reactorType = 1 - upgradedReactorType = 1 - fuelEfficiency = 0.1376 - upgradedFuelEfficiency = 0.1584 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 1500 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 15000 -} -RESOURCE -{ - name = UF4 - amount = 1200 - maxAmount = 1200 -} -RESOURCE -{ - name = ThF4 - amount = 0 - maxAmount = 1200 -} -RESOURCE -{ - name = Actinides - amount = 0 - maxAmount = 1200 -} +PART +{ +name = NuclearReactor250 +module = Part +author = Vap & Fractal + +mesh = Nuke_Reactor_Sr.mu +rescaleFactor = 1.2175 + +node_stack_top = 0.0, 0.975, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.975, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = nuclearPropulsion +entryCost = 1700 +cost = 36387.6 +category = Utility +subcategory = 0 +title = 2.5m "Aegletes" Fission Reactor +manufacturer = Kerbin Electric Inc. +description = The Aegletes was thought to be the answer to all space nuclear reactor needs before KSC later decided that bigger was always better and comissioned the Aegletes 2. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +mass = 8 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionMSRGC + ReactorTemp = 1674 + PowerOutput = 500 + upgradedReactorTemp = 15590 + upgradedPowerOutput = 1500 + upgradedName = Gas Core Reactor + originalName = Molten Salt Reactor + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 150 + radius = 2.5 + minimumThrottle = 0.25 + consumeGlobal = false + reactorType = 1 + upgradedReactorType = 1 + fuelEfficiency = 0.1376 + upgradedFuelEfficiency = 0.1584 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 1500 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 15000 +} +RESOURCE +{ + name = UF4 + amount = 1200 + maxAmount = 1200 +} +RESOURCE +{ + name = ThF4 + amount = 0 + maxAmount = 1200 +} +RESOURCE +{ + name = Actinides + amount = 0 + maxAmount = 1200 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-1-125.cfg b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-1-125.cfg index 39bd4da8..7c3db812 100644 --- a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-1-125.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-1-125.cfg @@ -1,85 +1,85 @@ -PART -{ -name = NuclearReactor0625 -module = Part -author = Vap - -mesh = Nuke_Reactor_Jr.mu -rescaleFactor = 0.75 - -node_stack_top = 0.0, 0.25, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.25, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = nuclearPropulsion -entryCost = 400 -cost = 6007.27 -category = Utility -subcategory = 0 -title = 62.5cm "SAFE-1500" Fission Reactor -manufacturer = Kerbinghouse Electric Company -description = The SAFE-1500, named because a very thick lead lined safe is the best place to keep, is the smallest nuclear reactor available to KSC. Its power output is nothing to write home about but that is fine - the postal services are rather unreliable in space anyway. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -mass = 0.225 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionMSRGC - ReactorTemp = 1674 - PowerOutput = 1.5 - upgradedReactorTemp = 15590 - upgradedPowerOutput = 4.5 - upgradedName = Gas Core Reactor - originalName = Molten Salt Reactor - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 90 - radius = 0.625 - minimumThrottle = 0.25 - consumeGlobal = false - reactorType = 1 - upgradedReactorType = 1 - fuelEfficiency = 0.1376 - upgradedFuelEfficiency = 0.1584 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 4.5 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 45 -} -RESOURCE -{ - name = UF4 - amount = 22.5 - maxAmount = 22.5 -} -RESOURCE -{ - name = ThF4 - amount = 0 - maxAmount = 22.5 -} -RESOURCE -{ - name = Actinides - amount = 0 - maxAmount = 22.5 -} -} - +PART +{ +name = NuclearReactor0625 +module = Part +author = Vap + +mesh = Nuke_Reactor_Jr.mu +rescaleFactor = 0.75 + +node_stack_top = 0.0, 0.25, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.25, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = nuclearPropulsion +entryCost = 400 +cost = 6007.27 +category = Utility +subcategory = 0 +title = 62.5cm "SAFE-1500" Fission Reactor +manufacturer = Kerbinghouse Electric Company +description = The SAFE-1500, named because a very thick lead lined safe is the best place to keep, is the smallest nuclear reactor available to KSC. Its power output is nothing to write home about but that is fine - the postal services are rather unreliable in space anyway. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +mass = 0.225 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionMSRGC + ReactorTemp = 1674 + PowerOutput = 1.5 + upgradedReactorTemp = 15590 + upgradedPowerOutput = 4.5 + upgradedName = Gas Core Reactor + originalName = Molten Salt Reactor + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 90 + radius = 0.625 + minimumThrottle = 0.25 + consumeGlobal = false + reactorType = 1 + upgradedReactorType = 1 + fuelEfficiency = 0.1376 + upgradedFuelEfficiency = 0.1584 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 4.5 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 45 +} +RESOURCE +{ + name = UF4 + amount = 22.5 + maxAmount = 22.5 +} +RESOURCE +{ + name = ThF4 + amount = 0 + maxAmount = 22.5 +} +RESOURCE +{ + name = Actinides + amount = 0 + maxAmount = 22.5 +} +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-25.cfg b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-25.cfg index b1904b20..33d4025c 100644 --- a/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-25.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/NuclearReactor3Spheres/25-25.cfg @@ -1,85 +1,85 @@ -PART -{ -name = NuclearReactor125 -module = Part -author = ZZZ & Fractal - -mesh = Nuke_Reactor_Jr.mu -rescaleFactor = 1.5 - -node_stack_top = 0.0, 0.25, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.25, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = nuclearPropulsion -entryCost = 800 -cost = 12064.6 -category = Utility -subcategory = 0 -title = 1.25m "KIWI" Fission Reactor -manufacturer = Kerbinghouse Electric Company -description = The KIWI was an early design in the KSC program to develop nuclear reactors for space applications. It is small, well tested and reliable. Completely guaranteed not to turn anyone green. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -mass = 1.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionMSRGC - ReactorTemp = 1674 - PowerOutput = 40 - upgradedReactorTemp = 15590 - upgradedPowerOutput = 120 - upgradedName = Gas Core Reactor - originalName = Molten Salt Reactor - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 120 - radius = 1.25 - minimumThrottle = 0.25 - consumeGlobal = false - reactorType = 1 - upgradedReactorType = 1 - fuelEfficiency = 0.1376 - upgradedFuelEfficiency = 0.1584 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 120 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 1200 -} -RESOURCE -{ - name = UF4 - amount = 200 - maxAmount = 200 -} -RESOURCE -{ - name = ThF4 - amount = 0 - maxAmount = 200 -} -RESOURCE -{ - name = Actinides - amount = 0 - maxAmount = 200 -} - +PART +{ +name = NuclearReactor125 +module = Part +author = ZZZ & Fractal + +mesh = Nuke_Reactor_Jr.mu +rescaleFactor = 1.5 + +node_stack_top = 0.0, 0.25, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.25, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = nuclearPropulsion +entryCost = 800 +cost = 12064.6 +category = Utility +subcategory = 0 +title = 1.25m "KIWI" Fission Reactor +manufacturer = Kerbinghouse Electric Company +description = The KIWI was an early design in the KSC program to develop nuclear reactors for space applications. It is small, well tested and reliable. Completely guaranteed not to turn anyone green. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +mass = 1.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionMSRGC + ReactorTemp = 1674 + PowerOutput = 40 + upgradedReactorTemp = 15590 + upgradedPowerOutput = 120 + upgradedName = Gas Core Reactor + originalName = Molten Salt Reactor + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 120 + radius = 1.25 + minimumThrottle = 0.25 + consumeGlobal = false + reactorType = 1 + upgradedReactorType = 1 + fuelEfficiency = 0.1376 + upgradedFuelEfficiency = 0.1584 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 120 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 1200 +} +RESOURCE +{ + name = UF4 + amount = 200 + maxAmount = 200 +} +RESOURCE +{ + name = ThF4 + amount = 0 + maxAmount = 200 +} +RESOURCE +{ + name = Actinides + amount = 0 + maxAmount = 200 +} + } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission0625.cfg b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission0625.cfg index 2d0c5bb8..484b4d2c 100644 --- a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission0625.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission0625.cfg @@ -1,93 +1,93 @@ -PART -{ -name = FNPFissionReactor0625 -module = Part -author = AAristisan & Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/PFissionReactor/model4 - scale = 1,1,1 - rotation = 0.9,0.9,0.9 -} -rescaleFactor = 1 - -node_stack_top = 0.0, 0.48, 0.0, 0.0, 1.0, 0.0, 0 -node_stack_bottom = 0.0, -0.48, 0.0, 0.0, 1.0, 0.0, 0 - -TechRequired = nuclearPropulsion -entryCost = 200 -cost = 75000.19 -category = Utility -subcategory = 0 -title = 62.5cm "Sethlans" Fission Reactor -manufacturer = Kerbin Electric Inc. -description = Part of a new series of fission reactors with slightly different capabilities. The "Sethlans" series reactor operates in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. -attachRules = 1,0,1,1,0 - -mass = 0.35 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 250 -breakingTorque = 250 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionPBDP - ReactorTemp = 1173 - upgradedReactorTemp = 4100 - PowerOutput = 3.5 - upgradedPowerOutput = 5.8 - originalName = Particle Bed - upgradedName = Dusty Plasma - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 70 - radius = 0.625 - minimumThrottle = 0.4 - consumeGlobal = false - reactorType = 2 - upgradedReactorType = 128 - fuelEfficiency = 0.31 - upgradedFuelEfficiency = 0.97 - optimalPebbleTemp = 1000 - tempZeroPower = 2700 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 6 -} -RESOURCE -{ - name = ChargedPower - amount = 0 - maxAmount = 6 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 200 -} -RESOURCE -{ - name = UraniumNitride - amount = 0.25 - maxAmount = 0.25 -} -RESOURCE -{ - name = DepletedFuel - amount = 0 - maxAmount = 0.25 -} - - -} - +PART +{ +name = FNPFissionReactor0625 +module = Part +author = AAristisan & Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/PFissionReactor/model4 + scale = 1,1,1 + rotation = 0.9,0.9,0.9 +} +rescaleFactor = 1 + +node_stack_top = 0.0, 0.48, 0.0, 0.0, 1.0, 0.0, 0 +node_stack_bottom = 0.0, -0.48, 0.0, 0.0, 1.0, 0.0, 0 + +TechRequired = nuclearPropulsion +entryCost = 200 +cost = 75000.19 +category = Utility +subcategory = 0 +title = 62.5cm "Sethlans" Fission Reactor +manufacturer = Kerbin Electric Inc. +description = Part of a new series of fission reactors with slightly different capabilities. The "Sethlans" series reactor operates in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. +attachRules = 1,0,1,1,0 + +mass = 0.35 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 250 +breakingTorque = 250 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionPBDP + ReactorTemp = 1173 + upgradedReactorTemp = 4100 + PowerOutput = 3.5 + upgradedPowerOutput = 5.8 + originalName = Particle Bed + upgradedName = Dusty Plasma + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 70 + radius = 0.625 + minimumThrottle = 0.4 + consumeGlobal = false + reactorType = 2 + upgradedReactorType = 128 + fuelEfficiency = 0.31 + upgradedFuelEfficiency = 0.97 + optimalPebbleTemp = 1000 + tempZeroPower = 2700 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 6 +} +RESOURCE +{ + name = ChargedPower + amount = 0 + maxAmount = 6 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 200 +} +RESOURCE +{ + name = UraniumNitride + amount = 0.25 + maxAmount = 0.25 +} +RESOURCE +{ + name = DepletedFuel + amount = 0 + maxAmount = 0.25 +} + + +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission125.cfg b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission125.cfg index 0bd54426..d7a02558 100644 --- a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission125.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission125.cfg @@ -1,92 +1,92 @@ -PART -{ -name = FNPFissionReactor125 -module = Part -author = AAristisan & Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/PFissionReactor/model3 - scale = 0.9,0.9,0.9 -} -rescaleFactor = 1 - -node_stack_top = 0.0, 0.813, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.788, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = nuclearPropulsion -entryCost = 200 -cost = 15001.5 -category = Utility -subcategory = 0 -title = 1.25m "Sethlans" Fission Reactor -manufacturer = Kerbin Electric Inc. -description = Part of a new series of fission reactors with slightly different capabilities. The "Sethlans" series reactor operates in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. -attachRules = 1,0,1,1,0 - -mass = 1.8 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 250 -breakingTorque = 250 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionPBDP - ReactorTemp = 1173 - upgradedReactorTemp = 4100 - PowerOutput = 85 - upgradedPowerOutput = 142 - originalName = Particle Bed - upgradedName = Dusty Plasma - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 90 - radius = 1.25 - minimumThrottle = 0.4 - consumeGlobal = false - reactorType = 2 - upgradedReactorType = 128 - fuelEfficiency = 0.31 - upgradedFuelEfficiency = 0.97 - optimalPebbleTemp = 1000 - tempZeroPower = 2700 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 100 -} -RESOURCE -{ - name = ChargedPower - amount = 0 - maxAmount = 150 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 2000 -} -RESOURCE -{ - name = UraniumNitride - amount = 2.0 - maxAmount = 2.0 -} -RESOURCE -{ - name = DepletedFuel - amount = 0 - maxAmount = 2.0 -} - - -} - +PART +{ +name = FNPFissionReactor125 +module = Part +author = AAristisan & Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/PFissionReactor/model3 + scale = 0.9,0.9,0.9 +} +rescaleFactor = 1 + +node_stack_top = 0.0, 0.813, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.788, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = nuclearPropulsion +entryCost = 200 +cost = 15001.5 +category = Utility +subcategory = 0 +title = 1.25m "Sethlans" Fission Reactor +manufacturer = Kerbin Electric Inc. +description = Part of a new series of fission reactors with slightly different capabilities. The "Sethlans" series reactor operates in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. +attachRules = 1,0,1,1,0 + +mass = 1.8 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 250 +breakingTorque = 250 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionPBDP + ReactorTemp = 1173 + upgradedReactorTemp = 4100 + PowerOutput = 85 + upgradedPowerOutput = 142 + originalName = Particle Bed + upgradedName = Dusty Plasma + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 90 + radius = 1.25 + minimumThrottle = 0.4 + consumeGlobal = false + reactorType = 2 + upgradedReactorType = 128 + fuelEfficiency = 0.31 + upgradedFuelEfficiency = 0.97 + optimalPebbleTemp = 1000 + tempZeroPower = 2700 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 100 +} +RESOURCE +{ + name = ChargedPower + amount = 0 + maxAmount = 150 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 2000 +} +RESOURCE +{ + name = UraniumNitride + amount = 2.0 + maxAmount = 2.0 +} +RESOURCE +{ + name = DepletedFuel + amount = 0 + maxAmount = 2.0 +} + + +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission250.cfg b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission250.cfg index 215c3583..32c73315 100644 --- a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission250.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission250.cfg @@ -1,93 +1,93 @@ -PART -{ -name = FNPFissionReactor250 -module = Part -author = AAristisan & Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/PFissionReactor/model2 - scale = 0.9,0.9,0.9 -} -rescaleFactor = 1 - -node_stack_top = 0.0, 1.64, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.64, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = nuclearPropulsion -entryCost = 200 -cost = 45011.45 -category = Utility -subcategory = 0 -title = 2.5m "Sethlans 2" Fission Reactor -manufacturer = Kerbin Electric Inc. -description = Part of a new series of fission reactors with slightly different capabilities. The "Sethlans" series reactor operates in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. -attachRules = 1,0,1,1,0 - -mass = 9.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 250 -breakingTorque = 250 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionPBDP - ReactorTemp = 1173 - upgradedReactorTemp = 4100 - PowerOutput = 770 - upgradedPowerOutput = 1285 - originalName = Particle Bed - upgradedName = Dusty Plasma - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 120 - radius = 2.5 - minimumThrottle = 0.4 - consumeGlobal = false - reactorType = 2 - upgradedReactorType = 128 - fuelEfficiency = 0.31 - upgradedFuelEfficiency = 0.97 - optimalPebbleTemp = 1000 - tempZeroPower = 2700 -} - - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 500 -} -RESOURCE -{ - name = ChargedPower - amount = 0 - maxAmount = 1300 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 50000 -} -RESOURCE -{ - name = UraniumNitride - amount = 15.4 - maxAmount = 15.4 -} -RESOURCE -{ - name = DepletedFuel - amount = 0 - maxAmount = 15.4 -} - - -} - +PART +{ +name = FNPFissionReactor250 +module = Part +author = AAristisan & Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/PFissionReactor/model2 + scale = 0.9,0.9,0.9 +} +rescaleFactor = 1 + +node_stack_top = 0.0, 1.64, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.64, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = nuclearPropulsion +entryCost = 200 +cost = 45011.45 +category = Utility +subcategory = 0 +title = 2.5m "Sethlans 2" Fission Reactor +manufacturer = Kerbin Electric Inc. +description = Part of a new series of fission reactors with slightly different capabilities. The "Sethlans" series reactor operates in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. +attachRules = 1,0,1,1,0 + +mass = 9.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 250 +breakingTorque = 250 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionPBDP + ReactorTemp = 1173 + upgradedReactorTemp = 4100 + PowerOutput = 770 + upgradedPowerOutput = 1285 + originalName = Particle Bed + upgradedName = Dusty Plasma + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 120 + radius = 2.5 + minimumThrottle = 0.4 + consumeGlobal = false + reactorType = 2 + upgradedReactorType = 128 + fuelEfficiency = 0.31 + upgradedFuelEfficiency = 0.97 + optimalPebbleTemp = 1000 + tempZeroPower = 2700 +} + + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 500 +} +RESOURCE +{ + name = ChargedPower + amount = 0 + maxAmount = 1300 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 50000 +} +RESOURCE +{ + name = UraniumNitride + amount = 15.4 + maxAmount = 15.4 +} +RESOURCE +{ + name = DepletedFuel + amount = 0 + maxAmount = 15.4 +} + + +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission375.cfg b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission375.cfg index 716a1281..7e319fa2 100644 --- a/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission375.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/PFissionReactor/PFission375.cfg @@ -1,93 +1,93 @@ -PART -{ -name = FNPFissionReactor375 -module = Part -author = AAristisan & Fractal - -MODEL -{ - model = WarpPlugin/Parts/Electrical/PFissionReactor/model - scale = 0.9,0.9,0.9 - rotation = 0,0,0 -} -rescaleFactor = 1 - -node_stack_top = 0.0, 2.4, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -2.4, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = nuclearPropulsion -entryCost = 200 -cost = 90066.92 -category = Utility -subcategory = 0 -title = 3.75m "Akula" Fission Reactor -manufacturer = Kerbin Electric Inc. -description = Part of a new series of fission reactors with slightly different capabilities. The flagship "Akula" reactor provides tremendous power output, operating in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. -attachRules = 1,0,1,1,0 - -mass = 29 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 1500 -breakingTorque = 1500 -maxTemp = 3600 - -MODULE -{ - name = InterstellarFissionPBDP - ReactorTemp = 1173 - upgradedReactorTemp = 4100 - PowerOutput = 4500 - upgradedPowerOutput = 7500 - originalName = Particle Bed - upgradedName = Dusty Plasma - upgradeTechReq = interstellarTechFusionPower - upgradeCost = 120 - radius = 3.75 - minimumThrottle = 0.4 - consumeGlobal = false - reactorType = 2 - upgradedReactorType = 128 - fuelEfficiency = 0.31 - upgradedFuelEfficiency = 0.97 - optimalPebbleTemp = 1000 - tempZeroPower = 2700 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 4000 -} -RESOURCE -{ - name = ChargedPower - amount = 0 - maxAmount = 7500 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} -RESOURCE -{ - name = UraniumNitride - amount = 90 - maxAmount = 90 -} -RESOURCE -{ - name = DepletedFuel - amount = 0 - maxAmount = 90 -} - - -} - +PART +{ +name = FNPFissionReactor375 +module = Part +author = AAristisan & Fractal + +MODEL +{ + model = WarpPlugin/Parts/Electrical/PFissionReactor/model + scale = 0.9,0.9,0.9 + rotation = 0,0,0 +} +rescaleFactor = 1 + +node_stack_top = 0.0, 2.4, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -2.4, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = nuclearPropulsion +entryCost = 200 +cost = 90066.92 +category = Utility +subcategory = 0 +title = 3.75m "Akula" Fission Reactor +manufacturer = Kerbin Electric Inc. +description = Part of a new series of fission reactors with slightly different capabilities. The flagship "Akula" reactor provides tremendous power output, operating in unupgraded form as a Particle Bed reactor, which operates up to potentially higher themperatures than Molten Salt designs but has a power output that is inversely related to temperature. Once upgraded, the reactor is a Dusty Plasma design capable of producing a high proportion of its power as charged particles. +attachRules = 1,0,1,1,0 + +mass = 29 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 1500 +breakingTorque = 1500 +maxTemp = 3600 + +MODULE +{ + name = InterstellarFissionPBDP + ReactorTemp = 1173 + upgradedReactorTemp = 4100 + PowerOutput = 4500 + upgradedPowerOutput = 7500 + originalName = Particle Bed + upgradedName = Dusty Plasma + upgradeTechReq = interstellarTechFusionPower + upgradeCost = 120 + radius = 3.75 + minimumThrottle = 0.4 + consumeGlobal = false + reactorType = 2 + upgradedReactorType = 128 + fuelEfficiency = 0.31 + upgradedFuelEfficiency = 0.97 + optimalPebbleTemp = 1000 + tempZeroPower = 2700 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 4000 +} +RESOURCE +{ + name = ChargedPower + amount = 0 + maxAmount = 7500 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} +RESOURCE +{ + name = UraniumNitride + amount = 90 + maxAmount = 90 +} +RESOURCE +{ + name = DepletedFuel + amount = 0 + maxAmount = 90 +} + + +} + diff --git a/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial.cfg b/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial.cfg index 0d561a5f..ef99b633 100644 --- a/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial.cfg @@ -1,54 +1,54 @@ -PART -{ -name = RadialRadiatorzzz -module = Part -author = ZZZ & Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 2 - -node_attach = 0, 0.0, -0.05, 0.0, 0.0, 0.0 - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = Radial Radiator -manufacturer = Boltzkerman Co. -description = A small radial radiator, its compact, layered design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. This version is a model designed for small space probes. - -attachRules = 1,1,1,1,0 - - -mass = 0.02 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 20 - radiatorTemp = 970 - radiatorArea = 1 - originalName = NaK Loop Radiator - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} +PART +{ +name = RadialRadiatorzzz +module = Part +author = ZZZ & Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 2 + +node_attach = 0, 0.0, -0.05, 0.0, 0.0, 0.0 + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = Radial Radiator +manufacturer = Boltzkerman Co. +description = A small radial radiator, its compact, layered design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. This version is a model designed for small space probes. + +attachRules = 1,1,1,1,0 + + +mass = 0.02 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 20 + radiatorTemp = 970 + radiatorArea = 1 + originalName = NaK Loop Radiator + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial2.cfg b/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial2.cfg index bd767013..c764707c 100644 --- a/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial2.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/RadialHeatRadiator/radial2.cfg @@ -1,54 +1,54 @@ -PART -{ -name = RadialRadiatorzzz2 -module = Part -author = ZZZ & Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 1 - -node_attach = 0, 0.0, -0.05, 0.0, 0.0, 0.0 - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = Small Radial Radiator -manufacturer = Boltzkerman Co. -description = A tiny radial radiator, its compact, layered design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. This version is a small model designed for tiny space probes. - -attachRules = 1,1,1,1,0 - - -mass = 0.005 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 20 - radiatorTemp = 970 - radiatorArea = 0.25 - originalName = NaK Loop Radiator - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} +PART +{ +name = RadialRadiatorzzz2 +module = Part +author = ZZZ & Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 1 + +node_attach = 0, 0.0, -0.05, 0.0, 0.0, 0.0 + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = Small Radial Radiator +manufacturer = Boltzkerman Co. +description = A tiny radial radiator, its compact, layered design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. This version is a small model designed for tiny space probes. + +attachRules = 1,1,1,1,0 + + +mass = 0.005 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 20 + radiatorTemp = 970 + radiatorArea = 0.25 + originalName = NaK Loop Radiator + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion0.cfg b/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion0.cfg index dc91f7c8..156e0ba1 100644 --- a/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion0.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion0.cfg @@ -1,105 +1,105 @@ -PART -{ -name = FusionReactor0625 -module = Part -author = ZZZ & Fractal - -mesh = smalln.mu -rescaleFactor = 0.5 - -node_stack_top = 0.0, 0.48, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.7, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = experimentalRocketry -entryCost = 12700 -cost = 59438.12 -category = Utility -subcategory = 0 -title = 62.5cm GEKKO Fusion Reactor -manufacturer = Kareva -description = The GEKKO fusion reactor is a small, portable, intertial (laser) fusion reactor and will stick to absolutely anything. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -mass = 0.275 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - - -MODULE -{ - name = InterstellarInertialConfinementReactor - ReactorTemp = 10394 - PowerOutput = 22 - upgradedReactorTemp = 57742 - upgradedPowerOutput = 66 - upgradedName = High-Q Inertial - originalName = D-T Inertial Fusion - upgradeTechReq = interstellarTechAntimatterPower - upgradeCost = 180 - radius = 0.625 - animName = e13 - minimumThrottle = 0.3 - powerRequirements = 0.875 - chargedParticleRatio = 0.2 - consumeGlobal = false - reactorType = 4 - upgradedReactorType = 8 - fuelEfficiency = 0.99 - upgradedFuelEfficiency = 0.99 -} - -MODULE -{ - name = ModuleElementRadioactiveDecay - decayConstant = 1.7915586e-9 - resourceName = Tritium - decayProduct = LqdHelium3 - convFactor = 1 -} -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 66 -} -RESOURCE -{ - name = ChargedParticles - amount = 0 - maxAmount = 66 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 660 -} -RESOURCE -{ - name = LqdDeuterium - amount = 12.5 - maxAmount = 12.5 -} - -RESOURCE -{ - name = LqdTritium - amount = 0.625 - maxAmount = 12.5 -} - -RESOURCE -{ - name = LqdHelium3 - amount = 0 - maxAmount = 25 -} - +PART +{ +name = FusionReactor0625 +module = Part +author = ZZZ & Fractal + +mesh = smalln.mu +rescaleFactor = 0.5 + +node_stack_top = 0.0, 0.48, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.7, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = experimentalRocketry +entryCost = 12700 +cost = 59438.12 +category = Utility +subcategory = 0 +title = 62.5cm GEKKO Fusion Reactor +manufacturer = Kareva +description = The GEKKO fusion reactor is a small, portable, intertial (laser) fusion reactor and will stick to absolutely anything. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +mass = 0.275 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + + +MODULE +{ + name = InterstellarInertialConfinementReactor + ReactorTemp = 10394 + PowerOutput = 22 + upgradedReactorTemp = 17742 + upgradedPowerOutput = 66 + upgradedName = High-Q Inertial + originalName = D-T Inertial Fusion + upgradeTechReq = interstellarTechAntimatterPower + upgradeCost = 180 + radius = 0.625 + animName = e13 + minimumThrottle = 0.3 + powerRequirements = 0.875 + chargedParticleRatio = 0.2 + consumeGlobal = false + reactorType = 4 + upgradedReactorType = 8 + fuelEfficiency = 0.99 + upgradedFuelEfficiency = 0.99 +} + +MODULE +{ + name = ModuleElementRadioactiveDecay + decayConstant = 1.7915586e-9 + resourceName = LqdTritium + decayProduct = LqdHelium3 + convFactor = 1 +} +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 66 +} +RESOURCE +{ + name = ChargedParticles + amount = 0 + maxAmount = 66 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 660 +} +RESOURCE +{ + name = LqdDeuterium + amount = 12.5 + maxAmount = 12.5 +} + +RESOURCE +{ + name = LqdTritium + amount = 0.625 + maxAmount = 12.5 +} + +RESOURCE +{ + name = LqdHelium3 + amount = 0 + maxAmount = 25 +} + } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion1.cfg b/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion1.cfg index 0f91d7c6..e86b1574 100644 --- a/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion1.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/SmallFusionReactor/Fusion1.cfg @@ -1,104 +1,104 @@ -PART -{ -name = FusionReactor125 -module = Part -author = ZZZ & Fractal - -mesh = smalln.mu -rescaleFactor = 1 - -node_stack_top = 0.0, 0.48, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.7, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = experimentalRocketry -entryCost = 8500 -cost = 370504.96 -category = Utility -subcategory = 0 -title = 1.25m OMEGA Fusion Reactor -manufacturer = Kareva -description = The OMEGA fusion reactor is a larger reactor designed for more varied applications. Its manufacturer claims it's the last reactor you'll ever look at but we're not quite sure what they mean... -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -mass = 2.2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - - -MODULE -{ - name = InterstellarInertialConfinementReactor - ReactorTemp = 10394 - PowerOutput = 175 - upgradedReactorTemp = 57742 - upgradedPowerOutput = 525 - upgradedName = High-Q Inertial - originalName = D-T Inertial Fusion - upgradeTechReq = interstellarTechAntimatterPower - upgradeCost = 200 - radius = 1.25 - animName = e13 - minimumThrottle = 0.3 - powerRequirements = 7 - chargedParticleRatio = 0.2 - consumeGlobal = false - reactorType = 4 - upgradedReactorType = 8 - fuelEfficiency = 0.99 - upgradedFuelEfficiency = 0.99 -} -MODULE -{ - name = ModuleElementRadioactiveDecay - decayConstant = 1.7915586e-9 - resourceName = LqdTritium - decayProduct = LqdHelium3 - convFactor = 1 -} -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 525 -} -RESOURCE -{ - name = ChargedParticles - amount = 0 - maxAmount = 525 -} -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 2500 -} -RESOURCE -{ - name = LqdDeuterium - amount = 100 - maxAmount = 100 -} - -RESOURCE -{ - name = LqdTritium - amount = 5 - maxAmount = 100 -} - -RESOURCE -{ - name = LqdHelium3 - amount = 1 - maxAmount = 200 -} - +PART +{ +name = FusionReactor125 +module = Part +author = ZZZ & Fractal + +mesh = smalln.mu +rescaleFactor = 1 + +node_stack_top = 0.0, 0.48, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.7, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = experimentalRocketry +entryCost = 8500 +cost = 370504.96 +category = Utility +subcategory = 0 +title = 1.25m OMEGA Fusion Reactor +manufacturer = Kareva +description = The OMEGA fusion reactor is a larger reactor designed for more varied applications. Its manufacturer claims it's the last reactor you'll ever look at but we're not quite sure what they mean... +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +mass = 2.2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + + +MODULE +{ + name = InterstellarInertialConfinementReactor + ReactorTemp = 10394 + PowerOutput = 175 + upgradedReactorTemp = 17742 + upgradedPowerOutput = 525 + upgradedName = High-Q Inertial + originalName = D-T Inertial Fusion + upgradeTechReq = interstellarTechAntimatterPower + upgradeCost = 200 + radius = 1.25 + animName = e13 + minimumThrottle = 0.3 + powerRequirements = 7 + chargedParticleRatio = 0.2 + consumeGlobal = false + reactorType = 4 + upgradedReactorType = 8 + fuelEfficiency = 0.99 + upgradedFuelEfficiency = 0.99 +} +MODULE +{ + name = ModuleElementRadioactiveDecay + decayConstant = 1.7915586e-9 + resourceName = LqdTritium + decayProduct = LqdHelium3 + convFactor = 1 +} +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 525 +} +RESOURCE +{ + name = ChargedParticles + amount = 0 + maxAmount = 525 +} +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 2500 +} +RESOURCE +{ + name = LqdDeuterium + amount = 100 + maxAmount = 100 +} + +RESOURCE +{ + name = LqdTritium + amount = 5 + maxAmount = 100 +} + +RESOURCE +{ + name = LqdHelium3 + amount = 1 + maxAmount = 200 +} + } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive.cfg b/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive.cfg index 741a4ed7..c01c4724 100644 --- a/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive.cfg @@ -1,50 +1,50 @@ -PART -{ -name = WarpDrive -module = Part -author = Fractal -///model by z -mesh = warp.mu -rescaleFactor = 1 - -node_stack_top = 0.0, 1.0252737, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.047, 0.0, 0.0, 1.0, 0.0 - -TechRequired = experimentalScience -entryCost = 500000 -cost = 4500000 -category = Utility -subcategory = 0 -title = 2.5m Alcubierre Drive -manufacturer = Zefram Kerman's Warp Supplies Co. -description = Originally designed by Zefram Kerman himself, this piece of technology is designed to sneakily evade the prohibition of faster than light travel described by the theory of relativity by translating a small subset of spacetime across space at unbelievable speeds while imparting no momentum change to the vessel at all. Since it was designed by Zefram Kerman, it may not function without the application of rock music. -attachRules = 1,0,1,0,0 - -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.15 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - -RESOURCE -{ - name = ExoticMatter - amount = 0 - maxAmount = 20000 -} - -MODULE -{ - name = AlcubierreDrive - effectSize1 = 6.2 - effectSize2 = 2.4 - upgradedName = Advanced Field Geometry - originalName = Standard Field Geometry - upgradeCost = 100 - upgradeTechReq = none -} -} +PART +{ +name = WarpDrive +module = Part +author = Fractal +///model by z +mesh = warp.mu +rescaleFactor = 1 + +node_stack_top = 0.0, 1.0252737, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.047, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = experimentalScience +entryCost = 500000 +cost = 4500000 +category = Utility +subcategory = 0 +title = 2.5m Alcubierre Drive +manufacturer = Zefram Kerman's Warp Supplies Co. +description = Originally designed by Zefram Kerman himself, this piece of technology is designed to sneakily evade the prohibition of faster than light travel described by the theory of relativity by translating a small subset of spacetime across space at unbelievable speeds while imparting no momentum change to the vessel at all. Since it was designed by Zefram Kerman, it may not function without the application of rock music. +attachRules = 1,0,1,0,0 + +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.15 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + +RESOURCE +{ + name = ExoticMatter + amount = 0 + maxAmount = 20000 +} + +MODULE +{ + name = AlcubierreDrive + effectSize1 = 6.2 + effectSize2 = 2.4 + upgradedName = Advanced Field Geometry + originalName = Standard Field Geometry + upgradeCost = 100 + upgradeTechReq = none +} +} diff --git a/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive2.cfg b/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive2.cfg index 43a588b1..a722eeec 100644 --- a/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive2.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive2.cfg @@ -1,50 +1,50 @@ -PART -{ -name = WarpDrive2 -module = Part -author = Fractal -///model by z -mesh = warp.mu -rescaleFactor = 0.5 - -node_stack_top = 0.0, 1.0252737, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.047, 0.0, 0.0, 1.0, 0.0 - -TechRequired = experimentalScience -entryCost = 500000 -cost = 11250000 -category = Utility -subcategory = 0 -title = 1.25m Alcubierre Drive -manufacturer = Zefram Kerman's Warp Supplies Co. -description = Originally designed by Zefram Kerman himself, this piece of technology is designed to sneakily evade the prohibition of faster than light travel described by the theory of relativity by translating a small subset of spacetime across space at unbelievable speeds while imparting no momentum change to the vessel at all. Since it was designed by Zefram Kerman, it may not function without the application of rock music. -attachRules = 1,0,1,0,0 - -mass = 0.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.15 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 800 -breakingTorque = 800 -maxTemp = 2900 - -RESOURCE -{ - name = ExoticMatter - amount = 0 - maxAmount = 2000 -} - -MODULE -{ - name = AlcubierreDrive - effectSize1 = 3.1 - effectSize2 = 1.2 - upgradedName = Advanced Field Geometry - originalName = Standard Field Geometry - upgradeCost = 90 - upgradeTechReq = none -} -} +PART +{ +name = WarpDrive2 +module = Part +author = Fractal +///model by z +mesh = warp.mu +rescaleFactor = 0.5 + +node_stack_top = 0.0, 1.0252737, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -1.047, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = experimentalScience +entryCost = 500000 +cost = 11250000 +category = Utility +subcategory = 0 +title = 1.25m Alcubierre Drive +manufacturer = Zefram Kerman's Warp Supplies Co. +description = Originally designed by Zefram Kerman himself, this piece of technology is designed to sneakily evade the prohibition of faster than light travel described by the theory of relativity by translating a small subset of spacetime across space at unbelievable speeds while imparting no momentum change to the vessel at all. Since it was designed by Zefram Kerman, it may not function without the application of rock music. +attachRules = 1,0,1,0,0 + +mass = 0.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.15 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 800 +breakingTorque = 800 +maxTemp = 2900 + +RESOURCE +{ + name = ExoticMatter + amount = 0 + maxAmount = 2000 +} + +MODULE +{ + name = AlcubierreDrive + effectSize1 = 3.1 + effectSize2 = 1.2 + upgradedName = Advanced Field Geometry + originalName = Standard Field Geometry + upgradeCost = 90 + upgradeTechReq = none +} +} diff --git a/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive3.cfg b/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive3.cfg index a1517ab1..290e9390 100644 --- a/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive3.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/WarpDrive/WarpDrive3.cfg @@ -1,50 +1,50 @@ -PART -{ -name = WarpDrive3 -module = Part -author = Fractal -///model by z -mesh = warp.mu -rescaleFactor = 1.5 - -node_stack_top = 0.0, 1.0252737, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.047, 0.0, 0.0, 1.0, 0.0 - -TechRequired = experimentalScience -entryCost = 500000 -cost = 13500000 -category = Utility -subcategory = 0 -title = 3.75m Alcubierre Drive -manufacturer = Zefram Kerman's Warp Supplies Co. -description = Originally designed by Zefram Kerman himself, this piece of technology is designed to sneakily evade the prohibition of faster than light travel described by the theory of relativity by translating a small subset of spacetime across space at unbelievable speeds while imparting no momentum change to the vessel at all. Since it was designed by Zefram Kerman, it may not function without the application of rock music. -attachRules = 1,0,1,0,0 - -mass = 4.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.15 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 5000 -breakingTorque = 5000 -maxTemp = 2900 - -RESOURCE -{ - name = ExoticMatter - amount = 0 - maxAmount = 200000 -} - -MODULE -{ - name = AlcubierreDrive - effectSize1 = 9.3 - effectSize2 = 3.6 - upgradedName = Advanced Field Geometry - originalName = Standard Field Geometry - upgradeCost = 150 - upgradeTechReq = none -} -} +PART +{ +name = WarpDrive3 +module = Part +author = Fractal +///model by z +mesh = warp.mu +rescaleFactor = 1.5 + +node_stack_top = 0.0, 1.0252737, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.047, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = experimentalScience +entryCost = 500000 +cost = 13500000 +category = Utility +subcategory = 0 +title = 3.75m Alcubierre Drive +manufacturer = Zefram Kerman's Warp Supplies Co. +description = Originally designed by Zefram Kerman himself, this piece of technology is designed to sneakily evade the prohibition of faster than light travel described by the theory of relativity by translating a small subset of spacetime across space at unbelievable speeds while imparting no momentum change to the vessel at all. Since it was designed by Zefram Kerman, it may not function without the application of rock music. +attachRules = 1,0,1,0,0 + +mass = 4.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.15 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 5000 +breakingTorque = 5000 +maxTemp = 2900 + +RESOURCE +{ + name = ExoticMatter + amount = 0 + maxAmount = 200000 +} + +MODULE +{ + name = AlcubierreDrive + effectSize1 = 9.3 + effectSize2 = 3.6 + upgradedName = Advanced Field Geometry + originalName = Standard Field Geometry + upgradeCost = 150 + upgradeTechReq = none +} +} diff --git a/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part.cfg b/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part.cfg index 0afd2177..a4419fb5 100644 --- a/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part.cfg @@ -1,57 +1,57 @@ -PART -{ -name = circradiatorKT -module = Part -author = kerbtrek - -mesh = model.mu -scale = 1 -rescaleFactor = 10 - -node_stack_bottom = 0.0, -0.06924129, 0.0, 0.0, 1.0, 0.0 -node_stack_top = 0.0, 0.06924129, 0.0, 0.0, 1.0, 0.0 - - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = 1.25m Inline Radiator -manufacturer = Boltzkerman Co. -description = An inline radiator, its stacked design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. - - -attachRules = 1,1,1,1,0 - - -mass = 0.2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 20 - radiatorTemp = 1350 - radiatorArea = 5 - originalName = Mo Li Heat Pipe - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 100000 -} +PART +{ +name = circradiatorKT +module = Part +author = kerbtrek + +mesh = model.mu +scale = 1 +rescaleFactor = 10 + +node_stack_bottom = 0.0, -0.06924129, 0.0, 0.0, 1.0, 0.0 +node_stack_top = 0.0, 0.06924129, 0.0, 0.0, 1.0, 0.0 + + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = 1.25m Inline Radiator +manufacturer = Boltzkerman Co. +description = An inline radiator, its stacked design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. + + +attachRules = 1,1,1,1,0 + + +mass = 0.2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 20 + radiatorTemp = 1350 + radiatorArea = 5 + originalName = Mo Li Heat Pipe + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 100000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part2.cfg b/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part2.cfg index b4f67a13..9fbc54ae 100644 --- a/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part2.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part2.cfg @@ -1,55 +1,55 @@ -PART -{ -name = circradiatorKT2 -module = Part -author = kerbtrek - -mesh = model.mu -scale = 1 -rescaleFactor = 20 - -node_stack_bottom = 0.0, -0.06924129, 0.0, 0.0, 1.0, 0.0 -node_stack_top = 0.0, 0.06924129, 0.0, 0.0, 1.0, 0.0 - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = 2.5m Inline Radiator -manufacturer = Boltzkerman Co. -description = An inline radiator, its inline stacked design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. - -attachRules = 1,1,1,1,0 - - -mass = 0.8 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 20 - radiatorTemp = 1350 - radiatorArea = 20 - originalName = Mo Li Heat Pipe - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} +PART +{ +name = circradiatorKT2 +module = Part +author = kerbtrek + +mesh = model.mu +scale = 1 +rescaleFactor = 20 + +node_stack_bottom = 0.0, -0.06924129, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_top = 0.0, 0.06924129, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = 2.5m Inline Radiator +manufacturer = Boltzkerman Co. +description = An inline radiator, its inline stacked design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. + +attachRules = 1,1,1,1,0 + + +mass = 0.8 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 20 + radiatorTemp = 1350 + radiatorArea = 20 + originalName = Mo Li Heat Pipe + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part3.cfg b/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part3.cfg index 7c6bcbe6..321fbf1d 100644 --- a/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part3.cfg +++ b/GameData/WarpPlugin/Parts/Electrical/circradiatorKT/part3.cfg @@ -1,55 +1,55 @@ -PART -{ -name = circradiatorKT3 -module = Part -author = kerbtrek - -mesh = model.mu -scale = 1 -rescaleFactor = 5 - -node_stack_bottom = 0.0, -0.06924129, 0.0, 0.0, 1.0, 0.0 -node_stack_top = 0.0, 0.06924129, 0.0, 0.0, 1.0, 0.0 - -TechRequired = advElectrics -entryCost = 4400 -cost = 50 -category = Utility -subcategory = 0 -title = 62.5cm Inline Radiator -manufacturer = Boltzkerman Co. -description = An inline radiator, its inline stacked design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. This version is a small model designed for tiny space probes. - -attachRules = 1,1,1,1,0 - - -mass = 0.05 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 9 -maxTemp = 3400 -fuelCrossFeed = True - -MODULE -{ - name = FNRadiator - isDeployable = false - convectiveBonus = 20 - radiatorTemp = 970 - radiatorArea = 1.25 - originalName = NaK Loop Radiator - upgradeCost = 5 - upgradedName = Graphene Radiator - upgradedRadiatorTemp = 3500 - upgradeTechReq = experimentalElectrics -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 400000 -} +PART +{ +name = circradiatorKT3 +module = Part +author = kerbtrek + +mesh = model.mu +scale = 1 +rescaleFactor = 5 + +node_stack_bottom = 0.0, -0.06924129, 0.0, 0.0, 1.0, 0.0, 0 +node_stack_top = 0.0, 0.06924129, 0.0, 0.0, 1.0, 0.0, 0 + +TechRequired = advElectrics +entryCost = 4400 +cost = 50 +category = Utility +subcategory = 0 +title = 62.5cm Inline Radiator +manufacturer = Boltzkerman Co. +description = An inline radiator, its inline stacked design makes it excellent at convecting heat away in atmosphere but less effective in the vacuum of space. This version is a small model designed for tiny space probes. + +attachRules = 1,1,1,1,0 + + +mass = 0.05 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 9 +maxTemp = 3400 +fuelCrossFeed = True + +MODULE +{ + name = FNRadiator + isDeployable = false + convectiveBonus = 20 + radiatorTemp = 970 + radiatorArea = 1.25 + originalName = NaK Loop Radiator + upgradeCost = 5 + upgradedName = Graphene Radiator + upgradedRadiatorTemp = 3500 + upgradeTechReq = experimentalElectrics +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 400000 +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Engines/AluminiumHybrid/part.cfg b/GameData/WarpPlugin/Parts/Engines/AluminiumHybrid/part.cfg index 8a9d14c4..4483dab8 100644 --- a/GameData/WarpPlugin/Parts/Engines/AluminiumHybrid/part.cfg +++ b/GameData/WarpPlugin/Parts/Engines/AluminiumHybrid/part.cfg @@ -1,121 +1,121 @@ -PART -{ -// Kerbal Space Program - Part Config -// RT-10 Solid Fuel Booster -// - -// --- general parameters --- -name = AluminiumHybrid1 -module = Part -author = Fractal - -// --- asset parameters --- -MODEL -{ - model = Squad/Parts/Engine/solidBooster/model - scale = 0.4, 0.4, 0.4 -} -scale = 0.1 -rescaleFactor = 2.5 - - -// --- node definitions --- -node_stack_bottom = 0.0, -12.5127, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_top = 0.0, 10.2547, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 0.0, 0.0, -5, 0.0, 0.0, 1.0, 1 - -// --- FX definitions --- - -fx_exhaustFlame_yellow = 0.0, -11.2673, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustSparks_yellow = 0.0, -11.2673, 0.0, 0.0, 1.0, 0.0, running -// fx_exhaustLight_yellow = 0.0, -11.2673, 0.0, 0.0, 0.0, 1.0, running -fx_smokeTrail_medium = 0.0, -11.2673, 0.0, 0.0, 1.0, 0.0, running - -// --- Sound FX definition --- - - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- - -TechRequired = veryHeavyRocketry -entryCost = 10000 -cost = 450 -category = Propulsion -subcategory = 0 -title = HA-1 Alumium Hybrid Rocket -//manufacturer = Jebediah Kerman's Junkyard and Spaceship Parts Co. -description = A hybrid rocket uses a combination of solid fuel and liquid oxidiser. It has better performance than a solid rocket and is more controllable but still performs poorly compared to liquid rockets. The solid fuel in this version is aluminium, which is easily extracted from regolith. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,1,1,1,0 - -// --- standard part parameters --- -mass = 3 -dragModelType = default -maximum_drag = 0.3 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -// --- solid booster parameters --- 3.75 - -stagingIcon = SOLID_BOOSTER - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = thrustTransform - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 550 - heatProduction = 350 - fxOffset = 0, 0, 0.12 - PROPELLANT - { - name = Aluminium - ratio = 1.0 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 4.05 - } - atmosphereCurve - { - key = 0 286 - key = 1 250 - } - -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = heatAnimation -} - -RESOURCE -{ - name = Aluminium - amount = 434 - maxAmount = 434 -} - -RESOURCE -{ - name = Oxidizer - amount = 1760 - maxAmount = 1760 -} - - -} +PART +{ +// Kerbal Space Program - Part Config +// RT-10 Solid Fuel Booster +// + +// --- general parameters --- +name = AluminiumHybrid1 +module = Part +author = Fractal + +// --- asset parameters --- +MODEL +{ + model = Squad/Parts/Engine/solidBoosterRT-10/model + scale = 0.4, 0.4, 0.4 +} +scale = 0.1 +rescaleFactor = 2.5 + + +// --- node definitions --- +node_stack_bottom = 0.0, -12.5127, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_top = 0.0, 10.2547, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.0, 0.0, -5, 0.0, 0.0, 1.0, 1 + +// --- FX definitions --- + +fx_exhaustFlame_yellow = 0.0, -11.2673, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustSparks_yellow = 0.0, -11.2673, 0.0, 0.0, 1.0, 0.0, running +// fx_exhaustLight_yellow = 0.0, -11.2673, 0.0, 0.0, 0.0, 1.0, running +fx_smokeTrail_medium = 0.0, -11.2673, 0.0, 0.0, 1.0, 0.0, running + +// --- Sound FX definition --- + + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- + +TechRequired = veryHeavyRocketry +entryCost = 10000 +cost = 450 +category = Engine +subcategory = 0 +title = HA-1 Alumium Hybrid Rocket +//manufacturer = Jebediah Kerman's Junkyard and Spaceship Parts Co. +description = A hybrid rocket uses a combination of solid fuel and liquid oxidiser. It has better performance than a solid rocket and is more controllable but still performs poorly compared to liquid rockets. The solid fuel in this version is aluminium, which is easily extracted from regolith. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,1,1,1,0 + +// --- standard part parameters --- +mass = 3 +dragModelType = default +maximum_drag = 0.3 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +// --- solid booster parameters --- 3.75 + +stagingIcon = SOLID_BOOSTER + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = thrustTransform + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 550 + heatProduction = 350 + fxOffset = 0, 0, 0.12 + PROPELLANT + { + name = Aluminium + ratio = 1.0 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 4.05 + } + atmosphereCurve + { + key = 0 286 + key = 1 250 + } + +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = heatAnimation +} + +RESOURCE +{ + name = Aluminium + amount = 434 + maxAmount = 434 +} + +RESOURCE +{ + name = Oxidizer + amount = 1760 + maxAmount = 1760 +} + + +} diff --git a/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part0.cfg b/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part0.cfg index f4fc075f..39e643bc 100644 --- a/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part0.cfg +++ b/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part0.cfg @@ -1,159 +1,159 @@ -PART -{ -name = FNSmallerAugmentedArcjet -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Engines/AugmentedArcjet/model2 - rotation = 0,0,180 - scale = 0.625,1,0.625 -} - -node_stack_top = 0.0, 0.12, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.12, 0.0, 0.0, 1.0, 0.0, 1 - -fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running -fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout - -TechRequired = ionPropulsion -entryCost = 14000 -cost = 2500 -category = Propulsion -subcategory = 0 -title = 62.5cm ATTILA Thruster -manufacturer = Ionic Protonic Electronics -description = The ATTILA (Adjustable Throttle Inductively Afterburning Arcjet) is a type of augmented arcjet that uses magnetic induction to enhance the thrust produced from a typical arcjet. For an electric rocket, it has low exhaust velocity but it does provide superior thrust performance as a result. -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -EFFECTS -{ - electric_qvp - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarQVPExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_red - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarLithiumExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_argon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarArgonExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_xenon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarXenonExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_hydrogen - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarHydrogenExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_ammonia - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarAmmoniaExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } -} - -MODULE -{ - name = ModuleEnginesFX - engineID = PlasmaThruster - thrustVectorTransformName = thrustTransform - exhaustDamage = True - ignitionThreshold = 0.01 - minThrust = 0 - maxThrust = 80.5 - heatProduction = 0 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - } - atmosphereCurve - { - key = 0 11213 - } -} -MODULE -{ - name = ElectricEngineControllerFX - originalName = Augmented Arcjet - maxPower = 2500 - baseISP = 2854 - type = 2 -} - -} +PART +{ +name = FNSmallerAugmentedArcjet +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Engines/AugmentedArcjet/model2 + rotation = 0,0,180 + scale = 0.625,1,0.625 +} + +node_stack_top = 0.0, 0.12, 0.0, 0.0, 1.0, 0.0, 0 +node_stack_bottom = 0.0, -0.12, 0.0, 0.0, 1.0, 0.0, 0 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 2500 +category = Engine +subcategory = 0 +title = 62.5cm ATTILA Thruster +manufacturer = Ionic Protonic Electronics +description = The ATTILA (Adjustable Throttle Inductively Afterburning Arcjet) is a type of augmented arcjet that uses magnetic induction to enhance the thrust produced from a typical arcjet. For an electric rocket, it has low exhaust velocity but it does provide superior thrust performance as a result. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + electric_qvp + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarQVPExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_red + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarLithiumExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_argon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarArgonExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_xenon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarXenonExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_hydrogen + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarHydrogenExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_ammonia + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarAmmoniaExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = PlasmaThruster + thrustVectorTransformName = thrustTransform + exhaustDamage = True + ignitionThreshold = 0.01 + minThrust = 0 + maxThrust = 80.5 + heatProduction = 0 + PROPELLANT + { + name = LiquidFuel + ratio = 1 + } + atmosphereCurve + { + key = 0 2854 + } +} +MODULE +{ + name = ElectricEngineControllerFX + originalName = Augmented Arcjet + maxPower = 2500 + baseISP = 2854 + type = 2 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part1.cfg b/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part1.cfg index eb72aa9a..6d5f8bda 100644 --- a/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part1.cfg +++ b/GameData/WarpPlugin/Parts/Engines/AugmentedArcjet/part1.cfg @@ -1,159 +1,159 @@ -PART -{ -name = FNSmallAugmentedArcjet -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Engines/AugmentedArcjet/model - rotation = 0,0,180 - scale = 0.625,0.5,0.625 -} - -node_stack_top = 0.0, 0.18, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.25, 0.0, 0.0, 1.0, 0.0, 1 - -fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running -fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout - -TechRequired = ionPropulsion -entryCost = 14000 -cost = 5700 -category = Propulsion -subcategory = 0 -title = 1.25m ATTILA Thruster -manufacturer = Ionic Protonic Electronics -description = The ATTILA (Adjustable Throttle Inductively Afterburning Arcjet) is a type of augmented arcjet that uses magnetic induction to enhance the thrust produced from a typical arcjet. For an electric rocket, it has low exhaust velocity but it does provide superior thrust performance as a result. -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -EFFECTS -{ - electric_qvp - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarQVPExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_red - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarLithiumExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_argon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarArgonExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_xenon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarXenonExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_hydrogen - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarHydrogenExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_ammonia - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarAmmoniaExhaust - transformName = thrustTransform - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } -} - -MODULE -{ - name = ModuleEnginesFX - engineID = PlasmaThruster - thrustVectorTransformName = thrustTransform - exhaustDamage = True - ignitionThreshold = 0.01 - minThrust = 0 - maxThrust = 80.5 - heatProduction = 0 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - } - atmosphereCurve - { - key = 0 11213 - } -} -MODULE -{ - name = ElectricEngineControllerFX - originalName = Augmented Arcjet - maxPower = 15000 - baseISP = 2854 - type = 2 -} - +PART +{ +name = FNSmallAugmentedArcjet +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Engines/AugmentedArcjet/model + rotation = 0,0,180 + scale = 0.625,0.5,0.625 +} + +node_stack_top = 0.0, 0.18, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.25, 0.0, 0.0, 1.0, 0.0, 1 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 5700 +category = Engine +subcategory = 0 +title = 1.25m ATTILA Thruster +manufacturer = Ionic Protonic Electronics +description = The ATTILA (Adjustable Throttle Inductively Afterburning Arcjet) is a type of augmented arcjet that uses magnetic induction to enhance the thrust produced from a typical arcjet. For an electric rocket, it has low exhaust velocity but it does provide superior thrust performance as a result. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + electric_qvp + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarQVPExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_red + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarLithiumExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_argon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarArgonExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_xenon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarXenonExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_hydrogen + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarHydrogenExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_ammonia + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarAmmoniaExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = PlasmaThruster + thrustVectorTransformName = thrustTransform + exhaustDamage = True + ignitionThreshold = 0.01 + minThrust = 0 + maxThrust = 80.5 + heatProduction = 0 + PROPELLANT + { + name = LiquidFuel + ratio = 1 + } + atmosphereCurve + { + key = 0 2854 + } +} +MODULE +{ + name = ElectricEngineControllerFX + originalName = Augmented Arcjet + maxPower = 15000 + baseISP = 2854 + type = 2 +} + } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Engines/MPD/part0.cfg b/GameData/WarpPlugin/Parts/Engines/MPD/part0.cfg index ebee0fb5..9532dc2d 100644 --- a/GameData/WarpPlugin/Parts/Engines/MPD/part0.cfg +++ b/GameData/WarpPlugin/Parts/Engines/MPD/part0.cfg @@ -1,188 +1,174 @@ -PART -{ -name = smallerMPD -module = Part -author = Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 0.5 - -node_stack_top = 0.0, 1.1615562, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.1832844, 0.0, 0.0, 1.0, 0.0, 1 - -fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running -fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout - -TechRequired = ionPropulsion -entryCost = 14000 -cost = 3000 -category = Propulsion -subcategory = 0 -title = 62.5cm Plasma Thruster -manufacturer = Ionic Protonic Electronics -description = A larger and more efficient cousin of the ion engine, it is best not to attempt to power this engine with witchcraft and instead opt for a very large electric generator. -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -mass = 0.167 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -EFFECTS -{ - electric_qvp - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarQVPExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_red - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarLithiumExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_blue - { - MODEL_MULTI_PARTICLE - { - modelName = Squad/FX/shockExhaust_blue_small - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_argon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarArgonExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_xenon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarXenonExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_hydrogen - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarHydrogenExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_ammonia - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarAmmoniaExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } -} - -MODULE -{ - name = ModuleEnginesFX - engineID = PlasmaThruster - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.01 - minThrust = 0 - maxThrust = 80.5 - heatProduction = 0 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - } - atmosphereCurve - { - key = 0 11213 - } -} - -MODULE -{ - name = ElectricEngineControllerFX - originalName = Magnetoplasmadynamic - upgradedName = Quantum Vacuum - upgradeCost = 2000 - upgradeTechReq = interstellarTechUHEPhysics - maxPower = 3125 - baseISP = 11213 - type = 1 - upgradedtype = 8 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = e9 -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -} +PART +{ +name = smallerMPD +module = Part +author = Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 0.5 + +node_stack_top = 0.0, 1.1615562, 0.0, 0.0, 1.0, 0.0, 0 +node_stack_bottom = 0.0, -0.1832844, 0.0, 0.0, 1.0, 0.0, 0 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 3000 +category = Engine +subcategory = 0 +title = 62.5cm Plasma Thruster +manufacturer = Ionic Protonic Electronics +description = A larger and more efficient cousin of the ion engine, it is best not to attempt to power this engine with witchcraft and instead opt for a very large electric generator. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 0.167 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + electric_qvp + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarQVPExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_red + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarLithiumExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_argon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarArgonExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_xenon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarXenonExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_hydrogen + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarHydrogenExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_ammonia + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarAmmoniaExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = PlasmaThruster + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.01 + minThrust = 0 + maxThrust = 80.5 + heatProduction = 0 + PROPELLANT + { + name = LiquidFuel + ratio = 1 + } + atmosphereCurve + { + key = 0 11213 + } +} + +MODULE +{ + name = ElectricEngineControllerFX + originalName = Magnetoplasmadynamic + upgradedName = Quantum Vacuum + upgradeCost = 2000 + upgradeTechReq = interstellarTechUHEPhysics + maxPower = 3125 + baseISP = 11213 + type = 1 + upgradedtype = 8 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = e9 +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/MPD/part1.cfg b/GameData/WarpPlugin/Parts/Engines/MPD/part1.cfg index 33308f85..0393121e 100644 --- a/GameData/WarpPlugin/Parts/Engines/MPD/part1.cfg +++ b/GameData/WarpPlugin/Parts/Engines/MPD/part1.cfg @@ -1,176 +1,176 @@ -PART -{ -name = smallMPD -module = Part -author = Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 1 - -node_stack_top = 0.0, 1.1615562, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.1832844, 0.0, 0.0, 1.0, 0.0, 1 - -fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running -fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout - -TechRequired = ionPropulsion -entryCost = 12500 -cost = 8000 -category = Propulsion -subcategory = 0 -title = 1.25m Plasma Thruster -manufacturer = Ionic Protonic Electronics -description = A larger and more efficient cousin of the ion engine, it is best not to attempt to power this engine with witchcraft and instead opt for a very large electric generator. -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -EFFECTS -{ - electric_qvp - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarQVPExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_red - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarLithiumExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_argon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarArgonExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_xenon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarXenonExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_hydrogen - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarHydrogenExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_ammonia - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarAmmoniaExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } -} - -MODULE -{ - name = ModuleEnginesFX - engineID = PlasmaThruster - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.01 - minThrust = 0 - maxThrust = 80.5 - heatProduction = 0 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - } - atmosphereCurve - { - key = 0 11213 - } -} - -MODULE -{ - name = ElectricEngineControllerFX - originalName = Magnetoplasmadynamic - upgradedName = Quantum Vacuum - upgradeCost = 2000 - upgradeTechReq = interstellarTechUHEPhysics - maxPower = 25000 - baseISP = 11213 - type = 1 - upgradedtype = 8 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = e9 -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - - - -} +PART +{ +name = smallMPD +module = Part +author = Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 1 + +node_stack_top = 0.0, 1.1615562, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.1832844, 0.0, 0.0, 1.0, 0.0, 1 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 12500 +cost = 8000 +category = Engine +subcategory = 0 +title = 1.25m Plasma Thruster +manufacturer = Ionic Protonic Electronics +description = A larger and more efficient cousin of the ion engine, it is best not to attempt to power this engine with witchcraft and instead opt for a very large electric generator. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + electric_qvp + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarQVPExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_red + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarLithiumExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_argon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarArgonExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_xenon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarXenonExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_hydrogen + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarHydrogenExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_ammonia + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarAmmoniaExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = PlasmaThruster + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.01 + minThrust = 0 + maxThrust = 80.5 + heatProduction = 0 + PROPELLANT + { + name = LiquidFuel + ratio = 1 + } + atmosphereCurve + { + key = 0 11213 + } +} + +MODULE +{ + name = ElectricEngineControllerFX + originalName = Magnetoplasmadynamic + upgradedName = Quantum Vacuum + upgradeCost = 2000 + upgradeTechReq = interstellarTechUHEPhysics + maxPower = 25000 + baseISP = 11213 + type = 1 + upgradedtype = 8 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = e9 +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + + + +} diff --git a/GameData/WarpPlugin/Parts/Engines/MPD/part2.cfg b/GameData/WarpPlugin/Parts/Engines/MPD/part2.cfg index f6634a91..e1fa8756 100644 --- a/GameData/WarpPlugin/Parts/Engines/MPD/part2.cfg +++ b/GameData/WarpPlugin/Parts/Engines/MPD/part2.cfg @@ -1,176 +1,176 @@ -PART -{ -name = MPD -module = Part -author = Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 2 - -node_stack_top = 0.0, 1.1615562, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.1832844, 0.0, 0.0, 1.0, 0.0, 1 - -fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running -fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout - -TechRequired = ionPropulsion -entryCost = 14000 -cost = 25000 -category = Propulsion -subcategory = 0 -title = 2.5m Plasma Thruster -manufacturer = Ionic Protonic Electronics -description = A larger and more efficient cousin of the ion engine, it is best not to attempt to power this engine with witchcraft and instead opt for a very large electric generator. -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -mass = 6 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -EFFECTS -{ - electric_qvp - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarQVPExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_red - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarLithiumExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_argon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarArgonExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_xenon - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarXenonExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_hydrogen - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarHydrogenExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } - electric_ammonia - { - MODEL_MULTI_PARTICLE - { - modelName = WarpPlugin/FX/interstellarAmmoniaExhaust - transformName = TT - emission = 0.0 0.0 - emission = 0.05 0.05 - emission = 0.075 0.1 - emission = 1.0 1.25 - speed = 0.0 0.5 - speed = 1.0 1.2 - } - } -} - -MODULE -{ - name = ModuleEnginesFX - engineID = PlasmaThruster - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.01 - minThrust = 0 - maxThrust = 80.5 - heatProduction = 0 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - } - atmosphereCurve - { - key = 0 11213 - } -} - -MODULE -{ - name = ElectricEngineControllerFX - originalName = Magnetoplasmadynamic - upgradedName = Quantum Vacuum - upgradeCost = 2000 - upgradeTechReq = interstellarTechUHEPhysics - maxPower = 200000 - baseISP = 11213 - type = 1 - upgradedtype = 8 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = e9 -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - - - -} +PART +{ +name = MPD +module = Part +author = Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 2 + +node_stack_top = 0.0, 1.1615562, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.1832844, 0.0, 0.0, 1.0, 0.0, 2 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 25000 +category = Engine +subcategory = 0 +title = 2.5m Plasma Thruster +manufacturer = Ionic Protonic Electronics +description = A larger and more efficient cousin of the ion engine, it is best not to attempt to power this engine with witchcraft and instead opt for a very large electric generator. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 6 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + electric_qvp + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarQVPExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_red + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarLithiumExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_argon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarArgonExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_xenon + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarXenonExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_hydrogen + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarHydrogenExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + electric_ammonia + { + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarAmmoniaExhaust + transformName = TT + emission = 0.0 0.0 + emission = 0.05 0.05 + emission = 0.075 0.1 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = PlasmaThruster + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.01 + minThrust = 0 + maxThrust = 80.5 + heatProduction = 0 + PROPELLANT + { + name = LiquidFuel + ratio = 1 + } + atmosphereCurve + { + key = 0 11213 + } +} + +MODULE +{ + name = ElectricEngineControllerFX + originalName = Magnetoplasmadynamic + upgradedName = Quantum Vacuum + upgradeCost = 2000 + upgradeTechReq = interstellarTechUHEPhysics + maxPower = 200000 + baseISP = 11213 + type = 1 + upgradedtype = 8 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = e9 +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + + + +} diff --git a/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part1.cfg b/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part1.cfg new file mode 100644 index 00000000..a32c82d7 --- /dev/null +++ b/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part1.cfg @@ -0,0 +1,122 @@ +PART +{ +name = KSPIMagneticNozzle1 +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Engines/MagneticNozzle/MagneticNozzle + rotation = 0,0,180 + scale = 0.625,0.7,0.625 +} + +node_stack_top = 0.0, 0.501, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.31, 0.0, 0.0, 1.0, 0.0, 1 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 19500 +category = Engine +subcategory = 0 +title = 1.25m Magnetic Nozzle +manufacturer = Ionic Protonic Electronics +description = The Magnetic Nozzle is an advanced alternative to the thermal rocket which can expel high temperature charged exhaust at extremely high velocities (and consequently specific impulses) because the propellant is confined electromagnetically instead of physically. It does require electric power and, of of course, only operates off reactors that generate charged particles. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 0.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + running_closed + { + AUDIO + { + channel = Ship + clip = sound_rocket_spurts + volume = 0.0 0.0 + volume = 1.0 0.1 + pitch = 0.0 0.2 + pitch = 1.0 1.0 + loop = true + } + MODEL_MULTI_PARTICLE + { + modelName = Squad/FX/shockExhaust_blue_small + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.0 + emission = 0.075 0.25 + emission = 1.0 1.25 + speed = 0.0 5 + speed = 1.0 12 + } + } + engage + { + } + flameout + { + PREFAB_PARTICLE + { + prefabName = fx_exhaustSparks_flameout_2 + transformName = smokePoint + oneShot = true + } + AUDIO + { + channel = Ship + clip = sound_explosion_low + volume = 1.0 + pitch = 2.0 + loop = false + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = ClosedCycle + runningEffectName = running_closed + thrustVectorTransformName = thrustTransform + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 675 + heatProduction = 350 + fxOffset = 0, 0, 0.25 + PROPELLANT + { + name = LiquidFuel + ratio = 1.0 + DrawGauge = True + } + atmosphereCurve + { + key = 0 36000 + key = 1 32000 + } + +} + +MODULE +{ + name = InterstellarMagneticNozzleControllerFX + radius = 1.25 +} + +} \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part2.cfg b/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part2.cfg new file mode 100644 index 00000000..faa11402 --- /dev/null +++ b/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part2.cfg @@ -0,0 +1,122 @@ +PART +{ +name = KSPIMagneticNozzle2 +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Engines/MagneticNozzle/MagneticNozzle + rotation = 0,0,180 + scale = 1.125,1.4,1.25 +} + +node_stack_top = 0.0, 1.03, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.62, 0.0, 0.0, 1.0, 0.0, 2 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 55154 +category = Engine +subcategory = 0 +title = 2.5m Magnetic Nozzle +manufacturer = Ionic Protonic Electronics +description = The Magnetic Nozzle is an advanced alternative to the thermal rocket which can expel high temperature charged exhaust at extremely high velocities (and consequently specific impulses) because the propellant is confined electromagnetically instead of physically. It does require electric power and, of of course, only operates off reactors that generate charged particles. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + running_closed + { + AUDIO + { + channel = Ship + clip = sound_rocket_spurts + volume = 0.0 0.0 + volume = 1.0 0.1 + pitch = 0.0 0.2 + pitch = 1.0 1.0 + loop = true + } + MODEL_MULTI_PARTICLE + { + modelName = Squad/FX/shockExhaust_blue_small + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.0 + emission = 0.075 0.25 + emission = 1.0 1.25 + speed = 0.0 5 + speed = 1.0 12 + } + } + engage + { + } + flameout + { + PREFAB_PARTICLE + { + prefabName = fx_exhaustSparks_flameout_2 + transformName = smokePoint + oneShot = true + } + AUDIO + { + channel = Ship + clip = sound_explosion_low + volume = 1.0 + pitch = 2.0 + loop = false + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = ClosedCycle + runningEffectName = running_closed + thrustVectorTransformName = thrustTransform + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 675 + heatProduction = 350 + fxOffset = 0, 0, 0.25 + PROPELLANT + { + name = LiquidFuel + ratio = 1.0 + DrawGauge = True + } + atmosphereCurve + { + key = 0 36000 + key = 1 32000 + } + +} + +MODULE +{ + name = InterstellarMagneticNozzleControllerFX + radius = 2.5 +} + +} \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part3.cfg b/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part3.cfg new file mode 100644 index 00000000..23717ace --- /dev/null +++ b/GameData/WarpPlugin/Parts/Engines/MagneticNozzle/part3.cfg @@ -0,0 +1,122 @@ +PART +{ +name = KSPIMagneticNozzle3 +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Engines/MagneticNozzle/MagneticNozzle + rotation = 0,0,180 + scale = 1.875,2.1,1.875 +} + +node_stack_top = 0.0, 1.505, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.93, 0.0, 0.0, 1.0, 0.0, 2 + +fx_exhaustFlame_blue = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.0, 0.0, 0.0, 0.0, 1.0, running +fx_exhaustSparks_flameout = 0.0, -0.0, 0.0, 0.0, 1.0, 0.0, flameout + +TechRequired = ionPropulsion +entryCost = 14000 +cost = 78000 +category = Engine +subcategory = 0 +title = 3.75m Magnetic Nozzle +manufacturer = Ionic Protonic Electronics +description = The Magnetic Nozzle is an advanced alternative to the thermal rocket which can expel high temperature charged exhaust at extremely high velocities (and consequently specific impulses) because the propellant is confined electromagnetically instead of physically. It does require electric power and, of of course, only operates off reactors that generate charged particles. +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 6 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +EFFECTS +{ + running_closed + { + AUDIO + { + channel = Ship + clip = sound_rocket_spurts + volume = 0.0 0.0 + volume = 1.0 0.1 + pitch = 0.0 0.2 + pitch = 1.0 1.0 + loop = true + } + MODEL_MULTI_PARTICLE + { + modelName = WarpPlugin/FX/interstellarChargedExhaust + transformName = thrustTransform + emission = 0.0 0.0 + emission = 0.05 0.0 + emission = 0.075 0.25 + emission = 1.0 1.25 + speed = 0.0 0.5 + speed = 1.0 1.2 + } + } + engage + { + } + flameout + { + PREFAB_PARTICLE + { + prefabName = fx_exhaustSparks_flameout_2 + transformName = smokePoint + oneShot = true + } + AUDIO + { + channel = Ship + clip = sound_explosion_low + volume = 1.0 + pitch = 2.0 + loop = false + } + } +} + +MODULE +{ + name = ModuleEnginesFX + engineID = ClosedCycle + runningEffectName = running_closed + thrustVectorTransformName = thrustTransform + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 675 + heatProduction = 350 + fxOffset = 0, 0, 0.25 + PROPELLANT + { + name = LiquidFuel + ratio = 1.0 + DrawGauge = True + } + atmosphereCurve + { + key = 0 36000 + key = 1 32000 + } + +} + +MODULE +{ + name = InterstellarMagneticNozzleControllerFX + radius = 3.75 +} + +} \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Engines/MethaneEngine/part.cfg b/GameData/WarpPlugin/Parts/Engines/MethaneEngine/part.cfg index 8726cd9d..5d3b2630 100644 --- a/GameData/WarpPlugin/Parts/Engines/MethaneEngine/part.cfg +++ b/GameData/WarpPlugin/Parts/Engines/MethaneEngine/part.cfg @@ -1,120 +1,120 @@ -PART -{ -// Kerbal Space Program - Part Config -// LV-T45 Liquid Fuel Engine -// - -// --- general parameters --- -name = FNMethaneEngine -module = Part -author = NovaSilisko - -// --- asset parameters --- -mesh = model.mu -scale = 1 -rescaleFactor = 2 - -// --- node definitions --- -node_stack_top = 0.0, 0.161, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.03, 0.0, 0.0, 1.0, 0.0 - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -0.74338, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -0.74338, 0.0, 0.0, 0.0, 1.0, running -fx_smokeTrail_light = 0.0, -0.74338, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustSparks_flameout = 0.0, -0.74338, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = experimentalRocketry -entryCost = 15100 -cost = 3050 -category = Propulsion -subcategory = 0 -title = Deinonychus 1-D -manufacturer = Elon Kerman's Space Exploration Corp. -description = Designed to reduce the cost of spacecraft launches as well as open up interesting possibilities for In-Situ utilisation of resources on other celestial bodies, the Deinonychus offers considerable advantages over previous generations of booster. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 3.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 600 -breakingTorque = 600 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = tt - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 1425 - heatProduction = 400 - fxOffset = 0, 0, 0.2 - PROPELLANT - { - name = LqdMethane - ratio = 0.77727 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1 - } - atmosphereCurve - { - key = 0 368 - key = 1 309 - } - -} - - - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = thrustTransform - gimbalRange = 1 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = h3 -} - -MODULE -{ - name = ModuleAlternator - RESOURCE - { - name = ElectricCharge - rate = 6.0 - } -} -RESOURCE -{ - name = ElectricCharge - amount = 0 - maxAmount = 0 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// LV-T45 Liquid Fuel Engine +// + +// --- general parameters --- +name = FNMethaneEngine +module = Part +author = NovaSilisko + +// --- asset parameters --- +mesh = model.mu +scale = 1 +rescaleFactor = 2 + +// --- node definitions --- +node_stack_top = 0.0, 0.161, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.03, 0.0, 0.0, 1.0, 0.0, 2 + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -0.74338, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -0.74338, 0.0, 0.0, 0.0, 1.0, running +fx_smokeTrail_light = 0.0, -0.74338, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustSparks_flameout = 0.0, -0.74338, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = experimentalRocketry +entryCost = 15100 +cost = 3050 +category = Engine +subcategory = 0 +title = Deinonychus 1-D +manufacturer = Elon Kerman's Space Exploration Corp. +description = Designed to reduce the cost of spacecraft launches as well as open up interesting possibilities for In-Situ utilisation of resources on other celestial bodies, the Deinonychus offers considerable advantages over previous generations of booster. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 3.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 600 +breakingTorque = 600 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = tt + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 1425 + heatProduction = 400 + fxOffset = 0, 0, 0.2 + PROPELLANT + { + name = LqdMethane + ratio = 0.77727 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1 + } + atmosphereCurve + { + key = 0 368 + key = 1 309 + } + +} + + + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = thrustTransform + gimbalRange = 1 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = h3 +} + +MODULE +{ + name = ModuleAlternator + RESOURCE + { + name = ElectricCharge + rate = 6.0 + } +} +RESOURCE +{ + name = ElectricCharge + amount = 0 + maxAmount = 0 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part0.cfg b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part0.cfg index 332aa332..b333ba2b 100644 --- a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part0.cfg +++ b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part0.cfg @@ -1,122 +1,122 @@ -PART -{ -// Kerbal Space Program - Part Config -// LV-T30 Liquid Fuel Engine -// - -// --- general parameters --- -name = smallerThermalRocketNozzle -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu - -rescaleFactor = 0.25 - -// --- node definitions --- -node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 2 - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running -fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = nuclearPropulsion -entryCost = 100 -cost = 100 -category = Propulsion -subcategory = 0 -title = 62.5cm Thermal Rocket Nozzle -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 0.11 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 800 -breakingTorque = 800 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 500 - heatProduction = 200 - fxOffset = 0, 0, 1.5 - PROPELLANT - { - name = LiquidFuel - ratio = 0.9 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1.1 - } - atmosphereCurve - { - key = 0 1000 - key = 1 400 - } - -} - -MODULE -{ - name = FNNozzleController - radius = 0.625 -} - -MODULE -{ - name = ModuleJettison - jettisonName = shroud - bottomNodeName = bottom - isFairing = True - jettisonedObjectMass = 0.5 - jettisonForce = 15 - jettisonDirection = 0 0 1 - -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = h2 -} - - -} +PART +{ +// Kerbal Space Program - Part Config +// LV-T30 Liquid Fuel Engine +// + +// --- general parameters --- +name = smallerThermalRocketNozzle +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu + +rescaleFactor = 0.25 + +// --- node definitions --- +node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 0 +node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 0 + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running +fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = nuclearPropulsion +entryCost = 100 +cost = 100 +category = Engine +subcategory = 0 +title = 62.5cm Thermal Rocket Nozzle +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 0.11 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 800 +breakingTorque = 800 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 500 + heatProduction = 200 + fxOffset = 0, 0, 1.5 + PROPELLANT + { + name = LiquidFuel + ratio = 0.9 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1.1 + } + atmosphereCurve + { + key = 0 1000 + key = 1 400 + } + +} + +MODULE +{ + name = FNNozzleController + radius = 0.625 +} + +MODULE +{ + name = ModuleJettison + jettisonName = shroud + bottomNodeName = bottom + isFairing = True + jettisonedObjectMass = 0.5 + jettisonForce = 15 + jettisonDirection = 0 0 1 + +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = h2 +} + + +} diff --git a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part1.cfg b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part1.cfg index 1033b686..4f23c805 100644 --- a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part1.cfg +++ b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part1.cfg @@ -1,122 +1,122 @@ -PART -{ -// Kerbal Space Program - Part Config -// LV-T30 Liquid Fuel Engine -// - -// --- general parameters --- -name = smallThermalRocketNozzle -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu - -rescaleFactor = 0.5 - -// --- node definitions --- -node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 2 - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running -fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = nuclearPropulsion -entryCost = 100 -cost = 200 -category = Propulsion -subcategory = 0 -title = 1.25m Thermal Rocket Nozzle -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 0.4 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 800 -breakingTorque = 800 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 500 - heatProduction = 200 - fxOffset = 0, 0, 1.5 - PROPELLANT - { - name = LiquidFuel - ratio = 0.9 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1.1 - } - atmosphereCurve - { - key = 0 1000 - key = 1 400 - } - -} - -MODULE -{ - name = FNNozzleController - radius = 1.25 -} - -MODULE -{ - name = ModuleJettison - jettisonName = shroud - bottomNodeName = bottom - isFairing = True - jettisonedObjectMass = 0.5 - jettisonForce = 15 - jettisonDirection = 0 0 1 - -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = h2 -} - - -} +PART +{ +// Kerbal Space Program - Part Config +// LV-T30 Liquid Fuel Engine +// + +// --- general parameters --- +name = smallThermalRocketNozzle +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu + +rescaleFactor = 0.5 + +// --- node definitions --- +node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 1 +node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 1 + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running +fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = nuclearPropulsion +entryCost = 100 +cost = 200 +category = Engine +subcategory = 0 +title = 1.25m Thermal Rocket Nozzle +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 0.4 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 800 +breakingTorque = 800 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 500 + heatProduction = 200 + fxOffset = 0, 0, 1.5 + PROPELLANT + { + name = LiquidFuel + ratio = 0.9 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1.1 + } + atmosphereCurve + { + key = 0 1000 + key = 1 400 + } + +} + +MODULE +{ + name = FNNozzleController + radius = 1.25 +} + +MODULE +{ + name = ModuleJettison + jettisonName = shroud + bottomNodeName = bottom + isFairing = True + jettisonedObjectMass = 0.5 + jettisonForce = 15 + jettisonDirection = 0 0 1 + +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = h2 +} + + +} diff --git a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part2.cfg b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part2.cfg index 9a086287..b303c968 100644 --- a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part2.cfg +++ b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part2.cfg @@ -1,121 +1,121 @@ -PART -{ -// Kerbal Space Program - Part Config -// LV-T30 Liquid Fuel Engine -// - -// --- general parameters --- -name = ThermalRocketNozzle -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu - -rescaleFactor = 1 - -// --- node definitions --- -node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 2 - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running -fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = nuclearPropulsion -entryCost = 100 -cost = 400 -category = Propulsion -subcategory = 0 -title = 2.5m Thermal Rocket Nozzle -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 1.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 500 - heatProduction = 200 - fxOffset = 0, 0, 1.5 - PROPELLANT - { - name = LiquidFuel - ratio = 0.9 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1.1 - } - atmosphereCurve - { - key = 0 1000 - key = 1 400 - } - -} - -MODULE -{ - name = FNNozzleController - radius = 2.5 -} - -MODULE -{ - name = ModuleJettison - jettisonName = shroud - bottomNodeName = bottom - isFairing = True - jettisonedObjectMass = 0.5 - jettisonForce = 15 - jettisonDirection = 0 0 1 - -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = h2 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// LV-T30 Liquid Fuel Engine +// + +// --- general parameters --- +name = ThermalRocketNozzle +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu + +rescaleFactor = 1 + +// --- node definitions --- +node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 2 + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running +fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = nuclearPropulsion +entryCost = 100 +cost = 400 +category = Engine +subcategory = 0 +title = 2.5m Thermal Rocket Nozzle +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 1.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 500 + heatProduction = 200 + fxOffset = 0, 0, 1.5 + PROPELLANT + { + name = LiquidFuel + ratio = 0.9 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1.1 + } + atmosphereCurve + { + key = 0 1000 + key = 1 400 + } + +} + +MODULE +{ + name = FNNozzleController + radius = 2.5 +} + +MODULE +{ + name = ModuleJettison + jettisonName = shroud + bottomNodeName = bottom + isFairing = True + jettisonedObjectMass = 0.5 + jettisonForce = 15 + jettisonDirection = 0 0 1 + +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = h2 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part3.cfg b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part3.cfg index ad8f058f..81781003 100644 --- a/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part3.cfg +++ b/GameData/WarpPlugin/Parts/Engines/ThermalRocketNozzle/part3.cfg @@ -1,121 +1,121 @@ -PART -{ -// Kerbal Space Program - Part Config -// LV-T30 Liquid Fuel Engine -// - -// --- general parameters --- -name = bigThermalRocketNozzle -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu - -rescaleFactor = 1.5 - -// --- node definitions --- -node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 2 - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running -fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = nuclearPropulsion -entryCost = 100 -cost = 1200 -category = Propulsion -subcategory = 0 -title = 3.75m Thermal Rocket Nozzle -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 3 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 9000 -breakingTorque = 9000 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 500 - heatProduction = 200 - fxOffset = 0, 0, 1.5 - PROPELLANT - { - name = LiquidFuel - ratio = 0.9 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1.1 - } - atmosphereCurve - { - key = 0 1000 - key = 1 400 - } - -} - -MODULE -{ - name = FNNozzleController - radius = 3.75 -} - -MODULE -{ - name = ModuleJettison - jettisonName = shroud - bottomNodeName = bottom - isFairing = True - jettisonedObjectMass = 0.5 - jettisonForce = 15 - jettisonDirection = 0 0 1 - -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -MODULE -{ - name = ModuleAnimateHeat - ThermalAnim = h2 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// LV-T30 Liquid Fuel Engine +// + +// --- general parameters --- +name = bigThermalRocketNozzle +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu + +rescaleFactor = 1.5 + +// --- node definitions --- +node_stack_top = 0.0, 0.055308 , 0.0, 0.0, -1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.196 , 0.0, 0.0, -1.0, 0.0, 2 + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, -2, 0.0, 0.0, 0.0, 1.0, running +fx_smokeTrail_light = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustSparks_flameout = 0.0, -2, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = nuclearPropulsion +entryCost = 100 +cost = 1200 +category = Engine +subcategory = 0 +title = 3.75m Thermal Rocket Nozzle +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A general purpose thermal rocket nozzle. Unlike a more conventional chemical rocket, this thermal rocket features a heat exchanger used to derive its propulsive power directly from a reactor. It must therefore be attached directly to a reactor in order to achieve any thrust. The thrust and specific impulse available are determined by the reactor it is attached to. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 3 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 9000 +breakingTorque = 9000 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 500 + heatProduction = 200 + fxOffset = 0, 0, 1.5 + PROPELLANT + { + name = LiquidFuel + ratio = 0.9 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1.1 + } + atmosphereCurve + { + key = 0 1000 + key = 1 400 + } + +} + +MODULE +{ + name = FNNozzleController + radius = 3.75 +} + +MODULE +{ + name = ModuleJettison + jettisonName = shroud + bottomNodeName = bottom + isFairing = True + jettisonedObjectMass = 0.5 + jettisonForce = 15 + jettisonDirection = 0 0 1 + +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +MODULE +{ + name = ModuleAnimateHeat + ThermalAnim = h2 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part1.cfg b/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part1.cfg index 42e0d1fc..d9d16918 100644 --- a/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part1.cfg +++ b/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part1.cfg @@ -1,123 +1,123 @@ -PART -{ -// Kerbal Space Program - Part Config -// - -// --- general parameters --- -name = ThermalTurbojet -module = Part -author = Fractal - -// --- asset parameters --- -mesh = jet.mu -scale = 1 -rescaleFactor = 1 - -// --- node definitions --- -node_stack_top = 0.0, 0.081, 0.0, 0.0, 1.0, 0.0 - - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_yellow = 0.0, -0.1, 0.0, 0.0, 0.0, 1.0, power -fx_smokeTrail_light = 0.0, -0.1, 0.0, 0.0, 1.0, 0.0, power -fx_exhaustSparks_flameout = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - -sound_vent_medium = engage -sound_jet_low = running -sound_jet_deep = power -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = highAltitudeFlight -entryCost = 14000 -cost = 1000 -category = Propulsion -subcategory = 0 -title = 1.25m Thermal Turbojet -manufacturer = Zefram Kerman's Warp Supplies Co. -description = Instead of a combustion chamber, this turbojet features a heat exchanger to heat and expel exhaust at high velocity. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 0.4 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 300 - heatProduction = 400 - useEngineResponseTime = True - engineAccelerationSpeed = 0.2 - engineDecelerationSpeed = 0.35 - useVelocityCurve = True - - PROPELLANT - { - name = IntakeAtm - ratio = 1 - } - atmosphereCurve - { - key = 0 1200 - key = 0.3 2500 - key = 1 800 - } - velocityCurve - { - key = 0 1 0 0 - key = 400 0.8 0 0 - key = 800 0.9 0 0 - key = 1700 0 0 0 - } - -} - -MODULE -{ - name = FNNozzleController - isJet = true - originalName = Atmospheric Thermal Jet - upgradedName = Hybrid Thermal Rocket - upgradeCost = 750 - upgradeTechReq = interstellarTechFusionPower - radius = 1.25 -} - - - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -MODULE -{ - name = FXModuleAnimateThrottle - animationName = t1 - dependOnEngineState = True - responseSpeed = 0.01 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// + +// --- general parameters --- +name = ThermalTurbojet +module = Part +author = Fractal + +// --- asset parameters --- +mesh = jet.mu +scale = 1 +rescaleFactor = 1 + +// --- node definitions --- +node_stack_top = 0.0, 0.081, 0.0, 0.0, 1.0, 0.0 + + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_yellow = 0.0, -0.1, 0.0, 0.0, 0.0, 1.0, power +fx_smokeTrail_light = 0.0, -0.1, 0.0, 0.0, 1.0, 0.0, power +fx_exhaustSparks_flameout = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + +sound_vent_medium = engage +sound_jet_low = running +sound_jet_deep = power +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = highAltitudeFlight +entryCost = 14000 +cost = 3000 +category = Engine +subcategory = 0 +title = 1.25m Thermal Turbojet +manufacturer = Zefram Kerman's Warp Supplies Co. +description = Instead of a combustion chamber, this turbojet features a heat exchanger to heat and expel exhaust at high velocity. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 0.4 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 300 + heatProduction = 400 + useEngineResponseTime = True + engineAccelerationSpeed = 0.2 + engineDecelerationSpeed = 0.35 + useVelocityCurve = True + + PROPELLANT + { + name = IntakeAtm + ratio = 1 + } + atmosphereCurve + { + key = 0 1200 + key = 0.3 2500 + key = 1 800 + } + velocityCurve + { + key = 0 1 0 0 + key = 400 0.8 0 0 + key = 800 0.9 0 0 + key = 1700 0 0 0 + } + +} + +MODULE +{ + name = FNNozzleController + isJet = true + originalName = Atmospheric Thermal Jet + upgradedName = Hybrid Thermal Rocket + upgradeCost = 750 + upgradeTechReq = interstellarTechFusionPower + radius = 1.25 +} + + + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +MODULE +{ + name = FXModuleAnimateThrottle + animationName = t1 + dependOnEngineState = True + responseSpeed = 0.01 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part2.cfg b/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part2.cfg index 1e8c20aa..e95a39fa 100644 --- a/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part2.cfg +++ b/GameData/WarpPlugin/Parts/Engines/ThermalTurbojet/part2.cfg @@ -1,123 +1,123 @@ -PART -{ -// Kerbal Space Program - Part Config -// - -// --- general parameters --- -name = ThermalTurbojet2 -module = Part -author = Fractal - -// --- asset parameters --- -mesh = jet.mu -scale = 1 -rescaleFactor = 2 - -// --- node definitions --- -node_stack_top = 0.0, 0.081, 0.0, 0.0, 1.0, 0.0 - - - -// --- FX definitions --- - -fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_yellow = 0.0, -0.1, 0.0, 0.0, 0.0, 1.0, power -fx_smokeTrail_light = 0.0, -0.1, 0.0, 0.0, 1.0, 0.0, power -fx_exhaustSparks_flameout = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, flameout - -// --- Sound FX definition --- - -sound_vent_medium = engage -sound_jet_low = running -sound_jet_deep = power -sound_vent_soft = disengage -sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = highAltitudeFlight -entryCost = 14000 -cost = 2000 -category = Propulsion -subcategory = 0 -title = 2.5m Thermal Turbojet -manufacturer = Zefram Kerman's Warp Supplies Co. -description = Instead of a combustion chamber, this turbojet features a heat exchanger to heat and expel exhaust at high velocity. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 1.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3600 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = TT - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 300 - heatProduction = 400 - useEngineResponseTime = True - engineAccelerationSpeed = 0.2 - engineDecelerationSpeed = 0.35 - useVelocityCurve = True - - PROPELLANT - { - name = IntakeAtm - ratio = 1 - } - atmosphereCurve - { - key = 0 1200 - key = 0.3 2500 - key = 1 800 - } - velocityCurve - { - key = 0 1 0 0 - key = 400 0.8 0 0 - key = 800 0.9 0 0 - key = 1700 0 0 0 - } - -} - -MODULE -{ - name = FNNozzleController - isJet = true - originalName = Atmospheric Thermal Jet - upgradedName = Hybrid Thermal Rocket - upgradeCost = 750 - upgradeTechReq = interstellarTechFusionPower - radius = 2.5 -} - - - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = TT - gimbalRange = 1 -} - -MODULE -{ - name = FXModuleAnimateThrottle - animationName = t1 - dependOnEngineState = True - responseSpeed = 0.01 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// + +// --- general parameters --- +name = ThermalTurbojet2 +module = Part +author = Fractal + +// --- asset parameters --- +mesh = jet.mu +scale = 1 +rescaleFactor = 2 + +// --- node definitions --- +node_stack_top = 0.0, 0.081, 0.0, 0.0, 1.0, 0.0 + + + +// --- FX definitions --- + +fx_exhaustFlame_blue = 0.0, -2, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_yellow = 0.0, -0.1, 0.0, 0.0, 0.0, 1.0, power +fx_smokeTrail_light = 0.0, -0.1, 0.0, 0.0, 1.0, 0.0, power +fx_exhaustSparks_flameout = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, flameout + +// --- Sound FX definition --- + +sound_vent_medium = engage +sound_jet_low = running +sound_jet_deep = power +sound_vent_soft = disengage +sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = highAltitudeFlight +entryCost = 14000 +cost = 9000 +category = Engine +subcategory = 0 +title = 2.5m Thermal Turbojet +manufacturer = Zefram Kerman's Warp Supplies Co. +description = Instead of a combustion chamber, this turbojet features a heat exchanger to heat and expel exhaust at high velocity. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 1.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3600 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = TT + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 300 + heatProduction = 400 + useEngineResponseTime = True + engineAccelerationSpeed = 0.2 + engineDecelerationSpeed = 0.35 + useVelocityCurve = True + + PROPELLANT + { + name = IntakeAtm + ratio = 1 + } + atmosphereCurve + { + key = 0 1200 + key = 0.3 2500 + key = 1 800 + } + velocityCurve + { + key = 0 1 0 0 + key = 400 0.8 0 0 + key = 800 0.9 0 0 + key = 1700 0 0 0 + } + +} + +MODULE +{ + name = FNNozzleController + isJet = true + originalName = Atmospheric Thermal Jet + upgradedName = Hybrid Thermal Rocket + upgradeCost = 750 + upgradeTechReq = interstellarTechFusionPower + radius = 2.5 +} + + + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = TT + gimbalRange = 1 +} + +MODULE +{ + name = FXModuleAnimateThrottle + animationName = t1 + dependOnEngineState = True + responseSpeed = 0.01 +} + +} diff --git a/GameData/WarpPlugin/Parts/Engines/solarSail/part.cfg b/GameData/WarpPlugin/Parts/Engines/solarSail/part.cfg index e148a187..a2ad32ca 100644 --- a/GameData/WarpPlugin/Parts/Engines/solarSail/part.cfg +++ b/GameData/WarpPlugin/Parts/Engines/solarSail/part.cfg @@ -1,63 +1,63 @@ -PART -{ - -// --- general parameters --- -name = SM-Solar-Sail -module = Part -author = SasquatchMarmalade - -// --- asset parameters --- -mesh = model.mu -scale = 1 -rescaleFactor = 1.25 - - -// --- node definitions --- -node_stack_top = 0.0, 1.001, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.001, 0.0, 0.0, 1.0, 0.0 - - -// --- FX definitions --- - -//fx_exhaustFlame_blue = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0, running -//fx_gasJet_white = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0, running - -// --- Sound FX definition --- - -//sound_vent_medium = engage -//sound_rocket_hard = running -//sound_vent_soft = disengage -//sound_explosion_low = flameout - -// --- editor parameters --- -TechRequired = metaMaterials -entryCost = 2500 -cost = 10000 -category = Propulsion -subcategory = 0 -title = Solar Sail -manufacturer = SM Aeronautics -description = Solar sails (also called light sails or photon sails) are a form of spacecraft propulsion using the radiation pressure (also called solar pressure) from stars to push large ultra-thin mirrors to high speeds. -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -maxTemp = 2500 -breakingForce = 200 -breakingTorque = 200 - - -MODULE -{ - name = ModuleSolarSail - surfaceArea = 144400 - animName = Default Take -} - +PART +{ + +// --- general parameters --- +name = SM-Solar-Sail +module = Part +author = SasquatchMarmalade + +// --- asset parameters --- +mesh = model.mu +scale = 1 +rescaleFactor = 1.25 + + +// --- node definitions --- +node_stack_top = 0.0, 1.001, 0.0, 0.0, 1.0, 0.0 +node_stack_bottom = 0.0, -1.001, 0.0, 0.0, 1.0, 0.0 + + +// --- FX definitions --- + +//fx_exhaustFlame_blue = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0, running +//fx_gasJet_white = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0, running + +// --- Sound FX definition --- + +//sound_vent_medium = engage +//sound_rocket_hard = running +//sound_vent_soft = disengage +//sound_explosion_low = flameout + +// --- editor parameters --- +TechRequired = metaMaterials +entryCost = 2500 +cost = 10000 +category = Engine +subcategory = 0 +title = Solar Sail +manufacturer = SM Aeronautics +description = Solar sails (also called light sails or photon sails) are a form of spacecraft propulsion using the radiation pressure (also called solar pressure) from stars to push large ultra-thin mirrors to high speeds. +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +maxTemp = 2500 +breakingForce = 200 +breakingTorque = 200 + + +MODULE +{ + name = ModuleSolarSail + surfaceArea = 144400 + animName = Default Take +} + } \ No newline at end of file diff --git a/GameData/WarpPlugin/Parts/Engines/vista/part.cfg b/GameData/WarpPlugin/Parts/Engines/vista/part.cfg index 1a27b566..6f354f31 100644 --- a/GameData/WarpPlugin/Parts/Engines/vista/part.cfg +++ b/GameData/WarpPlugin/Parts/Engines/vista/part.cfg @@ -1,128 +1,128 @@ -PART -{ -name = vista -module = Part -author = Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 1.5 - -node_stack_top = 0.0, 0.47383, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -0.671957, 0.0, 0.0, 1.0, 0.0 - - - -fx_exhaustFlame_blue_small = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, running -fx_exhaustLight_blue = 0.0, 0, 0.0, 0.0, 0.0, 1.0, running - - -sound_vent_medium = engage -sound_rocket_hard = running -sound_vent_soft = disengage -sound_explosion_low = flameout - -TechRequired = experimentalRocketry -entryCost = 6000 -cost = 490993.53 -category = Propulsion -subcategory = 0 -title = DT Vista Inertial Fusion Engine -manufacturer = Kerbal Ignition Facility Junkyard Co. -description = The DT Vista propulsion system is an engine that utilises laser induced interial fusion for propulsion. Pellets of Deuterium and Tritium are compressed to ultra-high densities using a high power laser. It uses a novel throttle system that actually varies the specific impulse rather than the energy output, it thus always requires 2.5GW of input power, even on minimal throttle. The crew onboard are shielded by the engine from the intense neutron flux of the fusion reaction but because the reaction occurs outside the ship, other nearby vessels aren't so protected - Beware! - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -mass = 10 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 12 -breakingForce = 1500 -breakingTorque = 1500 -maxTemp = 4000 - -MODULE -{ - name = ModuleEngines - thrustVectorTransformName = T_T - exhaustDamage = True - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 1100 - heatProduction = 600 - fxOffset = 0, 0, 0 - PROPELLANT - { - name = LiquidFuel - ratio = 1.44 - DrawGauge = True - } - PROPELLANT - { - name = LqdDeuterium - ratio = 1.38337941e-3 - } - PROPELLANT - { - name = LqdTritium - ratio = 1.38337941e-3 - } - - atmosphereCurve - { - key = 0 15500 - } -} - -MODULE -{ - name = VistaEngineController -} - -MODULE -{ - name = ModuleGimbal - gimbalTransformName = T_T - gimbalRange = 1 -} - -MODULE -{ - name = FXModuleAnimateThrottle - animationName = e22 - dependOnEngineState = True - responseSpeed = 0.5 -} - -MODULE -{ - name = ModuleJettison - jettisonName = fairing - bottomNodeName = bottom - isFairing = True - jettisonedObjectMass = 0.1 - jettisonForce = 5 - jettisonDirection = 0 0 1 - -} - -RESOURCE -{ - name = LqdDeuterium - amount = 50 - maxAmount = 50 -} - -RESOURCE -{ - name = LqdTritium - amount = 50 - maxAmount = 50 -} - - - -} +PART +{ +name = vista +module = Part +author = Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 1.5 + +node_stack_top = 0.0, 0.47383, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.671957, 0.0, 0.0, 1.0, 0.0, 2 + + + +fx_exhaustFlame_blue_small = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, running +fx_exhaustLight_blue = 0.0, 0, 0.0, 0.0, 0.0, 1.0, running + + +sound_vent_medium = engage +sound_rocket_hard = running +sound_vent_soft = disengage +sound_explosion_low = flameout + +TechRequired = experimentalRocketry +entryCost = 100000 +cost = 490993.53 +category = Engine +subcategory = 0 +title = DT Vista Inertial Fusion Engine +manufacturer = Kerbal Ignition Facility Junkyard Co. +description = The DT Vista propulsion system is an engine that utilises laser induced interial fusion for propulsion. Pellets of Deuterium and Tritium are compressed to ultra-high densities using a high power laser. It uses a novel throttle system that actually varies the specific impulse rather than the energy output, it thus always requires 2.5GW of input power, even on minimal throttle. The crew onboard are shielded by the engine from the intense neutron flux of the fusion reaction but because the reaction occurs outside the ship, other nearby vessels aren't so protected - Beware! + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +mass = 10 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 12 +breakingForce = 1500 +breakingTorque = 1500 +maxTemp = 4000 + +MODULE +{ + name = ModuleEngines + thrustVectorTransformName = T_T + exhaustDamage = True + ignitionThreshold = 0.1 + minThrust = 0 + maxThrust = 1100 + heatProduction = 600 + fxOffset = 0, 0, 0 + PROPELLANT + { + name = LiquidFuel + ratio = 1.44 + DrawGauge = True + } + PROPELLANT + { + name = LqdDeuterium + ratio = 1.38337941e-3 + } + PROPELLANT + { + name = LqdTritium + ratio = 1.38337941e-3 + } + + atmosphereCurve + { + key = 0 15500 + } +} + +MODULE +{ + name = VistaEngineController +} + +MODULE +{ + name = ModuleGimbal + gimbalTransformName = T_T + gimbalRange = 1 +} + +MODULE +{ + name = FXModuleAnimateThrottle + animationName = e22 + dependOnEngineState = True + responseSpeed = 0.5 +} + +MODULE +{ + name = ModuleJettison + jettisonName = fairing + bottomNodeName = bottom + isFairing = True + jettisonedObjectMass = 0.1 + jettisonForce = 5 + jettisonDirection = 0 0 1 + +} + +RESOURCE +{ + name = LqdDeuterium + amount = 50 + maxAmount = 50 +} + +RESOURCE +{ + name = LqdTritium + amount = 50 + maxAmount = 50 +} + + + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks1/125.cfg b/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks1/125.cfg index ac9394f9..b4970a3a 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks1/125.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks1/125.cfg @@ -1,48 +1,48 @@ -PART { - -name = AntimatterTank125 -module = Part -author = zzz - -mesh = smalltank.mu -rescaleFactor = 1 - -node_stack_top = 0.0, 0.315, 0.0, 0.0, 1.0, 0.0, 1 -node_stack_bottom = 0.0, -0.315, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = experimentalScience -entryCost = 2000 -cost = 20000 -category = Propulsion -subcategory = 0 -title = 1.25m Antimatter Containment Device -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A small Antimatter contaiment unit, mildly explosive if unpowered. - -attachRules = 1,0,1,1,0 - -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 12 -maxTemp = 2900 -breakingForce = 100 -breakingTorque = 100 -fuelCrossFeed = True - -RESOURCE -{ - name = Antimatter - amount = 0 - maxAmount = 10000 -} - -MODULE -{ - name = AntimatterStorageTank - chargeNeeded = 20 -} - -} +PART { + +name = AntimatterTank125 +module = Part +author = zzz + +mesh = smalltank.mu +rescaleFactor = 1 + +node_stack_top = 0.0, 0.315, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.315, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = experimentalScience +entryCost = 2000 +cost = 30000 +category = FuelTank +subcategory = 0 +title = 1.25m Antimatter Containment Device +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A small Antimatter contaiment unit, mildly explosive if unpowered. + +attachRules = 1,0,1,1,0 + +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 12 +maxTemp = 2900 +breakingForce = 100 +breakingTorque = 100 +fuelCrossFeed = True + +RESOURCE +{ + name = Antimatter + amount = 0 + maxAmount = 10000 +} + +MODULE +{ + name = AntimatterStorageTank + chargeNeeded = 20 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/250.cfg b/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/250.cfg index 070bb563..d070e737 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/250.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/250.cfg @@ -1,48 +1,48 @@ -PART { - -name = AntimatterTank250 -module = Part -author = zzz - -mesh = bigtank.mu -rescaleFactor = 1.0 - -node_stack_top = 0.0, 0.7231, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -0.315, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = experimentalScience -entryCost = 2000 -cost = 40000 -category = Propulsion -subcategory = 0 -title = 2.5m Antimatter Containment Device -manufacturer = Zefram Kerman's Warp Supplies Co. -description = A 2.5m container for Antimatter. Antimatter not included. - -attachRules = 1,0,1,1,0 - -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 12 -maxTemp = 2900 -breakingForce = 800 -breakingTorque = 800 -fuelCrossFeed = True - -RESOURCE -{ - name = Antimatter - amount = 0 - maxAmount = 80000 -} - -MODULE -{ - name = AntimatterStorageTank - chargeNeeded = 50 -} - -} +PART { + +name = AntimatterTank250 +module = Part +author = zzz + +mesh = bigtank.mu +rescaleFactor = 1.0 + +node_stack_top = 0.0, 0.7231, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.315, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = experimentalScience +entryCost = 2000 +cost = 120000 +category = FuelTank +subcategory = 0 +title = 2.5m Antimatter Containment Device +manufacturer = Zefram Kerman's Warp Supplies Co. +description = A 2.5m container for Antimatter. Antimatter not included. + +attachRules = 1,0,1,1,0 + +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 12 +maxTemp = 2900 +breakingForce = 800 +breakingTorque = 800 +fuelCrossFeed = True + +RESOURCE +{ + name = Antimatter + amount = 0 + maxAmount = 80000 +} + +MODULE +{ + name = AntimatterStorageTank + chargeNeeded = 50 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/375.cfg b/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/375.cfg index db8e488f..d48746fc 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/375.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/AntimatterTanks2/375.cfg @@ -1,48 +1,48 @@ -PART { - -name = AntimatterTank375 -module = Part -author = zzz - -mesh = bigtank.mu -rescaleFactor = 1.5 - -node_stack_top = 0.0, 0.7231, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -0.315, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = experimentalScience -entryCost = 2000 -cost = 60000 -category = Propulsion -subcategory = 0 -title = 3.5m Antimatter Containment Device -manufacturer = Zefram Kerman's Warp Supplies Co. -description = The largest of Antimatter containment devices. Under no circumstances expose to fools or Jebediah. - -attachRules = 1,0,1,1,0 - -mass = 3 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 12 -maxTemp = 2900 -breakingForce = 6000 -breakingTorque = 6000 -fuelCrossFeed = True - -RESOURCE -{ - name = Antimatter - amount = 0 - maxAmount = 270000 -} - -MODULE -{ - name = AntimatterStorageTank - chargeNeeded = 200 -} - -} +PART { + +name = AntimatterTank375 +module = Part +author = zzz + +mesh = bigtank.mu +rescaleFactor = 1.5 + +node_stack_top = 0.0, 0.7231, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.315, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = experimentalScience +entryCost = 2000 +cost = 3300000 +category = FuelTank +subcategory = 0 +title = 3.5m Antimatter Containment Device +manufacturer = Zefram Kerman's Warp Supplies Co. +description = The largest of Antimatter containment devices. Under no circumstances expose to fools or Jebediah. + +attachRules = 1,0,1,1,0 + +mass = 3 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 12 +maxTemp = 2900 +breakingForce = 6000 +breakingTorque = 6000 +fuelCrossFeed = True + +RESOURCE +{ + name = Antimatter + amount = 0 + maxAmount = 270000 +} + +MODULE +{ + name = AntimatterStorageTank + chargeNeeded = 200 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/BigArgonTank/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/BigArgonTank/part.cfg index d15bfae9..4c5b3559 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/BigArgonTank/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/BigArgonTank/part.cfg @@ -1,44 +1,44 @@ -PART -{ -name = BigXenonTank -module = Part -author = Fractal - -MODEL -{ - model = Squad/Parts/FuelTank/xenonTank/model - scale = 0.065, 0.065, 0.065 -} -scale = 0.5 -rescaleFactor = 8 - -node_stack_top = 0.0, 0.1404661, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -0.1404661, 0.0, 0.0, 1.0, 0.0, 2 - -TechRequired = ionPropulsion -entryCost = 10000 -cost = 200 -category = Utility -subcategory = 0 -title = Large Argon Container -manufacturer = Probodobodyne Inc. -description = Like Xenon, Argon is an inert gas but occurs in much greater quantities in nature. It offers superior specific impulse but lower thrust to the heavier Xenon. -attachRules = 1,0,1,1,0 - -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -maxTemp = 2900 -breakingForce = 300 -breakingTorque = 300 - -RESOURCE -{ - name = Argon - amount = 1080 - maxAmount = 1080 -} -} +PART +{ +name = BigXenonTank +module = Part +author = Fractal + +MODEL +{ + model = Squad/Parts/FuelTank/xenonTank/model + scale = 0.065, 0.065, 0.065 +} +scale = 0.5 +rescaleFactor = 8 + +node_stack_top = 0.0, 0.1404661, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.1404661, 0.0, 0.0, 1.0, 0.0, 2 + +TechRequired = ionFuelTank +entryCost = 10000 +cost = 27250 +category = FuelTank +subcategory = 0 +title = Large Argon Container +manufacturer = Probodobodyne Inc. +description = Like Xenon, Argon is an inert gas but occurs in much greater quantities in nature. It offers superior specific impulse but lower thrust to the heavier Xenon. +attachRules = 1,0,1,1,0 + +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +maxTemp = 2900 +breakingForce = 300 +breakingTorque = 300 + +RESOURCE +{ + name = ArgonGas + amount = 108000 + maxAmount = 108000 +} +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part.cfg index cf3de501..3be5bb0d 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part.cfg @@ -1,96 +1,96 @@ -PART -{ - // --- general parameters --- - name = FNDeuteriumCryostat - module = Part - author = Fractal - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/FuelTank/DeuteriumCryostat/model - rotation = 90,0,0 - scale = 1,1,0.25 - position = 0,-1.49,0 - } - scale = 1 - rescaleFactor = 1.0 - - // --- node definitions --- - node_stack_top = 0.0, 0.88, 0.0, 0.0, 1.0, 0.0, 1 - node_stack_bottom = 0.0, -0.88, 0.0, 0.0, 1.0, 0.0, 1 - - - // --- editor parameters --- - TechRequired = electronics - entryCost = 0 - cost = 5185811.6 - category = Propulsion - subcategory = 0 - title = Deuterium/Tritium Cryostat - manufacturer = Geomax Plc. - description = A thick vessel designed for keeping Liquid Deuterium/Tritium at cryogenic temperatures. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,0,1,1,0 - - - - // --- standard part parameters --- - mass = 1 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.3 - angularDrag = 2 - crashTolerance = 20 - maxTemp = 3400 - fuelCrossFeed = True - breakingForce = 100 - breakingTorque = 100 - - RESOURCE - { - name = LqdDeuterium - amount = 2250 - maxAmount = 2250 - } - - RESOURCE - { - name = LqdTritium - amount = 2 - maxAmount = 2250 - } - - MODULE - { - name = ModuleElementRadioactiveDecay - decayConstant = 1.7915586e-9 - resourceName = LqdTritium - decayProduct = LqdHelium3 - convFactor = 1 - } - - MODULE - { - name = FNModuleCryostat - resourceName = LqdDeuterium - resourceGUIName = Deuterium - boilOffRate = 0 - powerReqKW = 5 - boilOffMultiplier = 1 - boilOffAddition = 8.97215e-8 - } - - MODULE - { - name = FNModuleCryostat - resourceName = LqdTritium - resourceGUIName = Tritium - boilOffRate = 0 - powerReqKW = 5 - boilOffMultiplier = 1 - boilOffAddition = 8.97215e-8 - } - -} +PART +{ + // --- general parameters --- + name = FNDeuteriumCryostat + module = Part + author = Fractal + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/FuelTank/DeuteriumCryostat/model + rotation = 90,0,0 + scale = 1,1,0.25 + position = 0,-1.49,0 + } + scale = 1 + rescaleFactor = 1.0 + + // --- node definitions --- + node_stack_top = 0.0, 0.88, 0.0, 0.0, 1.0, 0.0, 1 + node_stack_bottom = 0.0, -0.88, 0.0, 0.0, 1.0, 0.0, 1 + + + // --- editor parameters --- + TechRequired = electronics + entryCost = 0 + cost = 5185811.6 + category = FuelTank + subcategory = 0 + title = Deuterium/Tritium Cryostat + manufacturer = Geomax Plc. + description = A thick vessel designed for keeping Liquid Deuterium/Tritium at cryogenic temperatures. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,0,1,1,0 + + + + // --- standard part parameters --- + mass = 1 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 100 + breakingTorque = 100 + + RESOURCE + { + name = LqdDeuterium + amount = 2250 + maxAmount = 2250 + } + + RESOURCE + { + name = LqdTritium + amount = 2 + maxAmount = 2250 + } + + MODULE + { + name = ModuleElementRadioactiveDecay + decayConstant = 1.7915586e-9 + resourceName = LqdTritium + decayProduct = LqdHelium3 + convFactor = 1 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdDeuterium + resourceGUIName = Deuterium + boilOffRate = 0 + powerReqKW = 5 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdTritium + resourceGUIName = Tritium + boilOffRate = 0 + powerReqKW = 5 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part2.cfg b/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part2.cfg new file mode 100644 index 00000000..9c79ae86 --- /dev/null +++ b/GameData/WarpPlugin/Parts/FuelTank/DeuteriumCryostat/part2.cfg @@ -0,0 +1,96 @@ +PART +{ + // --- general parameters --- + name = FNDeuteriumCryostat2 + module = Part + author = Fractal + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/FuelTank/DeuteriumCryostat/model + rotation = 90,0,0 + scale = 2,2,0.5 + position = 0,-2.98,0 + } + scale = 1 + rescaleFactor = 1.0 + + // --- node definitions --- + node_stack_top = 0.0, 1.76, 0.0, 0.0, 1.0, 0.0, 2 + node_stack_bottom = 0.0, -1.76, 0.0, 0.0, 1.0, 0.0, 2 + + + // --- editor parameters --- + TechRequired = electronics + entryCost = 0 + cost = 5198042.8 + category = FuelTank + subcategory = 0 + title = 2.5m Deuterium/Tritium Cryostat + manufacturer = Geomax Plc. + description = A larger vessel designed for keeping Liquid Deuterium/Tritium at cryogenic temperatures. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,0,1,1,0 + + + + // --- standard part parameters --- + mass = 2.82 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 100 + breakingTorque = 100 + + RESOURCE + { + name = LqdDeuterium + amount = 18000 + maxAmount = 18000 + } + + RESOURCE + { + name = LqdTritium + amount = 2 + maxAmount = 18000 + } + + MODULE + { + name = ModuleElementRadioactiveDecay + decayConstant = 1.7915586e-9 + resourceName = LqdTritium + decayProduct = LqdHelium3 + convFactor = 1 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdDeuterium + resourceGUIName = Deuterium + boilOffRate = 0 + powerReqKW = 5 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdTritium + resourceGUIName = Tritium + boilOffRate = 0 + powerReqKW = 5 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/HeliumCryostat/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/HeliumCryostat/part.cfg index c86e2606..76d7b4f9 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/HeliumCryostat/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/HeliumCryostat/part.cfg @@ -1,69 +1,69 @@ -PART -{ - // --- general parameters --- - name = FNHeliumCryostat - module = Part - author = Fractal - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/FuelTank/HeliumCryostat/model - rotation = 90,0,0 - scale = 1,1,0.25 - position = 0,-1.49,0 - } - scale = 1 - rescaleFactor = 1.0 - - // --- node definitions --- - node_stack_top = 0.0, 0.62, 0.0, 0.0, 1.0, 0.0, 1 - node_stack_bottom = 0.0, -0.62, 0.0, 0.0, 1.0, 0.0, 1 - - - // --- editor parameters --- - TechRequired = electronics - entryCost = 0 - cost = 735 - category = Science - subcategory = 0 - title = Helium Cryostat - manufacturer = Geomax Plc. - description = A thick vessel designed for keeping Liquid Helium at cryogenic temperatures. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,0,1,1,0 - - - - // --- standard part parameters --- - mass = 0.5 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.3 - angularDrag = 2 - crashTolerance = 20 - maxTemp = 3400 - fuelCrossFeed = True - breakingForce = 100 - breakingTorque = 100 - - RESOURCE - { - name = LqdHelium - amount = 2500 - maxAmount = 2500 - } - - MODULE - { - name = FNModuleCryostat - resourceName = LqdHelium - resourceGUIName = Liquid Helium - boilOffRate = 1.667794e-8 - powerReqKW = 8 - boilOffMultiplier = 25 - boilOffAddition = 0 - } - -} +PART +{ + // --- general parameters --- + name = FNHeliumCryostat + module = Part + author = Fractal + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/FuelTank/HeliumCryostat/model + rotation = 90,0,0 + scale = 1,1,0.25 + position = 0,-1.49,0 + } + scale = 1 + rescaleFactor = 1.0 + + // --- node definitions --- + node_stack_top = 0.0, 0.62, 0.0, 0.0, 1.0, 0.0, 1 + node_stack_bottom = 0.0, -0.62, 0.0, 0.0, 1.0, 0.0, 1 + + + // --- editor parameters --- + TechRequired = electronics + entryCost = 0 + cost = 735 + category = FuelTank + subcategory = 0 + title = Helium Cryostat + manufacturer = Geomax Plc. + description = A thick vessel designed for keeping Liquid Helium at cryogenic temperatures, useful for keeping things extremely close to absolute zero. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,0,1,1,0 + + + + // --- standard part parameters --- + mass = 0.5 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 100 + breakingTorque = 100 + + RESOURCE + { + name = LqdHelium + amount = 2500 + maxAmount = 2500 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdHelium + resourceGUIName = Liquid Helium + boilOffRate = 1.667794e-8 + powerReqKW = 8 + boilOffMultiplier = 25 + boilOffAddition = 0 + } + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/25PureLiquidTank.cfg b/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/25PureLiquidTank.cfg index 98216641..e74a5da7 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/25PureLiquidTank.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/25PureLiquidTank.cfg @@ -1,59 +1,59 @@ -PART -{ -// Kerbal Space Program - Part Config -// Fuselage Fuel Tank -// - -// --- general parameters --- -name = 25PureLiquidTank -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu -scale = 0.01 -rescaleFactor = 2.5 - -// --- node definitions --- -node_stack_top = 0.0, 74.5, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -75.5, 0.0, 0.0, 1.0, 0.0 -node_attach = 0.0, 0.0, -51.0, 0.0, 0.0, 1.0, 1 - - - -// --- editor parameters --- -TechRequired = heavierRocketry -entryCost = 8800 -cost = 550 -category = Propulsion -subcategory = 0 -title = 2.5m Pure Liquid Fuel Tank -manufacturer = High Density Liquid Fuels Ltd. -description = For those times when you need a large quantity of purely liquid fuel. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,1,1,1,0 - -// --- standard part parameters --- -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 8 -breakingForce = 200 -breakingTorque = 200 -breakingForce = 50 -breakingTorque = 50 -maxTemp = 3000 -fuelCrossFeed = True -// --- fuel tank parameters --- - - -RESOURCE -{ - name = LiquidFuel - amount = 3200 - maxAmount = 3200 -} -} +PART +{ +// Kerbal Space Program - Part Config +// Fuselage Fuel Tank +// + +// --- general parameters --- +name = 25PureLiquidTank +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu +scale = 0.01 +rescaleFactor = 2.5 + +// --- node definitions --- +node_stack_top = 0.0, 74.5, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -75.5, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.0, 0.0, -51.0, 0.0, 0.0, 1.0, 1 + + + +// --- editor parameters --- +TechRequired = heavierRocketry +entryCost = 8800 +cost = 550 +category = FuelTank +subcategory = 0 +title = 2.5m Pure Liquid Fuel Tank +manufacturer = High Density Liquid Fuels Ltd. +description = For those times when you need a large quantity of purely liquid fuel. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,1,1,1,0 + +// --- standard part parameters --- +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 8 +breakingForce = 200 +breakingTorque = 200 +breakingForce = 50 +breakingTorque = 50 +maxTemp = 3000 +fuelCrossFeed = True +// --- fuel tank parameters --- + + +RESOURCE +{ + name = LiquidFuel + amount = 3200 + maxAmount = 3200 +} +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/375PureLiquidTank.cfg b/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/375PureLiquidTank.cfg index e418c6bd..3efea3f8 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/375PureLiquidTank.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/LiquidOnlyFuelTanks/375PureLiquidTank.cfg @@ -1,57 +1,57 @@ -PART -{ -// Kerbal Space Program - Part Config -// Fuselage Fuel Tank -// - -// --- general parameters --- -name = 375PureLiquidTank -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu -scale = 0.01 -rescaleFactor = 3.75 - -// --- node definitions --- -node_stack_top = 0.0, 74.5, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -75.5, 0.0, 0.0, 1.0, 0.0 -node_attach = 0.0, 0.0, -51.0, 0.0, 0.0, 1.0, 1 - - - -// --- editor parameters --- -TechRequired = veryHeavyRocketry -entryCost = 34200 -cost = 550 -category = Propulsion -subcategory = 0 -title = 3.75m Pure Liquid Fuel Tank -manufacturer = High Density Liquid Fuels Ltd. -description = For those times when you need a really large quantity of purely liquid fuel. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,1,1,1,0 - -// --- standard part parameters --- -mass = 6.75 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 8 -breakingForce = 3000 -breakingTorque = 3000 -maxTemp = 3000 -fuelCrossFeed = True -// --- fuel tank parameters --- - - -RESOURCE -{ - name = LiquidFuel - amount = 10800 - maxAmount = 10800 -} -} +PART +{ +// Kerbal Space Program - Part Config +// Fuselage Fuel Tank +// + +// --- general parameters --- +name = 375PureLiquidTank +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu +scale = 0.01 +rescaleFactor = 3.75 + +// --- node definitions --- +node_stack_top = 0.0, 74.5, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -75.5, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.0, 0.0, -51.0, 0.0, 0.0, 1.0, 1 + + + +// --- editor parameters --- +TechRequired = veryHeavyRocketry +entryCost = 34200 +cost = 550 +category = FuelTank +subcategory = 0 +title = 3.75m Pure Liquid Fuel Tank +manufacturer = High Density Liquid Fuels Ltd. +description = For those times when you need a really large quantity of purely liquid fuel. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,1,1,1,0 + +// --- standard part parameters --- +mass = 6.75 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 8 +breakingForce = 3000 +breakingTorque = 3000 +maxTemp = 3000 +fuelCrossFeed = True +// --- fuel tank parameters --- + + +RESOURCE +{ + name = LiquidFuel + amount = 10800 + maxAmount = 10800 +} +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/LongAmmoniaTank/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/LongAmmoniaTank/part.cfg index 94f693c5..53d4a0ac 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/LongAmmoniaTank/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/LongAmmoniaTank/part.cfg @@ -1,55 +1,55 @@ -PART -{ - // --- general parameters --- - name = FNAmmoniaTank - module = Part - author = z - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/FuelTank/LongAmmoniaTank/tank - rotation = 90,0,0 - } - scale = 1 - rescaleFactor = 1.0 - - // --- node definitions --- - node_attach = 0.0, 0.0, -0.60 , 0.0, 0.0, 1.0 - - - // --- editor parameters --- - TechRequired = start - entryCost = 0 - cost = 680 - category = Propulsion - subcategory = 0 - title = Ammonia Storage Tank - manufacturer = Sklifosovsky Labs - description = Container for storing ammonia - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,1,1,1,0 - - - - // --- standard part parameters --- - mass = 0.812 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.3 - angularDrag = 2 - crashTolerance = 20 - maxTemp = 3400 - fuelCrossFeed = True - breakingForce = 200 - breakingTorque = 200 - - RESOURCE - { - name = Ammonia - amount = 10731 - maxAmount = 10731 - } - -} +PART +{ + // --- general parameters --- + name = FNAmmoniaTank + module = Part + author = z + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/FuelTank/LongAmmoniaTank/tank + rotation = 90,0,0 + } + scale = 1 + rescaleFactor = 1.0 + + // --- node definitions --- + node_attach = 0.0, 0.0, -0.60 , 0.0, 0.0, 1.0 + + + // --- editor parameters --- + TechRequired = start + entryCost = 0 + cost = 680 + category = FuelTank + subcategory = 0 + title = Ammonia Storage Tank + manufacturer = Sklifosovsky Labs + description = Container for storing ammonia + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,1,1,0 + + + + // --- standard part parameters --- + mass = 0.812 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 200 + breakingTorque = 200 + + RESOURCE + { + name = Ammonia + amount = 10731 + maxAmount = 10731 + } + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/LongWaterTank/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/LongWaterTank/part.cfg index c78b994b..a5ff8d27 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/LongWaterTank/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/LongWaterTank/part.cfg @@ -1,55 +1,55 @@ -PART -{ - // --- general parameters --- - name = FNLiquidWaterTank - module = Part - author = z - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/FuelTank/LongWaterTank/tank - rotation = 90,0,0 - } - scale = 1 - rescaleFactor = 1.0 - - // --- node definitions --- - node_attach = 0.0, 0.0, -0.60 , 0.0, 0.0, 1.0 - - - // --- editor parameters --- - TechRequired = start - entryCost = 0 - cost = 680 - category = Propulsion - subcategory = 0 - title = Water Storage Tank - manufacturer = Sklifosovsky Labs - description = Container for storing boring old water - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,1,1,1,0 - - - - // --- standard part parameters --- - mass = 0.812 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.3 - angularDrag = 2 - crashTolerance = 20 - maxTemp = 3400 - fuelCrossFeed = True - breakingForce = 200 - breakingTorque = 200 - - RESOURCE - { - name = LqdWater - amount = 7308 - maxAmount = 7308 - } - -} +PART +{ + // --- general parameters --- + name = FNLiquidWaterTank + module = Part + author = z + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/FuelTank/LongWaterTank/tank + rotation = 90,0,0 + } + scale = 1 + rescaleFactor = 1.0 + + // --- node definitions --- + node_attach = 0.0, 0.0, -0.60 , 0.0, 0.0, 1.0 + + + // --- editor parameters --- + TechRequired = start + entryCost = 0 + cost = 680 + category = FuelTank + subcategory = 0 + title = Water Storage Tank + manufacturer = Sklifosovsky Labs + description = Container for storing boring old water + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,1,1,0 + + + + // --- standard part parameters --- + mass = 0.812 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 200 + breakingTorque = 200 + + RESOURCE + { + name = Water + amount = 7308 + maxAmount = 7308 + } + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVAntimatter/Part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVAntimatter/Part.cfg index 5cf9515f..0daa7e78 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVAntimatter/Part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVAntimatter/Part.cfg @@ -1,53 +1,53 @@ -PART -{ -name = FNAntimatterBottle -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVAntimatter/model - rotation = 270,90,180 -} -rescaleFactor = 1 - - -node_attach = 0.2, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = nuclearPropulsion -entryCost = 34200 -cost = 750 -category = Propulsion -subcategory = 0 -title = Small Antimatter Bottle -manufacturer = Geomax Plc. -description = A tiny antimatter bottle capable of storing 1 microgram of Antimatter. Mechanism for extraction and input of antimatter (i.e. a fuel line) is required for effective operation but must be purchased seperately. - -attachRules = 1,1,1,1,0 - -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = Antimatter - amount = 0 - maxAmount = 0.001 -} - -MODULE -{ - name = AntimatterStorageTank - chargeNeeded = 0.5 -} - -} +PART +{ +name = FNAntimatterBottle +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVAntimatter/model + rotation = 270,90,180 +} +rescaleFactor = 1 + + +node_attach = 0.2, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = nuclearFuelTank +entryCost = 34200 +cost = 750 +category = FuelTank +subcategory = 0 +title = Small Antimatter Bottle +manufacturer = Geomax Plc. +description = A tiny antimatter bottle capable of storing 1 microgram of Antimatter. Mechanism for extraction and input of antimatter (i.e. a fuel line) is required for effective operation but must be purchased seperately. + +attachRules = 1,1,1,1,0 + +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = Antimatter + amount = 0 + maxAmount = 0.001 +} + +MODULE +{ + name = AntimatterStorageTank + chargeNeeded = 0.5 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVDeutTrit/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVDeutTrit/part.cfg index 95b225e1..8e4a42ff 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVDeutTrit/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVDeutTrit/part.cfg @@ -1,84 +1,84 @@ -PART -{ -name = HexCanDeutTritLarge -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVDeutTrit/model - rotation = 270,90,180 -} -rescaleFactor = 1 - - -node_attach = 0.2, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = nuclearPropulsion -entryCost = 34200 -cost = 1382889.76 -category = Propulsion -subcategory = 0 -title = Deuterium/Tritium Radial Cyrostat -manufacturer = Geomax Plc. -description = A radial vessel designed for keeping Liquid Deuterium/Tritium at cryogenic temperatures. - -attachRules = 1,1,1,1,0 - -mass = 1.75 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - - RESOURCE - { - name = LqdDeuterium - amount = 600 - maxAmount = 600 - } - - RESOURCE - { - name = LqdTritium - amount = 0 - maxAmount = 600 - } - - MODULE - { - name = ModuleElementRadioactiveDecay - decayConstant = 1.7915586e-9 - resourceName = LqdTritium - decayProduct = LqdHelium3 - convFactor = 1 - } - - MODULE - { - name = FNModuleCryostat - resourceName = LqdDeuterium - resourceGUIName = Deuterium - boilOffRate = 0 - powerReqKW = 5 - boilOffMultiplier = 1 - boilOffAddition = 8.97215e-8 - } - - MODULE - { - name = FNModuleCryostat - resourceName = LqdTritium - resourceGUIName = Tritium - boilOffRate = 0 - powerReqKW = 5 - boilOffMultiplier = 1 - boilOffAddition = 8.97215e-8 - } -} +PART +{ +name = HexCanDeutTritLarge +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVDeutTrit/model + rotation = 270,90,180 +} +rescaleFactor = 1 + + +node_attach = 0.2, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = nuclearFuelTank +entryCost = 34200 +cost = 1382889.76 +category = FuelTank +subcategory = 0 +title = Deuterium/Tritium Radial Cyrostat +manufacturer = Geomax Plc. +description = A radial vessel designed for keeping Liquid Deuterium/Tritium at cryogenic temperatures. + +attachRules = 1,1,1,1,0 + +mass = 1.75 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + + RESOURCE + { + name = LqdDeuterium + amount = 600 + maxAmount = 600 + } + + RESOURCE + { + name = LqdTritium + amount = 0 + maxAmount = 600 + } + + MODULE + { + name = ModuleElementRadioactiveDecay + decayConstant = 1.7915586e-9 + resourceName = LqdTritium + decayProduct = LqdHelium3 + convFactor = 1 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdDeuterium + resourceGUIName = Deuterium + boilOffRate = 0 + powerReqKW = 5 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdTritium + resourceGUIName = Tritium + boilOffRate = 0 + powerReqKW = 5 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVHe3/Part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVHe3/Part.cfg index 138e882b..022f1509 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVHe3/Part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVHe3/Part.cfg @@ -1,58 +1,58 @@ -PART -{ -name = HexCanHe3Large -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVHe3/model - rotation = 270,90,180 -} -rescaleFactor = 1 - - -node_attach = 0.2, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = nuclearPropulsion -entryCost = 34200 -cost = 630340 -category = Propulsion -subcategory = 0 -title = Helium 3 Radial Cryostat -manufacturer = Geomax Plc. -description = A radial vessel designed for keeping Liquid Helium-3 at cryogenic temperatures. - -attachRules = 1,1,1,1,0 - -mass = 1.75 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - - RESOURCE - { - name = LqdHelium3 - amount = 0 - maxAmount = 1200 - } - - MODULE - { - name = FNModuleCryostat - resourceName = LqdHelium3 - resourceGUIName = Helium3 - boilOffRate = 0 - powerReqKW = 27 - boilOffMultiplier = 1 - boilOffAddition = 8.97215e-8 - } - -} +PART +{ +name = HexCanHe3Large +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVHe3/model + rotation = 270,90,180 +} +rescaleFactor = 1 + + +node_attach = 0.2, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = nuclearFuelTank +entryCost = 34200 +cost = 630340 +category = FuelTank +subcategory = 0 +title = Helium 3 Radial Cryostat +manufacturer = Geomax Plc. +description = A radial vessel designed for keeping Liquid Helium-3 at cryogenic temperatures. + +attachRules = 1,1,1,1,0 + +mass = 1.75 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + + RESOURCE + { + name = LqdHelium3 + amount = 0 + maxAmount = 1200 + } + + MODULE + { + name = FNModuleCryostat + resourceName = LqdHelium3 + resourceGUIName = Helium3 + boilOffRate = 0 + powerReqKW = 27 + boilOffMultiplier = 1 + boilOffAddition = 8.97215e-8 + } + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVLithium/Part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVLithium/Part.cfg index c19876c4..668d8e49 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVLithium/Part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVLithium/Part.cfg @@ -1,48 +1,48 @@ -PART -{ -name = HexCanLithium -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVLithium/model - rotation = 270,90,180 - scale = 2,2,2 -} -rescaleFactor = 1 - - -node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = start -entryCost = 0 -cost = 200 -category = Propulsion -subcategory = 0 -title = Lithium Tank -manufacturer = Geomax Plc. -description = A resource cannister containing a supply of Lithium - -attachRules = 1,1,1,1,0 - -mass = 0.15 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = Lithium - amount = 1000 - maxAmount = 1000 -} - -} +PART +{ +name = HexCanLithium +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVLithium/model + rotation = 270,90,180 + scale = 2,2,2 +} +rescaleFactor = 1 + + +node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = start +entryCost = 0 +cost = 200 +category = FuelTank +subcategory = 0 +title = Lithium Tank +manufacturer = Geomax Plc. +description = A resource cannister containing a supply of Lithium + +attachRules = 1,1,1,1,0 + +mass = 0.15 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = Lithium + amount = 1000 + maxAmount = 1000 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVThorium/Part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVThorium/Part.cfg index 9c30aee9..fb0bebaf 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVThorium/Part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVThorium/Part.cfg @@ -1,54 +1,54 @@ -PART -{ -name = HexCanThoriumFl4 -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVThorium/model - rotation = 270,90,180 - scale = 2,2,2 -} -rescaleFactor = 1 - - -node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = start -entryCost = 0 -cost = 250.4 -category = Propulsion -subcategory = 0 -title = Thorium Tetraflouride (ThF4) Tank -manufacturer = Geomax Plc. -description = A resource cannister containing a supply of Thorium Tetraflouride - -attachRules = 1,1,1,1,0 - -mass = 0.15 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = ThF4 - amount = 800 - maxAmount = 800 -} -RESOURCE -{ - name = DepletedFuel - amount = 0.0 - maxAmount = 800 -} - -} +PART +{ +name = HexCanThoriumFl4 +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVThorium/model + rotation = 270,90,180 + scale = 2,2,2 +} +rescaleFactor = 1 + + +node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = start +entryCost = 0 +cost = 250.4 +category = FuelTank +subcategory = 0 +title = Thorium Tetraflouride (ThF4) Tank +manufacturer = Geomax Plc. +description = A resource cannister containing a supply of Thorium Tetraflouride + +attachRules = 1,1,1,1,0 + +mass = 0.15 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = ThF4 + amount = 800 + maxAmount = 800 +} +RESOURCE +{ + name = DepletedFuel + amount = 0.0 + maxAmount = 800 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVUranium/Part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVUranium/Part.cfg index e1c12f72..a037bd0a 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVUranium/Part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVUranium/Part.cfg @@ -1,54 +1,54 @@ -PART -{ -name = HexCanUraniumFl6 -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVUranium/model - rotation = 270,90,180 - scale = 2,2,2 -} -rescaleFactor = 1 - - -node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = start -entryCost = 0 -cost = 408 -category = Propulsion -subcategory = 0 -title = Uranium Tetraflouride (UF4) Tank -manufacturer = Geomax Plc. -description = A resource cannister containing a supply of Uranium Tetraflouride - -attachRules = 1,1,1,1,0 - -mass = 0.15 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = UF4 - amount = 800 - maxAmount = 800 -} -RESOURCE -{ - name = DepletedFuel - amount = 0.0 - maxAmount = 800 -} - -} +PART +{ +name = HexCanUraniumFl6 +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVUranium/model + rotation = 270,90,180 + scale = 2,2,2 +} +rescaleFactor = 1 + + +node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = start +entryCost = 0 +cost = 408 +category = FuelTank +subcategory = 0 +title = Uranium Tetraflouride (UF4) Tank +manufacturer = Geomax Plc. +description = A resource cannister containing a supply of Uranium Tetraflouride + +attachRules = 1,1,1,1,0 + +mass = 0.15 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = UF4 + amount = 800 + maxAmount = 800 +} +RESOURCE +{ + name = DepletedFuel + amount = 0.0 + maxAmount = 800 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/RVUranium2/Part.cfg b/GameData/WarpPlugin/Parts/FuelTank/RVUranium2/Part.cfg index b87bbc1e..f49dc5d3 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/RVUranium2/Part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/RVUranium2/Part.cfg @@ -1,54 +1,54 @@ -PART -{ -name = HexCanUraniumN -module = Part -author = Vaporlynx & Fractal - -MODEL -{ - model = WarpPlugin/Parts/FuelTank/RVUranium2/model - rotation = 270,90,180 - scale = 2,2,2 -} -rescaleFactor = 1 - - -node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = start -entryCost = 0 -cost = 207.4 -category = Propulsion -subcategory = 0 -title = Uranium Nitride Tank -manufacturer = Geomax Plc. -description = A resource cannister containing a supply of Uranium Nitride pellets sealed up in Pyrolytic Carbon and Zirconium Carbide fuel casings. - -attachRules = 1,1,1,1,0 - -mass = 0.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = UraniumNitride - amount = 10 - maxAmount = 10 -} -RESOURCE -{ - name = DepletedFuel - amount = 0.0 - maxAmount = 30 -} - -} +PART +{ +name = HexCanUraniumN +module = Part +author = Vaporlynx & Fractal + +MODEL +{ + model = WarpPlugin/Parts/FuelTank/RVUranium2/model + rotation = 270,90,180 + scale = 2,2,2 +} +rescaleFactor = 1 + + +node_attach = 0.4, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = start +entryCost = 0 +cost = 207.4 +category = FuelTank +subcategory = 0 +title = Uranium Nitride Tank +manufacturer = Geomax Plc. +description = A resource cannister containing a supply of Uranium Nitride pellets sealed up in Pyrolytic Carbon and Zirconium Carbide fuel casings. + +attachRules = 1,1,1,1,0 + +mass = 0.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = UraniumNitride + amount = 10 + maxAmount = 10 +} +RESOURCE +{ + name = DepletedFuel + amount = 0.0 + maxAmount = 30 +} + +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part.cfg b/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part.cfg index 017b94a1..c43c3be1 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part.cfg @@ -1,55 +1,55 @@ -PART -{ -name = FNMethaneTank3-1 -module = Part -author = NovaSilisko - -MODEL{ - model = WarpPlugin/Parts/FuelTank/fnmethaneTank/model - rotation = 90,0,0 - scale = 0.5,0.5,0.7 -} -rescaleFactor = 1 - - -node_stack_top = 0.0, 1.85, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -1.85, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = experimentalRocketry -entryCost = 0 -cost = 2000 -category = Propulsion -subcategory = 0 -title = Geomax Z200-37 Methane Tank -manufacturer = Geomax Plc. -description = Although almost identically sized to the Rockomax-32 Fuel Tank, this fuel tank by Geomax contains Methane and Oxygen which is lower density than competing fuels allowing bigger numbers to be involved in the marketing process. More practically, Methane also offers improved specific impulse. - -attachRules = 1,1,1,1,0 - -mass = 1.75 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = LqdMethane - amount = 1648.5 - maxAmount = 1648.5 -} - -RESOURCE -{ - name = Oxidizer - amount = 2120.5 - maxAmount = 2120.5 -} -} +PART +{ +name = FNMethaneTank3-1 +module = Part +author = NovaSilisko + +MODEL{ + model = WarpPlugin/Parts/FuelTank/fnmethaneTank/model + rotation = 90,0,0 + scale = 0.5,0.5,0.7 +} +rescaleFactor = 1 + + +node_stack_top = 0.0, 1.85, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.85, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = experimentalRocketry +entryCost = 0 +cost = 2000 +category = FuelTank +subcategory = 0 +title = Geomax Z200-37 Methane Tank +manufacturer = Geomax Plc. +description = Although almost identically sized to the Rockomax-32 Fuel Tank, this fuel tank by Geomax contains Methane and Oxygen which is lower density than competing fuels allowing bigger numbers to be involved in the marketing process. More practically, Methane also offers improved specific impulse. + +attachRules = 1,1,1,1,0 + +mass = 1.75 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = LqdMethane + amount = 1648.5 + maxAmount = 1648.5 +} + +RESOURCE +{ + name = Oxidizer + amount = 2120.5 + maxAmount = 2120.5 +} +} diff --git a/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part2.cfg b/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part2.cfg index 8fc76a38..dc96d908 100644 --- a/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part2.cfg +++ b/GameData/WarpPlugin/Parts/FuelTank/fnmethaneTank/part2.cfg @@ -1,55 +1,55 @@ -PART -{ -name = FNMethaneTank3-2 -module = Part -author = NovaSilisko - -MODEL{ - model = WarpPlugin/Parts/FuelTank/fnmethaneTank/model2 - rotation = 90,0,0 - scale = 0.5,0.5,0.7 -} -rescaleFactor = 1 - - -node_stack_top = 0.0, 3.7, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -3.7, 0.0, 0.0, 1.0, 0.0, 2 -node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 - -TechRequired = experimentalRocketry -entryCost = 0 -cost = 4000 -category = Propulsion -subcategory = 0 -title = Geomax Ultra-75 Methane Tank -manufacturer = Rockomax Conglomerate -description = Although almost identically sized to the infamous Rockomax-64 Fuel Tank, this fuel tank by Geomax contains Methane and Oxygen which is lower density than competing fuels allowing bigger numbers to be involved in the marketing process. More practically, Methane also offers improved specific impulse. - -attachRules = 1,1,1,1,0 - -mass = 3.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - - - -RESOURCE -{ - name = LqdMethane - amount = 3297 - maxAmount = 3297 -} - -RESOURCE -{ - name = Oxidizer - amount = 4241 - maxAmount = 4241 -} -} +PART +{ +name = FNMethaneTank3-2 +module = Part +author = NovaSilisko + +MODEL{ + model = WarpPlugin/Parts/FuelTank/fnmethaneTank/model2 + rotation = 90,0,0 + scale = 0.5,0.5,0.7 +} +rescaleFactor = 1 + + +node_stack_top = 0.0, 3.7, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -3.7, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1 + +TechRequired = experimentalRocketry +entryCost = 0 +cost = 4000 +category = FuelTank +subcategory = 0 +title = Geomax Ultra-75 Methane Tank +manufacturer = Rockomax Conglomerate +description = Although almost identically sized to the infamous Rockomax-64 Fuel Tank, this fuel tank by Geomax contains Methane and Oxygen which is lower density than competing fuels allowing bigger numbers to be involved in the marketing process. More practically, Methane also offers improved specific impulse. + +attachRules = 1,1,1,1,0 + +mass = 3.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + + + +RESOURCE +{ + name = LqdMethane + amount = 3297 + maxAmount = 3297 +} + +RESOURCE +{ + name = Oxidizer + amount = 4241 + maxAmount = 4241 +} +} diff --git a/GameData/WarpPlugin/Parts/Science/Telescope/part.cfg b/GameData/WarpPlugin/Parts/Science/Telescope/part.cfg index 571ee70e..5c5acf86 100644 --- a/GameData/WarpPlugin/Parts/Science/Telescope/part.cfg +++ b/GameData/WarpPlugin/Parts/Science/Telescope/part.cfg @@ -1,49 +1,49 @@ -PART -{ -name = FNIRTelescope -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Science/Telescope/model - rotation = 180,270,0 - scale = 1.9,1.9,2.0 -} -scale = 1 -rescaleFactor = 1 - -node_stack_bottom = 0.0, -1.5, 0.0, 0.0, 1.0, 0.0, 1 - -TechRequired = electronics -entryCost = 10000 -cost = 75000 -category = Science -subcategory = 0 -title = IR Telescope -manufacturer = Geomax Plc. -description = Primarily an Infrared telescope, capable of operating down into the orange colour range of the visible spectrum. It can be used to perform deep field observations to study the early universe, imaging of planets within the Kerbin system, etc. Most interestingly, if deployed in a stable orbit at >550 AU, it can be used using Kerbol as a gravitional lens to directly image nearby extra kerbolar-planets. Who knows, perhaps there are more Kerbin-like worlds in the universe? - -attachRules = 1,0,0,0,1 - -mass = 3 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - -MODULE -{ - name = InterstellarTelescope - experimentID = ExpInterstellarTelescope - rerunnable = true - deployEventName = Collect Telescope Data - reviewEventName = Review Telescope Data - resetEventName = Reset Telescope Data -} - -} +PART +{ +name = FNIRTelescope +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Science/Telescope/model + rotation = 180,270,0 + scale = 1.9,1.9,2.0 +} +scale = 1 +rescaleFactor = 1 + +node_stack_bottom = 0.0, -1.5, 0.0, 0.0, 1.0, 0.0, 1 + +TechRequired = electronics +entryCost = 10000 +cost = 75000 +category = Science +subcategory = 0 +title = IR Telescope +manufacturer = Geomax Plc. +description = Primarily an Infrared telescope, capable of operating down into the orange colour range of the visible spectrum. It can be used to perform deep field observations to study the early universe, imaging of planets within the Kerbin system, etc. Most interestingly, if deployed in a stable orbit at >550 AU, it can be used using Kerbol as a gravitional lens to directly image nearby extra kerbolar-planets. Who knows, perhaps there are more Kerbin-like worlds in the universe? + +attachRules = 1,0,0,0,1 + +mass = 3 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + +MODULE +{ + name = InterstellarTelescope + experimentID = ExpInterstellarTelescope + rerunnable = true + deployEventName = Collect Telescope Data + reviewEventName = Review Telescope Data + resetEventName = Reset Telescope Data +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/DTMagnetometer/part.cfg b/GameData/WarpPlugin/Parts/Utility/DTMagnetometer/part.cfg index cfa010de..65430982 100644 --- a/GameData/WarpPlugin/Parts/Utility/DTMagnetometer/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/DTMagnetometer/part.cfg @@ -1,59 +1,59 @@ -PART -{ -name = DTMagnetometer -module = Part -author = Fractal - -mesh = model.mu -rescaleFactor = 1 - -node_attach = 0.0, 0.0, 0.0, 0.0, 0.0, -1.0 - -TechRequired = electronics -entryCost = 3400 -cost = 200 -category = Science -subcategory = 0 -title = Dual Technique Magnetometer -manufacturer = MagProbe Inc. -description = A device used to measure the magnetic field of the planet it is placed in orbit of. It is also capable of detecting the abundance of useful antimatter particles in the magnetosphere. -attachRules = 0,1,0,0,1 - -// --- standard part parameters --- -mass = 0.005 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 1 -crashTolerance = 8 -maxTemp = 3200 - -MODULE -{ - name = DTMagnetometer - animName = deploy -} -MODULE -{ - name = ModuleScienceExperiment - - experimentID = magnetosphericExperiment - - experimentActionName = Log Magnetopsheric Data - resetActionName = Delete Data - - useStaging = False - useActionGroups = True - hideUIwhenUnavailable = False - - resettable = True - resettableOnEVA = False - - xmitDataScalar = 0.6 - rerunnable = True - - dataIsCollectable = True - collectActionName = Collect Data - interactionRange = 1.2 -} -} +PART +{ +name = DTMagnetometer +module = Part +author = Fractal + +mesh = model.mu +rescaleFactor = 1 + +node_attach = 0.0, 0.0, 0.0, 0.0, 0.0, -1.0 + +TechRequired = electronics +entryCost = 3400 +cost = 200 +category = Science +subcategory = 0 +title = Dual Technique Magnetometer +manufacturer = MagProbe Inc. +description = A device used to measure the magnetic field of the planet it is placed in orbit of. It is also capable of detecting the abundance of useful antimatter particles in the magnetosphere. +attachRules = 0,1,0,0,1 + +// --- standard part parameters --- +mass = 0.005 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 1 +crashTolerance = 8 +maxTemp = 3200 + +MODULE +{ + name = DTMagnetometer + animName = deploy +} +MODULE +{ + name = ModuleScienceExperiment + + experimentID = magnetosphericExperiment + + experimentActionName = Log Magnetopsheric Data + resetActionName = Delete Data + + useStaging = False + useActionGroups = True + hideUIwhenUnavailable = False + + resettable = True + resettableOnEVA = False + + xmitDataScalar = 0.6 + rerunnable = True + + dataIsCollectable = True + collectActionName = Collect Data + interactionRange = 1.2 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/GCMassSpectrometer/part.cfg b/GameData/WarpPlugin/Parts/Utility/GCMassSpectrometer/part.cfg index b705f6fd..9e960331 100644 --- a/GameData/WarpPlugin/Parts/Utility/GCMassSpectrometer/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/GCMassSpectrometer/part.cfg @@ -1,74 +1,74 @@ -PART -{ - // --- general parameters --- - name = FNGCMS - module = Part - author = z - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/Utility/GCMassSpectrometer/massspectrometer - rotation = 90,0,0 - } - scale = 1 - rescaleFactor = 0.35 - - // --- node definitions --- - node_attach = 0.0, 0.0, -0.3 , 0.0, 0.0, 1.0 - - - // --- editor parameters --- - TechRequired = advScienceTech - entryCost = 5000 - cost = 680 - category = Science - subcategory = 0 - title = Gas Chromatograph Mass Spectrometer - manufacturer = Kitton Space Systems - description = The Gas Chromatograph Mass Spectrometer (GC/MS) is a device that separates vapour components chemically via a gas chromatograph and then feeds the result into a mass spectrometer, which measures the molecular weight of each chemical. As a result, it can separate, identify, and quantify a large number of different chemicals. It can be used to analyse the constituents of planetary atmospheres. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,1,1,1,0 - - - - // --- standard part parameters --- - mass = 0.1 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.3 - angularDrag = 2 - crashTolerance = 20 - maxTemp = 3400 - fuelCrossFeed = True - breakingForce = 1215 - breakingTorque = 1215 - - MODULE - { - name = FNMassSpectrometer - } - - MODULE - { - name = ModuleScienceExperiment - - experimentID = gasChromotographyMassSpectrometryExperiment - - experimentActionName = Log Atmospheric Data - resetActionName = Delete Data - - useStaging = False - useActionGroups = True - hideUIwhenUnavailable = False - - xmitDataScalar = 0.5 - dataIsCollectable = True - collectActionName = Take Data - interactionRange = 1.2 - - rerunnable = True - } - -} +PART +{ + // --- general parameters --- + name = FNGCMS + module = Part + author = z + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/Utility/GCMassSpectrometer/massspectrometer + rotation = 90,0,0 + } + scale = 1 + rescaleFactor = 0.35 + + // --- node definitions --- + node_attach = 0.0, 0.0, -0.3 , 0.0, 0.0, 1.0 + + + // --- editor parameters --- + TechRequired = advScienceTech + entryCost = 5000 + cost = 680 + category = Science + subcategory = 0 + title = Gas Chromatograph Mass Spectrometer + manufacturer = Kitton Space Systems + description = The Gas Chromatograph Mass Spectrometer (GC/MS) is a device that separates vapour components chemically via a gas chromatograph and then feeds the result into a mass spectrometer, which measures the molecular weight of each chemical. As a result, it can separate, identify, and quantify a large number of different chemicals. It can be used to analyse the constituents of planetary atmospheres. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,1,1,0 + + + + // --- standard part parameters --- + mass = 0.1 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 1215 + breakingTorque = 1215 + + MODULE + { + name = FNMassSpectrometer + } + + MODULE + { + name = ModuleScienceExperiment + + experimentID = gasChromotographyMassSpectrometryExperiment + + experimentActionName = Log Atmospheric Data + resetActionName = Delete Data + + useStaging = False + useActionGroups = True + hideUIwhenUnavailable = False + + xmitDataScalar = 0.5 + dataIsCollectable = True + collectActionName = Take Data + interactionRange = 1.2 + + rerunnable = True + } + +} diff --git a/GameData/WarpPlugin/Parts/Utility/GammaRaySpectrometer/part.cfg b/GameData/WarpPlugin/Parts/Utility/GammaRaySpectrometer/part.cfg index 2cbde8cb..c085bc5c 100644 --- a/GameData/WarpPlugin/Parts/Utility/GammaRaySpectrometer/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/GammaRaySpectrometer/part.cfg @@ -1,57 +1,57 @@ -PART -{ -name = sensorGammaRaySpectrometer -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Utility/GammaRaySpectrometer/model - rotation = 90,0,0 - scale = 0.5,0.5,0.5 -} -rescaleFactor = 1 - -node_attach = 0.0, 0.0, 0.05, 0.0, 0.0, -1.0 - -TechRequired = electronics -entryCost = 8200 -cost = 6000 -category = Science -subcategory = 0 -title = Gamma Ray Spectrometer -manufacturer = Probodobodyne Inc. -description = A Gamma Ray Spectrometer (GRS) is capable of detecting concentrations of certain radioactive elements from orbit as well as surverying the concentrations of more mundane minerals by their interactions with the solar wind. -attachRules = 0,1,0,0,1 - -// --- standard part parameters --- -mass = 0.005 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 1 -crashTolerance = 8 -maxTemp = 3200 - -MODULE -{ - name = FNResourceScanner - resourceName = Uranium - mapViewAvailable = true -} - -MODULE -{ - name = FNResourceScanner - resourceName = Thorium - mapViewAvailable = true -} - -MODULE -{ - name = FNResourceScanner - resourceName = Alumina - mapViewAvailable = false -} - -} +PART +{ +name = sensorGammaRaySpectrometer +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Utility/GammaRaySpectrometer/model + rotation = 90,0,0 + scale = 0.5,0.5,0.5 +} +rescaleFactor = 1 + +node_attach = 0.0, 0.0, 0.05, 0.0, 0.0, -1.0 + +TechRequired = electronics +entryCost = 8200 +cost = 6000 +category = Science +subcategory = 0 +title = Gamma Ray Spectrometer +manufacturer = Probodobodyne Inc. +description = A Gamma Ray Spectrometer (GRS) is capable of detecting concentrations of certain radioactive elements from orbit as well as surverying the concentrations of more mundane minerals by their interactions with the solar wind. +attachRules = 0,1,0,0,1 + +// --- standard part parameters --- +mass = 0.005 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 1 +crashTolerance = 8 +maxTemp = 3200 + +MODULE +{ + name = FNResourceScanner + resourceName = Uranium + mapViewAvailable = true +} + +MODULE +{ + name = FNResourceScanner + resourceName = Thorium + mapViewAvailable = true +} + +MODULE +{ + name = FNResourceScanner + resourceName = Alumina + mapViewAvailable = false +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/InlineRefinery/part.cfg b/GameData/WarpPlugin/Parts/Utility/InlineRefinery/part.cfg index ac4a90a2..f596af66 100644 --- a/GameData/WarpPlugin/Parts/Utility/InlineRefinery/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/InlineRefinery/part.cfg @@ -1,75 +1,75 @@ -PART -{ -name = FNInlineRefinery -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Utility/InlineRefinery/model - scale = 1,1,1 - rotation = 90,0,0 -} - -rescaleFactor = 1 - -node_stack_top = 0.0, 0.625, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -0.625, 0.0, 0.0, 1.0, 0.0 - -// --- editor parameters --- -cost = 1600 -category = Utility -subcategory = 0 -title = 2.5m Inline Refinery -manufacturer = Kerboplanetary Resources Inc. -description = Smaller than the large refinery module, this unit is more suited to transportation on standard rockets. It does not have the same resource extraction features as the larger module but can provide all the chemical processing options a Kerbal could need. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -TechRequired = advScienceTech -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3000 - -MODULE -{ - name = FNRefinery -} - - -RESOURCE -{ - name = LqdWater - amount = 0 - maxAmount = 100 -} - -RESOURCE -{ - name = Alumina - amount = 0 - maxAmount = 20 -} - -RESOURCE -{ - name = H2Peroxide - amount = 0 - maxAmount = 80 -} - -RESOURCE -{ - name = Ammonia - amount = 0 - maxAmount = 150 -} -} +PART +{ +name = FNInlineRefinery +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Utility/InlineRefinery/model + scale = 1,1,1 + rotation = 90,0,0 +} + +rescaleFactor = 1 + +node_stack_top = 0.0, 0.625, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -0.625, 0.0, 0.0, 1.0, 0.0, 2 + +// --- editor parameters --- +cost = 1600 +category = Utility +subcategory = 0 +title = 2.5m Inline Refinery +manufacturer = Kerboplanetary Resources Inc. +description = Smaller than the large refinery module, this unit is more suited to transportation on standard rockets. It does not have the same resource extraction features as the larger module but can provide all the chemical processing options a Kerbal could need. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +TechRequired = advScienceTech +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3000 + +MODULE +{ + name = InterstellarRefinery +} + + +RESOURCE +{ + name = Water + amount = 0 + maxAmount = 100 +} + +RESOURCE +{ + name = Alumina + amount = 0 + maxAmount = 20 +} + +RESOURCE +{ + name = H2Peroxide + amount = 0 + maxAmount = 80 +} + +RESOURCE +{ + name = Ammonia + amount = 0 + maxAmount = 150 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/LCMassSpectrometer/part.cfg b/GameData/WarpPlugin/Parts/Utility/LCMassSpectrometer/part.cfg index fdd8b45f..f84b5bf9 100644 --- a/GameData/WarpPlugin/Parts/Utility/LCMassSpectrometer/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/LCMassSpectrometer/part.cfg @@ -1,53 +1,53 @@ -PART -{ - // --- general parameters --- - name = FNLCMS - module = Part - author = z - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/Utility/LCMassSpectrometer/lcmassspectrometer - rotation = 90,0,0 - } - scale = 1 - rescaleFactor = 0.35 - - // --- node definitions --- - node_attach = 0.0, 0.0, -0.3 , 0.0, 0.0, 1.0 - - - // --- editor parameters --- - TechRequired = advScienceTech - entryCost = 5000 - cost = 680 - category = Science - subcategory = 0 - title = Liquid Chromatograph Mass Spectrometer - manufacturer = Kitton Space Systems - description = The Liquid Chromatograph Mass Spectrometer (LC/MS) is a device that separates liquid components chemically via a liquid chromatograph and then feeds the result into a mass spectrometer, which measures the molecular weight of each chemical. As a result, it can separate, identify, and quantify a large number of different chemicals. It can be used to analyse the constituents of planetary oceans. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,1,1,1,0 - - - - // --- standard part parameters --- - mass = 0.1 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.3 - angularDrag = 2 - crashTolerance = 20 - maxTemp = 3400 - fuelCrossFeed = True - breakingForce = 1215 - breakingTorque = 1215 - - MODULE - { - name = FNLCMassSpectrometer - } - -} +PART +{ + // --- general parameters --- + name = FNLCMS + module = Part + author = z + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/Utility/LCMassSpectrometer/lcmassspectrometer + rotation = 90,0,0 + } + scale = 1 + rescaleFactor = 0.35 + + // --- node definitions --- + node_attach = 0.0, 0.0, -0.3 , 0.0, 0.0, 1.0 + + + // --- editor parameters --- + TechRequired = advScienceTech + entryCost = 5000 + cost = 680 + category = Science + subcategory = 0 + title = Liquid Chromatograph Mass Spectrometer + manufacturer = Kitton Space Systems + description = The Liquid Chromatograph Mass Spectrometer (LC/MS) is a device that separates liquid components chemically via a liquid chromatograph and then feeds the result into a mass spectrometer, which measures the molecular weight of each chemical. As a result, it can separate, identify, and quantify a large number of different chemicals. It can be used to analyse the constituents of planetary oceans. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,1,1,0 + + + + // --- standard part parameters --- + mass = 0.1 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.3 + angularDrag = 2 + crashTolerance = 20 + maxTemp = 3400 + fuelCrossFeed = True + breakingForce = 1215 + breakingTorque = 1215 + + MODULE + { + name = FNLCMassSpectrometer + } + +} diff --git a/GameData/WarpPlugin/Parts/Utility/LargeRefinery/part.cfg b/GameData/WarpPlugin/Parts/Utility/LargeRefinery/part.cfg index e5e06619..d2880386 100644 --- a/GameData/WarpPlugin/Parts/Utility/LargeRefinery/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/LargeRefinery/part.cfg @@ -1,164 +1,164 @@ -PART -{ -name = FNInlineRefineryLarge -module = Part -author = Fractal - -MODEL -{ - model = WarpPlugin/Parts/Utility/LargeRefinery/model - scale = 1,1,1 - rotation = 90,0,0 -} - -rescaleFactor = 1 - -node_stack_top = 0.0, 3.75, 0.0, 0.0, 1.0, 0.0, 2 -node_stack_bottom = 0.0, -3.75, 0.0, 0.0, 1.0, 0.0, 2 - -// --- editor parameters --- -cost = 30000 -category = Utility -subcategory = 0 -title = 3.75m Inline Refinery -manufacturer = Kerboplanetary Resources Inc. -description = A refinery capable of mining resources, performing electrolysis and reprocessing nuclear fuels. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -TechRequired = advScienceTech -mass = 6 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 2000 -breakingTorque = 2000 -maxTemp = 3000 - -MODULE -{ - name = FNRefinery -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 40 - powerConsumptionOcean = 0.001 - extractionRateLandPerTon = 0.0081300813 - extractionRateOceanPerTon = 1 - resourceName = LqdWater - unitName = Water Extractor - extractActionName = Extract Water - stopActionName = Stop Water Extraction - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 30 - powerConsumptionOcean = 0.1 - extractionRateLandPerTon = 0.012657 - extractionRateOceanPerTon = 0.01 - resourceName = Ammonia - unitName = Ammonia Extractor - extractActionName = Extract Ammonia - stopActionName = Stop Ammonia Extraction - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 40 - powerConsumptionOcean = 40 - extractionRateLandPerTon = 0.0008826 - extractionRateOceanPerTon = 0.0008826 - resourceName = Lithium - unitName = Lithium Extractor - extractActionName = Extract Lithium - stopActionName = Stop Lithium Extraction - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 10 - powerConsumptionOcean = -1 - extractionRateLandPerTon = 0.00745 - extractionRateOceanPerTon = 0.0001 - resourceName = Alumina - unitName = Alumina Miner - extractActionName = Mine Alumina - stopActionName = Stop Alumina Mining - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 10 - powerConsumptionOcean = 100 - extractionRateLandPerTon = 0.009259259259 - extractionRateOceanPerTon = 0.0001 - resourceName = UF4 - unitName = Uranium Miner - extractActionName = Mine Uranium - stopActionName = Stop Uranium Mining - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 10 - powerConsumptionOcean = 0.001 - extractionRateLandPerTon = 0.009259259259 - extractionRateOceanPerTon = 0.0001 - resourceName = ThF4 - unitName = Thorium Miner - extractActionName = Mine Thorium - stopActionName = Stop Thorium Mining - resourceManaged = True - resourceToUse = Megajoules -} - -RESOURCE -{ - name = LqdWater - amount = 0 - maxAmount = 800 -} - -RESOURCE -{ - name = Alumina - amount = 0 - maxAmount = 200 -} - -RESOURCE -{ - name = H2Peroxide - amount = 0 - maxAmount = 200 -} - -RESOURCE -{ - name = Ammonia - amount = 0 - maxAmount = 1000 -} -} +PART +{ +name = FNInlineRefineryLarge +module = Part +author = Fractal + +MODEL +{ + model = WarpPlugin/Parts/Utility/LargeRefinery/model + scale = 1,1,1 + rotation = 90,0,0 +} + +rescaleFactor = 1 + +node_stack_top = 0.0, 3.75, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -3.75, 0.0, 0.0, 1.0, 0.0, 2 + +// --- editor parameters --- +cost = 30000 +category = Utility +subcategory = 0 +title = 3.75m Inline Refinery +manufacturer = Kerboplanetary Resources Inc. +description = A refinery capable of mining resources, performing electrolysis and reprocessing nuclear fuels. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +TechRequired = advScienceTech +mass = 6 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 2000 +breakingTorque = 2000 +maxTemp = 3000 + +MODULE +{ + name = InterstellarRefinery +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 40 + powerConsumptionOcean = 0.001 + extractionRateLandPerTon = 0.0081300813 + extractionRateOceanPerTon = 1 + resourceName = Water + unitName = Water Extractor + extractActionName = Extract Water + stopActionName = Stop Water Extraction + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 30 + powerConsumptionOcean = 0.1 + extractionRateLandPerTon = 0.012657 + extractionRateOceanPerTon = 0.01 + resourceName = Ammonia + unitName = Ammonia Extractor + extractActionName = Extract Ammonia + stopActionName = Stop Ammonia Extraction + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 40 + powerConsumptionOcean = 40 + extractionRateLandPerTon = 0.0008826 + extractionRateOceanPerTon = 0.0008826 + resourceName = Lithium + unitName = Lithium Extractor + extractActionName = Extract Lithium + stopActionName = Stop Lithium Extraction + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 10 + powerConsumptionOcean = -1 + extractionRateLandPerTon = 0.00745 + extractionRateOceanPerTon = 0.0001 + resourceName = Alumina + unitName = Alumina Miner + extractActionName = Mine Alumina + stopActionName = Stop Alumina Mining + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 10 + powerConsumptionOcean = 100 + extractionRateLandPerTon = 0.009259259259 + extractionRateOceanPerTon = 0.0001 + resourceName = UF4 + unitName = Uranium Miner + extractActionName = Mine Uranium + stopActionName = Stop Uranium Mining + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 10 + powerConsumptionOcean = 0.001 + extractionRateLandPerTon = 0.009259259259 + extractionRateOceanPerTon = 0.0001 + resourceName = ThF4 + unitName = Thorium Miner + extractActionName = Mine Thorium + stopActionName = Stop Thorium Mining + resourceManaged = True + resourceToUse = Megajoules +} + +RESOURCE +{ + name = Water + amount = 0 + maxAmount = 800 +} + +RESOURCE +{ + name = Alumina + amount = 0 + maxAmount = 200 +} + +RESOURCE +{ + name = H2Peroxide + amount = 0 + maxAmount = 200 +} + +RESOURCE +{ + name = Ammonia + amount = 0 + maxAmount = 1000 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-L.cfg b/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-L.cfg index 9a7abb41..bf6e7ad4 100644 --- a/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-L.cfg +++ b/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-L.cfg @@ -1,65 +1,65 @@ -PART -{ -name = microwaveThermalEnergyReceiverL -module = Part -author = Conti - -MODEL -{ - model = WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-L -} - -scale = 1 -rescaleFactor = 1 - -node_stack_top = 0.0, 1.875, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.875, 0.0, 0.0, 1.0, 0.0 - -// --- editor parameters --- -TechRequired = experimentalElectrics -cost = 3000 -category = Utility -subcategory = 0 -title = MTER-L Microwave Thermal Receiver -manufacturer = Continuum Interplanetary -description = The MTER-L supplies thermal energy from received microwave power to thermal engines. Part must be attached directly to engine. Designed for 3.75m thermal engine parts. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -mass = 3.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 500 -breakingTorque = 500 -maxTemp = 3000 - - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 10 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 10 -} - -MODULE -{ - name = MicrowavePowerReceiver - isThermalReceiver = true - isInlineReceiver = true - animTName = mterGlow - collectorArea = 14.0625 - radius = 3.75 -} -} +PART +{ +name = microwaveThermalEnergyReceiverL +module = Part +author = Conti + +MODEL +{ + model = WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-L +} + +scale = 1 +rescaleFactor = 1 + +node_stack_top = 0.0, 1.875, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.875, 0.0, 0.0, 1.0, 0.0, 2 + +// --- editor parameters --- +TechRequired = experimentalElectrics +cost = 3000 +category = Utility +subcategory = 0 +title = MTER-L Microwave Thermal Receiver +manufacturer = Continuum Interplanetary +description = The MTER-L supplies thermal energy from received microwave power to thermal engines. Part must be attached directly to engine. Designed for 3.75m thermal engine parts. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +mass = 3.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 500 +breakingTorque = 500 +maxTemp = 3000 + + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 10 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 10 +} + +MODULE +{ + name = MicrowavePowerReceiver + isThermalReceiver = true + isInlineReceiver = true + animTName = mterGlow + collectorArea = 14.0625 + radius = 3.75 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-M.cfg b/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-M.cfg index 5295abc5..7e938124 100644 --- a/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-M.cfg +++ b/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-M.cfg @@ -1,65 +1,65 @@ -PART -{ -name = microwaveThermalEnergyReceiverM -module = Part -author = Conti - -MODEL -{ - model = WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-M -} - -scale = 1 -rescaleFactor = 1 - -node_stack_top = 0.0, 1.25, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -1.25, 0.0, 0.0, 1.0, 0.0 - -// --- editor parameters --- -cost = 1600 -category = Utility -subcategory = 0 -title = MTER-M Microwave Thermal Receiver -manufacturer = Continuum Interplanetary -description = The MTER-M supplies thermal energy from received microwave power to thermal engines. Part must be attached directly to engine. Designed for 2.5m thermal engine parts. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,1,0 - -// --- standard part parameters --- -TechRequired = experimentalElectrics -mass = 2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 3000 - - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 10 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 10 -} - -MODULE -{ - name = MicrowavePowerReceiver - isThermalReceiver = true - isInlineReceiver = true - animTName = mterGlow - collectorArea = 6.25 - radius = 2.5 -} -} +PART +{ +name = microwaveThermalEnergyReceiverM +module = Part +author = Conti + +MODEL +{ + model = WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-M +} + +scale = 1 +rescaleFactor = 1 + +node_stack_top = 0.0, 1.25, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -1.25, 0.0, 0.0, 1.0, 0.0, 2 + +// --- editor parameters --- +cost = 1600 +category = Utility +subcategory = 0 +title = MTER-M Microwave Thermal Receiver +manufacturer = Continuum Interplanetary +description = The MTER-M supplies thermal energy from received microwave power to thermal engines. Part must be attached directly to engine. Designed for 2.5m thermal engine parts. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,1,0 + +// --- standard part parameters --- +TechRequired = experimentalElectrics +mass = 2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 3000 + + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 10 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 10 +} + +MODULE +{ + name = MicrowavePowerReceiver + isThermalReceiver = true + isInlineReceiver = true + animTName = mterGlow + collectorArea = 6.25 + radius = 2.5 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-S.cfg b/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-S.cfg index 358db274..edaf955c 100644 --- a/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-S.cfg +++ b/GameData/WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-S.cfg @@ -1,67 +1,67 @@ -PART -{ -// --- general parameters --- -name = microwaveThermalEnergyReceiverS -module = Part -author = Conti - -MODEL -{ - model = WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-S -} - -scale = 1 -rescaleFactor = 1 - -node_stack_top = 0.0, 0.625, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -0.625, 0.0, 0.0, 1.0, 0.0 - -// --- editor parameters --- -cost = 800 -category = Utility -subcategory = 0 -title = MTER-S Microwave Thermal Receiver -manufacturer = Continuum Interplanetary -description = The MTER-S supplies thermal energy from received microwave power to thermal engines. Part must be attached directly to engine. Designed for 1.25m engine parts. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 - -// --- standard part parameters --- -TechRequired = experimentalElectrics -mass = 1 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -breakingForce = 100 -breakingTorque = 100 -maxTemp = 3000 - - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 10 -} - -RESOURCE -{ - name = ThermalPower - amount = 0 - maxAmount = 10 -} - -MODULE -{ - name = MicrowavePowerReceiver - isThermalReceiver = true - isInlineReceiver = true - animTName = mterGlow - collectorArea = 1.5625 - radius = 1.25 -} - -} +PART +{ +// --- general parameters --- +name = microwaveThermalEnergyReceiverS +module = Part +author = Conti + +MODEL +{ + model = WarpPlugin/Parts/Utility/MicrowaveThermalPowerReceiver/MTER-S +} + +scale = 1 +rescaleFactor = 1 + +node_stack_top = 0.0, 0.625, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -0.625, 0.0, 0.0, 1.0, 0.0, 1 + +// --- editor parameters --- +cost = 800 +category = Utility +subcategory = 0 +title = MTER-S Microwave Thermal Receiver +manufacturer = Continuum Interplanetary +description = The MTER-S supplies thermal energy from received microwave power to thermal engines. Part must be attached directly to engine. Designed for 1.25m engine parts. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 + +// --- standard part parameters --- +TechRequired = experimentalElectrics +mass = 1 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +breakingForce = 100 +breakingTorque = 100 +maxTemp = 3000 + + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 10 +} + +RESOURCE +{ + name = ThermalPower + amount = 0 + maxAmount = 10 +} + +MODULE +{ + name = MicrowavePowerReceiver + isThermalReceiver = true + isInlineReceiver = true + animTName = mterGlow + collectorArea = 1.5625 + radius = 1.25 +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/Refinery/part.cfg b/GameData/WarpPlugin/Parts/Utility/Refinery/part.cfg index 396736ed..acd3c66f 100644 --- a/GameData/WarpPlugin/Parts/Utility/Refinery/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/Refinery/part.cfg @@ -1,161 +1,161 @@ -PART -{ -name = FNRefinery -module = Part -author = zzz - -mesh = model.mu -rescaleFactor = 1 - -node_stack_bottom = 0, -0.9, 0, 0, 1, 0, 2 -node_stack_right = 2.2, -0.2, 0, -1, 0, 0, 1 -node_attach = -1.903, -0.127, 0, -1, 0, 0, 1 - -TechRequired = advScienceTech -entryCost = 8200 -cost = 4000 -category = Utility -subcategory = 0 -title = ISRU Refinery -manufacturer = Kerboplanetary Resources Inc. -description = A refinery capable of mining resources, performing electrolysis and reprocessing nuclear fuels. - -attachRules = 1,0,1,1,1 - -mass = 2.5 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 2 -crashTolerance = 6 -breakingForce = 200 -breakingTorque = 200 -maxTemp = 2900 - -vesselType = Ship - -MODULE -{ -name = FNRefinery -animName = lights -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 40 - powerConsumptionOcean = 0.001 - extractionRateLandPerTon = 0.0081300813 - extractionRateOceanPerTon = 1 - resourceName = LqdWater - unitName = Water Extractor - extractActionName = Extract Water - stopActionName = Stop Water Extraction - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 30 - powerConsumptionOcean = 0.1 - extractionRateLandPerTon = 0.012657 - extractionRateOceanPerTon = 0.01 - resourceName = Ammonia - unitName = Ammonia Extractor - extractActionName = Extract Ammonia - stopActionName = Stop Ammonia Extraction - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 40 - powerConsumptionOcean = 40 - extractionRateLandPerTon = 0.0008826 - extractionRateOceanPerTon = 0.0008826 - resourceName = Lithium - unitName = Lithium Extractor - extractActionName = Extract Lithium - stopActionName = Stop Lithium Extraction - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 10 - powerConsumptionOcean = -1 - extractionRateLandPerTon = 0.00745 - extractionRateOceanPerTon = 0.0001 - resourceName = Alumina - unitName = Alumina Miner - extractActionName = Mine Alumina - stopActionName = Stop Alumina Mining - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 10 - powerConsumptionOcean = 100 - extractionRateLandPerTon = 0.009259259259 - extractionRateOceanPerTon = 0.0001 - resourceName = UF4 - unitName = Uranium Miner - extractActionName = Mine Uranium - stopActionName = Stop Uranium Mining - resourceManaged = True - resourceToUse = Megajoules -} - -MODULE -{ - name = FNModuleResourceExtraction - powerConsumptionLand = 10 - powerConsumptionOcean = 0.001 - extractionRateLandPerTon = 0.009259259259 - extractionRateOceanPerTon = 0.0001 - resourceName = ThF4 - unitName = Thorium Miner - extractActionName = Mine Thorium - stopActionName = Stop Thorium Mining - resourceManaged = True - resourceToUse = Megajoules -} - -RESOURCE -{ - name = LqdWater - amount = 0 - maxAmount = 100 -} - -RESOURCE -{ - name = Alumina - amount = 0 - maxAmount = 20 -} - -RESOURCE -{ - name = H2Peroxide - amount = 0 - maxAmount = 80 -} - -RESOURCE -{ - name = Ammonia - amount = 0 - maxAmount = 150 -} - -} +PART +{ +name = FNRefinery +module = Part +author = zzz + +mesh = model.mu +rescaleFactor = 1 + +node_stack_bottom = 0, -0.9, 0, 0, 1, 0, 2 +node_stack_right = 2.2, -0.2, 0, -1, 0, 0, 1 +node_attach = -1.903, -0.127, 0, -1, 0, 0, 1 + +TechRequired = advScienceTech +entryCost = 8200 +cost = 4000 +category = Utility +subcategory = 0 +title = ISRU Refinery +manufacturer = Kerboplanetary Resources Inc. +description = A refinery capable of mining resources, performing electrolysis and reprocessing nuclear fuels. + +attachRules = 1,0,1,1,1 + +mass = 2.5 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 2 +crashTolerance = 6 +breakingForce = 200 +breakingTorque = 200 +maxTemp = 2900 + +vesselType = Ship + +MODULE +{ + name = InterstellarRefinery + animName = lights +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 40 + powerConsumptionOcean = 0.001 + extractionRateLandPerTon = 0.0081300813 + extractionRateOceanPerTon = 1 + resourceName = Water + unitName = Water Extractor + extractActionName = Extract Water + stopActionName = Stop Water Extraction + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 30 + powerConsumptionOcean = 0.1 + extractionRateLandPerTon = 0.012657 + extractionRateOceanPerTon = 0.01 + resourceName = Ammonia + unitName = Ammonia Extractor + extractActionName = Extract Ammonia + stopActionName = Stop Ammonia Extraction + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 40 + powerConsumptionOcean = 40 + extractionRateLandPerTon = 0.0008826 + extractionRateOceanPerTon = 0.0008826 + resourceName = Lithium + unitName = Lithium Extractor + extractActionName = Extract Lithium + stopActionName = Stop Lithium Extraction + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 10 + powerConsumptionOcean = -1 + extractionRateLandPerTon = 0.00745 + extractionRateOceanPerTon = 0.0001 + resourceName = Alumina + unitName = Alumina Miner + extractActionName = Mine Alumina + stopActionName = Stop Alumina Mining + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 10 + powerConsumptionOcean = 100 + extractionRateLandPerTon = 0.009259259259 + extractionRateOceanPerTon = 0.0001 + resourceName = UF4 + unitName = Uranium Miner + extractActionName = Mine Uranium + stopActionName = Stop Uranium Mining + resourceManaged = True + resourceToUse = Megajoules +} + +MODULE +{ + name = FNModuleResourceExtraction + powerConsumptionLand = 10 + powerConsumptionOcean = 0.001 + extractionRateLandPerTon = 0.009259259259 + extractionRateOceanPerTon = 0.0001 + resourceName = ThF4 + unitName = Thorium Miner + extractActionName = Mine Thorium + stopActionName = Stop Thorium Mining + resourceManaged = True + resourceToUse = Megajoules +} + +RESOURCE +{ + name = Water + amount = 0 + maxAmount = 100 +} + +RESOURCE +{ + name = Alumina + amount = 0 + maxAmount = 20 +} + +RESOURCE +{ + name = H2Peroxide + amount = 0 + maxAmount = 80 +} + +RESOURCE +{ + name = Ammonia + amount = 0 + maxAmount = 150 +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part.cfg b/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part.cfg index 94aeef3d..65ccbe2c 100644 --- a/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part.cfg @@ -1,53 +1,53 @@ -PART -{ -// Kerbal Space Program - Part Config -// FL-T500 Fuel Tank -// - -// --- general parameters --- -name = atmosphericScoop -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu -scale = 0.1 - - -// --- node definitions --- -node_stack_top = 0.0, 7.5, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -7.59, 0.0, 0.0, 1.0, 0.0 -node_attach = 0.0, 0.0, 5.12, 0.0, 0.0, -1.0, 1 - - -// --- editor parameters --- -TechRequired = hypersonicFlight -entryCost = 14000 -cost = 550 -category = Aero -subcategory = 0 -title = Atmospheric Scoop -manufacturer = Kerbscoop Ltd -description = This part collects up the local atmosphere and processes it into useful products. Requires 6MW of power. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,1,1,1,0 - -// --- standard part parameters --- -mass = 0.3 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 1 -crashTolerance = 20 -maxTemp = 2900 -fuelCrossFeed = True - - -MODULE -{ - name = ISRUScoop - scoopair = 0.15 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// FL-T500 Fuel Tank +// + +// --- general parameters --- +name = atmosphericScoop +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu +scale = 0.1 + + +// --- node definitions --- +node_stack_top = 0.0, 7.5, 0.0, 0.0, 1.0, 0.0, 1 +node_stack_bottom = 0.0, -7.59, 0.0, 0.0, 1.0, 0.0, 1 +node_attach = 0.0, 0.0, 5.12, 0.0, 0.0, -1.0, 1 + + +// --- editor parameters --- +TechRequired = hypersonicFlight +entryCost = 14000 +cost = 550 +category = Aero +subcategory = 0 +title = Atmospheric Scoop +manufacturer = Kerbscoop Ltd +description = This part collects up the local atmosphere and processes it into useful products. Requires 6MW of power. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,1,1,1,0 + +// --- standard part parameters --- +mass = 0.3 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 1 +crashTolerance = 20 +maxTemp = 2900 +fuelCrossFeed = True + + +MODULE +{ + name = ISRUScoop + scoopair = 0.15 +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part2.cfg b/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part2.cfg index 40d213f4..b51666b2 100644 --- a/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part2.cfg +++ b/GameData/WarpPlugin/Parts/Utility/atmosphericScoop/part2.cfg @@ -1,55 +1,55 @@ -PART -{ -// Kerbal Space Program - Part Config -// FL-T500 Fuel Tank -// - -// --- general parameters --- -name = atmosphericScoop2 -module = Part -author = Fractal - -// --- asset parameters --- -mesh = model.mu -scale = 0.1 -rescaleFactor = 2 - -// --- node definitions --- -node_stack_top = 0.0, 7.5, 0.0, 0.0, 1.0, 0.0 -node_stack_bottom = 0.0, -7.59, 0.0, 0.0, 1.0, 0.0 -node_attach = 0.0, 0.0, 5.12, 0.0, 0.0, -1.0, 1 - - -// --- editor parameters --- -TechRequired = hypersonicFlight -entryCost = 14000 -cost = 550 -category = Aero -subcategory = 0 -title = 2.5m Atmospheric Scoop -manufacturer = Kerbscoop Ltd -description = This part collects up the local atmosphere and processes it into useful products. Requires 24MW of power. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,1,1,1,0 - -// --- standard part parameters --- -mass = 1.2 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.3 -angularDrag = 1 -crashTolerance = 20 -maxTemp = 2900 -fuelCrossFeed = True -breakingForce = 200 -breakingTorque = 200 - - -MODULE -{ - name = ISRUScoop - scoopair = 0.6 -} - -} +PART +{ +// Kerbal Space Program - Part Config +// FL-T500 Fuel Tank +// + +// --- general parameters --- +name = atmosphericScoop2 +module = Part +author = Fractal + +// --- asset parameters --- +mesh = model.mu +scale = 0.1 +rescaleFactor = 2 + +// --- node definitions --- +node_stack_top = 0.0, 7.5, 0.0, 0.0, 1.0, 0.0, 2 +node_stack_bottom = 0.0, -7.59, 0.0, 0.0, 1.0, 0.0, 2 +node_attach = 0.0, 0.0, 5.12, 0.0, 0.0, -1.0, 1 + + +// --- editor parameters --- +TechRequired = hypersonicFlight +entryCost = 14000 +cost = 550 +category = Aero +subcategory = 0 +title = 2.5m Atmospheric Scoop +manufacturer = Kerbscoop Ltd +description = This part collects up the local atmosphere and processes it into useful products. Requires 24MW of power. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,1,1,1,0 + +// --- standard part parameters --- +mass = 1.2 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.3 +angularDrag = 1 +crashTolerance = 20 +maxTemp = 2900 +fuelCrossFeed = True +breakingForce = 200 +breakingTorque = 200 + + +MODULE +{ + name = ISRUScoop + scoopair = 0.6 +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part.cfg b/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part.cfg index 4967c3e8..41734566 100644 --- a/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part.cfg @@ -1,61 +1,61 @@ -PART -{ -name = microwaveReceiver -module = Part -author = Fractal - -mesh = model.mu -scale = 1 -rescaleFactor = 2 - -node_stack_bottom = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0 -node_attach = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0 - -TechRequired = specializedElectrics -entryCost = 38200 -cost = 900 -category = Utility -subcategory = 0 -title = Microwave Beamed Power Receiver -manufacturer = Ionic Protonic Electronics -description = Receives solar energy beamed by a Microwave Beamed Power Transmitter -attachRules = 1,1,0,0,0 - -// --- standard part parameters --- -mass = 0.025 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -maxTemp = 3000 - - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 10 -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 100 -} - -RESOURCE -{ - name = ElectricCharge - amount = 0 - maxAmount = 100 -} - -MODULE -{ - name = MicrowavePowerReceiver - animName = dish - collectorArea = 0.75 -} -} +PART +{ +name = microwaveReceiver +module = Part +author = Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 2 + +node_stack_bottom = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0 +node_attach = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0 + +TechRequired = specializedElectrics +entryCost = 38200 +cost = 900 +category = Utility +subcategory = 0 +title = Microwave Beamed Power Receiver +manufacturer = Ionic Protonic Electronics +description = Receives solar energy beamed by a Microwave Beamed Power Transmitter +attachRules = 1,1,0,0,0 + +// --- standard part parameters --- +mass = 0.025 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +maxTemp = 3000 + + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 10 +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 100 +} + +RESOURCE +{ + name = ElectricCharge + amount = 0 + maxAmount = 100 +} + +MODULE +{ + name = MicrowavePowerReceiver + animName = dish + collectorArea = 0.75 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part_micro.cfg b/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part_micro.cfg new file mode 100644 index 00000000..f444fcd4 --- /dev/null +++ b/GameData/WarpPlugin/Parts/Utility/microwaveReceiver/part_micro.cfg @@ -0,0 +1,61 @@ +PART +{ +name = microwaveReceiver_micro +module = Part +author = Fractal + +mesh = model.mu +scale = 1 +rescaleFactor = 1 + +node_stack_bottom = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0 +node_attach = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0 + +TechRequired = specializedElectrics +entryCost = 35000 +cost = 850 +category = Utility +subcategory = 0 +title = Microwave Beamed Power Receiver Micro +manufacturer = Ionic Protonic Electronics +description = Small version of Microwave Beamed Power Receiver. +attachRules = 1,1,0,0,0 + +// --- standard part parameters --- +mass = 0.016 +dragModelType = default +maximum_drag = 0.1 +minimum_drag = 0.1 +angularDrag = 1 +crashTolerance = 8 +maxTemp = 3000 + + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 3 +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 35 +} + +RESOURCE +{ + name = ElectricCharge + amount = 0 + maxAmount = 20 +} + +MODULE +{ + name = MicrowavePowerReceiver + animName = dish + collectorArea = 0.19 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/phasedArray1/receiver.cfg b/GameData/WarpPlugin/Parts/Utility/phasedArray1/receiver.cfg index 7d08c1db..6ab482ce 100644 --- a/GameData/WarpPlugin/Parts/Utility/phasedArray1/receiver.cfg +++ b/GameData/WarpPlugin/Parts/Utility/phasedArray1/receiver.cfg @@ -1,75 +1,75 @@ -PART -{ -name = phasedArray1 -module = Part -author = Fractal - -MODEL - { - model = WarpPlugin/Parts/Utility/phasedArray1/receiver - } - - -scale = 1 -rescaleFactor = 1 - -node_stack_bottom = 0.0, -0.04, 0.0, 0.0, 1.0, 0.0, 0 -node_attach = 0.0, 0.0, -0.04, 0.0, -1.0, 0.0, 0 - -TechRequired = experimentalElectrics -entryCost = 14000 -cost = 900 -category = Utility -subcategory = 0 -title = Deployable Phased Array Microwave Transceiver -manufacturer = Ionic Protonic Electronics -description = An extremely large, foldable array, capable of transmitting, receiving or relaying microwave beamed power. -attachRules = 1,1,0,0,0 - -// --- standard part parameters --- -mass = 0.025 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -maxTemp = 3000 - - - - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 100 -} - -RESOURCE -{ - name = ElectricCharge - amount = 0 - maxAmount = 1000 -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 10000 -} - -MODULE -{ - name = MicrowavePowerReceiver - animName = deploy - collectorArea = 98.2 -} - -MODULE -{ - name = MicrowavePowerTransmitter - animName = deploy -} - -} +PART +{ +name = phasedArray1 +module = Part +author = Fractal + +MODEL + { + model = WarpPlugin/Parts/Utility/phasedArray1/receiver + } + + +scale = 1 +rescaleFactor = 1 + +node_stack_bottom = 0.0, -0.04, 0.0, 0.0, 1.0, 0.0, 0 +node_attach = 0.0, 0.0, -0.04, 0.0, -1.0, 0.0, 0 + +TechRequired = experimentalElectrics +entryCost = 14000 +cost = 900 +category = Utility +subcategory = 0 +title = Deployable Phased Array Microwave Transceiver +manufacturer = Ionic Protonic Electronics +description = An extremely large, foldable array, capable of transmitting, receiving or relaying microwave beamed power. +attachRules = 1,1,0,0,0 + +// --- standard part parameters --- +mass = 0.025 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +maxTemp = 3000 + + + + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 100 +} + +RESOURCE +{ + name = ElectricCharge + amount = 0 + maxAmount = 1000 +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 10000 +} + +MODULE +{ + name = MicrowavePowerReceiver + animName = deploy + collectorArea = 98.2 +} + +MODULE +{ + name = MicrowavePowerTransmitter + animName = deploy +} + +} diff --git a/GameData/WarpPlugin/Parts/Utility/phasedArray2/transmitter.cfg b/GameData/WarpPlugin/Parts/Utility/phasedArray2/transmitter.cfg index 8d1f8cc8..57e4d592 100644 --- a/GameData/WarpPlugin/Parts/Utility/phasedArray2/transmitter.cfg +++ b/GameData/WarpPlugin/Parts/Utility/phasedArray2/transmitter.cfg @@ -1,69 +1,69 @@ -PART -{ -name = microwaveTransmitter -module = Part -author = Fractal - -MODEL - { - model = WarpPlugin/Parts/Utility/phasedArray2/transmitter - } -scale = 1 -rescaleFactor = 1 - -node_stack_bottom = 0.0, -0.04, 0.0, 0.0, 1.0, 0.0, 0 -node_attach = 0.0, -0.04, 0.0, 0.0, -1.0, 0.0, 0 - -TechRequired = specializedElectrics -entryCost = 38200 -cost = 900 -category = Utility -subcategory = 0 -title = Phased Array Microwave Transceiver -manufacturer = Ionic Protonic Electronics -description = Capable of transmitting, receiving or relaying microwave beamed power. -attachRules = 1,1,0,0,0 - -// --- standard part parameters --- -mass = 0.025 -dragModelType = default -maximum_drag = 0.2 -minimum_drag = 0.2 -angularDrag = 2 -crashTolerance = 7 -maxTemp = 3000 - -RESOURCE -{ - name = Megajoules - amount = 0 - maxAmount = 20 -} - -RESOURCE -{ - name = ElectricCharge - amount = 0 - maxAmount = 200 -} - -RESOURCE -{ - name = WasteHeat - amount = 0 - maxAmount = 2000 -} - -MODULE -{ - name = MicrowavePowerReceiver - animName = dish - collectorArea = 4.9 -} - -MODULE -{ - name = MicrowavePowerTransmitter - animName = dish -} -} +PART +{ +name = microwaveTransmitter +module = Part +author = Fractal + +MODEL + { + model = WarpPlugin/Parts/Utility/phasedArray2/transmitter + } +scale = 1 +rescaleFactor = 1 + +node_stack_bottom = 0.0, -0.04, 0.0, 0.0, 1.0, 0.0, 0 +node_attach = 0.0, -0.04, 0.0, 0.0, -1.0, 0.0, 0 + +TechRequired = specializedElectrics +entryCost = 38200 +cost = 900 +category = Utility +subcategory = 0 +title = Phased Array Microwave Transceiver +manufacturer = Ionic Protonic Electronics +description = Capable of transmitting, receiving or relaying microwave beamed power. +attachRules = 1,1,0,0,0 + +// --- standard part parameters --- +mass = 0.025 +dragModelType = default +maximum_drag = 0.2 +minimum_drag = 0.2 +angularDrag = 2 +crashTolerance = 7 +maxTemp = 3000 + +RESOURCE +{ + name = Megajoules + amount = 0 + maxAmount = 20 +} + +RESOURCE +{ + name = ElectricCharge + amount = 0 + maxAmount = 200 +} + +RESOURCE +{ + name = WasteHeat + amount = 0 + maxAmount = 2000 +} + +MODULE +{ + name = MicrowavePowerReceiver + animName = dish + collectorArea = 4.9 +} + +MODULE +{ + name = MicrowavePowerTransmitter + animName = dish +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop1.cfg b/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop1.cfg index 920a2e62..a5dc41c5 100644 --- a/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop1.cfg +++ b/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop1.cfg @@ -1,51 +1,51 @@ -PART -{ - // --- general parameters --- - name = radial_atmospheric_scoop1 - module = Part - author = zzz - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop - rotation = 0, 0, 180 - } - scale = 1 - rescaleFactor = 0.75 - - // --- node definitions --- - node_attach = 0.0, 1.0, -0.525, 0.0, 0.0, 1.0 - - // --- editor parameters --- - TechRequired = hypersonicFlight - entryCost = 14000 - cost = 680 - category = Aero - subcategory = 0 - title = Small Radial Atmospheric Scoop - manufacturer = Kerbscoop Ltd - description = This part collects up the local atmosphere and processes it into useful products. Requires 6MW of power. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,1,1,1,1 - stackSymmetry = 2 - - // --- standard part parameters --- - mass = 0.3 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.2 - angularDrag = 1 - crashTolerance = 30 - breakingForce = 1728 - breakingTorque = 1728 - maxTemp = 3400 - fuelCrossFeed = True - - MODULE - { - name = ISRUScoop - scoopair = 0.15 - } -} +PART +{ + // --- general parameters --- + name = radial_atmospheric_scoop1 + module = Part + author = zzz + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop + rotation = 0, 0, 180 + } + scale = 1 + rescaleFactor = 0.75 + + // --- node definitions --- + node_attach = 0.0, 1.0, -0.525, 0.0, 0.0, 1.0, 1 + + // --- editor parameters --- + TechRequired = hypersonicFlight + entryCost = 14000 + cost = 680 + category = Aero + subcategory = 0 + title = Small Radial Atmospheric Scoop + manufacturer = Kerbscoop Ltd + description = This part collects up the local atmosphere and processes it into useful products. Requires 6MW of power. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,1,1,1 + stackSymmetry = 2 + + // --- standard part parameters --- + mass = 0.3 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.2 + angularDrag = 1 + crashTolerance = 30 + breakingForce = 1728 + breakingTorque = 1728 + maxTemp = 3400 + fuelCrossFeed = True + + MODULE + { + name = ISRUScoop + scoopair = 0.15 + } +} diff --git a/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop2.cfg b/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop2.cfg index a3361eba..17ed9414 100644 --- a/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop2.cfg +++ b/GameData/WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop2.cfg @@ -1,51 +1,51 @@ -PART -{ - // --- general parameters --- - name = radial_atmospheric_scoop2 - module = Part - author = zzz - - // --- asset parameters --- - MODEL - { - model = WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop - rotation = 0, 0, 180 - } - scale = 1 - rescaleFactor = 1 - - // --- node definitions --- - node_attach = 0.0, 1.0, -0.625, 0.0, 0.0, 1.0 - - // --- editor parameters --- - TechRequired = hypersonicFlight - entryCost = 14000 - cost = 680 - category = Aero - subcategory = 0 - title = Large Radial Atmospheric Scoop - manufacturer = Kerbscoop Ltd - description = This part collects up the local atmosphere and processes it into useful products. Requires 24MW of power. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,1,1,1,1 - stackSymmetry = 2 - - // --- standard part parameters --- - mass = 1.2 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.2 - angularDrag = 1 - crashTolerance = 30 - breakingForce = 1728 - breakingTorque = 1728 - maxTemp = 3400 - fuelCrossFeed = True - - MODULE - { - name = ISRUScoop - scoopair = 0.6 - } -} +PART +{ + // --- general parameters --- + name = radial_atmospheric_scoop2 + module = Part + author = zzz + + // --- asset parameters --- + MODEL + { + model = WarpPlugin/Parts/Utility/radialAtmosphericScoop/scoop + rotation = 0, 0, 180 + } + scale = 1 + rescaleFactor = 1 + + // --- node definitions --- + node_attach = 0.0, 1.0, -0.625, 0.0, 0.0, 1.0, 2 + + // --- editor parameters --- + TechRequired = hypersonicFlight + entryCost = 14000 + cost = 680 + category = Aero + subcategory = 0 + title = Large Radial Atmospheric Scoop + manufacturer = Kerbscoop Ltd + description = This part collects up the local atmosphere and processes it into useful products. Requires 24MW of power. + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,1,1,1 + stackSymmetry = 2 + + // --- standard part parameters --- + mass = 1.2 + dragModelType = default + maximum_drag = 0.2 + minimum_drag = 0.2 + angularDrag = 1 + crashTolerance = 30 + breakingForce = 1728 + breakingTorque = 1728 + maxTemp = 3400 + fuelCrossFeed = True + + MODULE + { + name = ISRUScoop + scoopair = 0.6 + } +} diff --git a/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part.cfg b/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part.cfg index bf85fcfb..251c3c4d 100644 --- a/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part.cfg +++ b/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part.cfg @@ -1,76 +1,76 @@ -PART -{ -// this is a sample config file, for determining a good file format for defining part parameters -// comment line - ignored by cfg parser -// empty lines, or lines without a '=' sign are also ignored -// all other lines are split at the '=' sign, and the left operand is used to know what parameter we are setting -// diferent parameters require data in different formats (see docs), and each module has it's own parameters (again, see docs) -// each assignment must be in a single line. Lines without assignments will be ignored. (You CAN turn on word wrap, though) -// each keyword here relates to an existing variable in the assigned module. If the keyword isn't found, it is ignored. -// conversely, if a keyword is left unassigned (as in not in the file), it will be initialized with it's default value -// This is done automatically, so any public variable defined in the loaded module can be accessed this way (provided it's value can be parsed) - - -// --- general parameters --- -name = warpAtmIntake -module = Part -author = Fractal - -// --- asset parameters --- -MODEL -{ - model = Squad/Parts/Utility/ramAirIntake/model - scale = 0.72, 0.72, 0.72 -} -scale = 0.1 - -// --- node definitions --- -// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z - -node_stack_bottom01 = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 - - - -// --- FX definitions --- - - -// --- editor parameters --- -TechRequired = highAltitudeFlight -entryCost = 14000 -cost = 680 -category = none -subcategory = 0 -title = 1.25m Atmospheric Intake -manufacturer = Kerbscoop Ltd -description = An inlet for all atmospheric gases, which can be used as propellant or harvested for resources with an atmospheric scoop. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 -stackSymmetry = 2 - -// --- standard part parameters --- -mass = 0.01 -dragModelType = default -maximum_drag = 0.3 -minimum_drag = 0.3 -angularDrag = 1 -crashTolerance = 10 -maxTemp = 3400 -fuelCrossFeed = True - - -// ----- DO NOT EDIT BELOW THIS POINT ------ - -MODULE -{ - name = AtmosphericIntake - area = 0.04 -} - -RESOURCE -{ - name = IntakeAtm - amount = 1 - maxAmount = 1 -} -} +PART +{ +// this is a sample config file, for determining a good file format for defining part parameters +// comment line - ignored by cfg parser +// empty lines, or lines without a '=' sign are also ignored +// all other lines are split at the '=' sign, and the left operand is used to know what parameter we are setting +// diferent parameters require data in different formats (see docs), and each module has it's own parameters (again, see docs) +// each assignment must be in a single line. Lines without assignments will be ignored. (You CAN turn on word wrap, though) +// each keyword here relates to an existing variable in the assigned module. If the keyword isn't found, it is ignored. +// conversely, if a keyword is left unassigned (as in not in the file), it will be initialized with it's default value +// This is done automatically, so any public variable defined in the loaded module can be accessed this way (provided it's value can be parsed) + + +// --- general parameters --- +name = warpAtmIntake +module = Part +author = Fractal + +// --- asset parameters --- +MODEL +{ + model = Squad/Parts/Utility/ramAirIntake/model + scale = 0.72, 0.72, 0.72 +} +scale = 0.1 + +// --- node definitions --- +// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z + +node_stack_bottom01 = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 + + + +// --- FX definitions --- + + +// --- editor parameters --- +TechRequired = highAltitudeFlight +entryCost = 14000 +cost = 680 +category = none +subcategory = 0 +title = 1.25m Atmospheric Intake +manufacturer = Kerbscoop Ltd +description = An inlet for all atmospheric gases, which can be used as propellant or harvested for resources with an atmospheric scoop. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 +stackSymmetry = 2 + +// --- standard part parameters --- +mass = 0.01 +dragModelType = default +maximum_drag = 0.3 +minimum_drag = 0.3 +angularDrag = 1 +crashTolerance = 10 +maxTemp = 3400 +fuelCrossFeed = True + + +// ----- DO NOT EDIT BELOW THIS POINT ------ + +MODULE +{ + name = AtmosphericIntake + area = 0.04 +} + +RESOURCE +{ + name = IntakeAtm + amount = 1 + maxAmount = 1 +} +} diff --git a/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part2.cfg b/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part2.cfg index d4754fe3..9ec7033b 100644 --- a/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part2.cfg +++ b/GameData/WarpPlugin/Parts/Utility/warpAtmIntake/part2.cfg @@ -1,79 +1,79 @@ -PART -{ -// this is a sample config file, for determining a good file format for defining part parameters -// comment line - ignored by cfg parser -// empty lines, or lines without a '=' sign are also ignored -// all other lines are split at the '=' sign, and the left operand is used to know what parameter we are setting -// diferent parameters require data in different formats (see docs), and each module has it's own parameters (again, see docs) -// each assignment must be in a single line. Lines without assignments will be ignored. (You CAN turn on word wrap, though) -// each keyword here relates to an existing variable in the assigned module. If the keyword isn't found, it is ignored. -// conversely, if a keyword is left unassigned (as in not in the file), it will be initialized with it's default value -// This is done automatically, so any public variable defined in the loaded module can be accessed this way (provided it's value can be parsed) - - -// --- general parameters --- -name = warpAtmIntake2 -module = Part -author = Fractal - -// --- asset parameters --- -MODEL -{ - model = Squad/Parts/Utility/ramAirIntake/model - scale = 0.7, 0.7, 0.7 -} -scale = 0.1 -rescaleFactor = 1.8 - -// --- node definitions --- -// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z - -node_stack_bottom01 = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 - - - -// --- FX definitions --- - - -// --- editor parameters --- -TechRequired = highAltitudeFlight -entryCost = 14000 -cost = 680 -category = none -subcategory = 0 -title = 2.5m Atmospheric Intake -manufacturer = Kerbscoop Ltd -description = An inlet for all atmospheric gases, which can be used as propellant or harvested for resources with an atmospheric scoop. - -// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision -attachRules = 1,0,1,0,0 -stackSymmetry = 2 - -// --- standard part parameters --- -mass = 0.04 -dragModelType = default -maximum_drag = 0.3 -minimum_drag = 0.3 -angularDrag = 1 -crashTolerance = 10 -maxTemp = 3400 -fuelCrossFeed = True -breakingForce = 200 -breakingTorque = 200 - - -// ----- DO NOT EDIT BELOW THIS POINT ------ - -MODULE -{ - name = AtmosphericIntake - area = 0.16 -} - -RESOURCE -{ - name = IntakeAtm - amount = 4 - maxAmount = 4 -} -} +PART +{ +// this is a sample config file, for determining a good file format for defining part parameters +// comment line - ignored by cfg parser +// empty lines, or lines without a '=' sign are also ignored +// all other lines are split at the '=' sign, and the left operand is used to know what parameter we are setting +// diferent parameters require data in different formats (see docs), and each module has it's own parameters (again, see docs) +// each assignment must be in a single line. Lines without assignments will be ignored. (You CAN turn on word wrap, though) +// each keyword here relates to an existing variable in the assigned module. If the keyword isn't found, it is ignored. +// conversely, if a keyword is left unassigned (as in not in the file), it will be initialized with it's default value +// This is done automatically, so any public variable defined in the loaded module can be accessed this way (provided it's value can be parsed) + + +// --- general parameters --- +name = warpAtmIntake2 +module = Part +author = Fractal + +// --- asset parameters --- +MODEL +{ + model = Squad/Parts/Utility/ramAirIntake/model + scale = 0.7, 0.7, 0.7 +} +scale = 0.1 +rescaleFactor = 1.8 + +// --- node definitions --- +// definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z + +node_stack_bottom01 = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 + + + +// --- FX definitions --- + + +// --- editor parameters --- +TechRequired = highAltitudeFlight +entryCost = 14000 +cost = 680 +category = none +subcategory = 0 +title = 2.5m Atmospheric Intake +manufacturer = Kerbscoop Ltd +description = An inlet for all atmospheric gases, which can be used as propellant or harvested for resources with an atmospheric scoop. + +// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision +attachRules = 1,0,1,0,0 +stackSymmetry = 2 + +// --- standard part parameters --- +mass = 0.04 +dragModelType = default +maximum_drag = 0.3 +minimum_drag = 0.3 +angularDrag = 1 +crashTolerance = 10 +maxTemp = 3400 +fuelCrossFeed = True +breakingForce = 200 +breakingTorque = 200 + + +// ----- DO NOT EDIT BELOW THIS POINT ------ + +MODULE +{ + name = AtmosphericIntake + area = 0.16 +} + +RESOURCE +{ + name = IntakeAtm + amount = 4 + maxAmount = 4 +} +} diff --git a/GameData/WarpPlugin/PlanetResourceData/atmosphericresourcedefinitions.cfg b/GameData/WarpPlugin/PlanetResourceData/atmosphericresourcedefinitions.cfg index 6f9b7c66..b9a56591 100644 --- a/GameData/WarpPlugin/PlanetResourceData/atmosphericresourcedefinitions.cfg +++ b/GameData/WarpPlugin/PlanetResourceData/atmosphericresourcedefinitions.cfg @@ -1,36 +1,39 @@ -@ATMOSPHERIC_RESOURCE_DEFINITION[EveArgon] -{ - resourceName = Argon -} -@ATMOSPHERIC_RESOURCE_DEFINITION[KerbinArgon] -{ - resourceName = Argon -} -@ATMOSPHERIC_RESOURCE_DEFINITION[KerbinMethane] -{ - resourceName = LqdMethane -} -@ATMOSPHERIC_RESOURCE_DEFINITION[DunaArgon] -{ - resourceName = Argon -} -@ATMOSPHERIC_RESOURCE_DEFINITION[JoolMethane] -{ - resourceName = LqdMethane -} -@ATMOSPHERIC_RESOURCE_DEFINITION[JoolAmmonia] -{ - resourceName = Ammonia -} -@ATMOSPHERIC_RESOURCE_DEFINITION[JoolDeuterium] -{ - resourceName = Deuterium -} -@ATMOSPHERIC_RESOURCE_DEFINITION[JoolHelium3] -{ - resourceName = Helium-3 -} -@ATMOSPHERIC_RESOURCE_DEFINITION[LaytheArgon] -{ - resourceName = Argon -} +@ATMOSPHERIC_RESOURCE_PACK_DEFINITION[InterstellarAtmosphericPack] +{ +@ATMOSPHERIC_RESOURCE_DEFINITION[EveArgon] +{ + resourceName = ArgonGas +} +@ATMOSPHERIC_RESOURCE_DEFINITION[KerbinArgon] +{ + resourceName = ArgonGas +} +@ATMOSPHERIC_RESOURCE_DEFINITION[KerbinMethane] +{ + resourceName = LqdMethane +} +@ATMOSPHERIC_RESOURCE_DEFINITION[DunaArgon] +{ + resourceName = ArgonGas +} +@ATMOSPHERIC_RESOURCE_DEFINITION[JoolMethane] +{ + resourceName = LqdMethane +} +@ATMOSPHERIC_RESOURCE_DEFINITION[JoolAmmonia] +{ + resourceName = Ammonia +} +@ATMOSPHERIC_RESOURCE_DEFINITION[JoolDeuterium] +{ + resourceName = Deuterium +} +@ATMOSPHERIC_RESOURCE_DEFINITION[JoolHelium3] +{ + resourceName = Helium-3 +} +@ATMOSPHERIC_RESOURCE_DEFINITION[LaytheArgon] +{ + resourceName = ArgonGas +} +} \ No newline at end of file diff --git a/GameData/WarpPlugin/PlanetResourceData/oceanicresourcedefinitions.cfg b/GameData/WarpPlugin/PlanetResourceData/oceanicresourcedefinitions.cfg index 6a175077..05e74f70 100644 --- a/GameData/WarpPlugin/PlanetResourceData/oceanicresourcedefinitions.cfg +++ b/GameData/WarpPlugin/PlanetResourceData/oceanicresourcedefinitions.cfg @@ -1,40 +1,43 @@ -@OCEANIC_RESOURCE_DEFINITION[EveWater] -{ - resourceName = LqdWater -} -@OCEANIC_RESOURCE_DEFINITION[EveLithium] -{ - resourceName = Lithium -} -@OCEANIC_RESOURCE_DEFINITION[EveUF4] -{ - resourceName = UF4 -} -@OCEANIC_RESOURCE_DEFINITION[KerbinWater] -{ - resourceName = LqdWater -} -@OCEANIC_RESOURCE_DEFINITION[KerbinLithium] -{ - resourceName = Lithium -} -@OCEANIC_RESOURCE_DEFINITION[KerbinUF4] -{ - resourceName = UF4 -} -@OCEANIC_RESOURCE_DEFINITION[LaytheWater] -{ - resourceName = LqdWater -} -@OCEANIC_RESOURCE_DEFINITION[LaytheAmmonia] -{ - resourceName = Ammonia -} -@OCEANIC_RESOURCE_DEFINITION[LaytheLithium] -{ - resourceName = Lithium -} -@OCEANIC_RESOURCE_DEFINITION[LaytheUF4] -{ - resourceName = UF4 -} +@OCEANIC_RESOURCE_PACK_DEFINITION[InterstellarOceanicPack] +{ +@OCEANIC_RESOURCE_DEFINITION[EveWater] +{ + resourceName = Water +} +@OCEANIC_RESOURCE_DEFINITION[EveLithium] +{ + resourceName = Lithium +} +@OCEANIC_RESOURCE_DEFINITION[EveUF4] +{ + resourceName = UF4 +} +@OCEANIC_RESOURCE_DEFINITION[KerbinWater] +{ + resourceName = Water +} +@OCEANIC_RESOURCE_DEFINITION[KerbinLithium] +{ + resourceName = Lithium +} +@OCEANIC_RESOURCE_DEFINITION[KerbinUF4] +{ + resourceName = UF4 +} +@OCEANIC_RESOURCE_DEFINITION[LaytheWater] +{ + resourceName = Water +} +@OCEANIC_RESOURCE_DEFINITION[LaytheAmmonia] +{ + resourceName = Ammonia +} +@OCEANIC_RESOURCE_DEFINITION[LaytheLithium] +{ + resourceName = Lithium +} +@OCEANIC_RESOURCE_DEFINITION[LaytheUF4] +{ + resourceName = UF4 +} +} \ No newline at end of file diff --git a/GameData/WarpPlugin/PlanetResourceData/planetaryresourcedefinitions.cfg b/GameData/WarpPlugin/PlanetResourceData/planetaryresourcedefinitions.cfg index 5898f449..e8d7a7e0 100644 --- a/GameData/WarpPlugin/PlanetResourceData/planetaryresourcedefinitions.cfg +++ b/GameData/WarpPlugin/PlanetResourceData/planetaryresourcedefinitions.cfg @@ -1,437 +1,437 @@ -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Moho - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/moho_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Moho - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/moho_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 6 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Eve - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/eve_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 2.5 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Eve - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/eve_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 5 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Gilly - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/gilly_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 2.5 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Gilly - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/gilly_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 5 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Kerbin - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/kerbin_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 2 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Kerbin - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/kerbin_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 4 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Mun - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/mun_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 2 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Mun - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/mun_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 4 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Alumina - celestialBodyName = Mun - resourceName = Alumina - mapUrl = WarpPlugin/PlanetResourceData/mun_alumina - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/alumina_resource_point - displayThreshold = 1 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Water - celestialBodyName = Mun - resourceName = LqdWater - mapUrl = WarpPlugin/PlanetResourceData/mun_water - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/water_resource_point - displayThreshold = 1 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Minmus - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/minmus_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 2 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Minmus - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/minmus_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 4 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Water - celestialBodyName = Minmus - resourceName = LqdWater - mapUrl = WarpPlugin/PlanetResourceData/minmus_water - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/water_resource_point - displayThreshold = 1 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Duna - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/duna_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 1.8 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Duna - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/duna_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3.6 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Water - celestialBodyName = Duna - resourceName = LqdWater - mapUrl = WarpPlugin/PlanetResourceData/duna_water - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/water_resource_point - displayThreshold = 1 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Ike - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/ike_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 1.9 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Ike - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/ike_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3.8 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Alumina - celestialBodyName = Ike - resourceName = Alumina - mapUrl = WarpPlugin/PlanetResourceData/ike_alumina - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/alumina_resource_point - displayThreshold = 1 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Dres - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/dres_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Dres - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/dres_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3.5 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Laythe - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/laythe_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 1.5 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Laythe - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/laythe_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 5 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Vall - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/vall_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 0.001 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Vall - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/vall_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 0.003 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Water - celestialBodyName = Vall - resourceName = LqdWater - mapUrl = WarpPlugin/PlanetResourceData/vall_water - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/water_resource_point - displayThreshold = 2 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Tylo - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/tylo_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 1.8 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Tylo - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/tylo_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3.6 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Alumina - celestialBodyName = Tylo - resourceName = Alumina - mapUrl = WarpPlugin/PlanetResourceData/tylo_alumina - resourceScale = LINEAR_SCALE - scaleMultiplier = 1 - displayTexture = WarpPlugin/alumina_resource_point - displayThreshold = 1 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Bop - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/bop_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Bop - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/bop_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 5 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Pol - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/pol_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 3 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Pol - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/pol_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 5 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Uranium - celestialBodyName = Eeloo - resourceName = UF4 - mapUrl = WarpPlugin/PlanetResourceData/eeloo_uranium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 0.0006 - displayTexture = WarpPlugin/uranium_resource_point - displayThreshold = 0.001 -} -PLANETARY_RESOURCE_DEFINITION -{ - name = Thorium - celestialBodyName = Eeloo - resourceName = ThF4 - mapUrl = WarpPlugin/PlanetResourceData/eeloo_thorium - resourceScale = LOG_SCALE - scaleFactor = 1.0311580936394657748190008944693 - scaleMultiplier = 0.00014 - displayTexture = WarpPlugin/thorium_resource_point - displayThreshold = 0.001 +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Moho + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/moho_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Moho + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/moho_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 6 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Eve + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/eve_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 2.5 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Eve + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/eve_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 5 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Gilly + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/gilly_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 2.5 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Gilly + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/gilly_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 5 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Kerbin + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/kerbin_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 2 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Kerbin + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/kerbin_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 4 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Mun + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/mun_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 2 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Mun + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/mun_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 4 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Alumina + celestialBodyName = Mun + resourceName = Alumina + mapUrl = WarpPlugin/PlanetResourceData/mun_alumina + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/alumina_resource_point + displayThreshold = 1 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Water + celestialBodyName = Mun + resourceName = Water + mapUrl = WarpPlugin/PlanetResourceData/mun_water + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/water_resource_point + displayThreshold = 1 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Minmus + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/minmus_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 2 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Minmus + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/minmus_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 4 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Water + celestialBodyName = Minmus + resourceName = Water + mapUrl = WarpPlugin/PlanetResourceData/minmus_water + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/water_resource_point + displayThreshold = 1 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Duna + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/duna_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 1.8 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Duna + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/duna_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3.6 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Water + celestialBodyName = Duna + resourceName = Water + mapUrl = WarpPlugin/PlanetResourceData/duna_water + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/water_resource_point + displayThreshold = 1 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Ike + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/ike_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 1.9 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Ike + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/ike_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3.8 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Alumina + celestialBodyName = Ike + resourceName = Alumina + mapUrl = WarpPlugin/PlanetResourceData/ike_alumina + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/alumina_resource_point + displayThreshold = 1 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Dres + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/dres_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Dres + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/dres_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3.5 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Laythe + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/laythe_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 1.5 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Laythe + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/laythe_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 5 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Vall + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/vall_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 0.001 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Vall + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/vall_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 0.003 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Water + celestialBodyName = Vall + resourceName = Water + mapUrl = WarpPlugin/PlanetResourceData/vall_water + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/water_resource_point + displayThreshold = 2 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Tylo + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/tylo_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 1.8 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Tylo + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/tylo_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3.6 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Alumina + celestialBodyName = Tylo + resourceName = Alumina + mapUrl = WarpPlugin/PlanetResourceData/tylo_alumina + resourceScale = LINEAR_SCALE + scaleMultiplier = 1 + displayTexture = WarpPlugin/alumina_resource_point + displayThreshold = 1 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Bop + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/bop_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Bop + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/bop_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 5 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Pol + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/pol_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 3 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Pol + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/pol_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 5 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Uranium + celestialBodyName = Eeloo + resourceName = UF4 + mapUrl = WarpPlugin/PlanetResourceData/eeloo_uranium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 0.0006 + displayTexture = WarpPlugin/uranium_resource_point + displayThreshold = 0.001 +} +PLANETARY_RESOURCE_DEFINITION +{ + name = Thorium + celestialBodyName = Eeloo + resourceName = ThF4 + mapUrl = WarpPlugin/PlanetResourceData/eeloo_thorium + resourceScale = LOG_SCALE + scaleFactor = 1.0311580936394657748190008944693 + scaleMultiplier = 0.00014 + displayTexture = WarpPlugin/thorium_resource_point + displayThreshold = 0.001 } \ No newline at end of file diff --git a/GameData/WarpPlugin/ElectricPropellants.cfg b/GameData/WarpPlugin/Resources/ElectricPropellants.cfg similarity index 92% rename from GameData/WarpPlugin/ElectricPropellants.cfg rename to GameData/WarpPlugin/Resources/ElectricPropellants.cfg index 6cdc41a0..f5660cb1 100644 --- a/GameData/WarpPlugin/ElectricPropellants.cfg +++ b/GameData/WarpPlugin/Resources/ElectricPropellants.cfg @@ -1,112 +1,112 @@ -ELECTRIC_PROPELLANT -{ - name = Hydrogen - guiName = Liquid - ispMultiplier = 1 - efficiency = 0.72 - type = 11 - effectName = electric_hydrogen - PROPELLANT - { - name = LiquidFuel - ratio = 1 - DrawGauge = True - } - -} -ELECTRIC_PROPELLANT -{ - name = Argon - guiName = Argon - ispMultiplier = 0.22222 - efficiency = 0.76 - type = 11 - effectName = electric_argon - PROPELLANT - { - name = Argon - ratio = 1 - DrawGauge = True - } - -} -ELECTRIC_PROPELLANT -{ - name = Xenon - guiName = Xenon - ispMultiplier = 0.1234 - efficiency = 0.69 - type = 9 - effectName = electric_xenon - PROPELLANT - { - name = XenonGas - ratio = 1 - DrawGauge = True - } - -} -ELECTRIC_PROPELLANT -{ - name = Lithium - guiName = Lithium - ispMultiplier = 0.577 - efficiency = 0.86 - type = 9 - effectName = electric_red - PROPELLANT - { - name = Lithium - ratio = 1 - DrawGauge = True - } - -} -ELECTRIC_PROPELLANT -{ - name = MonoPropellant - guiName = MonoPropellant - ispMultiplier = 0.25 - efficiency = 0.52 - type = 11 - effectName = electric_argon - PROPELLANT - { - name = MonoPropellant - ratio = 1 - DrawGauge = True - } - -} -ELECTRIC_PROPELLANT -{ - name = Ammonia - guiName = Ammonia - ispMultiplier = 0.34 - efficiency = 0.54 - type = 11 - effectName = electric_ammonia - PROPELLANT - { - name = Ammonia - ratio = 1 - DrawGauge = True - } - -} -ELECTRIC_PROPELLANT -{ - name = QVP - guiName = Quantum Vacuum - ispMultiplier = 1.9 - efficiency = 0.78 - type = 8 - effectName = electric_qvp - PROPELLANT - { - name = VacuumPlasma - ratio = 1 - DrawGauge = True - } - +ELECTRIC_PROPELLANT +{ + name = Hydrogen + guiName = Liquid + ispMultiplier = 1 + efficiency = 0.72 + type = 11 + effectName = electric_hydrogen + PROPELLANT + { + name = LiquidFuel + ratio = 1 + DrawGauge = True + } + +} +ELECTRIC_PROPELLANT +{ + name = Argon + guiName = Argon + ispMultiplier = 0.22222 + efficiency = 0.76 + type = 11 + effectName = electric_argon + PROPELLANT + { + name = ArgonGas + ratio = 1 + DrawGauge = True + } + +} +ELECTRIC_PROPELLANT +{ + name = Xenon + guiName = Xenon + ispMultiplier = 0.1234 + efficiency = 0.69 + type = 9 + effectName = electric_xenon + PROPELLANT + { + name = XenonGas + ratio = 1 + DrawGauge = True + } + +} +ELECTRIC_PROPELLANT +{ + name = Lithium + guiName = Lithium + ispMultiplier = 0.577 + efficiency = 0.86 + type = 9 + effectName = electric_red + PROPELLANT + { + name = Lithium + ratio = 1 + DrawGauge = True + } + +} +ELECTRIC_PROPELLANT +{ + name = MonoPropellant + guiName = MonoPropellant + ispMultiplier = 0.25 + efficiency = 0.52 + type = 11 + effectName = electric_argon + PROPELLANT + { + name = MonoPropellant + ratio = 1 + DrawGauge = True + } + +} +ELECTRIC_PROPELLANT +{ + name = Ammonia + guiName = Ammonia + ispMultiplier = 0.34 + efficiency = 0.54 + type = 11 + effectName = electric_ammonia + PROPELLANT + { + name = Ammonia + ratio = 1 + DrawGauge = True + } + +} +ELECTRIC_PROPELLANT +{ + name = QVP + guiName = Quantum Vacuum + ispMultiplier = 1.9 + efficiency = 0.78 + type = 8 + effectName = electric_qvp + PROPELLANT + { + name = VacuumPlasma + ratio = 1 + DrawGauge = True + } + } \ No newline at end of file diff --git a/GameData/WarpPlugin/EnginePropellants.cfg b/GameData/WarpPlugin/Resources/EnginePropellants.cfg similarity index 91% rename from GameData/WarpPlugin/EnginePropellants.cfg rename to GameData/WarpPlugin/Resources/EnginePropellants.cfg index eeaae368..1458ec51 100644 --- a/GameData/WarpPlugin/EnginePropellants.cfg +++ b/GameData/WarpPlugin/Resources/EnginePropellants.cfg @@ -1,103 +1,103 @@ -BASIC_NTR_PROPELLANT -{ - name = Hydrolox - guiName = LFO - ispMultiplier = 0.6 - isLFO = true - PROPELLANT - { - name = LiquidFuel - ratio = 0.9 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1.1 - DrawGauge = False - } -} -BASIC_NTR_PROPELLANT -{ - name = Hydrogen - guiName = Liquid - ispMultiplier = 1 - isLFO = false - PROPELLANT - { - name = LiquidFuel - ratio = 1 - DrawGauge = True - } -} -BASIC_NTR_PROPELLANT -{ - name = Kethane - guiName = Kethane - ispMultiplier = 0.56 - isLFO = false - PROPELLANT - { - name = Kethane - ratio = 1 - DrawGauge = True - } -} -BASIC_NTR_PROPELLANT -{ - name = Methane - guiName = LiquidMethane - ispMultiplier = 0.56 - isLFO = false - PROPELLANT - { - name = LqdMethane - ratio = 1 - DrawGauge = True - } -} -BASIC_NTR_PROPELLANT -{ - name = Methalox - guiName = MethaLOx - ispMultiplier = 0.336 - isLFO = true - PROPELLANT - { - name = LqdMethane - ratio = 0.77727 - DrawGauge = True - } - PROPELLANT - { - name = Oxidizer - ratio = 1 - DrawGauge = false - } -} -BASIC_NTR_PROPELLANT -{ - name = Water - guiName = Water - ispMultiplier = 0.4714 - isLFO = false - PROPELLANT - { - name = LqdWater - ratio = 1 - DrawGauge = True - } -} -BASIC_NTR_PROPELLANT -{ - name = Ammonia - guiName = Ammonia - ispMultiplier = 0.6303 - isLFO = false - PROPELLANT - { - name = Ammonia - ratio = 1 - DrawGauge = True - } +BASIC_NTR_PROPELLANT +{ + name = Hydrolox + guiName = LFO + ispMultiplier = 0.6 + isLFO = true + PROPELLANT + { + name = LiquidFuel + ratio = 0.9 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1.1 + DrawGauge = False + } +} +BASIC_NTR_PROPELLANT +{ + name = Hydrogen + guiName = Liquid + ispMultiplier = 1 + isLFO = false + PROPELLANT + { + name = LiquidFuel + ratio = 1 + DrawGauge = True + } +} +BASIC_NTR_PROPELLANT +{ + name = Kethane + guiName = Kethane + ispMultiplier = 0.56 + isLFO = false + PROPELLANT + { + name = Kethane + ratio = 1 + DrawGauge = True + } +} +BASIC_NTR_PROPELLANT +{ + name = Methane + guiName = LiquidMethane + ispMultiplier = 0.56 + isLFO = false + PROPELLANT + { + name = LqdMethane + ratio = 1 + DrawGauge = True + } +} +BASIC_NTR_PROPELLANT +{ + name = Methalox + guiName = MethaLOx + ispMultiplier = 0.336 + isLFO = true + PROPELLANT + { + name = LqdMethane + ratio = 0.77727 + DrawGauge = True + } + PROPELLANT + { + name = Oxidizer + ratio = 1 + DrawGauge = false + } +} +BASIC_NTR_PROPELLANT +{ + name = Water + guiName = Water + ispMultiplier = 0.4714 + isLFO = false + PROPELLANT + { + name = Water + ratio = 1 + DrawGauge = True + } +} +BASIC_NTR_PROPELLANT +{ + name = Ammonia + guiName = Ammonia + ispMultiplier = 0.6303 + isLFO = false + PROPELLANT + { + name = Ammonia + ratio = 1 + DrawGauge = True + } } \ No newline at end of file diff --git a/GameData/WarpPlugin/IntakeEnginePropellants.cfg b/GameData/WarpPlugin/Resources/IntakeEnginePropellants.cfg similarity index 93% rename from GameData/WarpPlugin/IntakeEnginePropellants.cfg rename to GameData/WarpPlugin/Resources/IntakeEnginePropellants.cfg index 370c5e24..48bc776a 100644 --- a/GameData/WarpPlugin/IntakeEnginePropellants.cfg +++ b/GameData/WarpPlugin/Resources/IntakeEnginePropellants.cfg @@ -1,28 +1,28 @@ -ATMOSPHERIC_NTR_PROPELLANT -{ - name = Atmosphere - guiName = Atmospheric - ispMultiplier = 0.25 - isLFO = false - isJet = True - PROPELLANT - { - name = IntakeAtm - ratio = 1 - DrawGauge = True - } -} -ATMOSPHERIC_NTR_PROPELLANT -{ - name = OxygenatedAtmosphere - guiName = IntakeAir - ispMultiplier = 0.25 - isLFO = false - isJet = True - PROPELLANT - { - name = IntakeAir - ratio = 1 - DrawGauge = True - } +ATMOSPHERIC_NTR_PROPELLANT +{ + name = Atmosphere + guiName = Atmospheric + ispMultiplier = 0.25 + isLFO = false + isJet = True + PROPELLANT + { + name = IntakeAtm + ratio = 1 + DrawGauge = True + } +} +ATMOSPHERIC_NTR_PROPELLANT +{ + name = OxygenatedAtmosphere + guiName = IntakeAir + ispMultiplier = 0.25 + isLFO = false + isJet = True + PROPELLANT + { + name = IntakeAir + ratio = 1 + DrawGauge = True + } } \ No newline at end of file diff --git a/GameData/WarpPlugin/ReactorFuels.cfg b/GameData/WarpPlugin/Resources/ReactorFuels.cfg similarity index 79% rename from GameData/WarpPlugin/ReactorFuels.cfg rename to GameData/WarpPlugin/Resources/ReactorFuels.cfg index c39852fd..cec1d751 100644 --- a/GameData/WarpPlugin/ReactorFuels.cfg +++ b/GameData/WarpPlugin/Resources/ReactorFuels.cfg @@ -1,226 +1,232 @@ -REACTOR_FUEL_MODE -{ - name = FissionUF4 - ReactorType = 1 - GUIName = Uranium Tetraflouride - ChargedParticleRatio = 0.0 - Aneutronic = False - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = UF4 - FuelName = UF4 - UsagePerMW = 1.530542611476e-11 - Unit = l - } -} -REACTOR_FUEL_MODE -{ - name = FissionThF4 - ReactorType = 1 - GUIName = Thorium Tetraflouride - ChargedParticleRatio = 0.0 - Aneutronic = False - NormalisedReactionRate = 1.38 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = ThF4 - FuelName = ThF4 - UsagePerMW = 1.5602239756299e-11 - Unit = l - } -} -REACTOR_FUEL_MODE -{ - name = FissionUN - ReactorType = 2 - GUIName = Uranium Nitride Pellet - ChargedParticleRatio = 0.0 - Aneutronic = False - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = UraniumNitride - FuelName = UraniumNitride - UsagePerMW = 1.3498329125746e-11 - Unit = l - } -} -REACTOR_FUEL_MODE -{ - name = FusionDT - ReactorType = 12 - GUIName = Deuterium-Tritium - ChargedParticleRatio = 0.2 - Aneutronic = False - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = LqdDeuterium - FuelName = LqdDeuterium - UsagePerMW = 4.4222493e-12 - Unit = l - } - FUEL - { - name = LqdTritium - FuelName = LqdTritium - UsagePerMW = 7.3704155e-12 - Unit = l - } -} -REACTOR_FUEL_MODE -{ - name = FusionDHe3 - ReactorType = 8 - GUIName = Deuterium-Helium3 - ChargedParticleRatio = 0.8 - Aneutronic = False - NormalisedReactionRate = 0.07547 - NormalisedPowerConsumption = 3.89 - FUEL - { - name = LqdDeuterium - FuelName = LqdDeuterium - UsagePerMW = 4.521699702e-12 - Unit = l - } - FUEL - { - name = LqdHelium3 - FuelName = LqdHelium3 - UsagePerMW = 11.304249255e-12 - Unit = l - } -} -REACTOR_FUEL_MODE -{ - name = FusionHe3 - ReactorType = 8 - GUIName = Helium3 - ChargedParticleRatio = 1 - Aneutronic = True - NormalisedReactionRate = 0.05882 - NormalisedPowerConsumption = 7.31 - FUEL - { - name = LqdHelium3 - FuelName = LqdHelium3 - UsagePerMW = 18.8950526297e-12 - Unit = l - } -} -REACTOR_FUEL_MODE -{ - name = AIMMicrofission - ReactorType = 16 - GUIName = Microfission - ChargedParticleRatio = 0.80 - Aneutronic = False - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = LqdDeuterium - FuelName = LqdDeuterium - UsagePerMW = 4.521699702e-12 - Unit = l - } - FUEL - { - name = LqdHelium3 - FuelName = LqdHelium3 - UsagePerMW = 11.304249255e-12 - Unit = l - } - FUEL - { - name = UraniumNitride - FuelName = UraniumNitride - UsagePerMW = 3.72519685e-14 - Unit = l - } - FUEL - { - name = Antimatter - FuelName = Antimatter - UsagePerMW = 1.117559055e-17 - Unit = mg - } -} -REACTOR_FUEL_MODE -{ - name = Antimatter - ReactorType = 32 - GUIName = Antimatter - ChargedParticleRatio = 0.0 - Aneutronic = True - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = Antimatter - FuelName = Antimatter - UsagePerMW = 1.1111111111e-14 - Unit = mg - } -} -REACTOR_FUEL_MODE -{ - name = AIMMicrofusion - ReactorType = 64 - GUIName = Microfusion - ChargedParticleRatio = 0.80 - Aneutronic = False - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = LqdDeuterium - FuelName = LqdDeuterium - UsagePerMW = 4.68916989386e-12 - Unit = l - } - FUEL - { - name = LqdHelium3 - FuelName = LqdHelium3 - UsagePerMW = 11.7229247347e-12 - Unit = l - } - FUEL - { - name = UraniumNitride - FuelName = UraniumNitride - UsagePerMW = 1.2417322833e-14 - Unit = l - } - FUEL - { - name = Antimatter - FuelName = Antimatter - UsagePerMW = 1.117559055e-17 - Unit = mg - } -} -REACTOR_FUEL_MODE -{ - name = FissionUNDP - ReactorType = 128 - GUIName = Uranium Nitride Nanoparticle - ChargedParticleRatio = 0.83 - Aneutronic = False - NormalisedReactionRate = 1.0 - NormalisedPowerConsumption = 1.0 - FUEL - { - name = UraniumNitride - FuelName = UraniumNitride - UsagePerMW = 1.3498329125746e-11 - Unit = l - } +REACTOR_FUEL_MODE +{ + name = FissionUF4 + ReactorType = 1 + GUIName = Uranium Tetraflouride + ChargedParticleRatio = 0.0 + Aneutronic = False + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + FUEL + { + name = UF4 + FuelName = UF4 + UsagePerMW = 1.530542611476e-11 + Unit = l + } +} +REACTOR_FUEL_MODE +{ + name = FissionThF4 + ReactorType = 1 + GUIName = Thorium Tetraflouride + ChargedParticleRatio = 0.0 + Aneutronic = False + NormalisedReactionRate = 1.38 + NormalisedPowerConsumption = 1.0 + FUEL + { + name = ThF4 + FuelName = ThF4 + UsagePerMW = 1.5602239756299e-11 + Unit = l + } +} +REACTOR_FUEL_MODE +{ + name = FissionUN + ReactorType = 2 + GUIName = Uranium Nitride Pellet + ChargedParticleRatio = 0.0 + Aneutronic = False + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + FUEL + { + name = UraniumNitride + FuelName = UraniumNitride + UsagePerMW = 1.3498329125746e-11 + Unit = l + } +} +REACTOR_FUEL_MODE +{ + name = FusionDT + ReactorType = 12 + GUIName = Deuterium-Tritium + ChargedParticleRatio = 0.2 + Aneutronic = False + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + MeVPerChargedProduct = 0.88 + FUEL + { + name = LqdDeuterium + FuelName = LqdDeuterium + UsagePerMW = 1.1798317e-12 + Unit = l + } + FUEL + { + name = LqdTritium + FuelName = LqdTritium + UsagePerMW = 1.7697475627e-12 + Unit = l + } +} +REACTOR_FUEL_MODE +{ + name = FusionDHe3 + ReactorType = 8 + GUIName = Deuterium-Helium3 + ChargedParticleRatio = 0.8 + Aneutronic = False + NormalisedReactionRate = 0.26654375 + NormalisedPowerConsumption = 4.2647 + MeVPerChargedProduct = 1.079411 + FUEL + { + name = LqdDeuterium + FuelName = LqdDeuterium + UsagePerMW = 1.1294989075e-12 + Unit = l + } + FUEL + { + name = LqdHelium3 + FuelName = LqdHelium3 + UsagePerMW = 1.69424836125e-12 + Unit = l + } +} +REACTOR_FUEL_MODE +{ + name = FusionHe3 + ReactorType = 8 + GUIName = Helium3 + ChargedParticleRatio = 1 + Aneutronic = True + NormalisedReactionRate = 0.21896792423 + NormalisedPowerConsumption = 7.31 + MeVPerChargedProduct = 0.7144 + FUEL + { + name = LqdHelium3 + FuelName = LqdHelium3 + UsagePerMW = 2.418058664434e-12 + Unit = l + } +} +REACTOR_FUEL_MODE +{ + name = AIMMicrofission + ReactorType = 16 + GUIName = Microfission + ChargedParticleRatio = 0.80 + Aneutronic = False + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + MeVPerChargedProduct = 1.079411 + FUEL + { + name = LqdDeuterium + FuelName = LqdDeuterium + UsagePerMW = 1.1294989075e-12 + Unit = l + } + FUEL + { + name = LqdHelium3 + FuelName = LqdHelium3 + UsagePerMW = 1.69424836125e-12 + Unit = l + } + FUEL + { + name = UraniumNitride + FuelName = UraniumNitride + UsagePerMW = 3.72519685e-14 + Unit = l + } + FUEL + { + name = Antimatter + FuelName = Antimatter + UsagePerMW = 1.117559055e-17 + Unit = mg + } +} +REACTOR_FUEL_MODE +{ + name = Antimatter + ReactorType = 32 + GUIName = Antimatter + ChargedParticleRatio = 0.0 + Aneutronic = True + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + FUEL + { + name = Antimatter + FuelName = Antimatter + UsagePerMW = 1.1111111111e-14 + Unit = mg + } +} +REACTOR_FUEL_MODE +{ + name = AIMMicrofusion + ReactorType = 64 + GUIName = Microfusion + ChargedParticleRatio = 0.80 + Aneutronic = False + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + MeVPerChargedProduct = 1.079411 + FUEL + { + name = LqdDeuterium + FuelName = LqdDeuterium + UsagePerMW = 1.1294989075e-12 + Unit = l + } + FUEL + { + name = LqdHelium3 + FuelName = LqdHelium3 + UsagePerMW = 1.69424836125e-12 + Unit = l + } + FUEL + { + name = UraniumNitride + FuelName = UraniumNitride + UsagePerMW = 1.2417322833e-14 + Unit = l + } + FUEL + { + name = Antimatter + FuelName = Antimatter + UsagePerMW = 1.117559055e-17 + Unit = mg + } +} +REACTOR_FUEL_MODE +{ + name = FissionUNDP + ReactorType = 128 + GUIName = Uranium Nitride Nanoparticle + ChargedParticleRatio = 0.835 + Aneutronic = False + NormalisedReactionRate = 1.0 + NormalisedPowerConsumption = 1.0 + MeVPerChargedProduct = 0.7196 + FUEL + { + name = UraniumNitride + FuelName = UraniumNitride + UsagePerMW = 1.3498329125746e-11 + Unit = l + } } \ No newline at end of file diff --git a/GameData/WarpPlugin/Resources/ResourcesNuclear.cfg b/GameData/WarpPlugin/Resources/ResourcesNuclear.cfg index 2cfa6798..3112905c 100644 --- a/GameData/WarpPlugin/Resources/ResourcesNuclear.cfg +++ b/GameData/WarpPlugin/Resources/ResourcesNuclear.cfg @@ -1,244 +1,83 @@ -RESOURCE_DEFINITION -{ - name = ThermalPower - density = 0 - flowMode = ALL_VESSEL - transfer = PUMP -} -RESOURCE_DEFINITION -{ - name = Megajoules - density = 0 - flowMode = ALL_VESSEL - transfer = PUMP -} -RESOURCE_DEFINITION -{ - name = ChargedParticles - density = 0 - flowMode = ALL_VESSEL - transfer = NONE -} -RESOURCE_DEFINITION -{ - name = Antimatter - density = 0.000000001 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - unitCost = 4819.22 - isTweakable = false -} -RESOURCE_DEFINITION -{ - name = IntakeAtm - density = 0.005 - flowMode = ALL_VESSEL - transfer = PUMP -} -RESOURCE_DEFINITION -{ - name = UF4 - density = 0.005 - flowMode = ALL_VESSEL - transfer = NONE - isTweakable = true - unitCost = 0.26 -} -RESOURCE_DEFINITION -{ - name = ThF4 - density = 0.0042 - flowMode = ALL_VESSEL - transfer = NONE - isTweakable = true - unitCost = 0.063 -} -RESOURCE_DEFINITION -{ - name = UraniumNitride - density = 0.0143 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true - unitCost = 0.7436 -} -RESOURCE_DEFINITION -{ - name = Actinides - density = 0.005 - flowMode = ALL_VESSEL - transfer = NONE - isTweakable = false -} -RESOURCE_DEFINITION -{ - name = DepletedFuel - density = 0.005 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = false -} -RESOURCE_DEFINITION -{ - name = Science - density = 0 - flowMode = ALL_VESSEL - transfer = PUMP -} -RESOURCE_DEFINITION -{ - name = VacuumPlasma - density = 0.005 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = false -} -RESOURCE_DEFINITION -{ - name = Argon - density = 0.005 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true -} -RESOURCE_DEFINITION -{ - name = Aluminium - density = 0.0135 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true - unitCost = 0.027 -} -RESOURCE_DEFINITION -{ - name = ExoticMatter - density = 0 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = false -} -RESOURCE_DEFINITION -{ - name = Deuterium - density = 0.001 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true -} -RESOURCE_DEFINITION -{ - name = Lithium - density = 0.000534 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true - unitCost = 0.0032 -} -RESOURCE_DEFINITION -{ - name = Tritium - density = 0.001 - flowMode = ALL_VESSEL - transfer = PUMP -} -RESOURCE_DEFINITION -{ - name = WasteHeat - density = 0 - flowMode = ALL_VESSEL - transfer = NONE -} -RESOURCE_DEFINITION -{ - name = LqdMethane - density = 0.00186456 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true -} -RESOURCE_DEFINITION -{ - name = Plutonium-238 - density = 0.001 - flowMode = NO_FLOW - transfer = NONE -} -RESOURCE_DEFINITION -{ - name = Helium-3 - density = 0.001 - flowMode = ALL_VESSEL - transfer = PUMP -} -RESOURCE_DEFINITION -{ - name = LqdWater - density = 0.001 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true - unitCost = 0.000001 -} -RESOURCE_DEFINITION -{ - name = Alumina - density = 0.00399 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true -} -RESOURCE_DEFINITION -{ - name = H2Peroxide - density = 0.00145 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true - unitCost = 0.000517 -} -RESOURCE_DEFINITION -{ - name = Ammonia - density = 0.000681 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true - unitCost = 0.00044 -} -RESOURCE_DEFINITION -{ - name = LqdHelium - density = 0.000135 - flowMode = STACK_PRIORITY_SEARCH - transfer = PUMP - isTweakable = true - unitCost = 0.022 -} -RESOURCE_DEFINITION -{ - name = LqdDeuterium - density = 0.0001624 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true - unitCost = 0.6496 -} -RESOURCE_DEFINITION -{ - name = LqdTritium - density = 0.0002436 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true - unitCost = 2304.0 -} -RESOURCE_DEFINITION -{ - name = LqdHelium3 - density = 0.000059 - flowMode = ALL_VESSEL - transfer = PUMP - isTweakable = true - unitCost = 525.2 -} +RESOURCE_DEFINITION +{ + name = UF4 + density = 0.005 + flowMode = ALL_VESSEL + transfer = NONE + isTweakable = true + unitCost = 0.26 +} +RESOURCE_DEFINITION +{ + name = ThF4 + density = 0.0042 + flowMode = ALL_VESSEL + transfer = NONE + isTweakable = true + unitCost = 0.063 +} +RESOURCE_DEFINITION +{ + name = UraniumNitride + density = 0.0143 + flowMode = ALL_VESSEL + transfer = PUMP + isTweakable = true + unitCost = 0.7436 +} +RESOURCE_DEFINITION +{ + name = DepletedFuel + density = 0.005 + flowMode = ALL_VESSEL + transfer = PUMP + isTweakable = false +} +@RESOURCE_DEFINITION[Aluminium] +{ + %unitCost = 0.027 +} +@RESOURCE_DEFINITION[Lithium] +{ + %unitCost = 0.0032 +} +@RESOURCE_DEFINITION[Ammonia] +{ + %unitCost = 0.00044 +} +@RESOURCE_DEFINITION[LqdHelium] +{ + %unitCost = 0.022 +} +@RESOURCE_DEFINITION[Antimatter] +{ + %isTweakable = false + %unitCost = 1 +} +RESOURCE_DEFINITION +{ + name = LqdDeuterium + density = 0.0001624 + flowMode = ALL_VESSEL + transfer = PUMP + isTweakable = true + unitCost = 0.6496 +} +RESOURCE_DEFINITION +{ + name = LqdTritium + density = 0.0002436 + flowMode = ALL_VESSEL + transfer = PUMP + isTweakable = true + unitCost = 2304.0 +} +RESOURCE_DEFINITION +{ + name = LqdHelium3 + density = 0.000059 + flowMode = ALL_VESSEL + transfer = PUMP + isTweakable = true + unitCost = 525.2 +} diff --git a/GameData/WarpPlugin/Resources/ScienceDefs.cfg b/GameData/WarpPlugin/Resources/ScienceDefs.cfg index 10aeded3..5d0086e5 100644 --- a/GameData/WarpPlugin/Resources/ScienceDefs.cfg +++ b/GameData/WarpPlugin/Resources/ScienceDefs.cfg @@ -1,160 +1,207 @@ - -EXPERIMENT_DEFINITION -{ - id = magnetosphericExperiment - title = Analyse Magnetosphere - baseValue = 20 - scienceCap = 22 - dataScale = 2.5 - - requireAtmosphere = False - situationMask = 48 - biomeMask = 0 - - RESULTS - { - default = Recorded accurate measurements of the magnetosphere. - - KerbinInSpaceLow = The magnetic field is strong here, it appears to be shielding the area from cosmic rays. - KerbinInSpaceHigh = The magnetic field is much weaker at this altitude and there are far more cosmic rays. Is this safe? - - MunInSpaceLow = The magnetic field appears too weak to indicate the presence of a Keodynamo with the core of the Mun. - MunInSpaceHigh = Multiple checks reveal that this instrument is, in fact, switched on. - - MinmusInSpaceLow = There must be some iron under all that green. - MinmusInSpaceHigh = Staring at the detector result for hours yields a recording of the faintest magnetic fluctuation. - - GillyInSpace = It certainly didn't capture a magnetic field. - - MohoInSpaceLow = This magnetic field seems leaky but surprisingly strong for Moho's size and rotation rate. - MohoInSpaceHigh = The solar wind seems to be being deflected. - - EveInSpaceLow = This location seems safe enough from Cosmic Rays. - EveInSpaceHigh = Are those cosmic rays purple? - - DunaInSpace = This magnetic field is not very strong, the atmosphere doesn't look like it offers much protection either. - - IkeInSpace = Another tidally locked moon with a predictably weak magnetic field. - - DresInSpace = Perhaps its core isn't warm enough to support a powerful magnetic field. - - JoolInSpaceLow = Yikes! Is this reading supposed to go up to 11? - JoolInSpaceLow = There are an awful lot of particles trapped here. I wonder if they're useful... - JoolInSpaceLow = A lot of charged particles seem to be passing through the ship, is that normal? - JoolInSpaceHigh = The readings aren't usually so high so early. This could be a big one. - - LaytheInSpaceLow = Some kind of resonance seems to be generating heating of the core and strengthening the magnetic field. - LaytheInSpaceHigh = There is a strong magnetic field here... Jool's. - - VallInSpace = Valls magnetic field seems to be mostly being induced by Jool. Perhaps there is something conductive down there somewhere. - - TyloInSpaceLow = Seems to be generating a strong enough magnetic field to create a tiny embedded magnetosphere inside Jool's. - TyloInSpaceHigh = Detecting a small disruption of the Joolian magnetosphere. - - BopInSpace = Are Krakens magnetic? - - PolInSpace = A powerful magnetic field seems to be coming from that small green sphere over there! - - EelooInSpace = Eeloo does not appear to be ideally composed for the generation of powerful magnetic fields. - - SunInSpaceLow = The readings are off the scale. Perhaps the heat is causing a malfunction. - SunInSpaceHigh = The sun's magnetic field appears to utterly dominate the behaviour of charged particles in the solar system. - } -} - -EXPERIMENT_DEFINITION -{ - id = gasChromotographyMassSpectrometryExperiment - title = Analyse Magnetosphere - baseValue = 15 - scienceCap = 22 - dataScale = 2.5 - - requireAtmosphere = False - situationMask = 15 - biomeMask = 0 - - RESULTS - { - default = Recorded measurements of Atmospheric Composition. - - MohoFlyingLow = The occassional few Hydrogen atoms enter the detector. - MohoSrfLanded = Evidence indicates a surface-bound exosphere consisting primarily of Hydrogen. - - EveFlyingHigh = High in the atmosphere of Eve, clouds of Sulphuric Acid can be found. - EveFlyingLow = Here, instead of the distint clouds of Sulphuric Acid found in the higher atmosphere exist as a misty dense haze. - EveSrfLanded = The atmosphere of Eve seems to consist of primarily Carbon Dioxide and Nitrogen. - - GillyFlyingLow = There is certainly nothing here. - GillySrfLanded = Gilly may be trapping the most tenuous of exospheres but this is almost impossible to determine. - - MunFlyingLow = Occasional particles, mainly of Argon, appear to be escaping the Munar surface. - MunSrfLanded = The surface is surrounded by an extremely tenuous atmosphere, primarily consisting of Argon and Helium. - - DunaFlyingHigh = Up here, layers of atmospheric constituents can be detected that appear to have seperated based on their mass. - DunaFlyingLow = The atmosphere here contains primarily Carbon Dioxide. - DunaSrfLanded = Duna's atmosphere is mainly Carbon Dioxide but appears to contain trace amounts of Methane, where could it be coming from? - - DresFlyingLow = There of signs of water molecules escaping into space. - DresSrfLanded = Tiny quantities of water vapour can be detected. - - IkeFlyingLow = Like on the Mun occassional particles of Helium and Argon escape into space. - IkeSrfLanded = The tiniest traces of Helium, Argon and Sodium can be found in this tenuous exosphere. - - JoolFlyingHigh = High in Jool's atmosphere, the prime constituent of the atmosphere is gaseous Hydrogen. - JoolFlyingLow = Here there is evidence of Ammonia clouds, the Hydrogen now appears to exist as a supercritical fluid rather than a gas. - - LaytheFlyingHigh = There are elevated levels of Ozone high in Laythe's atmosphere. - LaytheFlyingLow = The atmosphere here is rather like Kerbin, quite a lot of Oxygen with Nitrogen as the primary buffer gas. - LaytheSrfLanded = Nitrogen and Oxygen are the main atmosphere constituents but elevated quantities of Carbon Dioxide are also present and pose a hazard to Kerbinoid life. - - VallFlyingLow = Occassional samples of icy particles escape into space. - VallSrfLanded = A few tenuous icy particles can be found trapped close to the surface. - - TyloFlyingLow = Particles indicative of an Oxygen exosphere can be sampled at this altitude. - TyloSrfLanded = A tiny concentration of Oxygen molecules can be found trapped close to the surface. - - BopFlyingLow = There is very little to detect here. - BopSrfLanded = If this moon has an exosphere, it cannot be determined by this instrument. - - PolFlyingLow = There does not appear to be anything detectable here. - PolSrfLanded = This instrument is not sensitive enough to detect any exosphere here. - - EelooFlyingLow = There does not appear to be anything to detect here. - EelooSrfLanded = A thin envelope of Nitrogen, Methane and Carbon Dioxide surrounds this planet. - } -} - -EXPERIMENT_DEFINITION -{ - id = FNSeismicProbeExperiment - title = Impactor Experiment - baseValue = 50 - scienceCap = 50 - dataScale = 1 - requireAtmosphere = False - situationMask = 64 - biomeMask = 0 - - RESULTS - { - default = An impact event was recorded which caused seismic activity. - } -} - -EXPERIMENT_DEFINITION -{ - id = ExpInterstellarTelescope - title = Infrared Telescope Experiment - baseValue = 1 - scienceCap = 1000 - dataScale = 1 - requireAtmosphere = False - situationMask = 63 - biomeMask = 0 - - RESULTS - { - default = Infrared telescope observations were recovered. - } + +EXPERIMENT_DEFINITION +{ + id = magnetosphericExperiment + title = Analyse Magnetosphere + baseValue = 20 + scienceCap = 22 + dataScale = 2.5 + + requireAtmosphere = False + situationMask = 48 + biomeMask = 0 + + RESULTS + { + default = Recorded accurate measurements of the magnetosphere. + + KerbinInSpaceLow = The magnetic field is strong here, it appears to be shielding the area from cosmic rays. + KerbinInSpaceHigh = The magnetic field is much weaker at this altitude and there are far more cosmic rays. Is this safe? + + MunInSpaceLow = The magnetic field appears too weak to indicate the presence of a Keodynamo with the core of the Mun. + MunInSpaceHigh = Multiple checks reveal that this instrument is, in fact, switched on. + + MinmusInSpaceLow = There must be some iron under all that green. + MinmusInSpaceHigh = Staring at the detector result for hours yields a recording of the faintest magnetic fluctuation. + + GillyInSpace = It certainly didn't capture a magnetic field. + + MohoInSpaceLow = This magnetic field seems leaky but surprisingly strong for Moho's size and rotation rate. + MohoInSpaceHigh = The solar wind seems to be being deflected. + + EveInSpaceLow = This location seems safe enough from Cosmic Rays. + EveInSpaceHigh = Are those cosmic rays purple? + + DunaInSpace = This magnetic field is not very strong, the atmosphere doesn't look like it offers much protection either. + + IkeInSpace = Another tidally locked moon with a predictably weak magnetic field. + + DresInSpace = Perhaps its core isn't warm enough to support a powerful magnetic field. + + JoolInSpaceLow = Yikes! Is this reading supposed to go up to 11? + JoolInSpaceLow = There are an awful lot of particles trapped here. I wonder if they're useful... + JoolInSpaceLow = A lot of charged particles seem to be passing through the ship, is that normal? + JoolInSpaceHigh = The readings aren't usually so high so early. This could be a big one. + + LaytheInSpaceLow = Some kind of resonance seems to be generating heating of the core and strengthening the magnetic field. + LaytheInSpaceHigh = There is a strong magnetic field here... Jool's. + + VallInSpace = Valls magnetic field seems to be mostly being induced by Jool. Perhaps there is something conductive down there somewhere. + + TyloInSpaceLow = Seems to be generating a strong enough magnetic field to create a tiny embedded magnetosphere inside Jool's. + TyloInSpaceHigh = Detecting a small disruption of the Joolian magnetosphere. + + BopInSpace = Are Krakens magnetic? + + PolInSpace = A powerful magnetic field seems to be coming from that small green sphere over there! + + EelooInSpace = Eeloo does not appear to be ideally composed for the generation of powerful magnetic fields. + + SunInSpaceLow = The readings are off the scale. Perhaps the heat is causing a malfunction. + SunInSpaceHigh = The sun's magnetic field appears to utterly dominate the behaviour of charged particles in the solar system. + } +} + +EXPERIMENT_DEFINITION +{ + id = gasChromotographyMassSpectrometryExperiment + title = Analyse Magnetosphere + baseValue = 15 + scienceCap = 22 + dataScale = 2.5 + + requireAtmosphere = False + situationMask = 15 + biomeMask = 0 + + RESULTS + { + default = Recorded measurements of Atmospheric Composition. + + MohoFlyingLow = The occassional few Hydrogen atoms enter the detector. + MohoSrfLanded = Evidence indicates a surface-bound exosphere consisting primarily of Hydrogen. + + EveFlyingHigh = High in the atmosphere of Eve, clouds of Sulphuric Acid can be found. + EveFlyingLow = Here, instead of the distint clouds of Sulphuric Acid found in the higher atmosphere exist as a misty dense haze. + EveSrfLanded = The atmosphere of Eve seems to consist of primarily Carbon Dioxide and Nitrogen. + + GillyFlyingLow = There is certainly nothing here. + GillySrfLanded = Gilly may be trapping the most tenuous of exospheres but this is almost impossible to determine. + + MunFlyingLow = Occasional particles, mainly of Argon, appear to be escaping the Munar surface. + MunSrfLanded = The surface is surrounded by an extremely tenuous atmosphere, primarily consisting of Argon and Helium. + + DunaFlyingHigh = Up here, layers of atmospheric constituents can be detected that appear to have seperated based on their mass. + DunaFlyingLow = The atmosphere here contains primarily Carbon Dioxide. + DunaSrfLanded = Duna's atmosphere is mainly Carbon Dioxide but appears to contain trace amounts of Methane, where could it be coming from? + + DresFlyingLow = There of signs of water molecules escaping into space. + DresSrfLanded = Tiny quantities of water vapour can be detected. + + IkeFlyingLow = Like on the Mun occassional particles of Helium and Argon escape into space. + IkeSrfLanded = The tiniest traces of Helium, Argon and Sodium can be found in this tenuous exosphere. + + JoolFlyingHigh = High in Jool's atmosphere, the prime constituent of the atmosphere is gaseous Hydrogen. + JoolFlyingLow = Here there is evidence of Ammonia clouds, the Hydrogen now appears to exist as a supercritical fluid rather than a gas. + + LaytheFlyingHigh = There are elevated levels of Ozone high in Laythe's atmosphere. + LaytheFlyingLow = The atmosphere here is rather like Kerbin, quite a lot of Oxygen with Nitrogen as the primary buffer gas. + LaytheSrfLanded = Nitrogen and Oxygen are the main atmosphere constituents but elevated quantities of Carbon Dioxide are also present and pose a hazard to Kerbinoid life. + + VallFlyingLow = Occassional samples of icy particles escape into space. + VallSrfLanded = A few tenuous icy particles can be found trapped close to the surface. + + TyloFlyingLow = Particles indicative of an Oxygen exosphere can be sampled at this altitude. + TyloSrfLanded = A tiny concentration of Oxygen molecules can be found trapped close to the surface. + + BopFlyingLow = There is very little to detect here. + BopSrfLanded = If this moon has an exosphere, it cannot be determined by this instrument. + + PolFlyingLow = There does not appear to be anything detectable here. + PolSrfLanded = This instrument is not sensitive enough to detect any exosphere here. + + EelooFlyingLow = There does not appear to be anything to detect here. + EelooSrfLanded = A thin envelope of Nitrogen, Methane and Carbon Dioxide surrounds this planet. + } +} + +EXPERIMENT_DEFINITION +{ + id = FNSeismicProbeExperiment + title = Impactor Experiment + baseValue = 50 + scienceCap = 50 + dataScale = 1 + requireAtmosphere = False + situationMask = 64 + biomeMask = 0 + + RESULTS + { + default = An impact event was recorded which caused seismic activity. + } +} + +EXPERIMENT_DEFINITION +{ + id = ExpInterstellarTelescope + title = Infrared Telescope Experiment + baseValue = 1 + scienceCap = 1000 + dataScale = 1 + requireAtmosphere = False + situationMask = 63 + biomeMask = 0 + + RESULTS + { + default = Infrared telescope observations were recovered. + } +} + +EXPERIMENT_DEFINITION +{ + id = ExpKSPIScienceLab + title = Science Lab Experiments + baseValue = 1 + scienceCap = 1000 + dataScale = 1 + requireAtmosphere = False + situationMask = 63 + biomeMask = 0 + + RESULTS + { + default = Science lab experiments were recovered. + } +} + +EXPERIMENT_DEFINITION +{ + id = ExpKSPIComputerCore + title = Computer Core Science Developments + baseValue = 1 + scienceCap = 1000 + dataScale = 1 + requireAtmosphere = False + situationMask = 63 + biomeMask = 0 + + RESULTS + { + name = experimentresults + default = is musing on Grand Unification Theories. + default = is pondering extensions to the Standard Model. + default = is considering the physical validity of renormalisation. + default = is developing the theory of Quark Matter. + default = is postulating methods of reconciling General Relativity with Quantum Mechanics. + default = realises that preferred interpretation of Quantum Mechanics is physically irrelevant but is considering the topic anyway. + default = is close to explaining the vacuum catastrophe. + default = is working on solving the Black Hole Information Paradox. + default = is investigating violations of CP-symmetry. + default = is definining the relative density of regular prime numbers. + default = is developing approaches for integer factorisation in polynomial time. + default = is attempting to explain the existence of Baryon asymmetry. + default = is developing experimental techniques to probe the existence of higher spatial dimensions. + } } \ No newline at end of file diff --git a/GameData/WarpPlugin/TweakScaleConfig/addition.cfg b/GameData/WarpPlugin/TweakScaleConfig/addition.cfg new file mode 100644 index 00000000..027a89b2 --- /dev/null +++ b/GameData/WarpPlugin/TweakScaleConfig/addition.cfg @@ -0,0 +1,28 @@ +@PART[microwaveReceiver] +{ + MODULE + { + name = TweakScale + type = surface + defaultScale = 1.25 + } +} +@PART[microwaveReceiver_micro] +{ + MODULE + { + name = TweakScale + type = surface + defaultScale = 0.625 + } +} +@PART[vista] +{ + MODULE + { + name = TweakScale + type = stack + defaultScale = 3.75 + scaleFactors = 3.75, 5.0, 7.5 + } +} \ No newline at end of file diff --git a/GameData/WarpPlugin/WarpPluginSettings.cfg b/GameData/WarpPlugin/WarpPluginSettings.cfg index 162f4b27..a1ab1f20 100644 --- a/GameData/WarpPlugin/WarpPluginSettings.cfg +++ b/GameData/WarpPlugin/WarpPluginSettings.cfg @@ -1,13 +1,15 @@ -WARP_PLUGIN_SETTINGS -{ - name = WarpPluginSettings - HydrogenResourceName = LiquidFuel - OxygenResourceName = Oxidizer - AluminiumResourceName = Aluminium - MethaneResourceName = LqdMethane - ArgonResourceName = Argon - WaterResourceName = LqdWater - HydrogenPeroxideResourceName = H2Peroxide - AmmoniaResourceName = Ammonia - ThermalMechanicsDisabled = False +WARP_PLUGIN_SETTINGS +{ + name = WarpPluginSettings + HydrogenResourceName = LiquidFuel + OxygenResourceName = Oxidizer + AluminiumResourceName = Aluminium + MethaneResourceName = LqdMethane + ArgonResourceName = ArgonGas + WaterResourceName = Water + HydrogenPeroxideResourceName = H2Peroxide + AmmoniaResourceName = Ammonia + ThermalMechanicsDisabled = False + SolarPanelClampedHeating = True + RecieverTempTweak = True } \ No newline at end of file diff --git a/GameData/WarpPlugin/changelog.txt b/GameData/WarpPlugin/changelog.txt index f198cc8a..31776924 100644 --- a/GameData/WarpPlugin/changelog.txt +++ b/GameData/WarpPlugin/changelog.txt @@ -1,369 +1,428 @@ -Version 0.12.1 --Wrote new resource referencing system to avoid resource name bugs (fixes cryostat, etc, bugs) --Rewrote magnetic field system for planets and fixed abnormal radiation values --Types of radiation can now be distinguished internally --Fixed Tritium breeding in reactors --Fixed power consumption in inertial confinement reactors --Tokamaks start with tritium breeding turned on --Improved atmospheric intake code --Added turn off reactor button for nuclear reactors to the control system interface --Fixed prices --Added Taverius additions to B9 cargo bay radiators --Some code reorganisation - -Version 0.12.0 --0.24.2 Compatibility --New Eletric Engine Effects --New Electric Engine System --New Reactor Code + Reactor Control System interface --Vastly improved VAB info for Reactor and Electric Engines --Implemented Oktav radiator glow + background He-3 decay --Changed fusion fuels to correct densities --Fixed Telescope experiment and integrated it with stock science system --Fixed Alcubierre drive volume --Added first attempt at part costs --Added first attempt at resource costs - -Version 0.11.0 --Toolbar Integration --Updated tech tree with additional fusion power node --New Computer Core Model (by AArtisan) --New 0.625 Pebble bed/dusty plasma reactor (model by AArisan) --New Large 3.75m Refinery which does processing and resource extraction (model by Aartisan) --Added Haber process (to produce ammonia) to Refinery --Improved impactor mechanics --Direct conversion max power fixed, fixes problems generally experienced with fusion and microwave transmitters --Fixed thrust transform with small arcjet engine --Default generator Electric Charge set to 1000 - -Version 0.10.3 --Integrated Impactor experiment into the stock science system --Fixed zero resource extraction rate at low timewarp --Fixed refinery monopropellant conversion rate --Fixed overheating with atmospheric engines --Fixed Tritium breeding rate - -Version 0.10.2 --Fixed thrust asymmetry issue with fusion and direct conversion generators --Impactor detection improvements --Improvement of Thermal UI handling of microwave receivers --Fixed Antimatter Initated Reactor cfg --Lithium comes with Lithium tank by default --Minor Antimatter tank ElectricCharge handling improvements - -Version 0.10.1 --Fixed Plasma thruster loading bug --Switched Antimatter Initiated Reactor to UraniumNitride fuel (instead of UF4). --Fixed Antimatter Initated Reactor Resource amounts --New planet science curve from impactor experiment (more science everywhere except Kerbin) --Fixed some typos and included some missing part descriptions --Thermal helper toggle key changed to "I" --Fixed Gamma Ray Spectrometer orientation and attachment --Fixed Radial Tank attachment --Tritium radioactive decay added to reactors - -Version 0.10 --Added Thermal Mechanics Helper (toggle with 'T' key in VAB) --Added Large Fusion Reactors (by AArtisan) --Added Antimatter Initiated Fission/Fusion reactor (by AArtisan) --Added Solar Sail (by SasquatchM) --Added extra fission reactors - particle bed/dusty plasma (by AArtisan) --Added augmented arcjet electrical thruster (by AArtisan) --Added IR telescope (with Kerbol gravitational lens experiment capability) --Added inline refinery --Added refinery option to produce Uranium Nitride fuel --Integration with ORS (fixes resource generation/consumption bugs since 0.23) --Changed accelerometer to new impactor experiment (smash things into planets in the name of science!) --Changed antimatter factory rates based on tech level, added low tech antimatter bottle to store tiny quantities of antimatter for new reactor --Hexcans replaced by unique radial tank (by Vaporlynx) --Fixed second Van Allen belt for radiation detection purposes and added surface radiation levels --Misc bug fixes - -Version 0.9.2 --Added 62.5cm thermal rocket and plasma thruster. --Added 2.5m thermal turbojet. --Reverted to 0.9 atmospheric code and fixed application, engine atmospheric performance should now be optimal --Added tweakable option for reactors to start disabled in the VAB --Unupgraded generator efficiency raised to a theoretical maximum of 31% - -Version 0.9.1 --Methane tank replaced and new smaller tank more suitable for landers --Fixed Reactor and Generator Upgrades --Fixed loading of warp plugin settings --MJ treatment of plasma engines improved --Megajoule display now responds to F2 and is hidden for vessels with no appropriate power supply --Improvements to atmospheric engine code --Tritium breeding option can now be selected - due to stock problem this will only function while ship is unfocused or at moderate time acceleration --Expanding refinery in VAB workaround --More info on radiators --Atmospheric intake removed from VAB --DT magnetometer rerunnable - -Version 0.9 --New Megajoule power supply/consumption display! --Massively expanded resource system including atmopsheric and oceanic resources definitions - aluminium and water mining integrated into existing planetary resource system --New resource scanning and science parts - Gas chromatograph and Liquid chromatograph mass spectrometers for analysing atmosheric and oceanic composition --New resources: Alumina (Aluminium Oxide), LqdWater, H2Peroxide and Ammonia --ISRU production of Monopropellant now possible --Lithium and Uranium extraction from seawater now possible (very slowly) --New Duna water resource map - means lots more water at the poles --New tweakable generator mode - Direct Conversion Electric Generator, which works with ChargedPower from fusion reactors --Fusion reactor tweakable fuel modes - Deuterium/Helium-3 and Helium-3 --Fission reactor Uranium/Thorium modes tweakable in VAB --Thermal rocket propellants tweakable in the VAB - TWR, delta-v and Isp calculations now compatible with MechJeb --New precooler module, replaces the stock radial engine body (which doesn't do anything) - atmospheric engines overheat at very high velocities unless precoolers are directly attached to intakes --Atmospheric performance of engines vastly improved --Thermal Mechanics improvements - radiators will find a thermodynamic equilibrium, generator efficiencies increased to compensate --Myrten's microwave routing algorithm added --Refinery totally redone --New generic resource extraction module for easy modding! --Refinery functional attachment nodes reversed --Thermal rocket can use LqdWater or Ammonia as propellant --B9 cargo bays act as radiators --Antimatter Tank power supply improvements --Supply of stock electric charge from megajoule resource managed finally fixed --Reactor temperatures fixed --Thermal jet 0 thrust after re-entry problem fixed --Antimatter collector GUI improvements --Fixed magnetic field data - -Version 0.8.2 --Different plasma engine propellants have different efficiencies, added monopropellant (hydrazine) as a fuel option --antimatter tanks charge use variable based on size --Jool 0 temperature radiator bug fixed --extensive microwave fixes - conservation of energy now respected --antimatter consumption with multiple tanks fixed --generator improvements, use better resource manager API --radiation improvements + second van allen belt --reactor supports unupgradeable types --electrolysis rate fix --resource manager electricity consumption fix --resource manager negative consumption bug prevented --various conversions to double precision to improve accuracy --removed more constants from part modules - -Version 0.8.1 --Microwave fix for vessels with more than one transmitter --Improved resource manager handling of high time acceleration --Fixed the solar panel power curves and made the solar panel waste heat module and inverse square law fix apply to all solar panels, rather than just stock ones --Fixed Tritium breeding with fusion reactors --Rewrote the antimatter reactor consumption code to a custom method, which should prevent the reactor power output from ever unexpectedly dropping down -to zero while you still have fuel and need power. --Changed Refinery to remove top attach node, this prevents problems with it failing to attach at certain times in the VAB --Applied radius fixes to the generator meaning that a generator works best when paired with a reactor of the right size --Made propellant definitions for the nuclear and electric engines compatible with ModuleManager --Updated RealFuels compatibility file --Tweaked fusion resource consumption rates to make them correct --Removed all the const definitions from the science lab and refinery and moved them to a seperate class, for some reason KSP sometimes takes offense to these on part loading. - -Version 0.8 --Added resource system for Uranium and Thorium mining --Added new nuclear reactor models by Vaporlynx --Added nuclear reactor thorium fuel options - as well as EVA shutdown/restart and refuel options --Added Gamma ray spectrometer for resource scanning --Nuclear reactor temperatures and thermal rocket isp correlation adjusted (doesn't affect engine performance) --Existing small nuclear reactor repurposed into a fusion reactor - uses Deuterium and Tritium fuel + requires power to maintain --Added Microwave Thermal Rocket - much of the code and the models by Conti --Total rewrite of Microwave transmission system, solar and nuclear power can be used together, plus proper relay functionality --Added methane oxygen rocket and ISRU sabatier process + methane oxygen fuel tank --Added refinery part to handle resource mining, nuclear fuel reprocessing and electrolysis --Electrolysis option removed from science labs --Computer core fixed for Linux --Computer core science persistence fixed --Resource manager fixed to avoid free thrust bugs --Thrust asymmetry fixed --Liquid Fuel + Oxidiser now provides proper thrust --Solar Panel inverse square law fixed, works with stock solar system and RSS --Added science lab notification of amount of science added --Improved Antimatter storage tank code --Various GUI fixes - -Version 0.7.4 --Added option to stop/start charging antimatter tank when it doesn't need the charge --Added ZZZ's small radial radiator --Fixed generator attachment null reference exception --Fixed same possible bug in thermal nozzle (it probably isn't possible here but best to be on the safe side) - -Version 0.7.3 --Improved Engine information reporting in the VAB --Engines will power up their reactor if the reactor is shutdown in order to get thrust --Fixed resource manager NaN power bug --Fixed asymmetric thrust bug - -Version 0.7.2 --TWR limit and intake limit added to thermal nozzle to prevent flameout, including a lot of work from Conti --All intakes will now create IntakeAtm as well as IntakeAir, again with a lot of help from Conti --New Hexcan textures by bac9 --Rewrote Thermal Nozzle And Electrical Generator from scratch for better performance + fewer bugs --Thermal nozzle will now maintain a constant fuel usage rate - atmosphere affects thrust --Antimatter tanks no longer require having antimatter inside to recharge --Altered 1.25m Antimatter reactor to bring it more into line with the others, excessive TWR reduced and Isp improved --Fixed animation states of science lab/reactor --Fixed bug where LiquidFuel could be used as Kethane --Made reactors more resilient to autoshutdown - particularly time acceleration waste heat spikes - -Version 0.7.1 --Added new KIWI nuclear reactor model by ZZZ --1.25m Plasma Thruster has maximum 25GW power throughput and reduced mass to 1. 2.5m Plasma Thruster has maximum 200GW power throughput, mass remains 6. --Rewrote Atmospheric Intakes/Scoops --Atmospheric Scoop no longer requires attached intake --Fixed Hybrid Thermal Turbojet auto-upgrade --Fixed Plasma Thruster auto-upgrade --Fixed UF6/DUF6 draw/supply to make them even --Fixed Science lab persistent science --Fixed exception in PartLoader --Fixed generator consuming all waste heat when reactor inactive --Improved resource manager performance at high time acceleration - -Version 0.7 --Integration with stock science system/career mode --Added tech tree extension using TreeLoader --Added magnetospheric science experiment --Added antimatter tank created by ZZZ --Nuclear Reactors that shutdown from overheating can be restored by Kerbal EVA work --Generator cold bath Temperature based off average radiator temperature - efficiency goes down with increased temperature! --Antimatter Tanks must be powered --Reactors, Microwave receivers and Solar panels shutdown when WasteHeat bar reaches 95% --Radiators won't get hotter than reactor temperature --Radiators will explode if the waste heat bar reaches 100% --Fixed Microwave Receiver power detection/reception when disabled --Fixed DUF6 reprocessing - -Version 0.6.2 --Added Duna ISRU, water electrolysis with extra energy cost for baking water out of the soil --Added persistence to Computer Core science production and reactor Lithium consumption/Tritium production --Added warning message for undetectable propellant files --Changed nuclear reactor base power outputs to 1.5MW, 40MW, 500MW and 3GW --Revised down nuclear reactor masses to 0.225, 1.5, 8 and 28 --Changed vista engine to require 2.5GW of power (instead of 1.5GW), upped vista thrust to 1100kN --Kerbol now has scientific value --Reconfigured attachment node strengths of 3.75m for better structural integrity --Reduced mass of thermal rocket nozzles, 3.75m now mass = 3, 2.5m now mass = 1.5 and 1.25m now mass 0.4. Throttle will scale down with ratio of attachment areas if you use the wrong size nozzle on the wrong size reactor. --Removed all constructors and placed initialised code in OnStart methods (this should help avoid various unity related problems) --Fixed Solar Panel collector area code --Fixed science lab antimatter persistence --Fixed multiple generator to one reactor plasma engine bug --Fixed Science lab malfunctioning after vessel switch --Amount of DUF6 that is reprocessable will drop after each reprocessing cycle - -Version 0.6.1 --Added waste heat generation to all stock Solar Panels --Added Lithium and Deuterium/Tritium Tanks --Added Inline radiators created by Kerbtrek --Added microwave nuclear transmission and relay functionality created by Conti --Better inverse square law for all stock Solar Panels --Nuclear reactors can turn Lithium into Tritium using Tritium Breeding option --Changed DT Vista to use Tritium instead of Lithium fuel --Changed DT Vista to capacity 15 Deuterium and 15 Tritium --Added Lithium fuel option for Plasma engines --Small rebalancing to science to incentivise landing on planets, landing will grant you double the science rate on most planets/moons,2.5x on Eve and 3x on Tylo --Electrolysis of Aluminium/Oxygen possible on Tylo --Radiation safety features not engaging quickly enough will no longer endanger Kerbal lives --Plasma engine heat generation fixed --ThermalPower flow changed to ALL_VESSEL --Lithium and Deuterium now pumpable --Generators and Engines not properly detected upgraded Reactor fixed --Propellant loader path fixed for Linux compatability --Fixed atmospheric altitude detection - stops improper radiator detachment --Improved thermal rocket propellant autodetection --Fixed 1.25m antimatter reactor antimatter consumption rates - -Version 0.6 --Added WasteHeat and Radiators --Added lots of models created by ZZZ (Antimatter reactor, 2 generators, DT magnetometers, phased array transmitters/receivers etc) --Added deuterium centrifuge option to science lab --Electric charge now provided in needed amounts by generator, rather than arbitrary 1000 figure --Changed nuclear turbojet parameters such that, with some effort, it can be used to fly --Warp effects scale to proper size --Fixed Thermal engine NullReferenceException when not physics loaded but not selected ship --Microwave beamed receiver now must be pointed at the transmitter or losses will occur --Fixed Megajoule utilisation/plasma engine bugs --Fixed MechJeb prevent overheats locking the throttle at zero - - -Version 0.5.1 --Fixed energy consumption continuing while ExoticMatter full bug --Fixed energy generation stopping when Megajoules full + Plasma engine thrust bug - -Version 0.5 --Added DT Vista Engine Inertial Fusion engine (Credit to ZZZ for the amazing modelling work on this engine) --Added science lab IVA (Credit to ZZZ) --Added power management system --Added science transmission/reception options to computer core --Added option to harvest Deuterium from Jool's atmosphere --Added on/off options to Microwave Receiver --Warp drive no longer selectable as root part --Fixed science lab antimatter production --Fixed resource management system unpredictability on docking/undocking --Fixed science lab loading bug --Fixed plasma engine incorrectly detecting number of active engines bug - -Version 0.4.2 --Science Lab Loading Bug Fixed --Plasma Engine upgrade cost not being deducted bug fixed. - -Version 0.4.1 --Added Antimatter Factory resource persistence --Added science transmission/receipt --Fixed Computer Core Upgrade --Fixed Plasma Engine Upgrade --Fixed incorrect resource deprived display --Fixed unlimited warp drive deactivation to gain speed bug --Fixed warp drive still consuming resources after fully charged bug - -Version 0.4 --Rebranded to KSP Interstellar --Beta phase begins --Warp Drive, Antimatter Collector, Science lab Models added --Warp Animation and Sound --New parts (2 more warp drives, computer core) --Space solar parts now animate according to their function (Receivers deploy when they are receiving some power, Transmitters deploy when activated) --New resource handler - should result in much better performance all round, especially at high timewarp speeds --Resource prioritisation prevents you have to turn off generators to power engines --Plasma thruster now scales its thrust depending upon how many plasma thrusters are attached and active --Plasma thruster default propellant is now LiquidFuel, can also use Argon or Xenon (LiquidFuel is best for Isp, Xenon best for thrust, Argon in the middle) --Upgrades added for warp drive, antimatter reactors and thermal turbojet --Thermal turbojet can now use stock Air Intakes for propellant as well as my Atmospheric Intakes --Warp Drives now use ExoticMatter, generated by power, rather than by acting as a huge battery for Megajoules --Fixed Warp Vector persistence bug, should again be safe to activate the warp drive, leave the game and then deactivate the warp drive when you next return. --Prevented Thermal Rockets functioning with no ThermalPower source - -Version 0.3.2 --Fixed negative thrust and negative efficiency bugs when parts are loaded in atypical orders --Fixed science rate when science labs are not active --Altered science rate to account for stupidity of Kerbal crews (stupid Kerbals generate less science while clever Kerbals generate more) - -Version 0.3.1 --Science is now generated passively even when science labs are not the active vessel. --Antimatter and Uranium is now used passively by vessels even when inactive (provided the reactor is enabled) --Updated antimatter matter tank model to the one created by SpaceK531 --Now capable of performing water electrolysis on the icy surface of Vall - -Version 0.3 -New Features: --Science and upgradeable parts: Build science labs to collect science and use it to develop upgrades for certain rocket parts. --Nuclear Fuel Reprocessing: Turn your depleted nuclear fuel back into useful fissionable material --More In Situ Resource Utilisation: Electrolysis of water and aluminium oxide. --Antimatter factory: Produce antimatter with huge amounts of power --Added Aluminium Hybrid Rocket --Added Liquid Fuel tanks --Added propellant options to nuclear thermal rockets - burn liquid fuel+oxidiser, liquid fuel or kethane. - -Bug Fixes: --Fixed Thermal Rocket flameout behaviour --Fixed Ship-breaking bug when Brayton Turbine becomes the root vessel part --Plasma engine now detects the power ouput of generators on the ship it is attached to and calculates thrust accordingly. - -Version 0.2 -Changes: --Warp Drive required power now scales with rocket mass, big rockets need more power. --Added new nuclear reactors and tiny brayton turbine. --Added Microwave solar power transmitter/receiver system. --Added planetary magnetic probe. --Added atmospheric intakes/scoop. - - -Bugfixes: --Fixed Thermal Rocket Nozzle behaviour with manual activation and staging. It will no longer function in any circumstance without thermal power from a reactor. --Fixed Brayton Cycle Gas turbines generating power with no input. +Version 0.13.6 +-Changed microwave reciever radiator heat clamp. Fix is togglable with RecieverTempTweak option in PuginSettings.cfg +-Computer Core now has maximum autopilot capabilities. +-Helium cryostat editor cathegory changed from science to fuel. +-Fixed water and argon resource mining and processing. + +Version 0.13.5 +-Legacy bug, wich caused all WasteHeat production to cease if ThermalMechanicsDisabled is set to False, was fixed. Now thermal mechanics works like in good old versions. +-Radiator heat convection rate now depends not from the maximum radiator temperature, but from the current one. Expect lower ground-based power plants effeciency, due to higher radiator temperatures. +-Microwave transmitters animation is now correctly played. +-Microwave network manager fixes, thanks to Jarardo1's bug report. List of active transmitters and relays is now formed and maintained correctly. +-Line of sight check in microwave code corrected. +-Fission reactor code corrected. I doesn't conflict with Thermal UI helper in the VAB any more. +-TechManager now reconstructs science tree on every RnD open. That should solve the issue with stock tech tree reappearing after some time. +-Accelerometer sensor now handles both vanilla science experiment and Interstellar impactor one. It's done for career missions compatibility. + +Version 0.13.4 +-Initial CRP adaptation changes. Most gases and liquid resources are now taken from CRP, but reactor fuel and some other stuff can't be shared that easy (mostly isotopes and salts). Look at Resources/ResourcesNuclear.cfg to see native to Interstellar resources. +-Antimatter tank cost fix. It's done by fixing KSPI_scale_fixes.cfg. Sorry, but it involves changing the CRP antimatter unit cost and tweakable status. I know this is bad, but otherwise there could be serious game balance flaws (like starting with full antimatter tank, or collecting it and then selling it for huge amount of credits). Antimatter cost is set to 1. +-WarpPlugin folder reorganization. +-Renamed tech tree, so it explicitly states KSP version. On your save load the game will ask you about the tech tree. Load KSPI_boris_090. + +Version 0.13.3 +-Solar panel heat tweak from 0.13.2 is now togglable option in WarpPluginSettings.cfg +-Fixed 3.5m fusion reactor .cfg to scale nods well with TweakScale +-Old TweakScale configs for Interstellar mod revisioned. Now reactor power scales with size correctly. + +Version 0.13.2 +-Science tree loading bug fixes (yes, again, and I hope, for good). +-Fixed wrong particle FX for 0.625m plasma engine. +-Added micro microwave power reciever dish (just scaled down version of standard one, for small crafts). +-Changed solar panel waste heat generation formula as explained here: http://forum.kerbalspaceprogram.com/...=1#post1629497 +-Fixed displayed ISP for arcjet thrusters for correct Kerbal Engineer delta-v predictions. + +Version 0.13.1 +-Microvawe network behaviour is now more stable, as is it's performance. +-Adapted Interstellar mod and TechManager for KSP version 0.90 +-Nothing's changed in gameplay, it's adaptation and bugfix release. +-TweakScale v1.50 compatibility +-Science tree loading bug fixes + +Version 0.13 +-Added magnetic nozzles +-Capped thermal rockets at ~3000s Isp +-New refinery system with vastly improved GUI +-Integrated computer cores and AI with the stock science system +-Fusion reactor fuel scaling drastically changed to make alternative fuels more efficient +-Decreased fusion fuel consumption to more realistic values +-Attach node sizes fixed + +Version 0.12.2 +-Fixed Electric Engine nan bug +-Fixed Antimatter Initialised Reactor +-Fixed smallest fusion reactor +-Removed precooler integrated intake +-All atmospheric engines now shutdown correctly when non-precooled (they no longer explode) +-Added resource deprived message to reactors +-Update to ORS v1.4.2 + +Version 0.12.1 +-Wrote new resource referencing system to avoid resource name bugs (fixes cryostat, etc, bugs) +-Rewrote magnetic field system for planets and fixed abnormal radiation values +-Types of radiation can now be distinguished internally +-Fixed Tritium breeding in reactors +-Fixed power consumption in inertial confinement reactors +-Tokamaks start with tritium breeding turned on +-Improved atmospheric intake code +-Added turn off reactor button for nuclear reactors to the control system interface +-Fixed prices +-Added Taverius additions to B9 cargo bay radiators +-Some code reorganisation + +Version 0.12.0 +-0.24.2 Compatibility +-New Eletric Engine Effects +-New Electric Engine System +-New Reactor Code + Reactor Control System interface +-Vastly improved VAB info for Reactor and Electric Engines +-Implemented Oktav radiator glow + background He-3 decay +-Changed fusion fuels to correct densities +-Fixed Telescope experiment and integrated it with stock science system +-Fixed Alcubierre drive volume +-Added first attempt at part costs +-Added first attempt at resource costs + +Version 0.11.0 +-Toolbar Integration +-Updated tech tree with additional fusion power node +-New Computer Core Model (by AArtisan) +-New 0.625 Pebble bed/dusty plasma reactor (model by AArisan) +-New Large 3.75m Refinery which does processing and resource extraction (model by Aartisan) +-Added Haber process (to produce ammonia) to Refinery +-Improved impactor mechanics +-Direct conversion max power fixed, fixes problems generally experienced with fusion and microwave transmitters +-Fixed thrust transform with small arcjet engine +-Default generator Electric Charge set to 1000 + +Version 0.10.3 +-Integrated Impactor experiment into the stock science system +-Fixed zero resource extraction rate at low timewarp +-Fixed refinery monopropellant conversion rate +-Fixed overheating with atmospheric engines +-Fixed Tritium breeding rate + +Version 0.10.2 +-Fixed thrust asymmetry issue with fusion and direct conversion generators +-Impactor detection improvements +-Improvement of Thermal UI handling of microwave receivers +-Fixed Antimatter Initated Reactor cfg +-Lithium comes with Lithium tank by default +-Minor Antimatter tank ElectricCharge handling improvements + +Version 0.10.1 +-Fixed Plasma thruster loading bug +-Switched Antimatter Initiated Reactor to UraniumNitride fuel (instead of UF4). +-Fixed Antimatter Initated Reactor Resource amounts +-New planet science curve from impactor experiment (more science everywhere except Kerbin) +-Fixed some typos and included some missing part descriptions +-Thermal helper toggle key changed to "I" +-Fixed Gamma Ray Spectrometer orientation and attachment +-Fixed Radial Tank attachment +-Tritium radioactive decay added to reactors + +Version 0.10 +-Added Thermal Mechanics Helper (toggle with 'T' key in VAB) +-Added Large Fusion Reactors (by AArtisan) +-Added Antimatter Initiated Fission/Fusion reactor (by AArtisan) +-Added Solar Sail (by SasquatchM) +-Added extra fission reactors - particle bed/dusty plasma (by AArtisan) +-Added augmented arcjet electrical thruster (by AArtisan) +-Added IR telescope (with Kerbol gravitational lens experiment capability) +-Added inline refinery +-Added refinery option to produce Uranium Nitride fuel +-Integration with ORS (fixes resource generation/consumption bugs since 0.23) +-Changed accelerometer to new impactor experiment (smash things into planets in the name of science!) +-Changed antimatter factory rates based on tech level, added low tech antimatter bottle to store tiny quantities of antimatter for new reactor +-Hexcans replaced by unique radial tank (by Vaporlynx) +-Fixed second Van Allen belt for radiation detection purposes and added surface radiation levels +-Misc bug fixes + +Version 0.9.2 +-Added 62.5cm thermal rocket and plasma thruster. +-Added 2.5m thermal turbojet. +-Reverted to 0.9 atmospheric code and fixed application, engine atmospheric performance should now be optimal +-Added tweakable option for reactors to start disabled in the VAB +-Unupgraded generator efficiency raised to a theoretical maximum of 31% + +Version 0.9.1 +-Methane tank replaced and new smaller tank more suitable for landers +-Fixed Reactor and Generator Upgrades +-Fixed loading of warp plugin settings +-MJ treatment of plasma engines improved +-Megajoule display now responds to F2 and is hidden for vessels with no appropriate power supply +-Improvements to atmospheric engine code +-Tritium breeding option can now be selected - due to stock problem this will only function while ship is unfocused or at moderate time acceleration +-Expanding refinery in VAB workaround +-More info on radiators +-Atmospheric intake removed from VAB +-DT magnetometer rerunnable + +Version 0.9 +-New Megajoule power supply/consumption display! +-Massively expanded resource system including atmopsheric and oceanic resources definitions - aluminium and water mining integrated into existing planetary resource system +-New resource scanning and science parts - Gas chromatograph and Liquid chromatograph mass spectrometers for analysing atmosheric and oceanic composition +-New resources: Alumina (Aluminium Oxide), LqdWater, H2Peroxide and Ammonia +-ISRU production of Monopropellant now possible +-Lithium and Uranium extraction from seawater now possible (very slowly) +-New Duna water resource map - means lots more water at the poles +-New tweakable generator mode - Direct Conversion Electric Generator, which works with ChargedPower from fusion reactors +-Fusion reactor tweakable fuel modes - Deuterium/Helium-3 and Helium-3 +-Fission reactor Uranium/Thorium modes tweakable in VAB +-Thermal rocket propellants tweakable in the VAB - TWR, delta-v and Isp calculations now compatible with MechJeb +-New precooler module, replaces the stock radial engine body (which doesn't do anything) - atmospheric engines overheat at very high velocities unless precoolers are directly attached to intakes +-Atmospheric performance of engines vastly improved +-Thermal Mechanics improvements - radiators will find a thermodynamic equilibrium, generator efficiencies increased to compensate +-Myrten's microwave routing algorithm added +-Refinery totally redone +-New generic resource extraction module for easy modding! +-Refinery functional attachment nodes reversed +-Thermal rocket can use LqdWater or Ammonia as propellant +-B9 cargo bays act as radiators +-Antimatter Tank power supply improvements +-Supply of stock electric charge from megajoule resource managed finally fixed +-Reactor temperatures fixed +-Thermal jet 0 thrust after re-entry problem fixed +-Antimatter collector GUI improvements +-Fixed magnetic field data + +Version 0.8.2 +-Different plasma engine propellants have different efficiencies, added monopropellant (hydrazine) as a fuel option +-antimatter tanks charge use variable based on size +-Jool 0 temperature radiator bug fixed +-extensive microwave fixes - conservation of energy now respected +-antimatter consumption with multiple tanks fixed +-generator improvements, use better resource manager API +-radiation improvements + second van allen belt +-reactor supports unupgradeable types +-electrolysis rate fix +-resource manager electricity consumption fix +-resource manager negative consumption bug prevented +-various conversions to double precision to improve accuracy +-removed more constants from part modules + +Version 0.8.1 +-Microwave fix for vessels with more than one transmitter +-Improved resource manager handling of high time acceleration +-Fixed the solar panel power curves and made the solar panel waste heat module and inverse square law fix apply to all solar panels, rather than just stock ones +-Fixed Tritium breeding with fusion reactors +-Rewrote the antimatter reactor consumption code to a custom method, which should prevent the reactor power output from ever unexpectedly dropping down +to zero while you still have fuel and need power. +-Changed Refinery to remove top attach node, this prevents problems with it failing to attach at certain times in the VAB +-Applied radius fixes to the generator meaning that a generator works best when paired with a reactor of the right size +-Made propellant definitions for the nuclear and electric engines compatible with ModuleManager +-Updated RealFuels compatibility file +-Tweaked fusion resource consumption rates to make them correct +-Removed all the const definitions from the science lab and refinery and moved them to a seperate class, for some reason KSP sometimes takes offense to these on part loading. + +Version 0.8 +-Added resource system for Uranium and Thorium mining +-Added new nuclear reactor models by Vaporlynx +-Added nuclear reactor thorium fuel options - as well as EVA shutdown/restart and refuel options +-Added Gamma ray spectrometer for resource scanning +-Nuclear reactor temperatures and thermal rocket isp correlation adjusted (doesn't affect engine performance) +-Existing small nuclear reactor repurposed into a fusion reactor - uses Deuterium and Tritium fuel + requires power to maintain +-Added Microwave Thermal Rocket - much of the code and the models by Conti +-Total rewrite of Microwave transmission system, solar and nuclear power can be used together, plus proper relay functionality +-Added methane oxygen rocket and ISRU sabatier process + methane oxygen fuel tank +-Added refinery part to handle resource mining, nuclear fuel reprocessing and electrolysis +-Electrolysis option removed from science labs +-Computer core fixed for Linux +-Computer core science persistence fixed +-Resource manager fixed to avoid free thrust bugs +-Thrust asymmetry fixed +-Liquid Fuel + Oxidiser now provides proper thrust +-Solar Panel inverse square law fixed, works with stock solar system and RSS +-Added science lab notification of amount of science added +-Improved Antimatter storage tank code +-Various GUI fixes + +Version 0.7.4 +-Added option to stop/start charging antimatter tank when it doesn't need the charge +-Added ZZZ's small radial radiator +-Fixed generator attachment null reference exception +-Fixed same possible bug in thermal nozzle (it probably isn't possible here but best to be on the safe side) + +Version 0.7.3 +-Improved Engine information reporting in the VAB +-Engines will power up their reactor if the reactor is shutdown in order to get thrust +-Fixed resource manager NaN power bug +-Fixed asymmetric thrust bug + +Version 0.7.2 +-TWR limit and intake limit added to thermal nozzle to prevent flameout, including a lot of work from Conti +-All intakes will now create IntakeAtm as well as IntakeAir, again with a lot of help from Conti +-New Hexcan textures by bac9 +-Rewrote Thermal Nozzle And Electrical Generator from scratch for better performance + fewer bugs +-Thermal nozzle will now maintain a constant fuel usage rate - atmosphere affects thrust +-Antimatter tanks no longer require having antimatter inside to recharge +-Altered 1.25m Antimatter reactor to bring it more into line with the others, excessive TWR reduced and Isp improved +-Fixed animation states of science lab/reactor +-Fixed bug where LiquidFuel could be used as Kethane +-Made reactors more resilient to autoshutdown - particularly time acceleration waste heat spikes + +Version 0.7.1 +-Added new KIWI nuclear reactor model by ZZZ +-1.25m Plasma Thruster has maximum 25GW power throughput and reduced mass to 1. 2.5m Plasma Thruster has maximum 200GW power throughput, mass remains 6. +-Rewrote Atmospheric Intakes/Scoops +-Atmospheric Scoop no longer requires attached intake +-Fixed Hybrid Thermal Turbojet auto-upgrade +-Fixed Plasma Thruster auto-upgrade +-Fixed UF6/DUF6 draw/supply to make them even +-Fixed Science lab persistent science +-Fixed exception in PartLoader +-Fixed generator consuming all waste heat when reactor inactive +-Improved resource manager performance at high time acceleration + +Version 0.7 +-Integration with stock science system/career mode +-Added tech tree extension using TreeLoader +-Added magnetospheric science experiment +-Added antimatter tank created by ZZZ +-Nuclear Reactors that shutdown from overheating can be restored by Kerbal EVA work +-Generator cold bath Temperature based off average radiator temperature - efficiency goes down with increased temperature! +-Antimatter Tanks must be powered +-Reactors, Microwave receivers and Solar panels shutdown when WasteHeat bar reaches 95% +-Radiators won't get hotter than reactor temperature +-Radiators will explode if the waste heat bar reaches 100% +-Fixed Microwave Receiver power detection/reception when disabled +-Fixed DUF6 reprocessing + +Version 0.6.2 +-Added Duna ISRU, water electrolysis with extra energy cost for baking water out of the soil +-Added persistence to Computer Core science production and reactor Lithium consumption/Tritium production +-Added warning message for undetectable propellant files +-Changed nuclear reactor base power outputs to 1.5MW, 40MW, 500MW and 3GW +-Revised down nuclear reactor masses to 0.225, 1.5, 8 and 28 +-Changed vista engine to require 2.5GW of power (instead of 1.5GW), upped vista thrust to 1100kN +-Kerbol now has scientific value +-Reconfigured attachment node strengths of 3.75m for better structural integrity +-Reduced mass of thermal rocket nozzles, 3.75m now mass = 3, 2.5m now mass = 1.5 and 1.25m now mass 0.4. Throttle will scale down with ratio of attachment areas if you use the wrong size nozzle on the wrong size reactor. +-Removed all constructors and placed initialised code in OnStart methods (this should help avoid various unity related problems) +-Fixed Solar Panel collector area code +-Fixed science lab antimatter persistence +-Fixed multiple generator to one reactor plasma engine bug +-Fixed Science lab malfunctioning after vessel switch +-Amount of DUF6 that is reprocessable will drop after each reprocessing cycle + +Version 0.6.1 +-Added waste heat generation to all stock Solar Panels +-Added Lithium and Deuterium/Tritium Tanks +-Added Inline radiators created by Kerbtrek +-Added microwave nuclear transmission and relay functionality created by Conti +-Better inverse square law for all stock Solar Panels +-Nuclear reactors can turn Lithium into Tritium using Tritium Breeding option +-Changed DT Vista to use Tritium instead of Lithium fuel +-Changed DT Vista to capacity 15 Deuterium and 15 Tritium +-Added Lithium fuel option for Plasma engines +-Small rebalancing to science to incentivise landing on planets, landing will grant you double the science rate on most planets/moons,2.5x on Eve and 3x on Tylo +-Electrolysis of Aluminium/Oxygen possible on Tylo +-Radiation safety features not engaging quickly enough will no longer endanger Kerbal lives +-Plasma engine heat generation fixed +-ThermalPower flow changed to ALL_VESSEL +-Lithium and Deuterium now pumpable +-Generators and Engines not properly detected upgraded Reactor fixed +-Propellant loader path fixed for Linux compatability +-Fixed atmospheric altitude detection - stops improper radiator detachment +-Improved thermal rocket propellant autodetection +-Fixed 1.25m antimatter reactor antimatter consumption rates + +Version 0.6 +-Added WasteHeat and Radiators +-Added lots of models created by ZZZ (Antimatter reactor, 2 generators, DT magnetometers, phased array transmitters/receivers etc) +-Added deuterium centrifuge option to science lab +-Electric charge now provided in needed amounts by generator, rather than arbitrary 1000 figure +-Changed nuclear turbojet parameters such that, with some effort, it can be used to fly +-Warp effects scale to proper size +-Fixed Thermal engine NullReferenceException when not physics loaded but not selected ship +-Microwave beamed receiver now must be pointed at the transmitter or losses will occur +-Fixed Megajoule utilisation/plasma engine bugs +-Fixed MechJeb prevent overheats locking the throttle at zero + + +Version 0.5.1 +-Fixed energy consumption continuing while ExoticMatter full bug +-Fixed energy generation stopping when Megajoules full + Plasma engine thrust bug + +Version 0.5 +-Added DT Vista Engine Inertial Fusion engine (Credit to ZZZ for the amazing modelling work on this engine) +-Added science lab IVA (Credit to ZZZ) +-Added power management system +-Added science transmission/reception options to computer core +-Added option to harvest Deuterium from Jool's atmosphere +-Added on/off options to Microwave Receiver +-Warp drive no longer selectable as root part +-Fixed science lab antimatter production +-Fixed resource management system unpredictability on docking/undocking +-Fixed science lab loading bug +-Fixed plasma engine incorrectly detecting number of active engines bug + +Version 0.4.2 +-Science Lab Loading Bug Fixed +-Plasma Engine upgrade cost not being deducted bug fixed. + +Version 0.4.1 +-Added Antimatter Factory resource persistence +-Added science transmission/receipt +-Fixed Computer Core Upgrade +-Fixed Plasma Engine Upgrade +-Fixed incorrect resource deprived display +-Fixed unlimited warp drive deactivation to gain speed bug +-Fixed warp drive still consuming resources after fully charged bug + +Version 0.4 +-Rebranded to KSP Interstellar +-Beta phase begins +-Warp Drive, Antimatter Collector, Science lab Models added +-Warp Animation and Sound +-New parts (2 more warp drives, computer core) +-Space solar parts now animate according to their function (Receivers deploy when they are receiving some power, Transmitters deploy when activated) +-New resource handler - should result in much better performance all round, especially at high timewarp speeds +-Resource prioritisation prevents you have to turn off generators to power engines +-Plasma thruster now scales its thrust depending upon how many plasma thrusters are attached and active +-Plasma thruster default propellant is now LiquidFuel, can also use Argon or Xenon (LiquidFuel is best for Isp, Xenon best for thrust, Argon in the middle) +-Upgrades added for warp drive, antimatter reactors and thermal turbojet +-Thermal turbojet can now use stock Air Intakes for propellant as well as my Atmospheric Intakes +-Warp Drives now use ExoticMatter, generated by power, rather than by acting as a huge battery for Megajoules +-Fixed Warp Vector persistence bug, should again be safe to activate the warp drive, leave the game and then deactivate the warp drive when you next return. +-Prevented Thermal Rockets functioning with no ThermalPower source + +Version 0.3.2 +-Fixed negative thrust and negative efficiency bugs when parts are loaded in atypical orders +-Fixed science rate when science labs are not active +-Altered science rate to account for stupidity of Kerbal crews (stupid Kerbals generate less science while clever Kerbals generate more) + +Version 0.3.1 +-Science is now generated passively even when science labs are not the active vessel. +-Antimatter and Uranium is now used passively by vessels even when inactive (provided the reactor is enabled) +-Updated antimatter matter tank model to the one created by SpaceK531 +-Now capable of performing water electrolysis on the icy surface of Vall + +Version 0.3 +New Features: +-Science and upgradeable parts: Build science labs to collect science and use it to develop upgrades for certain rocket parts. +-Nuclear Fuel Reprocessing: Turn your depleted nuclear fuel back into useful fissionable material +-More In Situ Resource Utilisation: Electrolysis of water and aluminium oxide. +-Antimatter factory: Produce antimatter with huge amounts of power +-Added Aluminium Hybrid Rocket +-Added Liquid Fuel tanks +-Added propellant options to nuclear thermal rockets - burn liquid fuel+oxidiser, liquid fuel or kethane. + +Bug Fixes: +-Fixed Thermal Rocket flameout behaviour +-Fixed Ship-breaking bug when Brayton Turbine becomes the root vessel part +-Plasma engine now detects the power ouput of generators on the ship it is attached to and calculates thrust accordingly. + +Version 0.2 +Changes: +-Warp Drive required power now scales with rocket mass, big rockets need more power. +-Added new nuclear reactors and tiny brayton turbine. +-Added Microwave solar power transmitter/receiver system. +-Added planetary magnetic probe. +-Added atmospheric intakes/scoop. + + +Bugfixes: +-Fixed Thermal Rocket Nozzle behaviour with manual activation and staging. It will no longer function in any circumstance without thermal power from a reactor. +-Fixed Brayton Cycle Gas turbines generating power with no input. -Thermal Turbojet now functions with the same mechanism as the Thermal Rocket Nozzle and scales output properly depending upon attached reactor. \ No newline at end of file diff --git a/GameData/WarpPlugin/rapier.cfg b/GameData/WarpPlugin/rapier.cfg index eb46878f..86f1e60b 100644 --- a/GameData/WarpPlugin/rapier.cfg +++ b/GameData/WarpPlugin/rapier.cfg @@ -1,25 +1,34 @@ -@PART[RAPIER] -{ -MODULE -{ - name = ModuleSabreHeating -} -} - -@PART[turboFanEngine] -{ -MODULE -{ - name = ModuleSabreHeating -} -} - -@PART[radialEngineBody] -{ -@title = Intake Pre-cooler -@description = A magnificent piece of engineering that pre-cools the air flow from atmospheric engines, preventing overheating at high speeds. -MODULE -{ - name = FNModulePreecooler -} +@PART[RAPIER] +{ +MODULE +{ + name = ModuleSabreHeating +} +} + +@PART[turboFanEngine] +{ +MODULE +{ + name = ModuleSabreHeating +} +} + +@PART[radialEngineBody] +{ +@title = Intake Pre-cooler +@description = A magnificent piece of engineering that pre-cools the air flow from atmospheric engines, preventing overheating at high speeds. +MODULE +{ + name = FNModulePreecooler +} +!MODULE[ModuleResourceIntake] +{ +} +!RESOURCE[IntakeAir] +{ +} +!RESOURCE[LiquidFuel] +{ +} } \ No newline at end of file diff --git a/GameData/WarpPlugin/science.cfg b/GameData/WarpPlugin/science.cfg index c251ade2..7a9fdf23 100644 --- a/GameData/WarpPlugin/science.cfg +++ b/GameData/WarpPlugin/science.cfg @@ -1,16 +1,13 @@ -@PART[sensorAccelerometer] -{ -!MODULE[ModuleScienceExperiment] -{ -} -MODULE -{ - name = FNSeismicProbe - experimentID = FNSeismicProbeExperiment - rerunnable = true - deployEventName = Collect Impact Data - reviewEventName = Review Impact Data - resetEventName = Reset Impact Data -} -} - +@PART[sensorAccelerometer] +{ +MODULE +{ + name = FNSeismicProbe + experimentID = FNSeismicProbeExperiment + rerunnable = true + deployEventName = Collect Impact Data + reviewEventName = Review Impact Data + resetEventName = Reset Impact Data +} +} + diff --git a/InterstellarToolbar/InterstellarToolbar.csproj b/InterstellarToolbar/InterstellarToolbar.csproj deleted file mode 100644 index 840430c9..00000000 --- a/InterstellarToolbar/InterstellarToolbar.csproj +++ /dev/null @@ -1,71 +0,0 @@ - - - - - Debug - AnyCPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361} - Library - Properties - InterstellarToolbar - InterstellarToolbar - v3.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - C:\Games\Kerbal Space Program 0.25\KSP_Data\Managed\Assembly-CSharp.dll - - - - - - - - - - C:\Games\Kerbal Space Program 0.23\GameData\000_Toolbar\Toolbar.dll - - - False - C:\Games\Kerbal Space Program 0.25\KSP_Data\Managed\UnityEngine.dll - - - - - - - - - {ad686af3-dddc-4991-909f-ead9c16c469b} - WarpPlugin - - - - - \ No newline at end of file diff --git a/InterstellarToolbar/Properties/AssemblyInfo.cs b/InterstellarToolbar/Properties/AssemblyInfo.cs deleted file mode 100644 index d5896776..00000000 --- a/InterstellarToolbar/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("InterstellarToolbar")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("InterstellarToolbar")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b70dd69f-7365-4af6-8703-278b106bb2b8")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenResourceSystem/ORSAtmosphericResourceHandler.cs b/OpenResourceSystem/ORSAtmosphericResourceHandler.cs index e2c5cf41..88ac8e4d 100644 --- a/OpenResourceSystem/ORSAtmosphericResourceHandler.cs +++ b/OpenResourceSystem/ORSAtmosphericResourceHandler.cs @@ -1,74 +1,74 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace OpenResourceSystem { - public class ORSAtmosphericResourceHandler { - protected static Dictionary> body_atmospheric_resource_list = new Dictionary>(); - - public static double getAtmosphericResourceContent(int refBody, string resourcename) { - List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); - ORSAtmosphericResource resource = bodyAtmosphericComposition.FirstOrDefault(oor => oor.getResourceName() == resourcename); - return resource != null ? resource.getResourceAbundance() : 0; - } - - public static double getAtmosphericResourceContentByDisplayName(int refBody, string resourcename) { - List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); - ORSAtmosphericResource resource = bodyAtmosphericComposition.FirstOrDefault(oor => oor.getDisplayName() == resourcename); - return resource != null ? resource.getResourceAbundance() : 0; - } - - public static double getAtmosphericResourceContent(int refBody, int resource) { - List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); - if (bodyAtmosphericComposition.Count > resource) { - return bodyAtmosphericComposition[resource].getResourceAbundance(); - } - return 0; - } - - public static string getAtmosphericResourceName(int refBody, int resource) { - List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); - if (bodyAtmosphericComposition.Count > resource) { - return bodyAtmosphericComposition[resource].getResourceName(); - } - return null; - } - - public static string getAtmosphericResourceDisplayName(int refBody, int resource) { - List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); - if (bodyAtmosphericComposition.Count > resource) { - return bodyAtmosphericComposition[resource].getDisplayName(); - } - return null; - } - - public static List getAtmosphericCompositionForBody(int refBody) { - List bodyAtmosphericComposition = new List(); - try { - if (body_atmospheric_resource_list.ContainsKey(refBody)) { - return body_atmospheric_resource_list[refBody]; - } else { - ConfigNode atmospheric_resource_pack = GameDatabase.Instance.GetConfigNodes("ATMOSPHERIC_RESOURCE_PACK_DEFINITION").FirstOrDefault(); - Debug.Log("[ORS] Loading atmospheric data from pack: " + (atmospheric_resource_pack.HasValue("name") ? atmospheric_resource_pack.GetValue("name") : "unknown pack")); - if (atmospheric_resource_pack != null) { - List atmospheric_resource_list = atmospheric_resource_pack.nodes.Cast().Where(res => res.GetValue("celestialBodyName") == FlightGlobals.Bodies[refBody].name).ToList(); - if (atmospheric_resource_list.Any()) - { - bodyAtmosphericComposition = atmospheric_resource_list.Select(orsc => new ORSAtmosphericResource(orsc.HasValue("resourceName") ? orsc.GetValue("resourceName") : null, double.Parse(orsc.GetValue("abundance")), orsc.GetValue("guiName"))).ToList(); - if (bodyAtmosphericComposition.Any()) - { - bodyAtmosphericComposition = bodyAtmosphericComposition.OrderByDescending(bacd => bacd.getResourceAbundance()).ToList(); - body_atmospheric_resource_list.Add(refBody, bodyAtmosphericComposition); - } - } - } - } - } catch (Exception ex) { - Debug.Log("[ORS] Exception while loading atmospheric resources : " + ex.ToString()); - } - return bodyAtmosphericComposition; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace OpenResourceSystem { + public class ORSAtmosphericResourceHandler { + protected static Dictionary> body_atmospheric_resource_list = new Dictionary>(); + + public static double getAtmosphericResourceContent(int refBody, string resourcename) { + List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); + ORSAtmosphericResource resource = bodyAtmosphericComposition.FirstOrDefault(oor => oor.getResourceName() == resourcename); + return resource != null ? resource.getResourceAbundance() : 0; + } + + public static double getAtmosphericResourceContentByDisplayName(int refBody, string resourcename) { + List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); + ORSAtmosphericResource resource = bodyAtmosphericComposition.FirstOrDefault(oor => oor.getDisplayName() == resourcename); + return resource != null ? resource.getResourceAbundance() : 0; + } + + public static double getAtmosphericResourceContent(int refBody, int resource) { + List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); + if (bodyAtmosphericComposition.Count > resource) { + return bodyAtmosphericComposition[resource].getResourceAbundance(); + } + return 0; + } + + public static string getAtmosphericResourceName(int refBody, int resource) { + List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); + if (bodyAtmosphericComposition.Count > resource) { + return bodyAtmosphericComposition[resource].getResourceName(); + } + return null; + } + + public static string getAtmosphericResourceDisplayName(int refBody, int resource) { + List bodyAtmosphericComposition = getAtmosphericCompositionForBody(refBody); + if (bodyAtmosphericComposition.Count > resource) { + return bodyAtmosphericComposition[resource].getDisplayName(); + } + return null; + } + + public static List getAtmosphericCompositionForBody(int refBody) { + List bodyAtmosphericComposition = new List(); + try { + if (body_atmospheric_resource_list.ContainsKey(refBody)) { + return body_atmospheric_resource_list[refBody]; + } else { + ConfigNode atmospheric_resource_pack = GameDatabase.Instance.GetConfigNodes("ATMOSPHERIC_RESOURCE_PACK_DEFINITION").FirstOrDefault(); + Debug.Log("[ORS] Loading atmospheric data from pack: " + (atmospheric_resource_pack.HasValue("name") ? atmospheric_resource_pack.GetValue("name") : "unknown pack")); + if (atmospheric_resource_pack != null) { + List atmospheric_resource_list = atmospheric_resource_pack.nodes.Cast().Where(res => res.GetValue("celestialBodyName") == FlightGlobals.Bodies[refBody].name).ToList(); + if (atmospheric_resource_list.Any()) + { + bodyAtmosphericComposition = atmospheric_resource_list.Select(orsc => new ORSAtmosphericResource(orsc.HasValue("resourceName") ? orsc.GetValue("resourceName") : null, double.Parse(orsc.GetValue("abundance")), orsc.GetValue("guiName"))).ToList(); + if (bodyAtmosphericComposition.Any()) + { + bodyAtmosphericComposition = bodyAtmosphericComposition.OrderByDescending(bacd => bacd.getResourceAbundance()).ToList(); + body_atmospheric_resource_list.Add(refBody, bodyAtmosphericComposition); + } + } + } + } + } catch (Exception ex) { + Debug.Log("[ORS] Exception while loading atmospheric resources : " + ex.ToString()); + } + return bodyAtmosphericComposition; + } + } +} diff --git a/OpenResourceSystem/ORSPlanetaryResourceMapData.cs b/OpenResourceSystem/ORSPlanetaryResourceMapData.cs index ef08fab9..9eef9d6c 100644 --- a/OpenResourceSystem/ORSPlanetaryResourceMapData.cs +++ b/OpenResourceSystem/ORSPlanetaryResourceMapData.cs @@ -1,273 +1,273 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace OpenResourceSystem { - public class ORSPlanetaryResourceMapData : MonoBehaviour - { - static Dictionary body_resource_maps = new Dictionary(); - static Dictionary body_abudnance_angles = new Dictionary(); - static List abundance_markers = new List(); - static int current_body = -1; - static int map_body = -1; - //static GameObject resource_prim; - static Material sphere_material = null; - static protected string displayed_resource = ""; - static protected string map_resource = ""; - static protected long update_count = 0; - static GameObject sphere = null; - static Vector3d sphere_scale = new Vector3d(5000, 5000, 5000); - static Vector3d sphere_scale_scaled = new Vector3d(2, 2, 2); - static string sphere_texture; - static double stored_scale = -1; - - public static IDictionary PlanetaryResourceMapData { get { return body_resource_maps; } } - - public static void loadPlanetaryResourceData(int body) - { - string celestial_body_name = FlightGlobals.Bodies[body].bodyName; - UrlDir.UrlConfig[] configs = GameDatabase.Instance.GetConfigs("PLANETARY_RESOURCE_DEFINITION"); - Debug.Log("[ORS] Loading Planetary Resource Data. Length: " + configs.Length); - foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { - removeAbundanceSphere(abundance_marker.getPlanetarySphere()); - removeAbundanceSphere(abundance_marker.getScaledSphere()); - } - sphere = null; - sphere_texture = null; - body_resource_maps.Clear(); - body_abudnance_angles.Clear(); - map_body = -1; - current_body = body; - foreach (UrlDir.UrlConfig config in configs) { - ConfigNode planetary_resource_config_node = config.config; - if (planetary_resource_config_node.GetValue("celestialBodyName") == celestial_body_name && planetary_resource_config_node != null) { - Debug.Log("[ORS] Loading Planetary Resource Data for " + celestial_body_name); - Texture2D map = GameDatabase.Instance.GetTexture(planetary_resource_config_node.GetValue("mapUrl"), false); - if (map == null) continue; - - string resource_gui_name = planetary_resource_config_node.GetValue("name"); - - if (body_resource_maps.ContainsKey(resource_gui_name)) continue; // skip duplicates - - ORSPlanetaryResourceInfo resource_info = new ORSPlanetaryResourceInfo(resource_gui_name, map, body); - if (planetary_resource_config_node.HasValue("resourceName")) { - string resource_name = planetary_resource_config_node.GetValue("resourceName"); - resource_info.setResourceName(resource_name); - } - if (planetary_resource_config_node.HasValue("resourceScale")) { - string resource_scale = planetary_resource_config_node.GetValue("resourceScale"); - resource_info.setResourceScale(resource_scale); - } - if (planetary_resource_config_node.HasValue("scaleFactor")) { - string scale_factorstr = planetary_resource_config_node.GetValue("scaleFactor"); - double scale_factor = double.Parse(scale_factorstr); - resource_info.setScaleFactor(scale_factor); - } - if (planetary_resource_config_node.HasValue("scaleMultiplier")) { - string scale_multstr = planetary_resource_config_node.GetValue("scaleMultiplier"); - double scale_mult = double.Parse(scale_multstr); - resource_info.setScaleMultiplier(scale_mult); - } - if (planetary_resource_config_node.HasValue("displayTexture")) { - string tex_path = planetary_resource_config_node.GetValue("displayTexture"); - resource_info.setDisplayTexture(tex_path); - } else { - string tex_path = planetary_resource_config_node.GetValue("WarpPlugin/resource_point"); - resource_info.setDisplayTexture(tex_path); - } - if (planetary_resource_config_node.HasValue("displayThreshold")) { - string display_threshold_str = planetary_resource_config_node.GetValue("displayThreshold"); - double display_threshold = double.Parse(display_threshold_str); - resource_info.setDisplayThreshold(display_threshold); - } - body_resource_maps.Add(resource_gui_name, resource_info); - List abundance_points_list = new List(); - - for (int i = 0; i < map.height; ++i) { - for (int j = 0; j < map.width; ++j) { - if (resource_info.getPixelAbundanceValue(j,i) >= resource_info.getDisplayThreshold()) { - //high value location, mark it - double theta = (j - map.width / 2)*2.0*180.0/map.width; - double phi = (i - map.height / 2)*2.0*90.0/map.height; - Vector2d angles = new Vector2d(theta, phi); - abundance_points_list.Add(angles); - } - } - } - - body_abudnance_angles.Add(resource_gui_name, abundance_points_list.ToArray()); - Debug.Log("[ORS] " + abundance_points_list.Count + " high value " + resource_gui_name + " locations detected"); - } - } - } - - public static ORSPlanetaryResourcePixel getResourceAvailabilityByRealResourceName(int body, string resourcename, double lat, double lng) - { - if (body != current_body) loadPlanetaryResourceData(body); - - try{ - ORSPlanetaryResourceInfo resource_info = body_resource_maps.Where(ri => ri.Value.getResourceName() == resourcename).FirstOrDefault().Value; - return getResourceAvailability(body, resource_info.getName(),lat,lng); - }catch(Exception ex) { - ORSPlanetaryResourcePixel resource_pixel = new ORSPlanetaryResourcePixel(resourcename, 0, body); - return resource_pixel; - } - } - - public static ORSPlanetaryResourcePixel getResourceAvailability(int body, string resourcename, double lat, double lng) - { - if (body != current_body) loadPlanetaryResourceData(body); - - if (body_resource_maps.ContainsKey(resourcename)) - { - ORSPlanetaryResourceInfo resource_info = body_resource_maps[resourcename]; - double resource_val = resource_info.getLatLongAbundanceValue(lat, lng); - - ORSPlanetaryResourcePixel resource_pixel = new ORSPlanetaryResourcePixel(resource_info.getName(), resource_val, resource_info.getBody()); - resource_pixel.setResourceName(resource_info.getResourceName()); - - return resource_pixel; - }else - { - ORSPlanetaryResourcePixel resource_pixel = new ORSPlanetaryResourcePixel(resourcename, 0, body); - return resource_pixel; - } - } - - - public static void setDisplayedResource(string displayed_resource) { - ORSPlanetaryResourceMapData.displayed_resource = displayed_resource; - foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { - removeAbundanceSphere(abundance_marker.getPlanetarySphere()); - removeAbundanceSphere(abundance_marker.getScaledSphere()); - } - map_body = -1; - sphere = null; - sphere_texture = null; - abundance_markers.Clear(); - } - - public static bool resourceIsDisplayed(string resource) - { - return displayed_resource == resource; - } - - public static void updatePlanetaryResourceMap() - { - if (FlightGlobals.currentMainBody.flightGlobalsIndex != current_body) loadPlanetaryResourceData(FlightGlobals.currentMainBody.flightGlobalsIndex); - - if (body_resource_maps.ContainsKey(displayed_resource) && (FlightGlobals.currentMainBody.flightGlobalsIndex != map_body || displayed_resource != map_resource)) { - foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { - removeAbundanceSphere(abundance_marker.getPlanetarySphere()); - removeAbundanceSphere(abundance_marker.getScaledSphere()); - } - abundance_markers.Clear(); - CelestialBody celbody = FlightGlobals.currentMainBody; - sphere_texture = body_resource_maps[displayed_resource].getDisplayTexturePath(); - Vector2d[] abundance_points_list = body_abudnance_angles[displayed_resource]; - if (abundance_points_list != null && celbody.pqsController != null) { - foreach (Vector2d abundance_point in abundance_points_list) { - double theta = abundance_point.x; - double phi = abundance_point.y; - Vector3d up = celbody.GetSurfaceNVector(phi, theta).normalized; - double surface_height = celbody.pqsController.GetSurfaceHeight(QuaternionD.AngleAxis(theta, Vector3d.down) * QuaternionD.AngleAxis(phi, Vector3d.forward) * Vector3d.right); - GameObject resource_prim = createAbundanceSphere(); - GameObject resource_prim_scaled = createAbundanceSphere(); - - Vector3d center = celbody.position + surface_height * up; - Vector3d scaledcenter = ScaledSpace.LocalToScaledSpace(celbody.position) + surface_height * up*ScaledSpace.InverseScaleFactor; - - Transform scaled_trans = ScaledSpace.Instance.scaledSpaceTransforms.Single(t => t.name == celbody.name); - resource_prim_scaled.transform.position = scaledcenter; - resource_prim_scaled.transform.localScale = sphere_scale_scaled * (FlightGlobals.currentMainBody.Radius / FlightGlobals.Bodies[ORSGameConstants.REF_BODY_KERBIN].Radius); - resource_prim_scaled.transform.localRotation = Quaternion.identity; - resource_prim_scaled.transform.parent = scaled_trans; - resource_prim_scaled.layer = 10; - - resource_prim.transform.position = center; - resource_prim.transform.parent = celbody.transform; - resource_prim.transform.localScale = sphere_scale * (FlightGlobals.currentMainBody.Radius / FlightGlobals.Bodies[ORSGameConstants.REF_BODY_KERBIN].Radius); - resource_prim.transform.localRotation = Quaternion.identity; - - ORSResourceAbundanceMarker abundance_marker = new ORSResourceAbundanceMarker(resource_prim_scaled, resource_prim); - abundance_markers.Add(abundance_marker); - } - map_body = current_body; - map_resource = displayed_resource; - stored_scale = ScaledSpace.ScaleFactor; - } - //celbody.renderer.material.mainTexture. - } else { - if (body_resource_maps.ContainsKey(displayed_resource) && FlightGlobals.currentMainBody.flightGlobalsIndex == map_body && displayed_resource == map_resource) { - CelestialBody celbody = FlightGlobals.currentMainBody; - foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { - if (lineOfSightToPosition(abundance_marker.getPlanetarySphere().transform.position, celbody)) { - if (MapView.MapIsEnabled) { - abundance_marker.getScaledSphere().renderer.enabled = true; - abundance_marker.getPlanetarySphere().renderer.enabled = false; - } else { - abundance_marker.getScaledSphere().renderer.enabled = false; - abundance_marker.getPlanetarySphere().renderer.enabled = true; - } - }else{ - abundance_marker.getScaledSphere().renderer.enabled = false; - abundance_marker.getPlanetarySphere().renderer.enabled = false; - } - } - } - } - } - - - protected static GameObject createAbundanceSphere() - { - if (sphere == null) - { - GameObject resource_prim = GameObject.CreatePrimitive(PrimitiveType.Sphere); - resource_prim.collider.enabled = false; - resource_prim.transform.localScale = sphere_scale * (FlightGlobals.currentMainBody.Radius / FlightGlobals.Bodies[ORSGameConstants.REF_BODY_KERBIN].Radius); - resource_prim.renderer.material.shader = Shader.Find("Unlit/Texture"); - resource_prim.renderer.material.color = new Color(Color.red.r, Color.red.g, Color.red.b, 1.0f); - if (sphere_texture != null) { - resource_prim.renderer.material.mainTexture = GameDatabase.Instance.GetTexture(sphere_texture,false); - } else { - resource_prim.renderer.material.mainTexture = GameDatabase.Instance.GetTexture("OpenResourceSystem/resource_point", false); - } - resource_prim.renderer.material.renderQueue = 1000; - resource_prim.renderer.receiveShadows = false; - resource_prim.renderer.enabled = false; - resource_prim.renderer.castShadows = false; - Destroy(resource_prim.collider); - sphere = resource_prim; - } - return (GameObject) Instantiate(sphere); - } - - protected static void removeAbundanceSphere(GameObject go) - { - Destroy(go); - } - - protected static bool lineOfSightToPosition(Vector3d a, CelestialBody referenceBody) - { - Vector3d b = FlightGlobals.ActiveVessel.transform.position; - Vector3d refminusa = referenceBody.position - a; - Vector3d bminusa = b - a; - if (Vector3d.Dot(refminusa, bminusa) > 0) { - if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { - Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; - if (tang.magnitude < referenceBody.Radius) { - return false; - } - } - } - return true; - } - - - - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace OpenResourceSystem { + public class ORSPlanetaryResourceMapData : MonoBehaviour + { + static Dictionary body_resource_maps = new Dictionary(); + static Dictionary body_abudnance_angles = new Dictionary(); + static List abundance_markers = new List(); + static int current_body = -1; + static int map_body = -1; + //static GameObject resource_prim; + static Material sphere_material = null; + static protected string displayed_resource = ""; + static protected string map_resource = ""; + static protected long update_count = 0; + static GameObject sphere = null; + static Vector3d sphere_scale = new Vector3d(5000, 5000, 5000); + static Vector3d sphere_scale_scaled = new Vector3d(2, 2, 2); + static string sphere_texture; + static double stored_scale = -1; + + public static IDictionary PlanetaryResourceMapData { get { return body_resource_maps; } } + + public static void loadPlanetaryResourceData(int body) + { + string celestial_body_name = FlightGlobals.Bodies[body].bodyName; + UrlDir.UrlConfig[] configs = GameDatabase.Instance.GetConfigs("PLANETARY_RESOURCE_DEFINITION"); + Debug.Log("[ORS] Loading Planetary Resource Data. Length: " + configs.Length); + foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { + removeAbundanceSphere(abundance_marker.getPlanetarySphere()); + removeAbundanceSphere(abundance_marker.getScaledSphere()); + } + sphere = null; + sphere_texture = null; + body_resource_maps.Clear(); + body_abudnance_angles.Clear(); + map_body = -1; + current_body = body; + foreach (UrlDir.UrlConfig config in configs) { + ConfigNode planetary_resource_config_node = config.config; + if (planetary_resource_config_node.GetValue("celestialBodyName") == celestial_body_name && planetary_resource_config_node != null) { + Debug.Log("[ORS] Loading Planetary Resource Data for " + celestial_body_name); + Texture2D map = GameDatabase.Instance.GetTexture(planetary_resource_config_node.GetValue("mapUrl"), false); + if (map == null) continue; + + string resource_gui_name = planetary_resource_config_node.GetValue("name"); + + if (body_resource_maps.ContainsKey(resource_gui_name)) continue; // skip duplicates + + ORSPlanetaryResourceInfo resource_info = new ORSPlanetaryResourceInfo(resource_gui_name, map, body); + if (planetary_resource_config_node.HasValue("resourceName")) { + string resource_name = planetary_resource_config_node.GetValue("resourceName"); + resource_info.setResourceName(resource_name); + } + if (planetary_resource_config_node.HasValue("resourceScale")) { + string resource_scale = planetary_resource_config_node.GetValue("resourceScale"); + resource_info.setResourceScale(resource_scale); + } + if (planetary_resource_config_node.HasValue("scaleFactor")) { + string scale_factorstr = planetary_resource_config_node.GetValue("scaleFactor"); + double scale_factor = double.Parse(scale_factorstr); + resource_info.setScaleFactor(scale_factor); + } + if (planetary_resource_config_node.HasValue("scaleMultiplier")) { + string scale_multstr = planetary_resource_config_node.GetValue("scaleMultiplier"); + double scale_mult = double.Parse(scale_multstr); + resource_info.setScaleMultiplier(scale_mult); + } + if (planetary_resource_config_node.HasValue("displayTexture")) { + string tex_path = planetary_resource_config_node.GetValue("displayTexture"); + resource_info.setDisplayTexture(tex_path); + } else { + string tex_path = planetary_resource_config_node.GetValue("WarpPlugin/ParticleFX/resource_point"); + resource_info.setDisplayTexture(tex_path); + } + if (planetary_resource_config_node.HasValue("displayThreshold")) { + string display_threshold_str = planetary_resource_config_node.GetValue("displayThreshold"); + double display_threshold = double.Parse(display_threshold_str); + resource_info.setDisplayThreshold(display_threshold); + } + body_resource_maps.Add(resource_gui_name, resource_info); + List abundance_points_list = new List(); + + for (int i = 0; i < map.height; ++i) { + for (int j = 0; j < map.width; ++j) { + if (resource_info.getPixelAbundanceValue(j,i) >= resource_info.getDisplayThreshold()) { + //high value location, mark it + double theta = (j - map.width / 2)*2.0*180.0/map.width; + double phi = (i - map.height / 2)*2.0*90.0/map.height; + Vector2d angles = new Vector2d(theta, phi); + abundance_points_list.Add(angles); + } + } + } + + body_abudnance_angles.Add(resource_gui_name, abundance_points_list.ToArray()); + Debug.Log("[ORS] " + abundance_points_list.Count + " high value " + resource_gui_name + " locations detected"); + } + } + } + + public static ORSPlanetaryResourcePixel getResourceAvailabilityByRealResourceName(int body, string resourcename, double lat, double lng) + { + if (body != current_body) loadPlanetaryResourceData(body); + + try{ + ORSPlanetaryResourceInfo resource_info = body_resource_maps.Where(ri => ri.Value.getResourceName() == resourcename).FirstOrDefault().Value; + return getResourceAvailability(body, resource_info.getName(),lat,lng); + }catch(Exception ex) { + ORSPlanetaryResourcePixel resource_pixel = new ORSPlanetaryResourcePixel(resourcename, 0, body); + return resource_pixel; + } + } + + public static ORSPlanetaryResourcePixel getResourceAvailability(int body, string resourcename, double lat, double lng) + { + if (body != current_body) loadPlanetaryResourceData(body); + + if (body_resource_maps.ContainsKey(resourcename)) + { + ORSPlanetaryResourceInfo resource_info = body_resource_maps[resourcename]; + double resource_val = resource_info.getLatLongAbundanceValue(lat, lng); + + ORSPlanetaryResourcePixel resource_pixel = new ORSPlanetaryResourcePixel(resource_info.getName(), resource_val, resource_info.getBody()); + resource_pixel.setResourceName(resource_info.getResourceName()); + + return resource_pixel; + }else + { + ORSPlanetaryResourcePixel resource_pixel = new ORSPlanetaryResourcePixel(resourcename, 0, body); + return resource_pixel; + } + } + + + public static void setDisplayedResource(string displayed_resource) { + ORSPlanetaryResourceMapData.displayed_resource = displayed_resource; + foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { + removeAbundanceSphere(abundance_marker.getPlanetarySphere()); + removeAbundanceSphere(abundance_marker.getScaledSphere()); + } + map_body = -1; + sphere = null; + sphere_texture = null; + abundance_markers.Clear(); + } + + public static bool resourceIsDisplayed(string resource) + { + return displayed_resource == resource; + } + + public static void updatePlanetaryResourceMap() + { + if (FlightGlobals.currentMainBody.flightGlobalsIndex != current_body) loadPlanetaryResourceData(FlightGlobals.currentMainBody.flightGlobalsIndex); + + if (body_resource_maps.ContainsKey(displayed_resource) && (FlightGlobals.currentMainBody.flightGlobalsIndex != map_body || displayed_resource != map_resource)) { + foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { + removeAbundanceSphere(abundance_marker.getPlanetarySphere()); + removeAbundanceSphere(abundance_marker.getScaledSphere()); + } + abundance_markers.Clear(); + CelestialBody celbody = FlightGlobals.currentMainBody; + sphere_texture = body_resource_maps[displayed_resource].getDisplayTexturePath(); + Vector2d[] abundance_points_list = body_abudnance_angles[displayed_resource]; + if (abundance_points_list != null && celbody.pqsController != null) { + foreach (Vector2d abundance_point in abundance_points_list) { + double theta = abundance_point.x; + double phi = abundance_point.y; + Vector3d up = celbody.GetSurfaceNVector(phi, theta).normalized; + double surface_height = celbody.pqsController.GetSurfaceHeight(QuaternionD.AngleAxis(theta, Vector3d.down) * QuaternionD.AngleAxis(phi, Vector3d.forward) * Vector3d.right); + GameObject resource_prim = createAbundanceSphere(); + GameObject resource_prim_scaled = createAbundanceSphere(); + + Vector3d center = celbody.position + surface_height * up; + Vector3d scaledcenter = ScaledSpace.LocalToScaledSpace(celbody.position) + surface_height * up*ScaledSpace.InverseScaleFactor; + + Transform scaled_trans = ScaledSpace.Instance.scaledSpaceTransforms.Single(t => t.name == celbody.name); + resource_prim_scaled.transform.position = scaledcenter; + resource_prim_scaled.transform.localScale = sphere_scale_scaled * (FlightGlobals.currentMainBody.Radius / FlightGlobals.Bodies[ORSGameConstants.REF_BODY_KERBIN].Radius); + resource_prim_scaled.transform.localRotation = Quaternion.identity; + resource_prim_scaled.transform.parent = scaled_trans; + resource_prim_scaled.layer = 10; + + resource_prim.transform.position = center; + resource_prim.transform.parent = celbody.transform; + resource_prim.transform.localScale = sphere_scale * (FlightGlobals.currentMainBody.Radius / FlightGlobals.Bodies[ORSGameConstants.REF_BODY_KERBIN].Radius); + resource_prim.transform.localRotation = Quaternion.identity; + + ORSResourceAbundanceMarker abundance_marker = new ORSResourceAbundanceMarker(resource_prim_scaled, resource_prim); + abundance_markers.Add(abundance_marker); + } + map_body = current_body; + map_resource = displayed_resource; + stored_scale = ScaledSpace.ScaleFactor; + } + //celbody.renderer.material.mainTexture. + } else { + if (body_resource_maps.ContainsKey(displayed_resource) && FlightGlobals.currentMainBody.flightGlobalsIndex == map_body && displayed_resource == map_resource) { + CelestialBody celbody = FlightGlobals.currentMainBody; + foreach (ORSResourceAbundanceMarker abundance_marker in abundance_markers) { + if (lineOfSightToPosition(abundance_marker.getPlanetarySphere().transform.position, celbody)) { + if (MapView.MapIsEnabled) { + abundance_marker.getScaledSphere().renderer.enabled = true; + abundance_marker.getPlanetarySphere().renderer.enabled = false; + } else { + abundance_marker.getScaledSphere().renderer.enabled = false; + abundance_marker.getPlanetarySphere().renderer.enabled = true; + } + }else{ + abundance_marker.getScaledSphere().renderer.enabled = false; + abundance_marker.getPlanetarySphere().renderer.enabled = false; + } + } + } + } + } + + + protected static GameObject createAbundanceSphere() + { + if (sphere == null) + { + GameObject resource_prim = GameObject.CreatePrimitive(PrimitiveType.Sphere); + resource_prim.collider.enabled = false; + resource_prim.transform.localScale = sphere_scale * (FlightGlobals.currentMainBody.Radius / FlightGlobals.Bodies[ORSGameConstants.REF_BODY_KERBIN].Radius); + resource_prim.renderer.material.shader = Shader.Find("Unlit/Texture"); + resource_prim.renderer.material.color = new Color(Color.red.r, Color.red.g, Color.red.b, 1.0f); + if (sphere_texture != null) { + resource_prim.renderer.material.mainTexture = GameDatabase.Instance.GetTexture(sphere_texture,false); + } else { + resource_prim.renderer.material.mainTexture = GameDatabase.Instance.GetTexture("OpenResourceSystem/resource_point", false); + } + resource_prim.renderer.material.renderQueue = 1000; + resource_prim.renderer.receiveShadows = false; + resource_prim.renderer.enabled = false; + resource_prim.renderer.castShadows = false; + Destroy(resource_prim.collider); + sphere = resource_prim; + } + return (GameObject) Instantiate(sphere); + } + + protected static void removeAbundanceSphere(GameObject go) + { + Destroy(go); + } + + protected static bool lineOfSightToPosition(Vector3d a, CelestialBody referenceBody) + { + Vector3d b = FlightGlobals.ActiveVessel.transform.position; + Vector3d refminusa = referenceBody.position - a; + Vector3d bminusa = b - a; + if (Vector3d.Dot(refminusa, bminusa) > 0) { + if (Vector3d.Dot(refminusa, bminusa.normalized) < bminusa.magnitude) { + Vector3d tang = refminusa - Vector3d.Dot(refminusa, bminusa.normalized) * bminusa.normalized; + if (tang.magnitude < referenceBody.Radius) { + return false; + } + } + } + return true; + } + + + + + } +} diff --git a/OpenResourceSystem/ORSResourceManager.cs b/OpenResourceSystem/ORSResourceManager.cs index 4e8bc0ce..3a399461 100644 --- a/OpenResourceSystem/ORSResourceManager.cs +++ b/OpenResourceSystem/ORSResourceManager.cs @@ -1,356 +1,358 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; - -namespace OpenResourceSystem { - public class ORSResourceManager { - public const string FNRESOURCE_MEGAJOULES = "Megajoules"; - public const string FNRESOURCE_CHARGED_PARTICLES = "ChargedParticles"; - public const string FNRESOURCE_THERMALPOWER = "ThermalPower"; - public const string FNRESOURCE_WASTEHEAT = "WasteHeat"; - public const int FNRESOURCE_FLOWTYPE_SMALLEST_FIRST = 0; - public const int FNRESOURCE_FLOWTYPE_EVEN = 1; - protected const double passive_temp_p4 = 2947.295521; - - protected Vessel my_vessel; - protected Part my_part; - protected PartModule my_partmodule; - protected Dictionary power_draws; - protected Dictionary power_supplies; - List partresources; - protected String resource_name; - //protected Dictionary power_returned; - protected double powersupply = 0; - protected double stable_supply = 0; - protected double stored_stable_supply = 0; - protected double stored_resource_demand = 0; - protected double current_resource_demand = 0; - protected double high_priority_resource_demand = 0; - protected double charge_resource_demand = 0; - protected double stored_supply = 0; - protected double stored_charge_demand = 0; - protected int flow_type = 0; - protected List> power_draw_list_archive; - protected bool render_window = false; - protected Rect windowPosition = new Rect(200, 200, 300, 100); - protected int windowID = 36549835; - protected double resource_bar_ratio = 0; - protected GUIStyle bold_label; - protected GUIStyle green_label; - protected GUIStyle red_label; - protected GUIStyle right_align; - protected double internl_power_extract = 0; - - public ORSResourceManager(PartModule pm,String resource_name) { - my_vessel = pm.vessel; - my_part = pm.part; - my_partmodule = pm; - power_draws = new Dictionary(); - power_supplies = new Dictionary(); - this.resource_name = resource_name; - - if (resource_name == FNRESOURCE_WASTEHEAT || resource_name == FNRESOURCE_THERMALPOWER) { - flow_type = FNRESOURCE_FLOWTYPE_EVEN; - } else { - flow_type = FNRESOURCE_FLOWTYPE_SMALLEST_FIRST; - } - } - - public void powerDraw(ORSResourceSuppliable pm, double power_draw) { - if (power_draws.ContainsKey(pm)) { - power_draw = power_draw / TimeWarp.fixedDeltaTime + power_draws[pm]; - power_draws[pm] = power_draw; - }else { - power_draws.Add(pm, power_draw / TimeWarp.fixedDeltaTime); - } - } - - public float powerSupply(ORSResourceSupplier pm, float power) { - return (float) powerSupply (pm,(double)power); - } - - public double powerSupply(ORSResourceSupplier pm, double power) { - powersupply += (power / TimeWarp.fixedDeltaTime); - stable_supply += (power / TimeWarp.fixedDeltaTime); - if (power_supplies.ContainsKey(pm)) { - power_supplies[pm] += (power / TimeWarp.fixedDeltaTime); - } else { - power_supplies.Add(pm, (power / TimeWarp.fixedDeltaTime)); - } - return power; - } - - public float powerSupplyFixedMax(ORSResourceSupplier pm, float power, float maxpower) { - return (float) powerSupplyFixedMax (pm, (double)power,(double)maxpower); - } - - public double powerSupplyFixedMax(ORSResourceSupplier pm, double power, double maxpower) { - powersupply += (power / TimeWarp.fixedDeltaTime); - stable_supply += (maxpower / TimeWarp.fixedDeltaTime); - if (power_supplies.ContainsKey(pm)) { - power_supplies[pm] += (power / TimeWarp.fixedDeltaTime); - } else { - power_supplies.Add(pm, (power / TimeWarp.fixedDeltaTime)); - } - return power; - } - - public float managedPowerSupply(ORSResourceSupplier pm, float power) { - return managedPowerSupplyWithMinimum (pm, power, 0); - } - - public double managedPowerSupply(ORSResourceSupplier pm, double power) { - return managedPowerSupplyWithMinimum (pm, power, 0); - } - - public double getSpareResourceCapacity() { - partresources = my_part.GetConnectedResources(resource_name).ToList(); - double spare_capacity = 0; - foreach (PartResource partresource in partresources) { - spare_capacity += partresource.maxAmount - partresource.amount; - } - return spare_capacity; - } - - public float managedPowerSupplyWithMinimum(ORSResourceSupplier pm, float power, float rat_min) { - return (float) managedPowerSupplyWithMinimum(pm, (double)power, (double)rat_min); - } - - public double managedPowerSupplyWithMinimum(ORSResourceSupplier pm, double power, double rat_min) { - double power_seconds_units = power / TimeWarp.fixedDeltaTime; - double power_min_seconds_units = power_seconds_units * rat_min; - double managed_supply_val_add = Math.Min (power_seconds_units, Math.Max(getCurrentUnfilledResourceDemand()+getSpareResourceCapacity()/TimeWarp.fixedDeltaTime,power_min_seconds_units)); - powersupply += managed_supply_val_add; - stable_supply += power_seconds_units; - if (power_supplies.ContainsKey(pm)) { - power_supplies[pm] += (power / TimeWarp.fixedDeltaTime); - } else { - power_supplies.Add(pm, (power / TimeWarp.fixedDeltaTime)); - } - return managed_supply_val_add*TimeWarp.fixedDeltaTime; - } - - public float getStableResourceSupply() { - return (float) stored_stable_supply; - } - - public float getCurrentResourceDemand() { - return (float) current_resource_demand; - } - - public float getCurrentUnfilledResourceDemand() { - return (float) (current_resource_demand-powersupply); - } - - public double getResourceBarRatio() { - return resource_bar_ratio; - } - - public Vessel getVessel() { - return my_vessel; - } - - public void updatePartModule(PartModule pm) { - my_vessel = pm.vessel; - my_part = pm.part; - my_partmodule = pm; - } - - public PartModule getPartModule() { - return my_partmodule; - } - - public void update() { - stored_supply = powersupply; - stored_stable_supply = stable_supply; - stored_resource_demand = current_resource_demand; - double stored_current_demand = current_resource_demand; - double stored_current_hp_demand = high_priority_resource_demand; - double stored_current_charge_demand = charge_resource_demand; - stored_charge_demand = charge_resource_demand; - - current_resource_demand = 0; - high_priority_resource_demand = 0; - charge_resource_demand = 0; - - //Debug.Log ("Early:" + powersupply); - - //stored power - List partresources = my_part.GetConnectedResources(resource_name).ToList(); - double currentmegajoules = 0; - double maxmegajoules = 0; - foreach (PartResource partresource in partresources) { - currentmegajoules += partresource.amount; - maxmegajoules += partresource.maxAmount; - } - if (maxmegajoules > 0) { - resource_bar_ratio = currentmegajoules / maxmegajoules; - } else { - resource_bar_ratio = 0; - } - double missingmegajoules = maxmegajoules - currentmegajoules; - powersupply += currentmegajoules; - //Debug.Log ("Current:" + currentmegajoules); - - double demand_supply_ratio = 0; - double high_priority_demand_supply_ratio = 0; - - if (high_priority_resource_demand > 0) { - high_priority_demand_supply_ratio = Math.Min ((powersupply-stored_current_charge_demand) / stored_current_hp_demand, 1.0); - } else { - high_priority_demand_supply_ratio = 1.0; - } - - if (stored_current_demand > 0) { - demand_supply_ratio = Math.Min ((powersupply-stored_current_charge_demand-stored_current_hp_demand) / stored_current_demand, 1.0); - } else { - demand_supply_ratio = 1.0; - } - - - //Prioritise supplying stock ElectricCharge resource - if (String.Equals(this.resource_name,ORSResourceManager.FNRESOURCE_MEGAJOULES) && stored_stable_supply > 0) { - List electric_charge_resources = my_part.GetConnectedResources ("ElectricCharge").ToList(); - double stock_electric_charge_needed = 0; - foreach (PartResource partresource in electric_charge_resources) { - stock_electric_charge_needed += partresource.maxAmount - partresource.amount; - } - double power_supplied = Math.Min(powersupply*1000*TimeWarp.fixedDeltaTime, stock_electric_charge_needed); - if (stock_electric_charge_needed > 0) { - current_resource_demand += stock_electric_charge_needed / 1000.0 / TimeWarp.fixedDeltaTime; - charge_resource_demand += stock_electric_charge_needed / 1000.0 / TimeWarp.fixedDeltaTime; - } - if (power_supplied > 0) { - powersupply += my_part.RequestResource("ElectricCharge", -power_supplied) / 1000 / TimeWarp.fixedDeltaTime; - } - } - - //sort by power draw - //var power_draw_items = from pair in power_draws orderby pair.Value ascending select pair; - List> power_draw_items = power_draws.ToList(); - - power_draw_items.Sort(delegate(KeyValuePair firstPair, KeyValuePair nextPair) { return firstPair.Value.CompareTo(nextPair.Value); }); - power_draw_list_archive = power_draw_items.ToList(); - power_draw_list_archive.Reverse(); - - // check engines - foreach (KeyValuePair power_kvp in power_draw_items) { - ORSResourceSuppliable ms = power_kvp.Key; - - if (ms.getPowerPriority() == 1) { - double power = power_kvp.Value; - current_resource_demand += power; - high_priority_resource_demand += power; - if (flow_type == FNRESOURCE_FLOWTYPE_EVEN) { - power = power * high_priority_demand_supply_ratio; - } - double power_supplied = Math.Max(Math.Min(powersupply, power),0.0); - //Debug.Log (power + ", " + powersupply + "::: " + power_supplied); - powersupply -= power_supplied; - //notify of supply - ms.receiveFNResource(power_supplied, this.resource_name); - } - - } - // check others - foreach (KeyValuePair power_kvp in power_draw_items) { - ORSResourceSuppliable ms = power_kvp.Key; - - if (ms.getPowerPriority() == 2) { - double power = power_kvp.Value; - current_resource_demand += power; - if (flow_type == FNRESOURCE_FLOWTYPE_EVEN) { - power = power * demand_supply_ratio; - } - double power_supplied = Math.Max(Math.Min(powersupply, power),0.0); - powersupply -= power_supplied; - - //notify of supply - ms.receiveFNResource(power_supplied, this.resource_name); - } - - } - // check radiators - foreach (KeyValuePair power_kvp in power_draw_items) { - ORSResourceSuppliable ms = power_kvp.Key; - if (ms.getPowerPriority() == 3) { - double power = power_kvp.Value; - current_resource_demand += power; - if (flow_type == FNRESOURCE_FLOWTYPE_EVEN) { - power = power * demand_supply_ratio; - } - double power_supplied = Math.Max(Math.Min(powersupply, power),0.0); - powersupply -= power_supplied; - - //notify of supply - ms.receiveFNResource(power_supplied, this.resource_name); - } - } - - - powersupply -= Math.Max(currentmegajoules,0.0); - - internl_power_extract = -powersupply * TimeWarp.fixedDeltaTime; - - pluginSpecificImpl(); - - if (internl_power_extract > 0) { - internl_power_extract = Math.Min(internl_power_extract, currentmegajoules); - } else if (internl_power_extract < 0) { - internl_power_extract = Math.Max(internl_power_extract, -missingmegajoules); - } - - //my_part.RequestResource(this.resource_name, internl_power_extract); - ORSHelper.fixedRequestResource(my_part, this.resource_name, internl_power_extract); - powersupply = 0; - stable_supply = 0; - power_supplies.Clear(); - power_draws.Clear(); - } - - protected virtual void pluginSpecificImpl() { - - } - - public void showWindow() { - render_window = true; - } - - public void hideWindow() { - render_window = false; - } - - public void OnGUI() { - if (my_vessel == FlightGlobals.ActiveVessel && render_window) { - string title = resource_name + " Power Management Display"; - windowPosition = GUILayout.Window(windowID, windowPosition, doWindow, title); - } - } - - protected virtual void doWindow(int windowID) { - - } - - protected string getPowerFormatString(double power) { - if (Math.Abs(power) >= 1000) { - if (Math.Abs(power) > 20000) { - return (power / 1000).ToString("0.0") + " GW"; - } else { - return (power / 1000).ToString("0.00") + " GW"; - } - } else { - if (Math.Abs(power) > 20) { - return power.ToString("0.0") + " MW"; - } else { - if (Math.Abs(power) >= 1) { - return power.ToString("0.00") + " MW"; - } else { - return (power * 1000).ToString("0.00") + " KW"; - } - } - } - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace OpenResourceSystem { + public class ORSResourceManager { + public const string FNRESOURCE_MEGAJOULES = "Megajoules"; + public const string FNRESOURCE_CHARGED_PARTICLES = "ChargedParticles"; + public const string FNRESOURCE_THERMALPOWER = "ThermalPower"; + public const string FNRESOURCE_WASTEHEAT = "WasteHeat"; + public const int FNRESOURCE_FLOWTYPE_SMALLEST_FIRST = 0; + public const int FNRESOURCE_FLOWTYPE_EVEN = 1; + protected const double passive_temp_p4 = 2947.295521; + + protected Vessel my_vessel; + protected Part my_part; + protected PartModule my_partmodule; + protected Dictionary power_draws; + protected Dictionary power_supplies; + List partresources; + protected String resource_name; + //protected Dictionary power_returned; + protected double powersupply = 0; + protected double stable_supply = 0; + protected double stored_stable_supply = 0; + protected double stored_resource_demand = 0; + protected double current_resource_demand = 0; + protected double high_priority_resource_demand = 0; + protected double charge_resource_demand = 0; + protected double stored_supply = 0; + protected double stored_charge_demand = 0; + protected int flow_type = 0; + protected List> power_draw_list_archive; + protected bool render_window = false; + protected Rect windowPosition = new Rect(200, 200, 300, 100); + protected int windowID = 36549835; + protected double resource_bar_ratio = 0; + protected GUIStyle bold_label; + protected GUIStyle green_label; + protected GUIStyle red_label; + protected GUIStyle right_align; + protected double internl_power_extract = 0; + + public ORSResourceManager(PartModule pm,String resource_name) { + my_vessel = pm.vessel; + my_part = pm.part; + my_partmodule = pm; + power_draws = new Dictionary(); + power_supplies = new Dictionary(); + this.resource_name = resource_name; + + if (resource_name == FNRESOURCE_WASTEHEAT || resource_name == FNRESOURCE_THERMALPOWER) { + flow_type = FNRESOURCE_FLOWTYPE_EVEN; + } else { + flow_type = FNRESOURCE_FLOWTYPE_SMALLEST_FIRST; + } + } + + public void powerDraw(ORSResourceSuppliable pm, double power_draw) { + if (power_draws.ContainsKey(pm)) { + power_draw = power_draw / TimeWarp.fixedDeltaTime + power_draws[pm]; + power_draws[pm] = power_draw; + }else { + power_draws.Add(pm, power_draw / TimeWarp.fixedDeltaTime); + } + } + + public float powerSupply(ORSResourceSupplier pm, float power) { + return (float) powerSupply (pm,(double)power); + } + + public double powerSupply(ORSResourceSupplier pm, double power) { + powersupply += (power / TimeWarp.fixedDeltaTime); + stable_supply += (power / TimeWarp.fixedDeltaTime); + if (power_supplies.ContainsKey(pm)) { + power_supplies[pm] += (power / TimeWarp.fixedDeltaTime); + } else { + power_supplies.Add(pm, (power / TimeWarp.fixedDeltaTime)); + } + return power; + } + + public float powerSupplyFixedMax(ORSResourceSupplier pm, float power, float maxpower) { + return (float) powerSupplyFixedMax (pm, (double)power,(double)maxpower); + } + + public double powerSupplyFixedMax(ORSResourceSupplier pm, double power, double maxpower) { + powersupply += (power / TimeWarp.fixedDeltaTime); + stable_supply += (maxpower / TimeWarp.fixedDeltaTime); + if (power_supplies.ContainsKey(pm)) { + power_supplies[pm] += (power / TimeWarp.fixedDeltaTime); + } else { + power_supplies.Add(pm, (power / TimeWarp.fixedDeltaTime)); + } + return power; + } + + public float managedPowerSupply(ORSResourceSupplier pm, float power) { + return managedPowerSupplyWithMinimum (pm, power, 0); + } + + public double managedPowerSupply(ORSResourceSupplier pm, double power) { + return managedPowerSupplyWithMinimum (pm, power, 0); + } + + public double getSpareResourceCapacity() { + partresources = my_part.GetConnectedResources(resource_name).ToList(); + double spare_capacity = 0; + foreach (PartResource partresource in partresources) { + spare_capacity += partresource.maxAmount - partresource.amount; + } + return spare_capacity; + } + + public float managedPowerSupplyWithMinimum(ORSResourceSupplier pm, float power, float rat_min) { + return (float) managedPowerSupplyWithMinimum(pm, (double)power, (double)rat_min); + } + + public double managedPowerSupplyWithMinimum(ORSResourceSupplier pm, double power, double rat_min) { + double power_seconds_units = power / TimeWarp.fixedDeltaTime; + double power_min_seconds_units = power_seconds_units * rat_min; + double managed_supply_val_add = + Math.Min (power_seconds_units, + Math.Max(getCurrentUnfilledResourceDemand() + getSpareResourceCapacity() / TimeWarp.fixedDeltaTime, + power_min_seconds_units)); + powersupply += managed_supply_val_add; + stable_supply += power_seconds_units; + if (power_supplies.ContainsKey(pm)) { + power_supplies[pm] += (power / TimeWarp.fixedDeltaTime); + } else { + power_supplies.Add(pm, (power / TimeWarp.fixedDeltaTime)); + } + return managed_supply_val_add * TimeWarp.fixedDeltaTime; + } + + public float getStableResourceSupply() { + return (float) stored_stable_supply; + } + + public float getCurrentResourceDemand() { + return (float) current_resource_demand; + } + + public float getCurrentUnfilledResourceDemand() { + return (float) (current_resource_demand - powersupply); + } + + public double getResourceBarRatio() { + return resource_bar_ratio; + } + + public Vessel getVessel() { + return my_vessel; + } + + public void updatePartModule(PartModule pm) { + my_vessel = pm.vessel; + my_part = pm.part; + my_partmodule = pm; + } + + public PartModule getPartModule() { + return my_partmodule; + } + + public void update() { + stored_supply = powersupply; + stored_stable_supply = stable_supply; + stored_resource_demand = current_resource_demand; + double stored_current_demand = current_resource_demand; + double stored_current_hp_demand = high_priority_resource_demand; + double stored_current_charge_demand = charge_resource_demand; + stored_charge_demand = charge_resource_demand; + + current_resource_demand = 0; + high_priority_resource_demand = 0; + charge_resource_demand = 0; + + //Debug.Log ("Early:" + powersupply); + + //stored power + List partresources = my_part.GetConnectedResources(resource_name).ToList(); + double currentmegajoules = 0; + double maxmegajoules = 0; + foreach (PartResource partresource in partresources) { + currentmegajoules += partresource.amount; + maxmegajoules += partresource.maxAmount; + } + if (maxmegajoules > 0) { + resource_bar_ratio = currentmegajoules / maxmegajoules; + } else { + resource_bar_ratio = 0; + } + double missingmegajoules = maxmegajoules - currentmegajoules; + powersupply += currentmegajoules; + //Debug.Log ("Current:" + currentmegajoules); + + double demand_supply_ratio = 0; + double high_priority_demand_supply_ratio = 0; + + if (high_priority_resource_demand > 0) { + high_priority_demand_supply_ratio = Math.Min ((powersupply-stored_current_charge_demand) / stored_current_hp_demand, 1.0); + } else { + high_priority_demand_supply_ratio = 1.0; + } + + if (stored_current_demand > 0) { + demand_supply_ratio = Math.Min ((powersupply-stored_current_charge_demand-stored_current_hp_demand) / stored_current_demand, 1.0); + } else { + demand_supply_ratio = 1.0; + } + + + //Prioritise supplying stock ElectricCharge resource + if (String.Equals(this.resource_name, ORSResourceManager.FNRESOURCE_MEGAJOULES) && stored_stable_supply > 0) { + List electric_charge_resources = my_part.GetConnectedResources ("ElectricCharge").ToList(); + double stock_electric_charge_needed = 0; + foreach (PartResource partresource in electric_charge_resources) { + stock_electric_charge_needed += partresource.maxAmount - partresource.amount; + } + double power_supplied = Math.Min(powersupply*1000*TimeWarp.fixedDeltaTime, stock_electric_charge_needed); + if (stock_electric_charge_needed > 0) { + current_resource_demand += stock_electric_charge_needed / 1000.0 / TimeWarp.fixedDeltaTime; + charge_resource_demand += stock_electric_charge_needed / 1000.0 / TimeWarp.fixedDeltaTime; + } + if (power_supplied > 0) { + powersupply += my_part.RequestResource("ElectricCharge", -power_supplied) / 1000 / TimeWarp.fixedDeltaTime; + } + } + + //sort by power draw + //var power_draw_items = from pair in power_draws orderby pair.Value ascending select pair; + List> power_draw_items = power_draws.ToList(); + + power_draw_items.Sort(delegate(KeyValuePair firstPair, KeyValuePair nextPair) { return firstPair.Value.CompareTo(nextPair.Value); }); + power_draw_list_archive = power_draw_items.ToList(); + power_draw_list_archive.Reverse(); + + // check engines + foreach (KeyValuePair power_kvp in power_draw_items) { + ORSResourceSuppliable ms = power_kvp.Key; + + if (ms.getPowerPriority() == 1) { + double power = power_kvp.Value; + current_resource_demand += power; + high_priority_resource_demand += power; + if (flow_type == FNRESOURCE_FLOWTYPE_EVEN) { + power = power * high_priority_demand_supply_ratio; + } + double power_supplied = Math.Max(Math.Min(powersupply, power),0.0); + //Debug.Log (power + ", " + powersupply + "::: " + power_supplied); + powersupply -= power_supplied; + //notify of supply + ms.receiveFNResource(power_supplied, this.resource_name); + } + + } + // check others + foreach (KeyValuePair power_kvp in power_draw_items) { + ORSResourceSuppliable ms = power_kvp.Key; + + if (ms.getPowerPriority() == 2) { + double power = power_kvp.Value; + current_resource_demand += power; + if (flow_type == FNRESOURCE_FLOWTYPE_EVEN) { + power = power * demand_supply_ratio; + } + double power_supplied = Math.Max(Math.Min(powersupply, power),0.0); + powersupply -= power_supplied; + + //notify of supply + ms.receiveFNResource(power_supplied, this.resource_name); + } + + } + // check radiators + foreach (KeyValuePair power_kvp in power_draw_items) { + ORSResourceSuppliable ms = power_kvp.Key; + if (ms.getPowerPriority() == 3) { + double power = power_kvp.Value; + current_resource_demand += power; + if (flow_type == FNRESOURCE_FLOWTYPE_EVEN) { + power = power * demand_supply_ratio; + } + double power_supplied = Math.Max(Math.Min(powersupply, power), 0.0); + powersupply -= power_supplied; + + //notify of supply + ms.receiveFNResource(power_supplied, this.resource_name); + } + } + + + powersupply -= Math.Max(currentmegajoules, 0.0); + + internl_power_extract = -powersupply * TimeWarp.fixedDeltaTime; + + pluginSpecificImpl(); + + if (internl_power_extract > 0) + internl_power_extract = Math.Min(internl_power_extract, currentmegajoules); + else + internl_power_extract = Math.Max(internl_power_extract, -missingmegajoules); + + //my_part.RequestResource(this.resource_name, internl_power_extract); + ORSHelper.fixedRequestResource(my_part, this.resource_name, internl_power_extract); + powersupply = 0; + stable_supply = 0; + power_supplies.Clear(); + power_draws.Clear(); + } + + protected virtual void pluginSpecificImpl() { + + } + + public void showWindow() { + render_window = true; + } + + public void hideWindow() { + render_window = false; + } + + public void OnGUI() { + if (my_vessel == FlightGlobals.ActiveVessel && render_window) { + string title = resource_name + " Power Management Display"; + windowPosition = GUILayout.Window(windowID, windowPosition, doWindow, title); + } + } + + protected virtual void doWindow(int windowID) { + + } + + protected string getPowerFormatString(double power) { + if (Math.Abs(power) >= 1000) { + if (Math.Abs(power) > 20000) { + return (power / 1000).ToString("0.0") + " GW"; + } else { + return (power / 1000).ToString("0.00") + " GW"; + } + } else { + if (Math.Abs(power) > 20) { + return power.ToString("0.0") + " MW"; + } else { + if (Math.Abs(power) >= 1) { + return power.ToString("0.00") + " MW"; + } else { + return (power * 1000).ToString("0.00") + " KW"; + } + } + } + } + } +} diff --git a/OpenResourceSystem/ORSResourceSuppliableModule.cs b/OpenResourceSystem/ORSResourceSuppliableModule.cs index 8f88f52c..4f324fcb 100644 --- a/OpenResourceSystem/ORSResourceSuppliableModule.cs +++ b/OpenResourceSystem/ORSResourceSuppliableModule.cs @@ -1,213 +1,213 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace OpenResourceSystem { - public abstract class ORSResourceSuppliableModule :PartModule, ORSResourceSuppliable, ORSResourceSupplier{ - protected Dictionary fnresource_supplied = new Dictionary(); - protected Dictionary fnresource_managers = new Dictionary (); - protected String[] resources_to_supply; - - public void receiveFNResource(double power, String resourcename) { - - //resourcename = resourcename.ToLower(); - if (fnresource_supplied.ContainsKey(resourcename)) { - fnresource_supplied[resourcename] = power; - }else{ - fnresource_supplied.Add(resourcename, power); - } - } - - public float consumeFNResource(double power, String resourcename) { - power = Math.Max (power, 0); - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - if (!fnresource_supplied.ContainsKey(resourcename)) { - fnresource_supplied.Add(resourcename, 0); - } - double power_taken = Math.Max(Math.Min(power, fnresource_supplied[resourcename]*TimeWarp.fixedDeltaTime),0); - fnresource_supplied[resourcename] -= power_taken; - ORSResourceManager mega_manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - - mega_manager.powerDraw(this, power); - return (float)power_taken; - } - - public float consumeFNResource(float power, String resourcename) { - return (float)consumeFNResource((double)power, resourcename); - } - - public float supplyFNResource(float supply, String resourcename) { - return (float) supplyFNResource ((double)supply, resourcename); - } - - public double supplyFNResource(double supply, String resourcename) { - supply = Math.Max (supply, 0); - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.powerSupply (this, supply); - } - - public float supplyFNResourceFixedMax(float supply, float maxsupply, String resourcename) { - return (float)supplyFNResourceFixedMax ((double)supply, (double)maxsupply, resourcename); - } - - public double supplyFNResourceFixedMax(double supply, double maxsupply, String resourcename) { - supply = Math.Max (supply, 0); - maxsupply = Math.Max (maxsupply, 0); - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.powerSupplyFixedMax (this,supply,maxsupply); - } - - public float supplyManagedFNResource(float supply, String resourcename) { - return (float)supplyManagedFNResource ((double)supply, resourcename); - } - - public double supplyManagedFNResource(double supply, String resourcename) { - supply = Math.Max (supply, 0); - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.managedPowerSupply (this, supply); - } - - public float supplyManagedFNResourceWithMinimum(float supply, float rat_min, String resourcename) { - return (float)supplyManagedFNResourceWithMinimum ((double)supply, (double)rat_min, resourcename); - } - - public double supplyManagedFNResourceWithMinimum(double supply, double rat_min, String resourcename) { - supply = Math.Max (supply, 0); - rat_min = Math.Max (rat_min, 0); - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.managedPowerSupplyWithMinimum (this, supply,rat_min); - } - - public float getCurrentResourceDemand(String resourcename) { - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.getCurrentResourceDemand (); - } - - public float getStableResourceSupply(String resourcename) { - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.getStableResourceSupply (); - } - - public float getCurrentUnfilledResourceDemand(String resourcename) { - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.getCurrentUnfilledResourceDemand (); - } - - public double getResourceBarRatio(String resourcename) { - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.getResourceBarRatio (); - } - - public double getSpareResourceCapacity(String resourcename) { - if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - return 0; - } - - ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - return manager.getSpareResourceCapacity(); - } - - public override void OnStart(PartModule.StartState state) { - if (state != StartState.Editor && resources_to_supply != null) { - foreach (String resourcename in resources_to_supply) { - ORSResourceManager manager; - - if (getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { - manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); - if (manager == null) { - manager = createResourceManagerForResource(resourcename); - print ("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); - } - }else { - manager = createResourceManagerForResource(resourcename); - - print("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); - } - - } - } - } - - public override void OnFixedUpdate() { - if (resources_to_supply != null) { - - foreach (String resourcename in resources_to_supply) { - ORSResourceManager manager; - - if (!getOvermanagerForResource(resourcename).hasManagerForVessel (vessel)) { - manager = createResourceManagerForResource(resourcename); - print("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); - } else { - manager = getOvermanagerForResource(resourcename).getManagerForVessel (vessel); - if (manager == null) { - manager = createResourceManagerForResource(resourcename); - print("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); - } - } - - if (manager.getPartModule ().vessel != this.vessel || manager.getPartModule() == null) { - manager.updatePartModule (this); - } - - if (manager.getPartModule () == this) { - manager.update (); - } - } - } - - } - - public virtual string getResourceManagerDisplayName() { - return ClassName; - } - - public virtual int getPowerPriority() { - return 2; - } - - protected virtual ORSResourceManager createResourceManagerForResource(string resourcename) { - return getOvermanagerForResource(resourcename).createManagerForVessel(this); - } - - protected virtual ORSResourceOvermanager getOvermanagerForResource(string resourcename) { - return ORSResourceOvermanager.getResourceOvermanagerForResource(resourcename); - } - - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OpenResourceSystem { + public abstract class ORSResourceSuppliableModule :PartModule, ORSResourceSuppliable, ORSResourceSupplier{ + protected Dictionary fnresource_supplied = new Dictionary(); + protected Dictionary fnresource_managers = new Dictionary (); + protected String[] resources_to_supply; + + public void receiveFNResource(double power, String resourcename) { + + //resourcename = resourcename.ToLower(); + if (fnresource_supplied.ContainsKey(resourcename)) { + fnresource_supplied[resourcename] = power; + }else{ + fnresource_supplied.Add(resourcename, power); + } + } + + public float consumeFNResource(double power, String resourcename) { + power = Math.Max (power, 0); + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + if (!fnresource_supplied.ContainsKey(resourcename)) { + fnresource_supplied.Add(resourcename, 0); + } + double power_taken = Math.Max(Math.Min(power, fnresource_supplied[resourcename]*TimeWarp.fixedDeltaTime),0); + fnresource_supplied[resourcename] -= power_taken; + ORSResourceManager mega_manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + + mega_manager.powerDraw(this, power); + return (float)power_taken; + } + + public float consumeFNResource(float power, String resourcename) { + return (float)consumeFNResource((double)power, resourcename); + } + + public float supplyFNResource(float supply, String resourcename) { + return (float) supplyFNResource ((double)supply, resourcename); + } + + public double supplyFNResource(double supply, String resourcename) { + supply = Math.Max (supply, 0); + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.powerSupply (this, supply); + } + + public float supplyFNResourceFixedMax(float supply, float maxsupply, String resourcename) { + return (float)supplyFNResourceFixedMax ((double)supply, (double)maxsupply, resourcename); + } + + public double supplyFNResourceFixedMax(double supply, double maxsupply, String resourcename) { + supply = Math.Max (supply, 0); + maxsupply = Math.Max (maxsupply, 0); + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.powerSupplyFixedMax (this,supply,maxsupply); + } + + public float supplyManagedFNResource(float supply, String resourcename) { + return (float)supplyManagedFNResource ((double)supply, resourcename); + } + + public double supplyManagedFNResource(double supply, String resourcename) { + supply = Math.Max (supply, 0); + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.managedPowerSupply (this, supply); + } + + public float supplyManagedFNResourceWithMinimum(float supply, float rat_min, String resourcename) { + return (float)supplyManagedFNResourceWithMinimum ((double)supply, (double)rat_min, resourcename); + } + + public double supplyManagedFNResourceWithMinimum(double supply, double rat_min, String resourcename) { + supply = Math.Max (supply, 0); + rat_min = Math.Max (rat_min, 0); + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.managedPowerSupplyWithMinimum (this, supply,rat_min); + } + + public float getCurrentResourceDemand(String resourcename) { + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.getCurrentResourceDemand (); + } + + public float getStableResourceSupply(String resourcename) { + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.getStableResourceSupply (); + } + + public float getCurrentUnfilledResourceDemand(String resourcename) { + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.getCurrentUnfilledResourceDemand (); + } + + public double getResourceBarRatio(String resourcename) { + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.getResourceBarRatio (); + } + + public double getSpareResourceCapacity(String resourcename) { + if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + return 0; + } + + ORSResourceManager manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + return manager.getSpareResourceCapacity(); + } + + public override void OnStart(PartModule.StartState state) { + if (state != StartState.Editor && resources_to_supply != null) { + foreach (String resourcename in resources_to_supply) { + ORSResourceManager manager; + + if (getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { + manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); + if (manager == null) { + manager = createResourceManagerForResource(resourcename); + print ("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); + } + }else { + manager = createResourceManagerForResource(resourcename); + + print("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); + } + + } + } + } + + public override void OnFixedUpdate() { + if (resources_to_supply != null) { + + foreach (String resourcename in resources_to_supply) { + ORSResourceManager manager; + + if (!getOvermanagerForResource(resourcename).hasManagerForVessel (vessel)) { + manager = createResourceManagerForResource(resourcename); + print("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); + } else { + manager = getOvermanagerForResource(resourcename).getManagerForVessel (vessel); + if (manager == null) { + manager = createResourceManagerForResource(resourcename); + print("[ORS] Creating Resource Manager for Vessel " + vessel.GetName() + " (" + resourcename + ")"); + } + } + + if (manager.getPartModule ().vessel != this.vessel || manager.getPartModule() == null) { + manager.updatePartModule (this); + } + + if (manager.getPartModule () == this) { + manager.update (); + } + } + } + + } + + public virtual string getResourceManagerDisplayName() { + return ClassName; + } + + public virtual int getPowerPriority() { + return 2; + } + + protected virtual ORSResourceManager createResourceManagerForResource(string resourcename) { + return getOvermanagerForResource(resourcename).createManagerForVessel(this); + } + + protected virtual ORSResourceOvermanager getOvermanagerForResource(string resourcename) { + return ORSResourceOvermanager.getResourceOvermanagerForResource(resourcename); + } + + + } +} diff --git a/OpenResourceSystem/OpenResourceSystem.csproj b/OpenResourceSystem/OpenResourceSystem.csproj index 0c389b7e..accfc792 100644 --- a/OpenResourceSystem/OpenResourceSystem.csproj +++ b/OpenResourceSystem/OpenResourceSystem.csproj @@ -1,80 +1,110 @@ - - - - - Debug - AnyCPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836} - Library - Properties - OpenResourceSystem - OpenResourceSystem_1_4_2 - v3.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - C:\Games\Kerbal Space Program 0.24\KSP_Data\Managed\Assembly-CSharp.dll - - - - - - - - - - False - C:\Games\Kerbal Space Program 0.24\KSP_Data\Managed\UnityEngine.dll - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + AnyCPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836} + Library + Properties + OpenResourceSystem + OpenResourceSystem_1_4_3 + v3.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Games\Kerbal Space Program 0.90\GameData\OpenResourceSystem\Plugins\ + TRACE + prompt + 4 + + + bin\Release KSP 0.25\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + ..\..\..\..\..\Games\Kerbal Space Program 0.90\GameData\OpenResourceSystem\Plugins\ + DEBUG;TRACE + false + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + false + + + + False + ..\..\..\..\..\Games\Kerbal Space Program 0.90\KSP_Data\Managed\Assembly-CSharp.dll + False + + + False + ..\..\..\..\..\Games\Kerbal Space Program\KSP_Data\Managed\Assembly-CSharp.dll + False + + + + + + + + + False + ..\..\..\..\..\Games\Kerbal Space Program 0.90\KSP_Data\Managed\UnityEngine.dll + False + + + False + ..\..\..\..\..\Games\Kerbal Space Program\KSP_Data\Managed\UnityEngine.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OpenResourceSystem/OpenResourceSystem.sln b/OpenResourceSystem/OpenResourceSystem.sln deleted file mode 100644 index cee19014..00000000 --- a/OpenResourceSystem/OpenResourceSystem.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2012 for Windows Desktop -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenResourceSystem", "OpenResourceSystem.csproj", "{BCA16E74-23E5-4327-9D24-B908A8CE3836}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/README.md b/README.md index 7a1c172c..8b91cca7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ KSPInterstellar =============== -KSP Instellar Mod for Kerbal Space Program +KSP Instellar Mod for Kerbal Space Program version 0.90 diff --git a/WarpPlugin.sln b/WarpPlugin.sln index 2e2adafc..e6216deb 100644 --- a/WarpPlugin.sln +++ b/WarpPlugin.sln @@ -1,34 +1,47 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2012 for Windows Desktop -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WarpPlugin", "FNPlugin\WarpPlugin.csproj", "{AD686AF3-DDDC-4991-909F-EAD9C16C469B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6D6D5782-3585-4E07-A0C6-6E9915C9E30F}" - ProjectSection(SolutionItems) = preProject - License.md = License.md - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InterstellarToolbar", "InterstellarToolbar\InterstellarToolbar.csproj", "{E07DD2EF-6BDB-4519-92C3-6C9E2D944361}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release|Any CPU.Build.0 = Release|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E07DD2EF-6BDB-4519-92C3-6C9E2D944361}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = FNPlugin\WarpPlugin.csproj - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WarpPlugin", "FNPlugin\WarpPlugin.csproj", "{AD686AF3-DDDC-4991-909F-EAD9C16C469B}" + ProjectSection(ProjectDependencies) = postProject + {BCA16E74-23E5-4327-9D24-B908A8CE3836} = {BCA16E74-23E5-4327-9D24-B908A8CE3836} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6D6D5782-3585-4E07-A0C6-6E9915C9E30F}" + ProjectSection(SolutionItems) = preProject + License.md = License.md + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenResourceSystem", "OpenResourceSystem\OpenResourceSystem.csproj", "{BCA16E74-23E5-4327-9D24-B908A8CE3836}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug KSP 0.90|Any CPU = Debug KSP 0.90|Any CPU + Debug|Any CPU = Debug|Any CPU + Release KSP 0.25|Any CPU = Release KSP 0.25|Any CPU + Release KSP 0.90|Any CPU = Release KSP 0.90|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug KSP 0.90|Any CPU.ActiveCfg = Debug KSP 0.90|Any CPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug KSP 0.90|Any CPU.Build.0 = Debug KSP 0.90|Any CPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release KSP 0.25|Any CPU.ActiveCfg = Release KSP 0.25|Any CPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release KSP 0.25|Any CPU.Build.0 = Release KSP 0.25|Any CPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release KSP 0.90|Any CPU.ActiveCfg = Release KSP 0.90|Any CPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B}.Release KSP 0.90|Any CPU.Build.0 = Release KSP 0.90|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug KSP 0.90|Any CPU.ActiveCfg = Debug KSP 0.90|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug KSP 0.90|Any CPU.Build.0 = Debug KSP 0.90|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release KSP 0.25|Any CPU.ActiveCfg = Release KSP 0.25|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release KSP 0.25|Any CPU.Build.0 = Release KSP 0.25|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release KSP 0.90|Any CPU.ActiveCfg = Release KSP 0.90|Any CPU + {BCA16E74-23E5-4327-9D24-B908A8CE3836}.Release KSP 0.90|Any CPU.Build.0 = Release KSP 0.90|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = FNPlugin\WarpPlugin.csproj + EndGlobalSection +EndGlobal