diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-10-24 02:38:23 +0100 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-10-24 02:38:23 +0100 |
commit | 5856a6623641697349a112ff75b74296358361a0 (patch) | |
tree | 3474ab5f0b2d51550259b2a2cce1562a15bcb158 /src/Java/gtPlusPlus/xmod/galacticraft/system/objects | |
parent | 53408770c7a4dd6fa4c997d4601b7aba215bc9ab (diff) | |
download | GT5-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')
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; + } +} |