Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.97a is out! (02/02/24); New blog post: Simulator Enhancements (03/13/24)

Pages: 1 ... 6 7 [8] 9 10 ... 24

Author Topic: [0.9.1a] Boggled's Terraforming Mod  (Read 126174 times)

k2arim99

  • Ensign
  • *
  • Posts: 14
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #105 on: January 03, 2020, 08:31:04 AM »

im getting a error after updating
Code
104187 [Thread-5] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Error loading
104187 [Thread-5] ERROR com.fs.starfarer.campaign.save.CampaignGameManager  -
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : data.campaign.econ.industries.Stellar_Shade_Array
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
line number         : 6197
class[1]            : com.fs.starfarer.campaign.econ.Market
converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2]            : com.fs.starfarer.campaign.CampaignPlanet
class[3]            : com.fs.util.container.repo.ObjectRepository
class[4]            : com.fs.starfarer.campaign.StarSystem
class[5]            : com.fs.starfarer.campaign.CircularOrbit
class[6]            : com.fs.starfarer.loading.specs.FactionProduction
class[7]            : com.fs.starfarer.campaign.Faction
class[8]            : com.fs.starfarer.campaign.econ.Submarket
class[9]            : com.fs.starfarer.campaign.econ.reach.ReachEconomy
class[10]           : com.fs.starfarer.campaign.econ.reach.ReachEconomyStepper
class[11]           : com.fs.starfarer.campaign.econ.Economy
class[12]           : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[13]           : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[14]           : com.fs.starfarer.campaign.Hyperspace
class[15]           : com.fs.starfarer.campaign.CampaignEngine
converter-type[2]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : data.campaign.econ.industries.Stellar_Shade_Array
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
line number         : 6197
class[1]            : com.fs.starfarer.campaign.econ.Market
converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2]            : com.fs.starfarer.campaign.CampaignPlanet
class[3]            : com.fs.util.container.repo.ObjectRepository
class[4]            : com.fs.starfarer.campaign.StarSystem
class[5]            : com.fs.starfarer.campaign.CircularOrbit
class[6]            : com.fs.starfarer.loading.specs.FactionProduction


Code
com.fs.starfarer.title.ooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.actionPerformed(Unknown Source)
        at com.fs.starfarer.ui.k.buttonPressed(Unknown Source)
        at com.fs.starfarer.ui.int.new(Unknown Source)
        at com.fs.starfarer.ui.int.processInput(Unknown Source)
        at com.fs.starfarer.ui.V.super(Unknown Source)
        at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: data.campaign.econ.industries.Stellar_Shade_Array
        at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:81)
        at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
Logged

boggled

  • Admiral
  • *****
  • Posts: 1127
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #106 on: January 03, 2020, 03:54:33 PM »

The phrase "terrestrial planets" generally refers to worlds with a rocky/solid surface, a silicate mantle, and a metallic core.
And specifically in the context of our solar system it also refers to the innermost 4 planets.

You wouldn't be throwing water at Ogygia though. You'd be throwing ice. And that's an important distinction.
By throwing chunks of ice / ice comets at Ogygia (via Ismara's Sling) the resulting impacts would release all kinds of things, including water vapour. The impacts themselves might also liberate any water trapped in the rocks, plus whatever was in the provided 'package'.
Eventually this 'atmosphere' could become thick enough to allow the vapour to condense and form liquids. ('Eventually', as such impacts tend to be somewhat energetic and some fraction of any liberated useful matter could be flung off into space.)

The key thing is getting an atmosphere capable of exerting enough pressure on the water to allow it to exist as a liquid.
Doesn't really matter what that atmosphere is initially, that can be adjusted later. Getting liquid water on the surface is the primary goal.

This would require an enormous amount of ice/material/etc. to accomplish on a planet with no preexisting atmosphere right? I did some calculations and it seems the "launch ice using mass drivers" plan would require such an enormous amount of ice to make any difference even on a planet like Ithaca that it wouldn't be feasible on a human timescale. Plus, Ogygia probably has little to no magnetic field because it lacks an atmosphere to begin with, right?

My terraformed Ithaca was attacked so I went to defend it and noticed that it doesn't look so terraformed in the battle.

Spoiler
[close]

I'm guessing it's related to the ghost planet issue, so I doubt there's anything that can be done about it, but I just thought I'd let you know.

It might be connected to the ghost planet problem. Once the next version of starsector is released and I fix the ghost planet problem, I will take another look at this. Thanks for reporting this!

im getting a error after updating

Spoiler
Code
104187 [Thread-5] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Error loading
104187 [Thread-5] ERROR com.fs.starfarer.campaign.save.CampaignGameManager  -
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : data.campaign.econ.industries.Stellar_Shade_Array
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
line number         : 6197
class[1]            : com.fs.starfarer.campaign.econ.Market
converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2]            : com.fs.starfarer.campaign.CampaignPlanet
class[3]            : com.fs.util.container.repo.ObjectRepository
class[4]            : com.fs.starfarer.campaign.StarSystem
class[5]            : com.fs.starfarer.campaign.CircularOrbit
class[6]            : com.fs.starfarer.loading.specs.FactionProduction
class[7]            : com.fs.starfarer.campaign.Faction
class[8]            : com.fs.starfarer.campaign.econ.Submarket
class[9]            : com.fs.starfarer.campaign.econ.reach.ReachEconomy
class[10]           : com.fs.starfarer.campaign.econ.reach.ReachEconomyStepper
class[11]           : com.fs.starfarer.campaign.econ.Economy
class[12]           : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[13]           : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[14]           : com.fs.starfarer.campaign.Hyperspace
class[15]           : com.fs.starfarer.campaign.CampaignEngine
converter-type[2]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : data.campaign.econ.industries.Stellar_Shade_Array
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
line number         : 6197
class[1]            : com.fs.starfarer.campaign.econ.Market
converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2]            : com.fs.starfarer.campaign.CampaignPlanet
class[3]            : com.fs.util.container.repo.ObjectRepository
class[4]            : com.fs.starfarer.campaign.StarSystem
class[5]            : com.fs.starfarer.campaign.CircularOrbit
class[6]            : com.fs.starfarer.loading.specs.FactionProduction


Code
com.fs.starfarer.title.ooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.actionPerformed(Unknown Source)
        at com.fs.starfarer.ui.k.buttonPressed(Unknown Source)
        at com.fs.starfarer.ui.int.new(Unknown Source)
        at com.fs.starfarer.ui.int.processInput(Unknown Source)
        at com.fs.starfarer.ui.V.super(Unknown Source)
        at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: data.campaign.econ.industries.Stellar_Shade_Array
        at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:81)
        at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
[close]

I see that my Stellar Shade Array is referenced in that error, but I'm not certain of the cause. When does the error occur? Are there any steps you can give me to replicate it? Thanks!
Logged

BringerofBabies

  • Lieutenant
  • **
  • Posts: 98
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #107 on: January 03, 2020, 04:59:36 PM »

Plus, Ogygia probably has little to no magnetic field because it lacks an atmosphere to begin with, right?

I think that you have cause and effect reversed there - a magnetic field would come from a rotating (read: hot/liquid) electrically conducting (iron is good for this as well as being dense for gravitational purposes) core and the presence of such a field would help retain an atmosphere by preventing solar winds from stripping the atmosphere away. The presence of an atmosphere does not affect the magnetic field in any way. Additionally, magnetic field or not, an atmosphere would require enough gravity to hold it in place - Mercury has almost no atmosphere, but a strong magnetic field.

To add an atmosphere to a planet heavy enough to hold one, you would either want to add an artificial magnetosphere or continually add more atmosphere to account for solar winds - Mars loses about 100 grams/second according to the MAVEN mission.

And for the sake of completeness on the topic, we think that Jupiter and Saturn get their magnetic fields from a thick layer of liquid, metallic hydrogen that wraps the solid core.

Edit: A quick search for "artificial magnetosphere" turned up an article about a plan to put a generated magnetic field between the sun and Mars in order to place Mars within the wake of the field, largely protected from solar winds. Another orbital structure!
« Last Edit: January 03, 2020, 05:07:18 PM by BringerofBabies »
Logged

k2arim99

  • Ensign
  • *
  • Posts: 14
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #108 on: January 03, 2020, 08:54:28 PM »


im getting a error after updating

Spoiler
Code
104187 [Thread-5] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Error loading
104187 [Thread-5] ERROR com.fs.starfarer.campaign.save.CampaignGameManager  -
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : data.campaign.econ.industries.Stellar_Shade_Array
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
line number         : 6197
class[1]            : com.fs.starfarer.campaign.econ.Market
converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2]            : com.fs.starfarer.campaign.CampaignPlanet
class[3]            : com.fs.util.container.repo.ObjectRepository
class[4]            : com.fs.starfarer.campaign.StarSystem
class[5]            : com.fs.starfarer.campaign.CircularOrbit
class[6]            : com.fs.starfarer.loading.specs.FactionProduction
class[7]            : com.fs.starfarer.campaign.Faction
class[8]            : com.fs.starfarer.campaign.econ.Submarket
class[9]            : com.fs.starfarer.campaign.econ.reach.ReachEconomy
class[10]           : com.fs.starfarer.campaign.econ.reach.ReachEconomyStepper
class[11]           : com.fs.starfarer.campaign.econ.Economy
class[12]           : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[13]           : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[14]           : com.fs.starfarer.campaign.Hyperspace
class[15]           : com.fs.starfarer.campaign.CampaignEngine
converter-type[2]   : com.fs.starfarer.campaign.save.I
version             : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : data.campaign.econ.industries.Stellar_Shade_Array
class               : java.util.ArrayList
required-type       : java.util.ArrayList
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
line number         : 6197
class[1]            : com.fs.starfarer.campaign.econ.Market
converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2]            : com.fs.starfarer.campaign.CampaignPlanet
class[3]            : com.fs.util.container.repo.ObjectRepository
class[4]            : com.fs.starfarer.campaign.StarSystem
class[5]            : com.fs.starfarer.campaign.CircularOrbit
class[6]            : com.fs.starfarer.loading.specs.FactionProduction


Code
com.fs.starfarer.title.ooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.actionPerformed(Unknown Source)
        at com.fs.starfarer.ui.k.buttonPressed(Unknown Source)
        at com.fs.starfarer.ui.int.new(Unknown Source)
        at com.fs.starfarer.ui.int.processInput(Unknown Source)
        at com.fs.starfarer.ui.V.super(Unknown Source)
        at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: data.campaign.econ.industries.Stellar_Shade_Array
        at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:81)
        at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
[close]

I see that my Stellar Shade Array is referenced in that error, but I'm not certain of the cause. When does the error occur? Are there any steps you can give me to replicate it? Thanks!

im afraid yes, sorry i wrongly thought it was a thing of your mod but it was a dumb error of mine, keep up the good work! im a big fan of your mod!!!

Logged

Green Ghost

  • Ensign
  • *
  • Posts: 23
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #109 on: January 04, 2020, 05:46:32 AM »

Are dust worlds included in the desert category? i don't see them mentioned anywhere. Maybe give us a list of all planets that are/aren't affected by the terraforming structures?
« Last Edit: January 04, 2020, 07:24:44 AM by Green Ghost »
Logged

Uhlang

  • Commander
  • ***
  • Posts: 159
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #110 on: January 04, 2020, 07:23:22 AM »

Are dust worlds included in the desert category? i don't see them mentioned anywhere.
Pretty sure they're from Unknown Skies, and from the many surveys I did on them, I assume that they're just reskins of barren worlds, which can't be terraformed.
Never tried it, though.
Logged

boggled

  • Admiral
  • *****
  • Posts: 1127
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #111 on: January 04, 2020, 09:09:38 AM »

Are dust worlds included in the desert category? i don't see them mentioned anywhere. Maybe give us a list of all planets that are/aren't affected by the terraforming structures?

US_dust and many other Unknown Skies planet types are actually classified as desert planets, which means they can be terraformed using stellar shades and and Ismara's Sling/Drone Control Nexus. Here is the current planet type code if you want to see the classfications (toxic planets are classified as barren in the current release version, but the next update will change that):

Spoiler
public static String getPlanetType(PlanetAPI planet)
    {
        if(planet.getTypeId().equals("nebula_center_old") || planet.getTypeId().equals("nebula_center_average") || planet.getTypeId().equals("nebula_center_young") || planet.getTypeId().equals("star_neutron") || planet.getTypeId().equals("black_hole") || planet.getTypeId().equals("star_yellow") || planet.getTypeId().equals("star_white") || planet.getTypeId().equals("star_blue_giant") || planet.getTypeId().equals("star_blue_supergiant") || planet.getTypeId().equals("star_orange") || planet.getTypeId().equals("star_orange_giant") || planet.getTypeId().equals("star_red_supergiant") || planet.getTypeId().equals("star_red_giant") || planet.getTypeId().equals("star_red_dwarf") || planet.getTypeId().equals("star_browndwarf") || planet.getTypeId().equals("US_star_blue_giant") || planet.getTypeId().equals("US_star_yellow") || planet.getTypeId().equals("US_star_orange") || planet.getTypeId().equals("US_star_red_giant") || planet.getTypeId().equals("US_star_white") || planet.getTypeId().equals("US_star_browndwarf"))
        {
            return "star";
        }
        else if(planet.getTypeId().equals("gas_giant") || planet.getTypeId().equals("ice_giant") || planet.getTypeId().equals("US_gas_giant") || planet.getTypeId().equals("US_gas_giantB"))
        {
            return "gas_giant";
        }
        else if(planet.getTypeId().equals("barren") || planet.getTypeId().equals("barren_castiron") || planet.getTypeId().equals("barren2") || planet.getTypeId().equals("barren3") || planet.getTypeId().equals("barren_venuslike") ||  planet.getTypeId().equals("rocky_metallic") || planet.getTypeId().equals("rocky_unstable") || planet.getTypeId().equals("rocky_ice") || planet.getTypeId().equals("irradiated") || planet.getTypeId().equals("barren-bombarded") ||  planet.getTypeId().equals("US_acid") || planet.getTypeId().equals("US_acidRain") || planet.getTypeId().equals("US_acidWind") || planet.getTypeId().equals("US_barrenA") || planet.getTypeId().equals("US_barrenB") || planet.getTypeId().equals("US_barrenC") || planet.getTypeId().equals("US_barrenD") || planet.getTypeId().equals("US_barrenE") || planet.getTypeId().equals("US_barrenF") || planet.getTypeId().equals("US_azure") || planet.getTypeId().equals("US_burnt") || planet.getTypeId().equals("US_artificial"))
        {
            return "barren";
        }
        else if(planet.getTypeId().equals("toxic") || planet.getTypeId().equals("toxic_cold") || planet.getTypeId().equals("US_green"))
        {
            return "toxic";
        }
        else if(planet.getTypeId().equals("desert") || planet.getTypeId().equals("desert1") || planet.getTypeId().equals("arid") || planet.getTypeId().equals("barren-desert") || planet.getTypeId().equals("US_dust") || planet.getTypeId().equals("US_desertA") || planet.getTypeId().equals("US_desertB") || planet.getTypeId().equals("US_desertC") || planet.getTypeId().equals("US_red") || planet.getTypeId().equals("US_redWind") || planet.getTypeId().equals("US_lifelessArid") || planet.getTypeId().equals("US_arid") || planet.getTypeId().equals("US_crimson") || planet.getTypeId().equals("US_storm"))
        {
            return "desert";
        }
        else if(planet.getTypeId().equals("terran") || planet.getTypeId().equals("terran-eccentric") || planet.getTypeId().equals("US_lifeless") || planet.getTypeId().equals("US_alkali") || planet.getTypeId().equals("US_auric") || planet.getTypeId().equals("US_auricCloudy") || planet.getTypeId().equals("US_continent") || planet.getTypeId().equals("US_magnetic"))
        {
            return "terran";
        }
        else if(planet.getTypeId().equals("water") || planet.getTypeId().equals("US_water") || planet.getTypeId().equals("US_waterB"))
        {
            return "water";
        }
        else if(planet.getTypeId().equals("tundra") || planet.getTypeId().equals("US_purple"))
        {
            return "tundra";
        }
        else if(planet.getTypeId().equals("jungle") || planet.getTypeId().equals("US_jungle"))
        {
            return "jungle";
        }
        else if(planet.getTypeId().equals("frozen") || planet.getTypeId().equals("frozen1") || planet.getTypeId().equals("frozen2") || planet.getTypeId().equals("frozen3") || planet.getTypeId().equals("cryovolcanic") || planet.getTypeId().equals("US_iceA") || planet.getTypeId().equals("US_iceB") || planet.getTypeId().equals("US_blue"))
        {
            return "frozen";
        }
        else if(planet.getTypeId().equals("lava") || planet.getTypeId().equals("lava_minor") || planet.getTypeId().equals("US_lava") || planet.getTypeId().equals("US_volcanic"))
        {
            return "volcanic";
        }
        else
        {
            return "unknown";
        }
[close]
Logged

BringerofBabies

  • Lieutenant
  • **
  • Posts: 98
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #112 on: January 04, 2020, 09:54:07 AM »

Code style suggestion:
Would it not be cleaner to use a switch statement on all those types, which would also avoid the worst case scenario of calling getTypeId() 91 times?
Spoiler
switch (planet.getTypeId()) {
    case "nebula_center_old":
    case "nebula_center_average":
    case "nebula_center_young":
        return "star";
    default:
        return "unknown";
}
[close]
I haven't worked in Java, so I'm just assuming that that will be supported and work properly (looks like it was added in JDK 7, which I believe Starsector uses?).
Logged

boggled

  • Admiral
  • *****
  • Posts: 1127
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #113 on: January 04, 2020, 10:45:47 AM »

Code style suggestion:
Would it not be cleaner to use a switch statement on all those types, which would also avoid the worst case scenario of calling getTypeId() 91 times?
Spoiler
switch (planet.getTypeId()) {
    case "nebula_center_old":
    case "nebula_center_average":
    case "nebula_center_young":
        return "star";
    default:
        return "unknown";
}
[close]
I haven't worked in Java, so I'm just assuming that that will be supported and work properly (looks like it was added in JDK 7, which I believe Starsector uses?).

Yes, that would likely improve performance. The problem is if I need to make changes in the future that incorporate other factors besides the planet type ID then it will become a lot more complicated with the switch method. Maybe I'll just get a string from getTypeId() and compare against that rather than calling getTypeId() for every single comparison. That would probably have comparable performance to the switch method while keeping the if statement format intact so I can make changes later if I need to.
Logged

Green Ghost

  • Ensign
  • *
  • Posts: 23
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #114 on: January 04, 2020, 10:51:22 AM »

Are dust worlds included in the desert category? i don't see them mentioned anywhere. Maybe give us a list of all planets that are/aren't affected by the terraforming structures?

US_dust and many other Unknown Skies planet types are actually classified as desert planets, which means they can be terraformed using stellar shades and and Ismara's Sling/Drone Control Nexus. Here is the current planet type code if you want to see the classfications (toxic planets are classified as barren in the current release version, but the next update will change that):

Spoiler
public static String getPlanetType(PlanetAPI planet)
    {
        if(planet.getTypeId().equals("nebula_center_old") || planet.getTypeId().equals("nebula_center_average") || planet.getTypeId().equals("nebula_center_young") || planet.getTypeId().equals("star_neutron") || planet.getTypeId().equals("black_hole") || planet.getTypeId().equals("star_yellow") || planet.getTypeId().equals("star_white") || planet.getTypeId().equals("star_blue_giant") || planet.getTypeId().equals("star_blue_supergiant") || planet.getTypeId().equals("star_orange") || planet.getTypeId().equals("star_orange_giant") || planet.getTypeId().equals("star_red_supergiant") || planet.getTypeId().equals("star_red_giant") || planet.getTypeId().equals("star_red_dwarf") || planet.getTypeId().equals("star_browndwarf") || planet.getTypeId().equals("US_star_blue_giant") || planet.getTypeId().equals("US_star_yellow") || planet.getTypeId().equals("US_star_orange") || planet.getTypeId().equals("US_star_red_giant") || planet.getTypeId().equals("US_star_white") || planet.getTypeId().equals("US_star_browndwarf"))
        {
            return "star";
        }
        else if(planet.getTypeId().equals("gas_giant") || planet.getTypeId().equals("ice_giant") || planet.getTypeId().equals("US_gas_giant") || planet.getTypeId().equals("US_gas_giantB"))
        {
            return "gas_giant";
        }
        else if(planet.getTypeId().equals("barren") || planet.getTypeId().equals("barren_castiron") || planet.getTypeId().equals("barren2") || planet.getTypeId().equals("barren3") || planet.getTypeId().equals("barren_venuslike") ||  planet.getTypeId().equals("rocky_metallic") || planet.getTypeId().equals("rocky_unstable") || planet.getTypeId().equals("rocky_ice") || planet.getTypeId().equals("irradiated") || planet.getTypeId().equals("barren-bombarded") ||  planet.getTypeId().equals("US_acid") || planet.getTypeId().equals("US_acidRain") || planet.getTypeId().equals("US_acidWind") || planet.getTypeId().equals("US_barrenA") || planet.getTypeId().equals("US_barrenB") || planet.getTypeId().equals("US_barrenC") || planet.getTypeId().equals("US_barrenD") || planet.getTypeId().equals("US_barrenE") || planet.getTypeId().equals("US_barrenF") || planet.getTypeId().equals("US_azure") || planet.getTypeId().equals("US_burnt") || planet.getTypeId().equals("US_artificial"))
        {
            return "barren";
        }
        else if(planet.getTypeId().equals("toxic") || planet.getTypeId().equals("toxic_cold") || planet.getTypeId().equals("US_green"))
        {
            return "toxic";
        }
        else if(planet.getTypeId().equals("desert") || planet.getTypeId().equals("desert1") || planet.getTypeId().equals("arid") || planet.getTypeId().equals("barren-desert") || planet.getTypeId().equals("US_dust") || planet.getTypeId().equals("US_desertA") || planet.getTypeId().equals("US_desertB") || planet.getTypeId().equals("US_desertC") || planet.getTypeId().equals("US_red") || planet.getTypeId().equals("US_redWind") || planet.getTypeId().equals("US_lifelessArid") || planet.getTypeId().equals("US_arid") || planet.getTypeId().equals("US_crimson") || planet.getTypeId().equals("US_storm"))
        {
            return "desert";
        }
        else if(planet.getTypeId().equals("terran") || planet.getTypeId().equals("terran-eccentric") || planet.getTypeId().equals("US_lifeless") || planet.getTypeId().equals("US_alkali") || planet.getTypeId().equals("US_auric") || planet.getTypeId().equals("US_auricCloudy") || planet.getTypeId().equals("US_continent") || planet.getTypeId().equals("US_magnetic"))
        {
            return "terran";
        }
        else if(planet.getTypeId().equals("water") || planet.getTypeId().equals("US_water") || planet.getTypeId().equals("US_waterB"))
        {
            return "water";
        }
        else if(planet.getTypeId().equals("tundra") || planet.getTypeId().equals("US_purple"))
        {
            return "tundra";
        }
        else if(planet.getTypeId().equals("jungle") || planet.getTypeId().equals("US_jungle"))
        {
            return "jungle";
        }
        else if(planet.getTypeId().equals("frozen") || planet.getTypeId().equals("frozen1") || planet.getTypeId().equals("frozen2") || planet.getTypeId().equals("frozen3") || planet.getTypeId().equals("cryovolcanic") || planet.getTypeId().equals("US_iceA") || planet.getTypeId().equals("US_iceB") || planet.getTypeId().equals("US_blue"))
        {
            return "frozen";
        }
        else if(planet.getTypeId().equals("lava") || planet.getTypeId().equals("lava_minor") || planet.getTypeId().equals("US_lava") || planet.getTypeId().equals("US_volcanic"))
        {
            return "volcanic";
        }
        else
        {
            return "unknown";
        }
[close]
I can't really understand any of that code so that doesn't exactly give me much to go on, sorry.
Logged

boggled

  • Admiral
  • *****
  • Posts: 1127
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #115 on: January 04, 2020, 11:20:28 AM »

Are dust worlds included in the desert category? i don't see them mentioned anywhere. Maybe give us a list of all planets that are/aren't affected by the terraforming structures?

US_dust and many other Unknown Skies planet types are actually classified as desert planets, which means they can be terraformed using stellar shades and and Ismara's Sling/Drone Control Nexus. Here is the current planet type code if you want to see the classfications (toxic planets are classified as barren in the current release version, but the next update will change that):

Spoiler
public static String getPlanetType(PlanetAPI planet)
    {
        if(planet.getTypeId().equals("nebula_center_old") || planet.getTypeId().equals("nebula_center_average") || planet.getTypeId().equals("nebula_center_young") || planet.getTypeId().equals("star_neutron") || planet.getTypeId().equals("black_hole") || planet.getTypeId().equals("star_yellow") || planet.getTypeId().equals("star_white") || planet.getTypeId().equals("star_blue_giant") || planet.getTypeId().equals("star_blue_supergiant") || planet.getTypeId().equals("star_orange") || planet.getTypeId().equals("star_orange_giant") || planet.getTypeId().equals("star_red_supergiant") || planet.getTypeId().equals("star_red_giant") || planet.getTypeId().equals("star_red_dwarf") || planet.getTypeId().equals("star_browndwarf") || planet.getTypeId().equals("US_star_blue_giant") || planet.getTypeId().equals("US_star_yellow") || planet.getTypeId().equals("US_star_orange") || planet.getTypeId().equals("US_star_red_giant") || planet.getTypeId().equals("US_star_white") || planet.getTypeId().equals("US_star_browndwarf"))
        {
            return "star";
        }
        else if(planet.getTypeId().equals("gas_giant") || planet.getTypeId().equals("ice_giant") || planet.getTypeId().equals("US_gas_giant") || planet.getTypeId().equals("US_gas_giantB"))
        {
            return "gas_giant";
        }
        else if(planet.getTypeId().equals("barren") || planet.getTypeId().equals("barren_castiron") || planet.getTypeId().equals("barren2") || planet.getTypeId().equals("barren3") || planet.getTypeId().equals("barren_venuslike") ||  planet.getTypeId().equals("rocky_metallic") || planet.getTypeId().equals("rocky_unstable") || planet.getTypeId().equals("rocky_ice") || planet.getTypeId().equals("irradiated") || planet.getTypeId().equals("barren-bombarded") ||  planet.getTypeId().equals("US_acid") || planet.getTypeId().equals("US_acidRain") || planet.getTypeId().equals("US_acidWind") || planet.getTypeId().equals("US_barrenA") || planet.getTypeId().equals("US_barrenB") || planet.getTypeId().equals("US_barrenC") || planet.getTypeId().equals("US_barrenD") || planet.getTypeId().equals("US_barrenE") || planet.getTypeId().equals("US_barrenF") || planet.getTypeId().equals("US_azure") || planet.getTypeId().equals("US_burnt") || planet.getTypeId().equals("US_artificial"))
        {
            return "barren";
        }
        else if(planet.getTypeId().equals("toxic") || planet.getTypeId().equals("toxic_cold") || planet.getTypeId().equals("US_green"))
        {
            return "toxic";
        }
        else if(planet.getTypeId().equals("desert") || planet.getTypeId().equals("desert1") || planet.getTypeId().equals("arid") || planet.getTypeId().equals("barren-desert") || planet.getTypeId().equals("US_dust") || planet.getTypeId().equals("US_desertA") || planet.getTypeId().equals("US_desertB") || planet.getTypeId().equals("US_desertC") || planet.getTypeId().equals("US_red") || planet.getTypeId().equals("US_redWind") || planet.getTypeId().equals("US_lifelessArid") || planet.getTypeId().equals("US_arid") || planet.getTypeId().equals("US_crimson") || planet.getTypeId().equals("US_storm"))
        {
            return "desert";
        }
        else if(planet.getTypeId().equals("terran") || planet.getTypeId().equals("terran-eccentric") || planet.getTypeId().equals("US_lifeless") || planet.getTypeId().equals("US_alkali") || planet.getTypeId().equals("US_auric") || planet.getTypeId().equals("US_auricCloudy") || planet.getTypeId().equals("US_continent") || planet.getTypeId().equals("US_magnetic"))
        {
            return "terran";
        }
        else if(planet.getTypeId().equals("water") || planet.getTypeId().equals("US_water") || planet.getTypeId().equals("US_waterB"))
        {
            return "water";
        }
        else if(planet.getTypeId().equals("tundra") || planet.getTypeId().equals("US_purple"))
        {
            return "tundra";
        }
        else if(planet.getTypeId().equals("jungle") || planet.getTypeId().equals("US_jungle"))
        {
            return "jungle";
        }
        else if(planet.getTypeId().equals("frozen") || planet.getTypeId().equals("frozen1") || planet.getTypeId().equals("frozen2") || planet.getTypeId().equals("frozen3") || planet.getTypeId().equals("cryovolcanic") || planet.getTypeId().equals("US_iceA") || planet.getTypeId().equals("US_iceB") || planet.getTypeId().equals("US_blue"))
        {
            return "frozen";
        }
        else if(planet.getTypeId().equals("lava") || planet.getTypeId().equals("lava_minor") || planet.getTypeId().equals("US_lava") || planet.getTypeId().equals("US_volcanic"))
        {
            return "volcanic";
        }
        else
        {
            return "unknown";
        }
[close]
I can't really understand any of that code so that doesn't exactly give me much to go on, sorry.

If you open up data/config/planets.json you will see all the planet types present in the code. The planet types you see in-game don't exactly correspond to what's in the code, which might be confusing. The US planets are all prefixed with "US_". There are too many types for me to go through and create a list for you here in non-code format. Sorry!
Logged

Green Ghost

  • Ensign
  • *
  • Posts: 23
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #116 on: January 06, 2020, 01:43:56 PM »

Concerning the Miller-Urey Device, are there any planets in particular that can't be terraformed or are you mostly refering to planets from other mods?
Logged

LucusLoC

  • Lieutenant
  • **
  • Posts: 64
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #117 on: January 06, 2020, 06:35:57 PM »

Running into a crash with an Astropolis:

Code
194045 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
at data.campaign.econ.industries.Astropolis_Station.buildingFinished(Astropolis_Station.java:193)
at com.fs.starfarer.api.impl.campaign.econ.impl.BaseIndustry.finishBuildingOrUpgrading(BaseIndustry.java:477)
at data.campaign.econ.industries.Astropolis_Station.finishBuildingOrUpgrading(Astropolis_Station.java:57)
at com.fs.starfarer.api.impl.campaign.econ.impl.BaseIndustry.advance(BaseIndustry.java:375)
at com.fs.starfarer.campaign.econ.Market.advance(Unknown Source)
at com.fs.starfarer.campaign.econ.Economy.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

A few points that are relevant:
  • This is the third station at that planet
  • This is the 12th construction on that planet.
  • The planet has been renamed (possibly while this was under construction)
  • This is my first planet (started with it using Nex)
  • This was a hostile system until I booted out all the competing factions. This is the first completed station since then (90% sure)
  • There was another Astropolis completed the day before in another system, but I have tested the save and removing that from the build queue does not solve the problem. 
  • Deleting this Astropolis from the queue does stop the crash.

I have a copy of the save file and a mod list (with version numbers) if you want to test yourself. I have a way forwards, and all I lose is the build time, so no big deal, but I figured I would bring it up in case it is a systemic problem.
Logged

boggled

  • Admiral
  • *****
  • Posts: 1127
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #118 on: January 07, 2020, 01:53:01 PM »

Concerning the Miller-Urey Device, are there any planets in particular that can't be terraformed or are you mostly refering to planets from other mods?

The MUD can terraform any planet except gas giants, planets that are already terran type, and planet types that are unrecognized by the mod. All planet types in Unknown Skies should be recognized at this time, as well as some other types from other mods.

Running into a crash with an Astropolis:

Code
194045 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
at data.campaign.econ.industries.Astropolis_Station.buildingFinished(Astropolis_Station.java:193)
at com.fs.starfarer.api.impl.campaign.econ.impl.BaseIndustry.finishBuildingOrUpgrading(BaseIndustry.java:477)
at data.campaign.econ.industries.Astropolis_Station.finishBuildingOrUpgrading(Astropolis_Station.java:57)
at com.fs.starfarer.api.impl.campaign.econ.impl.BaseIndustry.advance(BaseIndustry.java:375)
at com.fs.starfarer.campaign.econ.Market.advance(Unknown Source)
at com.fs.starfarer.campaign.econ.Economy.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

A few points that are relevant:
  • This is the third station at that planet
  • This is the 12th construction on that planet.
  • The planet has been renamed (possibly while this was under construction)
  • This is my first planet (started with it using Nex)
  • This was a hostile system until I booted out all the competing factions. This is the first completed station since then (90% sure)
  • There was another Astropolis completed the day before in another system, but I have tested the save and removing that from the build queue does not solve the problem. 
  • Deleting this Astropolis from the queue does stop the crash.

I have a copy of the save file and a mod list (with version numbers) if you want to test yourself. I have a way forwards, and all I lose is the build time, so no big deal, but I figured I would bring it up in case it is a systemic problem.

I took a look and I'm not sure what the cause of this problem might be, but I have a few ideas. Can you upload your save and mod list so I can do some testing? Thank you and sorry about the bug!
Logged

LucusLoC

  • Lieutenant
  • **
  • Posts: 64
    • View Profile
Re: [0.9.1a] Boggled's Terraforming Mod (v2.4.0)
« Reply #119 on: January 07, 2020, 03:30:12 PM »

PM sent
Logged
Pages: 1 ... 6 7 [8] 9 10 ... 24