Skip to content

Commit 01d52ba

Browse files
committed
Add skin generation limit
Add a configuration option to limit the number of skins which will be generated in one go.
1 parent 68ab042 commit 01d52ba

4 files changed

Lines changed: 11 additions & 1 deletion

File tree

BoSData/Input/Configuration/ConfigSetUserPref.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@
3535
"value": 0,
3636
"label": "Generate skins",
3737
"help": "0 \u003d Skin generation disabled, 1 \u003d Generate skins for player flight only, 2 \u003d Generate skins for all planes"
38+
},
39+
"GenerateSkinsLimit": {
40+
"value": 20,
41+
"label": "Skin generation limit",
42+
"help": "Maximum number of skins in one go, 0 for no limit"
3843
}
3944
}
4045
}

src/main/java/pwcg/core/config/ConfigItemKeys.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class ConfigItemKeys
1010
public static final String MusicVolumeKey = "MusicVolume";
1111
public static final String UseGenericUIKey = "UseGenericUI";
1212
public static final String GenerateSkinsKey = "GenerateSkins";
13+
public static final String GenerateSkinLimitKey = "GenerateSkinsLimit";
1314

1415
public static final String MovingFrontKey = "MovingFront";
1516
public static final String PilotInjuryKey = "PilotInjury";

src/main/java/pwcg/core/config/ConfigSetUserPref.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public static ConfigSet initialize()
1414
configSet.addConfigItem(ConfigItemKeys.SoundVolumeKey, new ConfigItem("10"));
1515
configSet.addConfigItem(ConfigItemKeys.MusicVolumeKey, new ConfigItem("10"));
1616
configSet.addConfigItem(ConfigItemKeys.GenerateSkinsKey, new ConfigItem("0"));
17+
configSet.addConfigItem(ConfigItemKeys.GenerateSkinLimitKey, new ConfigItem("20"));
1718
return configSet;
1819
}
1920
}

src/main/java/pwcg/mission/MissionSkinTemplateGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import pwcg.campaign.skin.SkinTemplate;
2020
import pwcg.campaign.skin.SkinsForPlane;
2121
import pwcg.campaign.skin.SkinTemplate.SkinTemplateInstance;
22+
import pwcg.core.config.ConfigItemKeys;
23+
import pwcg.core.config.ConfigManagerGlobal;
2224
import pwcg.core.exception.PWCGException;
2325
import pwcg.core.utils.Logger;
2426
import pwcg.mission.flight.Flight;
@@ -30,14 +32,15 @@ public class MissionSkinTemplateGenerator {
3032
public void generateSkins(Campaign campaign, List<Flight> flights) throws PWCGException
3133
{
3234
List<SkinTemplateInstance> skinsToGenerate = new ArrayList<>();
35+
int generateSkinLimit = ConfigManagerGlobal.getInstance().getIntConfigParam(ConfigItemKeys.GenerateSkinLimitKey);
3336

3437
for (Flight flight : flights)
3538
{
3639
for (PlaneMCU plane : flight.getPlanes())
3740
{
3841
SkinsForPlane skinsForPlane = PWCGContextManager.getInstance().getSkinManager().getSkinsForPlane(plane.getType());
3942
Skin skin = plane.getPlaneSkin();
40-
if (skin != null && skin.getTemplate() != null)
43+
if (skin != null && skin.getTemplate() != null && (generateSkinLimit == 0 || skinsToGenerate.size() < generateSkinLimit))
4144
{
4245
SkinTemplate template = skinsForPlane.getTemplate(plane.getPlaneSkin().getTemplate());
4346
if (template == null)

0 commit comments

Comments
 (0)