I'm a beginner. I was trying to creat one star system. When the game try to generate the sector it crahs(that is after choosing the begining).
Spoiler
package data.scripts.world;
import java.util.ArrayList;
import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.campaign.SectorAPI;
import com.fs.starfarer.api.campaign.SectorEntityToken;
import com.fs.starfarer.api.campaign.SectorGeneratorPlugin;
import com.fs.starfarer.api.campaign.econ.EconomyAPI;
import com.fs.starfarer.api.campaign.econ.MarketAPI;
import data.scripts.world.systems.SystemAlpha;
public class CEGen implements SectorGeneratorPlugin{
//Shorthand function for adding a market
//(I stole this from vic, it might is a good idea to creat methods that could help during the codding)
public static MarketAPI addMarketplace(String factionID, SectorEntityToken primaryEntity, ArrayList<SectorEntityToken> connectedEntities,
String name,int size, ArrayList<String> marketConditions, ArrayList<String> submarkets,
ArrayList<String> industries,
float tarrif, boolean freePort, boolean withJunkAndChatter) {
EconomyAPI globalEconomy = Global.getSector().getEconomy();
String planetID = primaryEntity.getId();
String marketID = planetID + "_market";
MarketAPI newMarket = Global.getFactory().createMarket(marketID, name, size);
newMarket.setFactionId(factionID);
newMarket.setPrimaryEntity(primaryEntity);
newMarket.getTariff().modifyFlat("generator", tarrif);
//Adds submarkets
if (null != submarkets) {
for (String market : submarkets) {
newMarket.addSubmarket(market);
}
}
//Adds market conditions
for (String condition : marketConditions) {
newMarket.addCondition(condition);
}
//Add market industries
for (String industry : industries) {
newMarket.addIndustry(industry);
}
//Sets us to a free port, if we should
newMarket.setFreePort(freePort);
//Adds our connected entities, if any
if (null != connectedEntities) {
for (SectorEntityToken entity : connectedEntities) {
newMarket.getConnectedEntities().add(entity);
}
}
globalEconomy.addMarket(newMarket, withJunkAndChatter);
primaryEntity.setMarket(newMarket);
primaryEntity.setFaction(factionID);
if (null != connectedEntities) {
for (SectorEntityToken entity : connectedEntities) {
entity.setMarket(newMarket);
entity.setFaction(factionID);
}
}
//Finally, return the newly-generated market
return newMarket;
}
//actual override part
@Override
public void generate(SectorAPI sector) {
new SystemAlpha().generate(sector);
}
}
Spoiler
package data.scripts.world.systems;
import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.campaign.JumpPointAPI;
import com.fs.starfarer.api.campaign.PlanetAPI;
import com.fs.starfarer.api.campaign.SectorAPI;
import com.fs.starfarer.api.campaign.StarSystemAPI;
import com.fs.starfarer.api.campaign.econ.MarketAPI;
import com.fs.starfarer.api.impl.campaign.ids.Conditions;
import com.fs.starfarer.api.impl.campaign.ids.Industries;
import com.fs.starfarer.api.impl.campaign.ids.Submarkets;
import com.fs.starfarer.api.util.Misc;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import data.scripts.world.CEGen;
public class SystemAlpha {
public void generate(SectorAPI sector) {
StarSystemAPI system = sector.createStarSystem("SystemAlpha");
system.getLocation().set(1750,-1500);
system.setBackgroundTextureFilename("graphics/backgrounds/background_alpha.jpg");
PlanetAPI Applew = system.initStar(
"ce_systemalpha_applew",
"star_yellow",
1000f,
300f
);
system.setLightColor(new Color(255, 199, 98));
PlanetAPI Colonia = system.addPlanet("ce_colonia", Applew, "Colonia", "arid",
250, //start degree
200, //radius
5000, //distance
30);//time to fully orbit
MarketAPI Colonia_market = CEGen.addMarketplace(
"independent",
Colonia,
null,
"Colonia",
5,
new ArrayList<>(
Arrays.asList(
Conditions.POPULATION_5,
Conditions.DECIVILIZED_SUBPOP,
Conditions.HABITABLE,
Conditions.RUINS_SCATTERED,
Conditions.HOT,
Conditions.FARMLAND_ADEQUATE,
Conditions.ORE_SPARSE,
Conditions.RARE_ORE_MODERATE,
Conditions.ORGANICS_PLENTIFUL
)
),
new ArrayList<>(
Arrays.asList(
Submarkets.SUBMARKET_OPEN,
Submarkets.SUBMARKET_STORAGE,
Submarkets.SUBMARKET_BLACK
)
),
new ArrayList<>(
Arrays.asList(
Industries.STARFORTRESS_HIGH,
Industries.LIGHTINDUSTRY,
Industries.HEAVYBATTERIES,
Industries.MEGAPORT,
Industries.MINING,
Industries.PATROLHQ,
Industries.POPULATION,
Industries.WAYSTATION,
Industries.PLANETARYSHIELD,
Industries.FARMING,
Industries.TAG_IMPORTANT
)
),
0.13f,
true,
true
);
PlanetAPI Coupler = system.addPlanet("ce_coupler", Applew, "Coupler", "barren-bombarded",
180,//start angle
150,//radius
2200,//distance
49);//cycle time
MarketAPI Coupler_market = CEGen.addMarketplace(
"independent",
Coupler,
null,
"Coupler",
6,
new ArrayList<>(
Arrays.asList(
Conditions.POPULATION_6,
Conditions.NO_ATMOSPHERE,
Conditions.ORE_MODERATE,
Conditions.RARE_ORE_ULTRARICH,
Conditions.AI_CORE_ADMIN,
Conditions.VERY_HOT,
Conditions.LOW_GRAVITY
)
),
new ArrayList<>(
Arrays.asList(
Submarkets.SUBMARKET_OPEN,
Submarkets.SUBMARKET_STORAGE,
Submarkets.SUBMARKET_BLACK,
Submarkets.GENERIC_MILITARY
)
),
new ArrayList<>(
Arrays.asList(
Industries.HEAVYBATTERIES,
Industries.HEAVYINDUSTRY,
Industries.REFINING,
Industries.MINING,
Industries.MILITARYBASE,
Industries.TAG_MILITARY,
Industries.WAYSTATION,
Industries.MEGAPORT,
Industries.POPULATION
)
),
0.3f,
true,
true);
JumpPointAPI InnerJP = Global.getFactory().createJumpPoint("applew_inner_jumppoint", "Applew Inner Jump Point");
InnerJP.setCircularOrbit(Applew, 180f, 1900, 49);
system.addEntity(InnerJP);
}
}
I'm appreciate any reply.