aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/galacticraft/system/objects
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-24 02:38:23 +0100
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-24 02:38:23 +0100
commit5856a6623641697349a112ff75b74296358361a0 (patch)
tree3474ab5f0b2d51550259b2a2cce1562a15bcb158 /src/Java/gtPlusPlus/xmod/galacticraft/system/objects
parent53408770c7a4dd6fa4c997d4601b7aba215bc9ab (diff)
downloadGT5-Unofficial-5856a6623641697349a112ff75b74296358361a0.tar.gz
GT5-Unofficial-5856a6623641697349a112ff75b74296358361a0.tar.bz2
GT5-Unofficial-5856a6623641697349a112ff75b74296358361a0.zip
+ Added Base framework for custom GC systems.
% Tweaked Automatic doors, they will not open if mobs are within 2m or if open, they will close.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/galacticraft/system/objects')
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/system/objects/BiomeSettings.java29
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/system/objects/DimensionSettings.java77
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/system/objects/IPlanetBlockRegister.java29
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/system/objects/PlanetGenerator.java50
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/system/objects/WorldProviderSettings.java30
5 files changed, 215 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/BiomeSettings.java b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/BiomeSettings.java
new file mode 100644
index 0000000000..33873f3f9e
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/BiomeSettings.java
@@ -0,0 +1,29 @@
+package gtPlusPlus.xmod.galacticraft.system.objects;
+
+import net.minecraft.world.biome.BiomeGenBase.Height;
+
+public class BiomeSettings {
+
+ private final String mBiomeName;
+ private final int mBiomeID;
+ private final Height mHeight;
+
+ public BiomeSettings(String aName, int aID, float aHeightMin, float aHeightMax) {
+ mBiomeName = aName;
+ mBiomeID = aID;
+ mHeight = new Height(aHeightMin, aHeightMax);
+
+ }
+
+ public synchronized final String getName() {
+ return mBiomeName;
+ }
+
+ public synchronized final int getID() {
+ return mBiomeID;
+ }
+
+ public synchronized final Height getHeight() {
+ return mHeight;
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/DimensionSettings.java b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/DimensionSettings.java
new file mode 100644
index 0000000000..5e444805e0
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/DimensionSettings.java
@@ -0,0 +1,77 @@
+package gtPlusPlus.xmod.galacticraft.system.objects;
+
+import net.minecraft.world.chunk.IChunkProvider;
+
+public class DimensionSettings {
+
+ private final int TierRequirement;
+ private final PlanetGenerator Planet;
+ private final boolean Atmosphere;
+ private final int Pressure;
+ private final boolean SolarRadiation;
+ private final float CloudHeight;
+ private final float Gravity;
+ private final float MeteorFreq;
+ private final boolean CanRainOrSnow;
+ private final long DayLength;
+ private final Class<? extends IChunkProvider> ChunkProvider;
+
+ public DimensionSettings(PlanetGenerator aPlanet, Class<? extends IChunkProvider> aChunkProvider, int aTierRequirement, boolean aHasBreathableAtmo,
+ int aPressure, boolean aSolarRadiation, float aCloudHeight, float aGravity, float aMeteorFreq, boolean aCanRainOrSnow, long aDayLength) {
+ Planet = aPlanet;
+ TierRequirement = aTierRequirement;
+ Atmosphere = aHasBreathableAtmo;
+ Pressure = aPressure;
+ SolarRadiation = aSolarRadiation;
+ CloudHeight = aCloudHeight;
+ Gravity = aGravity;
+ MeteorFreq = aMeteorFreq;
+ CanRainOrSnow = aCanRainOrSnow;
+ DayLength = aDayLength;
+ ChunkProvider = aChunkProvider;
+ }
+
+ public synchronized final int getTierRequirement() {
+ return TierRequirement;
+ }
+
+ public synchronized final PlanetGenerator getPlanet() {
+ return Planet;
+ }
+
+ public synchronized final boolean hasAtmosphere() {
+ return Atmosphere;
+ }
+
+ public synchronized final int getPressure() {
+ return Pressure;
+ }
+
+ public synchronized final boolean hasSolarRadiation() {
+ return SolarRadiation;
+ }
+
+ public synchronized final float getCloudHeight() {
+ return CloudHeight;
+ }
+
+ public synchronized final float getGravity() {
+ return Gravity;
+ }
+
+ public synchronized final float getMeteorFreq() {
+ return MeteorFreq;
+ }
+
+ public synchronized final boolean hasRainOrSnow() {
+ return CanRainOrSnow;
+ }
+
+ public synchronized final long getDayLength() {
+ return DayLength;
+ }
+
+ public synchronized final Class<? extends IChunkProvider> getChunkProvider() {
+ return ChunkProvider;
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/IPlanetBlockRegister.java b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/IPlanetBlockRegister.java
new file mode 100644
index 0000000000..e8349d8553
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/IPlanetBlockRegister.java
@@ -0,0 +1,29 @@
+package gtPlusPlus.xmod.galacticraft.system.objects;
+
+import gtPlusPlus.api.objects.data.AutoMap;
+import net.minecraft.block.Block;
+
+public interface IPlanetBlockRegister extends Runnable {
+
+ public abstract AutoMap<Block> getBlocksToRegister();
+
+ public abstract Block getWaterBlock();
+
+ public abstract Block getTopLayer();
+
+ public abstract Block getSoil();
+
+ public abstract Block getSoil2();
+
+ public abstract Block getStone();
+
+ public abstract void register();
+
+ @Override
+ default void run() {
+ register();
+ }
+
+
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/PlanetGenerator.java b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/PlanetGenerator.java
new file mode 100644
index 0000000000..7f59baa47a
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/PlanetGenerator.java
@@ -0,0 +1,50 @@
+package gtPlusPlus.xmod.galacticraft.system.objects;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import micdoodle8.mods.galacticraft.api.galaxies.Planet;
+import net.minecraft.block.Block;
+
+public class PlanetGenerator {
+
+ private final Planet mPlanet;
+ private final IPlanetBlockRegister mTask;
+ private final Map<String, Block> mPlanetBlocks;
+ private final Thread mTaskThread;
+
+ public static final Map<String, PlanetGenerator> mGlobalPlanetCache = new HashMap<String, PlanetGenerator>();
+
+ public PlanetGenerator(Planet aPlanet, IPlanetBlockRegister aBlockRegistrationTask) {
+ mPlanet = aPlanet;
+ mTask = aBlockRegistrationTask;
+ mPlanetBlocks = new HashMap<String, Block>();
+ for (Block b : aBlockRegistrationTask.getBlocksToRegister()) {
+ mPlanetBlocks.put(b.getUnlocalizedName(), b);
+ }
+ if (mGlobalPlanetCache.get(mPlanet.getName().toUpperCase()) == null) {
+ mGlobalPlanetCache.put(mPlanet.getName().toUpperCase(), this);
+ }
+ else {
+ try {
+ this.finalize();
+ } catch (Throwable e) {
+ }
+ }
+ mTaskThread = new Thread(aBlockRegistrationTask);
+ mTaskThread.start();
+ }
+
+ public synchronized final Planet getPlanet() {
+ return mPlanet;
+ }
+
+ public synchronized final IPlanetBlockRegister getTask() {
+ return mTask;
+ }
+
+ public synchronized final Map<String, Block> getPlanetBlocks() {
+ return mPlanetBlocks;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/WorldProviderSettings.java b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/WorldProviderSettings.java
new file mode 100644
index 0000000000..e5ef3b43d9
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/system/objects/WorldProviderSettings.java
@@ -0,0 +1,30 @@
+package gtPlusPlus.xmod.galacticraft.system.objects;
+
+public class WorldProviderSettings {
+
+ private PlanetGenerator mPlanet;
+ private final DimensionSettings mDimSettings;
+ private final BiomeSettings mBiomeSettings;
+
+ public WorldProviderSettings(DimensionSettings d, BiomeSettings b) {
+ mPlanet = d.getPlanet();
+ mDimSettings = d;
+ mBiomeSettings = b;
+ }
+
+ public synchronized final PlanetGenerator getPlanet() {
+ return mPlanet;
+ }
+
+ public synchronized final void setPlanet(PlanetGenerator aPlanet) {
+ mPlanet = aPlanet;
+ }
+
+ public synchronized final DimensionSettings getDimSettings() {
+ return mDimSettings;
+ }
+
+ public synchronized final BiomeSettings getBiomeSettings() {
+ return mBiomeSettings;
+ }
+}