Jump to content

Monniasza

Members
  • Posts

    74
  • Joined

  • Last visited

Everything posted by Monniasza

  1. You have to find tank whose name ends in "(LPGox)" or "(LPG)" for rockets and jets correspondingly.
  2. Do you have any plans for these scripts? I plan to use scripts extensively in LPG module of SSTO Project.
  3. This patch generates 3 errors per part. How I can fix it? Here is the patch: //New, improved LPG code //Set up existing LPG module RESOURCE_DEFINITION{ name = LPG displayName = LPG abbreviation = LPG density = 0.00054 //540 g/l unitCost = 0.256 //Calculated based on American prices for LPG - 0.4 $/l and RP-1 -125$/kg hsp = 2010 flowMode = STACK_PRIORITY_SEARCH transfer = PUMP isTweakable = true volume = 1 } // vvv MFT COMPATIBILITY @TANK_DEFINITION[Default,Fuselage,Structural,ServiceModule,Balloon]{ TANK{ name = LPG amount = 0.0 maxAmount = 0.0 utilization = 5 note = (pressurized) } } TANK_DEFINITION{ name = LPG basemass = 0.000050 * volume TANK{ name = LPG amount = full maxAmount = 100% utilization = 5 note = (pressurized) } TANK{ name = Oxidizer amount = 0.0 maxAmount = 0.0 } } TANK_DEFINITION{ name = LPGox basemass = 0.000050 * volume TANK{ name = LPG amount = full maxAmount = 25.9259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259259% utilization = 5 note = (pressurized) } TANK{ name = Oxidizer amount = full maxAmount = 74.0740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740740% } } //Generate ModuleLPG for known parts @PART[*]:HAS[!MODULE[ModuleLPG]]:FINAL{ MODULE{ name = ModuleLPG } } @PART[*]:FINAL{ lf = 0 ox = 0 @MODULE[ModuleLPG]{ err_a = false err_t = false err_i = false err_c = false err_r = false err_fs = false } } // Handle LPG +PART[*]:FINAL{ fuel = 0 @title = #$title$ (LPG) @name = #$name$_LPG } //Test amount @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[~amount]]:FINAL{ @MODULE[ModuleLPG]{ @err_a = true } } @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#amount]]:FINAL{ @MODULE[ModuleLPG]{ tmp = 0 @tmp += #$amount$ @err_a = false } @MODULE[ModuleLPG]:HAS[#ąmount[-*]|#tmp[0]|#amount[]|#tmp[NaN]|#tmp[*Infinity]]{ @err_a = true } } //Test Isp mutiplier @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[~isp]]:FINAL{ @MODULE[ModuleLPG]{ @err_i = true } } @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#isp]]:FINAL{ @MODULE[ModuleLPG]{ @tmp = 0 @tmp += #$amount$ @err_i = false } @MODULE[ModuleLPG]:HAS[#isp[-*]|#tmp[0]|#isp[]|#tmp[NaN]|#tmp[*Infinity]]{ @err_i = true } } //Test fuel ratio @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[~ratio]]:FINAL{ @MODULE[ModuleLPG]{ @err_r = true } } @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#ratio]]:FINAL{ @MODULE[ModuleLPG]{ @tmp = 0 @tmp += #$amount$ @err_r = false } @MODULE[ModuleLPG]:HAS[#ratio[-*]|#tmp[0]|#ratio[]|#tmp[NaN]|#tmp[*Infinity]]{ @err_r = true } } @PART[*_LPG]:FINAL{ lf = 0 ox = 0 //Test type @MODULE[ModuleLPG]{ %err_t = true } @MODULE[ModuleLPG]:HAS[#type[stock]|#type[fs]|#type[mfs]]{ @err_t = false } //Test tankage @MODULE[ModuleLPG]{ %err_c = true } @MODULE[ModuleLPG]:HAS[#contents[lpg]|#contents[lpgo]|#contents[none]]{ @err_c = false } //Calculate the fuel ratio @MODULE[ModuleLPG]:HAS[#err_r[true]]{ %ratio = 8 } @MODULE[ModuleLPG]:HAS[#err_r[true]]:NEEDS[SMURFF]{ @ratio /= #$@SMURFFCONFIG/lfofactor$ } } //If fuel switchers are present, take fuel from them instead @PART[*_LPG]:HAS[@MODULE[ModuleFuelTanks]:HAS[#type[Default]|#type[Structural]|#typeServiceModule]|#type[Balloon]]:FINAL{ @fuel += #$MODULE[ModuleFuelTanks]/volume$ !MODULE[ModuleFuelTanks] {} @MODULE[ModuleLPG]{ @err_a = false @err_c = false @amount = #$../fuel$ @contents = lpgo @amount = #$../fuel$ } } @PART[*_LPG]:HAS[@MODULE[ModuleFuelTanks]:HAS[#type[Fuselage]]]:FINAL{ @fuel += #$MODULE[ModuleFuelTanks]/volume$ !MODULE[ModuleFuelTanks] {} @MODULE[ModuleLPG]{ @err_a = false @err_c = false @amount = #$../fuel$ @contents = lpg @amount = #$../fuel$ } } @PART[*_LPG]:HAS[@MODULE[ModuleB9PartSwitch]]:FINAL{ @fuel += #$MODULE[ModuleB9PartSwitch]/baseVolume$ !MODULE[ModuleB9PartSwitch] {} @MODULE[ModuleLPG]{ @err_a = false @err_c = false @amount = #$../fuel$ } } @PART[*_LPG]:HAS[@RESOURCE[LiquidFuel]]:FINAL{ @lf += #$RESOURCE[LiquidFuel]/maxAmount$ @fuel += #$lf$ } @PART[*_LPG]:HAS[@RESOURCE[Oxidizer]]:FINAL{ @ox += #$RESOURCE[Oxidizer]/maxAmount$ @fuel += #$ox$ } //@PART[*_LPG]:HAS[!MODULE[ModuleFuelTanks]]:FINAL{ // //Count resources and decompute the mass // @MODULE[ModuleLPG]:HAS[~amount]{ // amount = 0 // lf = 0 // ox = 0 // lf = #$../lf$ // ox = #$../ox$ // @amount = #$lf$ // @amount += #$ox$ // } // @MODULE[ModuleLPG]:HAS[#ox[0]&#lf[0]]{ // %contents = none // } // @MODULE[ModuleLPG]:HAS[#ox[0]&~lf[0]]{ // %contents = lpg // } // @MODULE[ModuleLPG]:HAS[~ox[0]&~lf[0]]{ // %contents = lpgo // } //} @PART[*_LPG]:HAS[MODULE[ModuleFuelTanks]]:FINAL{ //Count resources and decompute the mass @MODULE[ModuleLPG]:HAS[~amount]{ amount = 0 @amount = #$../MODULE[ModularFuelTanks]/volume$ } @MODULE[ModuleLPG]:HAS[#ox[0]&#lf[0]]{ %contents = none } @MODULE[ModuleLPG]:HAS[#ox[0]&~lf[0]]{ %contents = lpg } @MODULE[ModuleLPG]:HAS[~ox[0]&~lf[0]]{ %contents = lpgo } } @PART[*_LPG]:FINAL{ //Create fuel switchers @MODULE[ModuleLPG]{ newMass = #$../mass$ fs = false mfs = false @fs:NEEDS[Firespitter] = true @mfs:NEEDS[RealFuels|ModularFuelTanks] = true } @MODULE[ModuleLPG]:HAS[#err_t[true]]{ type = stock type:NEEDS[Firespitter] = fs type:NEEDS[RealFuels|ModularFuelTanks] = mfs } //If requested fuel switcher is absent, choose other one @MODULE[ModuleLPG]:HAS[#type[mfs]]:NEEDS[!RealFuels&!ModularFuelTanks]{ @type = stock @type:NEEDS[Firespitter] = fs } @MODULE[ModuleLPG]:HAS[#type[fs]]:NEEDS[!Firespitter]{ @type = stock @type:NEEDS[RealFuels|ModularFuelTanks] = mfs } @MODULE[ModuleLPG]{ massFuel = 0 massRemain = 0 @massFuel = #$amount$ @massFuel *= 5 @massFuel /= #$ratio$ @massRemain = #$../mass$ @massRemain -= #$massFuel$ @newMass = #$amount$ @newMass *= 0.05 @newMass += #$massRemain$ } @mass = #$MODULE[ModuleLPG]/newMass$ SSTOLPG = 1.06 } @PART[bluedog_*_LPG]:FINAL{ //Increased LPG improvement - BDB engines have inferior Isp, so increase by 20% @SSTOLPG = 1.22 } @PART[B9_*_LPG]:FINAL{ //Intermediate LPG improvement -both normal and high efficiency engines @SSTOLPG = 1.05 } @PART[RSB*_LPG]:FINAL{ //Realistic LPG improvement @SSTOLPG = 1.04 } @PART[BAEengine*_LPG]:FINAL{ //Increased LPG improvement - BAE engines have inferior Isp, so increase by 20% @SSTOLPG = 1.15 } @PART[*_LPG]:HAS[#manufacturer[Alcentar]]:FINAL{ //RealEngines or LCA @SSTOLPG = 1.06 //Determine if using LCA pack or RealEngines - the second should improve 4% SSTOTMP = #$MODEL/model$ @SSTOTMP ^= "R(.*?)k" //LCA won't match } @PART[*_LPG]:HAS[#SSTOTMP[ealEnginesPac]]:FINAL{ //Realistic improvement - 4% @SSTOLPG = 1.04 } @PART[*_LPG]:FINAL{//Apply the changes for engine - Rockets and jets, no nukes @MODULE[ModuleEngines*]{ @eligible = false } @MODULE[ModuleEngines*]:HAS[@PROPELLANT[LiquidFuel],@PROPELLANT[Oxidizer]]{ //Rockets //3.5:1 mass OX/LPG eligible = true @PROPELLANT[Oxidizer]{ @ratio = 0.7 //3.5 volumetric } @PROPELLANT[LiquidFuel]{ @name = LPG @ratio = 2 //2 volumetric } @atmosphereCurve { k0 = #$key,0[1, ]$ @k0 *= #$../../SSTOLPG$ @key,0 = #0 $k0$ k1 = #$key,1[1, ]$ @k1 *= #$../../SSTOLPG$ @key,1 = #1 $k1$ } } @MODULE[ModuleEngines*]:HAS[@PROPELLANT[LiquidFuel],@PROPELLANT[IntakeAir]]{ //Jets //3.5:1 mass OX/LPG eligible = true @PROPELLANT[IntakeAir]{ @ratio *= 0.15 } @PROPELLANT[LiquidFuel]{ @name = LPG } @atmosphereCurve { k0 = #$key,0[1, ]$ @k0 *= 1.2 @key,0 = #0 $k0$ } } keep = false !RESOURCE[LiquidFuel|Oxidizer] {} } @PART[*_LPG]:HAS[@MODULE[ModuleEngines*]:HAS[#eligible[true]]]:FINAL{ @keep = true } @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[!contents[none]]]:FINAL{ @keep = true } //Remove unnecessary parts !PART[*_LPG]:HAS[#keep[false]]:FINAL {} //Apply tanks @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#type[stock]&contents[lpg]]]:FINAL{ RESOURCE{ name = LPG amount = #$../MODULE[ModuleLPG]/amount$ @amount *= 5 maxAmount = #$amount$ } } @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#type[stock]&contents[lpgo]]]:FINAL{ x = 0.7 @x /= 1.35 y = 2 @y /= 1.35 RESOURCE{ name = LPG amount = #$../MODULE[ModuleLPG]/amount$ @amount *= #$../y$ maxAmount = #$amount$ } RESOURCE{ name = Oxidizer amount = #$../MODULE[ModuleLPG]/amount$ @amount *= #$../x$ maxAmount = #$amount$ } } //TODO Firespitter Fuel Switch @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#type[mfs]&contents[lpg]]]:FINAL{ MODULE{ name = ModuleFuelTanks type = LPG basemass = #$../mass$ volume = #$../MODULE[ModuleLPG]/amount$ } } @PART[*_LPG]:HAS[@MODULE[ModuleLPG]:HAS[#type[mfs]&contents[lpgo]]]:FINAL{ MODULE{ name = ModuleFuelTanks type = LPGox basemass = #$../mass$ volume = #$../MODULE[ModuleLPG]/amount$ } } And error pattern ('xxx' stands for any part) [LOG] Applying update SSTOProject/LPG new/@PART[*_LPG]:FINAL to xxx [WRN] Cannot find key newMass in MODULE [ERR] Error - Cannot parse variable search when editing key mass = #$MODULE[ModuleLPG]/newMass$ [WRN] Cannot find key amount in MODULE [ERR] Error - Cannot parse variable search when editing key massFuel = #$amount$ [WRN] Cannot find key amount in MODULE [ERR] Error - Cannot parse variable search when editing key newMass = #$amount$ Mods used: Procedural Parts, SMURFF, Modular Fuel Tanks, both DLC
  4. Some people might want to have more design flexibility, by switching to Modular Fuel System and/or using LPG from SSTO Project.
  5. Whenever I switch SPH and VAB, I'm unable to build large vessels. To reproduce: - Load game in science or sandbox mode - Go to SPH or VAB - Switch editors until both mass and size are limited Here's the contents of GameData directory: And logs: https://drive.google.com/file/d/1ZX8NrFwhgojkIAU9r4aFJuCwlpHzVa4L/view?usp=sharing https://drive.google.com/file/d/1S8xSEfGmQNFMorRBhpS6Z_o-HupnzW0r/view?usp=sharing Screenshots: Save, which contains ship: https://drive.google.com/file/d/11urKBjs5iMguQNvvJ0W0IDLAvjha7WZm/view?usp=sharing ProceduralStartPlus directory in GameData: https://drive.google.com/file/d/1yMwTbeMBD-LuGHY3DQ4cTRaJ9xPqtTTY/view?usp=sharing
  6. I'd like to improve Procedural Start, adding support for Procedural Fairings and Procedural Probes, and other mods in future.

    1. Monniasza

      Monniasza

      I've coded it. In a single file and just 1117 bytes cfg. I'll test it before posting it here.

    2. Monniasza

      Monniasza

      Here's it:

      Remove all files but ProceduralStart.version

      Create ProceduralStart.cfg with following contents:

      @PART[procedural*]:AFTER[ProceduralParts]
      {
      	@TechRequired = start
      	@MODULE[ProceduralPart]
      	{
      		@TECHLIMIT,*
      		{
      			@name = start
      		}
      	}
      	@MODULE[ProceduralShapeCylinder]
      	{
      		@techRequired = start
      	}
      	@MODULE[ProceduralShapeCone]
      	{
      		@techRequired = start
      	}
      	@MODULE[ProceduralShapePill]
      	{
      		@techRequired = start
      	}
      	@MODULE[ProceduralShapeBezierCone]
      	{
      		@techRequired = start
      	}
      }
      
      !PROCFAIRINGS_MAXDIAMETER,* {}
      !PROCFAIRINGS_MINDIAMETER,* {}
      PROCFAIRINGS_MINDIAMETER
      {
          start = 50
          sandbox = 50
      }
      
      PROCFAIRINGS_MAXDIAMETER
      {
          start = 50
          sandbox = 50
      }
      !PART[pf_tech*] {}
      PART
      {
          name = pf_tech_fairing
          module = Part
          author = Starstrider42 (config), e-dog (model)
      
          MODEL
          {
              model = ProceduralFairings/Parts/base_standard
          }
      
          TechRequired = miniaturization
          entryCost = 0
          cost = 0
          category = none
          title = Procedural Start - all fairings avaliable right now
          manufacturer = Keramzit Engineering
          description = Unlocks all fairings and sizes
      }
      @PART[Kz*|SSTUBase*|SSTUHollowRing*]{
      	@TechRequired = start
      }

       

  7. You can remodel every part, using small PNG textures and low poly models (like I did in SSTO Project).
  8. I suggest you to reference used models instead of cloning them - it would save a lot of space.
  9. The first 3D model is released.
  10. @Manwith NonameDo you want to have this mod on CKAN? (asking again) On behalf of CKAN team.
  11. I have only one working 3d model. More coming soon. 1.3.1 will receive first 3D model and 1.4 will be 100% 3d modelled.
  12. Original: https://github.com/net-lisias-ksp/ModuleManager/commit/ff9f34ce5cb7da1cd40194dfaebdf999035aaa7f Copy: https://github.com/sarbian/ModuleManager/pull/161 I want to copy over this change to the original.
  13. @ssd21345 It's now released under v1.3
  14. Here is bug report: https://github.com/UbioWeldingLtd/UbioWeldContinued/issues/47 .
  15. However, it does not allow all 16'777'216 colors for every part.
  16. It's not yet started, I need to make models for coronavirus parts (refills, analysis module and coronavirus sample collector.) These are planned for 1.3.In 1.4, there will be new models, but for now there are placeholders.
  17. Removing HETTN helped. Here is bug report for HETTN-TETRIX conflict: https://github.com/Orthethac/HideEmptyTechTreeNodes/issues/9
  18. My main install is still broken after updating TETRIX Tech Tree and SSTO Project. I will need to temporarily uninstall KSPIE and open a mod support module creation request on KSPIE bug tracker. Here is the issue: https://github.com/sswelm/KSP-Interstellar-Extended/issues/587
×
×
  • Create New...