aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/galacticgreg/api/enums/properties
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/galacticgreg/api/enums/properties')
-rw-r--r--src/main/java/galacticgreg/api/enums/properties/AsteroidPropertyBuilder.java105
-rw-r--r--src/main/java/galacticgreg/api/enums/properties/Asteroids.java78
2 files changed, 183 insertions, 0 deletions
diff --git a/src/main/java/galacticgreg/api/enums/properties/AsteroidPropertyBuilder.java b/src/main/java/galacticgreg/api/enums/properties/AsteroidPropertyBuilder.java
new file mode 100644
index 0000000000..bf5fecc78a
--- /dev/null
+++ b/src/main/java/galacticgreg/api/enums/properties/AsteroidPropertyBuilder.java
@@ -0,0 +1,105 @@
+package galacticgreg.api.enums.properties;
+
+public class AsteroidPropertyBuilder {
+
+ public int probability;
+ public int sizeMin, sizeMax;
+ public int specialBlockChance;
+ public OreSpawnPropertyBuilder oreSpawn;
+ public LootPropertyBuilder loot;
+
+ public static class OreSpawnPropertyBuilder {
+
+ public int baseOreChance;
+ public boolean obeyHeighLimits;
+ public boolean oresOnlyInsideAsteroids;
+ public int primaryToRareOreOffset;
+ public int smallOreChance;
+
+ public OreSpawnPropertyBuilder baseOreChance(int baseOreChance) {
+ this.baseOreChance = baseOreChance;
+ return this;
+ }
+
+ public OreSpawnPropertyBuilder doesObeyingHeightLimits(boolean obeyHeighLimits) {
+ this.obeyHeighLimits = obeyHeighLimits;
+ return this;
+ }
+
+ public OreSpawnPropertyBuilder AreOresOnlyInsideAsteroids(boolean oresOnlyInsideAsteroids) {
+ this.oresOnlyInsideAsteroids = oresOnlyInsideAsteroids;
+ return this;
+ }
+
+ public OreSpawnPropertyBuilder primaryToRareOreOffset(int primaryToRareOreOffset) {
+ this.primaryToRareOreOffset = primaryToRareOreOffset;
+ return this;
+ }
+
+ public OreSpawnPropertyBuilder smallOreChance(int smallOreChance) {
+ this.smallOreChance = smallOreChance;
+ return this;
+ }
+
+ }
+
+ public static class LootPropertyBuilder {
+
+ public int lootChestChance;
+ public int lootChestItemCount;
+ public int lootChestTable;
+ public boolean randomizeLootItemCount;
+
+ public LootPropertyBuilder lootChestChance(int lootChestChance) {
+ this.lootChestChance = lootChestChance;
+ return this;
+ }
+
+ public LootPropertyBuilder lootChestItemCount(int lootChestItemCount) {
+ this.lootChestItemCount = lootChestItemCount;
+ return this;
+ }
+
+ public LootPropertyBuilder lootChestTable(int lootChestTable) {
+ this.lootChestTable = lootChestTable;
+ return this;
+ }
+
+ public LootPropertyBuilder isLootItemCountRandomized(boolean randomizeLootItemCount) {
+ this.randomizeLootItemCount = randomizeLootItemCount;
+ return this;
+ }
+
+ }
+
+ public AsteroidPropertyBuilder() {
+ oreSpawn = new OreSpawnPropertyBuilder();
+ loot = new LootPropertyBuilder();
+ }
+
+ public AsteroidPropertyBuilder probability(int probability) {
+ this.probability = probability;
+ return this;
+ }
+
+ public AsteroidPropertyBuilder sizeRange(int sizeMin, int sizeMax) {
+ this.sizeMin = sizeMin;
+ this.sizeMax = sizeMax;
+ return this;
+ }
+
+ public AsteroidPropertyBuilder specialBlockChance(int specialBlockChance) {
+ this.specialBlockChance = specialBlockChance;
+ return this;
+ }
+
+ public AsteroidPropertyBuilder oreSpawn(OreSpawnPropertyBuilder oreSpawnPropertyBuilder) {
+ this.oreSpawn = oreSpawnPropertyBuilder;
+ return this;
+ }
+
+ public AsteroidPropertyBuilder loot(LootPropertyBuilder lootPropertyBuilder) {
+ this.loot = lootPropertyBuilder;
+ return this;
+ }
+}
diff --git a/src/main/java/galacticgreg/api/enums/properties/Asteroids.java b/src/main/java/galacticgreg/api/enums/properties/Asteroids.java
new file mode 100644
index 0000000000..2916031aaf
--- /dev/null
+++ b/src/main/java/galacticgreg/api/enums/properties/Asteroids.java
@@ -0,0 +1,78 @@
+package galacticgreg.api.enums.properties;
+
+import galacticgreg.api.enums.DimensionDef;
+import galacticgreg.api.enums.ModContainers;
+
+public enum Asteroids {
+
+ // spotless : off
+ EndAsteroids(ModContainers.Vanilla, DimensionDef.EndAsteroids, new AsteroidPropertyBuilder().probability(200)
+ .sizeRange(5, 15)
+ .specialBlockChance(5)
+ .oreSpawn(
+ new AsteroidPropertyBuilder.OreSpawnPropertyBuilder().baseOreChance(5)
+ .doesObeyingHeightLimits(false)
+ .AreOresOnlyInsideAsteroids(false)
+ .primaryToRareOreOffset(5)
+ .smallOreChance(10))
+ .loot(
+ new AsteroidPropertyBuilder.LootPropertyBuilder().lootChestChance(1)
+ .lootChestItemCount(10)
+ .lootChestTable(3)
+ .isLootItemCountRandomized(true))),
+ KuiperBelt(ModContainers.GalaxySpace, DimensionDef.KuiperBelt, new AsteroidPropertyBuilder().probability(200)
+ .sizeRange(5, 15)
+ .specialBlockChance(5)
+ .oreSpawn(
+ new AsteroidPropertyBuilder.OreSpawnPropertyBuilder().baseOreChance(5)
+ .doesObeyingHeightLimits(false)
+ .AreOresOnlyInsideAsteroids(false)
+ .primaryToRareOreOffset(5)
+ .smallOreChance(10))
+ .loot(
+ new AsteroidPropertyBuilder.LootPropertyBuilder().lootChestChance(1)
+ .lootChestItemCount(10)
+ .lootChestTable(3)
+ .isLootItemCountRandomized(true))),
+ MehenBelt(ModContainers.AmunRa, DimensionDef.MehenBelt, new AsteroidPropertyBuilder().probability(200)
+ .sizeRange(5, 15)
+ .specialBlockChance(5)
+ .oreSpawn(
+ new AsteroidPropertyBuilder.OreSpawnPropertyBuilder().baseOreChance(5)
+ .doesObeyingHeightLimits(false)
+ .AreOresOnlyInsideAsteroids(false)
+ .primaryToRareOreOffset(5)
+ .smallOreChance(10))
+ .loot(
+ new AsteroidPropertyBuilder.LootPropertyBuilder().lootChestChance(1)
+ .lootChestItemCount(10)
+ .lootChestTable(3)
+ .isLootItemCountRandomized(true))),
+ Asteroids(ModContainers.GalacticraftMars, DimensionDef.Asteroids, new AsteroidPropertyBuilder().probability(200)
+ .sizeRange(5, 15)
+ .specialBlockChance(5)
+ .oreSpawn(
+ new AsteroidPropertyBuilder.OreSpawnPropertyBuilder().baseOreChance(5)
+ .doesObeyingHeightLimits(false)
+ .AreOresOnlyInsideAsteroids(false)
+ .primaryToRareOreOffset(5)
+ .smallOreChance(10))
+ .loot(
+ new AsteroidPropertyBuilder.LootPropertyBuilder().lootChestChance(1)
+ .lootChestItemCount(10)
+ .lootChestTable(3)
+ .isLootItemCountRandomized(true))),;
+
+ // spotless : on
+
+ public ModContainers modContainers;
+ public DimensionDef dimensionDef;
+ public AsteroidPropertyBuilder asteroidPropertyBuilder;
+
+ private Asteroids(ModContainers modContainers, DimensionDef dimensionDef,
+ AsteroidPropertyBuilder asteroidPropertyBuilder) {
+ this.modContainers = modContainers;
+ this.dimensionDef = dimensionDef;
+ this.asteroidPropertyBuilder = asteroidPropertyBuilder;
+ }
+}