aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java13
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java51
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java49
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityChunkLoader.java6
4 files changed, 65 insertions, 54 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index ff6edde476..d22426246d 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -5,9 +5,6 @@ import static gtPlusPlus.core.lib.CORE.ConfigSwitches.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Timer;
-
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
@@ -22,8 +19,6 @@ import gregtech.api.enums.Materials;
import gregtech.api.util.FishPondFakeRecipe;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
-import gregtech.common.GT_Worldgen_GT_Ore_Layer;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.Pair;
@@ -42,7 +37,6 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.core.util.data.ArrayUtils;
import gtPlusPlus.core.util.data.LocaleUtils;
import gtPlusPlus.core.util.minecraft.*;
import gtPlusPlus.core.util.sys.GeoUtils;
@@ -168,11 +162,6 @@ public class GTplusplus implements ActionListener {
@EventHandler
public void serverStarting(final FMLServerStartingEvent event) {
event.registerServerCommand(new CommandMath());
-
- //Chunk Loading
- Timer h = ChunkManager.createChunkQueue();
-
-
}
@Mod.EventHandler
@@ -188,7 +177,7 @@ public class GTplusplus implements ActionListener {
//Chunkload Handler
if (ChunkManager.mChunkLoaderManagerMap.size() > 0) {
Logger.INFO("Clearing Chunk Loaders.");
- ChunkManager.mChunkLoaderManagerMap.clear();
+ ChunkManager.clearInternalMaps();
}
}
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java b/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java
index bf080424ea..77839b9ff2 100644
--- a/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java
@@ -14,6 +14,8 @@ import java.util.concurrent.ConcurrentHashMap;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.ListMultimap;
+import cpw.mods.fml.common.Mod.EventHandler;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
@@ -32,6 +34,7 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.ReverseAutoMap;
import gtPlusPlus.api.objects.data.Triplet;
import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaTileEntityChunkLoader;
import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.*;
@@ -43,45 +46,55 @@ import net.minecraftforge.event.entity.EntityEvent;
public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, ForgeChunkManager.PlayerOrderedLoadingCallback {
private static final ChunkManager instance;
- private static volatile long mInternalTickCounter = 0;
private static ReverseAutoMap<String> mIdToUUIDMap = new ReverseAutoMap<String>();
-
+
+ public Timer mChunkQueue;
public static ConcurrentHashMap<String, Triplet<Integer, GregtechMetaTileEntityChunkLoader, DimChunkPos>> mChunkLoaderManagerMap = new ConcurrentHashMap<String, Triplet<Integer, GregtechMetaTileEntityChunkLoader, DimChunkPos>>();
+ private static long mInternalTickCounter = 0;
-
-
static {
instance = new ChunkManager();
+ Logger.REFLECTION("Created ChunkManager object.");
}
- public ChunkManager() {
+ private ChunkManager() {
Utils.registerEvent(this);
}
+ public static void clearInternalMaps() {
+ mIdToUUIDMap.clear();
+ mChunkLoaderManagerMap.clear();
+ }
+
public static boolean setIdAndUniqueString(int id, String blockposString) {
if (mIdToUUIDMap.injectCleanDataToAutoMap(id, blockposString)) {
Logger.INFO("Found Cached ID from NBT, cleanly injected into ChunkManager.");
return true;
}
else {
- Logger.INFO("Creating new Cached ID based on blockpos UID");
- if (mIdToUUIDMap.injectCleanDataToAutoMap(mIdToUUIDMap.getNextFreeMapID(), blockposString)) {
- Logger.INFO("Success! Cleanly injected into ChunkManager.");
- return true;
+ Logger.INFO("ID in use, best try a few times to get a free ID.");
+ for (int u=0;u<mIdToUUIDMap.size()+1;u++) {
+ if (mIdToUUIDMap.injectCleanDataToAutoMap(u, blockposString)) {
+ Logger.INFO("Success! Cleanly injected into ChunkManager.");
+ return true;
+ }
}
- else {
- return false;
+ for (int u=0;u<50;u++) {
+ if (mIdToUUIDMap.injectCleanDataToAutoMap(MathUtils.randInt(0, 250000), blockposString)) {
+ Logger.INFO("Success! Cleanly injected into ChunkManager.");
+ return true;
+ }
}
+ return false;
+
}
}
public static int getIdFromUniqueString(String blockposString) {
if (mIdToUUIDMap.containsValue(blockposString)) {
- Logger.INFO("Found Cached ID based on blockpos UID");
return mIdToUUIDMap.get(blockposString);
}
else {
- Logger.INFO("Creating new Cached ID based on blockpos UID");
return mIdToUUIDMap.putToInternalMap(blockposString);
}
}
@@ -95,9 +108,14 @@ public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, Fo
}
}
+ @EventHandler
+ public void serverStarting(final FMLServerStartingEvent event) {
+ //Chunk Loading
+ ChunkManager.getInstance().mChunkQueue = ChunkManager.createChunkQueue();
+ }
@SubscribeEvent
- public void serverTick(TickEvent.ServerTickEvent e){
+ public void serverTick(final TickEvent.ServerTickEvent e){
mInternalTickCounter++;
try {
if (mInternalTickCounter % (20*15) == 0) {
@@ -410,7 +428,8 @@ public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, Fo
static Timer ChunkTimerLoader() {
Timer timer;
timer = new Timer();
- timer.schedule(new ChunkCache(), 10 * 1000);
+ timer.schedule(new ChunkCache(), 20 * 500);
+ timer.scheduleAtFixedRate(new ChunkCache(), 15000, 60000);
return timer;
}
@@ -429,7 +448,7 @@ public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, Fo
T = j.getValue_2().getTicketFromForge();
C = j.getValue_3().getChunk();
ForgeChunkManager.forceChunk(T, C.getChunkCoordIntPair());
- Logger.INFO("[Chunk Loader] Trying to force load a chunk that holds a chunkloader.");
+ Logger.INFO("[Chunk Loader] Trying to force load a chunk that holds a chunkloader. [Timer]");
}
}
else {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
index 8ffa260261..ef1dd0e353 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
@@ -44,15 +44,17 @@ extends RenderPlayer {
public synchronized void receiveRenderSpecialsEvent(RenderPlayerEvent.Specials.Pre aEvent) {
AbstractClientPlayer aPlayer = (AbstractClientPlayer) aEvent.entityPlayer;
ResourceLocation tResource = null;
- if (cachedResource != null) {
- tResource = cachedResource;
- }
- else {
- String mTemp = "";
- //Make sure we don't keep checking on clients who dont have capes.
- if (!hasResourceChecked) {
- //Only run once.
+
+
+ //Make sure we don't keep checking on clients who dont have capes.
+ if (!hasResourceChecked) {
+ //Give Devs Dev capes.
+ if (CORE.DEVENV) {
+ cachedResource = this.mCapes[4];
hasResourceChecked = true;
+ }
+ else {
+ String mTemp = "";
//If list's have not been built yet for some reason, we best do it now.
if (mDevCapes.size() <= 1) {
BuildCapeList();
@@ -61,40 +63,47 @@ extends RenderPlayer {
//Iterates all players in all lists, caches result.
for (Pair<String, String> mName : mOrangeCapes){
mTemp = getPlayerName(mName.getKey(), mName.getValue());
+ mCapeList.add(mTemp);
if (mTemp.toLowerCase().contains(aPlayer.getDisplayName().toLowerCase())) {
tResource = this.mCapes[0];
}
}
for (Pair<String, String> mName : mMiscCapes){
mTemp = getPlayerName(mName.getKey(), mName.getValue());
+ mCapeList.add(mTemp);
if (mTemp.toLowerCase().contains(aPlayer.getDisplayName().toLowerCase())) {
tResource = this.mCapes[1];
}
}
for (Pair<String, String> mName : mBetaTestCapes){
mTemp = getPlayerName(mName.getKey(), mName.getValue());
+ mCapeList.add(mTemp);
if (mTemp.toLowerCase().contains(aPlayer.getDisplayName().toLowerCase())) {
tResource = this.mCapes[2];
}
}
for (Pair<String, String> mName : mDevCapes){
mTemp = getPlayerName(mName.getKey(), mName.getValue());
+ mCapeList.add(mTemp);
if (mTemp.toLowerCase().contains(aPlayer.getDisplayName().toLowerCase())) {
tResource = this.mCapes[3];
}
}
for (Pair<String, String> mName : mPatreonCapes){
mTemp = getPlayerName(mName.getKey(), mName.getValue());
+ mCapeList.add(mTemp);
if (mTemp.toLowerCase().contains(aPlayer.getDisplayName().toLowerCase())) {
tResource = this.mCapes[4];
}
- }
- if (tResource != null) {
- cachedResource = tResource;
- }
- }
- }
+ }
+ }
+ if (tResource != null) {
+ cachedResource = tResource;
+ }
+ //Only run once.
+ hasResourceChecked = true;
+ }
if (GT_Utility.getFullInvisibility(aPlayer) || aPlayer.isInvisible() || GT_Utility.getPotion(aPlayer, Integer.valueOf(Potion.invisibility.id).intValue())) {
aEvent.setCanceled(true);
@@ -103,16 +112,8 @@ extends RenderPlayer {
float aPartialTicks = aEvent.partialRenderTick;
try {
-
- /*if (CORE.DEVENV) {
- tResource = this.mCapes[3];
- }*/
-
- /*if (this.mCapeList.contains(aPlayer.getDisplayName().toLowerCase())) {
- tResource = this.mCapes[0];
- }*/
- if ((tResource != null) && (!aPlayer.getHideCape())) {
- bindTexture(tResource);
+ if ((cachedResource != null) && (!aPlayer.getHideCape())) {
+ bindTexture(cachedResource);
GL11.glPushMatrix();
GL11.glTranslatef(0.0F, 0.0F, 0.125F);
double d0 = aPlayer.field_71091_bM + (aPlayer.field_71094_bP - aPlayer.field_71091_bM) * aPartialTicks - (aPlayer.prevPosX + (aPlayer.posX - aPlayer.prevPosX) * aPartialTicks);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityChunkLoader.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityChunkLoader.java
index 49901e57bc..8decbd6a91 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityChunkLoader.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityChunkLoader.java
@@ -268,12 +268,14 @@ public class GregtechMetaTileEntityChunkLoader extends GT_MetaTileEntity_TieredM
if (this.getBaseMetaTileEntity() != null && this.getBaseMetaTileEntity().getWorld() != null && this.getBaseMetaTileEntity().getWorld().getWorldTime() >= 100) {
if (mChunkLoaderMapID == -1) {
this.mChunkLoaderMapID = ChunkManager.getIdFromUniqueString(getUniqueID());
- Logger.INFO("["+getUniqueID()+"] Adjusted Chunk Loaders ID from -1 to "+mChunkLoaderMapID+". This chunk loader is not registered to the global list yet.");
+ Logger.INFO("["+getUniqueID()+"] Adjusted Chunk Loaders ID to "+mChunkLoaderMapID+". This chunk loader is not registered to the global list yet.");
}
else {
Logger.INFO("["+getUniqueID()+"] Found cached ID - "+mChunkLoaderMapID);
ChunkManager.setIdAndUniqueString(this.mChunkLoaderMapID, getUniqueID());
- this.mChunkLoaderMapID = ChunkManager.getIdFromUniqueString(getUniqueID()); // Just Incase the ID gets shifted.
+ // Just Incase the ID gets shifted.
+ if (this.mChunkLoaderMapID != ChunkManager.getIdFromUniqueString(getUniqueID()))
+ this.mChunkLoaderMapID = ChunkManager.getIdFromUniqueString(getUniqueID());
}
if (this != null && this.getBaseMetaTileEntity() != null) {
if (!isRegistered() && !getUniqueID().equalsIgnoreCase("0@0@0@0")) {