aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/api/objects
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-26 00:37:36 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-26 00:37:36 +1000
commit866b2aee8b00f39c30728612dcdf3f10722e57f1 (patch)
treeca06770214724bf410ede0b12dfc7959c360310b /src/Java/gtPlusPlus/api/objects
parente9f05b60123ad5f5a855c1896e4e5a120e55d8c9 (diff)
downloadGT5-Unofficial-866b2aee8b00f39c30728612dcdf3f10722e57f1.tar.gz
GT5-Unofficial-866b2aee8b00f39c30728612dcdf3f10722e57f1.tar.bz2
GT5-Unofficial-866b2aee8b00f39c30728612dcdf3f10722e57f1.zip
$ Fixed the Tree Farm.
Diffstat (limited to 'src/Java/gtPlusPlus/api/objects')
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java39
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java61
2 files changed, 89 insertions, 11 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java b/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java
index 21e7a7d331..800d8afaa4 100644
--- a/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java
@@ -18,6 +18,8 @@ import net.minecraftforge.common.util.ForgeDirection;
public class FakeWorld implements IBlockAccess {
+ public static HashMap<String, FakeBlockPos> mStaticFakeWorldData;
+
public HashMap<String, FakeBlockPos> mFakeWorldData = new HashMap<String, FakeBlockPos>();
/**
@@ -45,22 +47,36 @@ public class FakeWorld implements IBlockAccess {
init();
}
- private void init() {
- Logger.INFO("Setting all Blocks in Fake World to Air.");
- for (int y=0;y<=aWorldHeight;y++) {
- for (int x=-aDistanceFromOrigin;x<=aDistanceFromOrigin;x++) {
- for (int z=-aDistanceFromOrigin;z<=aDistanceFromOrigin;z++) {
- FakeBlockPos aTempPos = new FakeBlockPos(x, y, z, Blocks.air, 0);
- mFakeWorldData.put(aTempPos.getLocationString(), aTempPos);
+ public void init() {
+
+ /*if (mStaticFakeWorldData == null) {
+ Logger.INFO("Setting all Blocks in Fake World to Air.");
+ mStaticFakeWorldData = new HashMap<String, FakeBlockPos>();
+ for (int y=0;y<=aWorldHeight;y++) {
+ for (int x=-aDistanceFromOrigin;x<=aDistanceFromOrigin;x++) {
+ for (int z=-aDistanceFromOrigin;z<=aDistanceFromOrigin;z++) {
+ FakeBlockPos aTempPos = new FakeBlockPos(x, y, z, Blocks.air, 0);
+ mStaticFakeWorldData.put(aTempPos.getLocationString(), aTempPos);
+ }
}
}
- }
- Logger.INFO("Initialisation of FakeWorld is now complete.");
+ }*/
+ //if (mStaticFakeWorldData != null) {
+ //Logger.INFO(" Instancing static air world.");
+ mFakeWorldData = new HashMap<String, FakeBlockPos>();
+ //mFakeWorldData = (HashMap<String, FakeBlockPos>) mStaticFakeWorldData.clone();
+ //}
+
+
+ //Logger.INFO("Initialisation of FakeWorld is now complete.");
}
public FakeBlockPos getBlockAtCoords(int x, int y, int z) {
String S = ""+x+"@"+y+"@"+z;
- FakeBlockPos aBlock = mFakeWorldData.get(S);
+ FakeBlockPos aBlock = mFakeWorldData.get(S);
+ if (aBlock == null) {
+ return new FakeBlockPos(x, y, z, Blocks.air, 0);
+ }
return aBlock;
}
@@ -73,12 +89,13 @@ public class FakeWorld implements IBlockAccess {
public AutoMap<ItemStack> getAllBlocksStoredInFakeWorld(){
AutoMap<ItemStack> aOutput = new AutoMap<ItemStack>();
for (FakeBlockPos aPos : mFakeWorldData.values()) {
- if (aPos.getBlockAtPos() == Blocks.air) {
+ if (aPos == null || aPos.getBlockAtPos() == Blocks.air) {
continue;
}
else {
ItemStack aTempStack = ItemUtils.simpleMetaStack(aPos.getBlockAtPos(), aPos.getMetaAtPos(), 1);
if (ItemUtils.checkForInvalidItems(aTempStack)) {
+ //Logger.INFO("Output: "+aTempStack.getDisplayName());
aOutput.put(aTempStack);
}
}
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java
new file mode 100644
index 0000000000..393d3260b5
--- /dev/null
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java
@@ -0,0 +1,61 @@
+package gtPlusPlus.api.objects.minecraft;
+
+import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator;
+
+public class ThreadFakeWorldGenerator extends Thread {
+
+ public boolean canRun = true;
+ public boolean isRunning = false;
+
+ private static final long INIT_TIME;
+ private static long internalTickCounter = 0;
+
+ public TreeGenerator mGenerator;
+
+ private static final ThreadFakeWorldGenerator mThread;
+
+ static {
+ mThread = new ThreadFakeWorldGenerator();
+ INIT_TIME = (System.currentTimeMillis());
+ }
+
+ public ThreadFakeWorldGenerator() {
+ setName("gtpp.handler.fakeworldtrees");
+ run();
+ }
+
+ public static ThreadFakeWorldGenerator getInstance() {
+ return mThread;
+ }
+
+ public static void stopThread() {
+ mThread.canRun = false;
+ }
+
+
+ @Override
+ public void run() {
+
+ if (!isRunning) {
+ isRunning = true;
+ }
+ else {
+ return;
+ }
+
+ if (canRun){
+ if (mGenerator == null) {
+ mGenerator = new TreeGenerator();
+ }
+ }
+
+ while (mGenerator == null) {
+ if (mGenerator != null) {
+ break;
+ }
+ }
+ stopThread();
+ }
+
+
+}