From 0ebbaf88ecce9a0e6fcd84498a0e4f1bcf387331 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Tue, 31 Dec 2019 15:22:02 +0000 Subject: + Added the Adv. DT. (Locked to T1 for now) + Added 10 new casing blocks, with assembler recipes. - Removed obsolete Chunkloading classes. --- .../api/objects/minecraft/ChunkManager.java | 459 --------------------- 1 file changed, 459 deletions(-) delete mode 100644 src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java (limited to 'src/Java/gtPlusPlus/api/objects/minecraft') diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java b/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java deleted file mode 100644 index 826f0c5106..0000000000 --- a/src/Java/gtPlusPlus/api/objects/minecraft/ChunkManager.java +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Copyright (c) CovertJaguar, 2014 http://railcraft.info - * - * This code is the property of CovertJaguar - * and may only be used with explicit written - * permission unless otherwise specified on the - * license page at http://railcraft.info/wiki/info:license. - */ -package gtPlusPlus.api.objects.minecraft; - -import java.util.*; -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; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -import gregtech.api.GregTech_API; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; - -import gtPlusPlus.GTplusplus; -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.*; -import net.minecraftforge.event.entity.EntityEvent; - -/** - * @author CovertJaguar - */ -public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, ForgeChunkManager.PlayerOrderedLoadingCallback { - - private static final ChunkManager instance; - private static ReverseAutoMap mIdToUUIDMap = new ReverseAutoMap(); - - public Timer mChunkQueue; - public static ConcurrentHashMap> mChunkLoaderManagerMap = new ConcurrentHashMap>(); - private static long mInternalTickCounter = 0; - - static { - instance = new ChunkManager(); - Logger.REFLECTION("Created ChunkManager object."); - } - - 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("ID in use, best try a few times to get a free ID."); - for (int u=0;u - * One of the pairs of start/end coords need to be equal. - *

- * Coordinates are in chunk coordinates, not world coordinates. - * - * @param xChunkA Start Chunk x-Coord - * @param zChunkA Start Chunk z-Coord - * @param xChunkB End Chunk x-Coord - * @param zChunkB End Chunk z-Coord - * @param max Max number of chunks to return - * @return A set of chunks. - */ - public Set getChunksBetween(int xChunkA, int zChunkA, int xChunkB, int zChunkB, int max) { - Set chunkList = new HashSet(); - - if (xChunkA != xChunkB && zChunkA != zChunkB) { - return chunkList; - } - - int xStart = Math.min(xChunkA, xChunkB); - int xEnd = Math.max(xChunkA, xChunkB); - - int zStart = Math.min(zChunkA, zChunkB); - int zEnd = Math.max(zChunkA, zChunkB); - - for (int xx = xStart; xx <= xEnd; xx++) { - for (int zz = zStart; zz <= zEnd; zz++) { - chunkList.add(new ChunkCoordIntPair(xx, zz)); - if (chunkList.size() >= max) { - return chunkList; - } - } - } - return chunkList; - } - - /** - * Returns a Set of ChunkCoordIntPair containing the chunks around point [x, - * z]. Coordinates are in chunk coordinates, not world coordinates. - * - * @param xChunk Chunk x-Coord - * @param zChunk Chunk z-Coord - * @param radius Distance from [x, z] to include, in number of chunks. - * @return A set of chunks. - */ - public Set getChunksAround(int xChunk, int zChunk, int radius) { - Set chunkList = new HashSet(); - for (int xx = xChunk - radius; xx <= xChunk + radius; xx++) { - for (int zz = zChunk - radius; zz <= zChunk + radius; zz++) { - chunkList.add(new ChunkCoordIntPair(xx, zz)); - } - } - return chunkList; - } - - /** - * Returns a Set of ChunkCoordIntPair containing the chunks around point [x, - * z]. Coordinates are in world coordinates, not chunk coordinates. - * - * @param xWorld World x-Coord - * @param zWorld World z-Coord - * @param radius Distance from [x, z] to include, in blocks. - * @return A set of chunks. - */ - public Set getBufferAround(int xWorld, int zWorld, int radius) { - int minX = (xWorld - radius) >> 4; - int maxX = (xWorld + radius) >> 4; - int minZ = (zWorld - radius) >> 4; - int maxZ = (zWorld + radius) >> 4; - - Set chunkList = new HashSet(); - for (int xx = minX; xx <= maxX; xx++) { - for (int zz = minZ; zz <= maxZ; zz++) { - chunkList.add(new ChunkCoordIntPair(xx, zz)); - } - } - return chunkList; - } - - private void printAnchor(String type, int x, int y, int z) { - Logger.INFO("[Chunk Loader] "+type+" @ [x: "+x+"][y: "+y+"][z: "+z+"]"); - } - - @Override - public void ticketsLoaded(List tickets, World world) { - - if (world.isRemote) return; - - System.out.println("Callback 2"); - for (Ticket ticket : tickets) { - if (ticket.isPlayerTicket()) - continue; - Entity entity = ticket.getEntity(); - if (entity == null) { - int x = ticket.getModData().getInteger("xCoord"); - int y = ticket.getModData().getInteger("yCoord"); - int z = ticket.getModData().getInteger("zCoord"); - - if (y >= 0) { - BlockPos tile = new BlockPos(x, y, z, world); - Ticket H = tryForceLoadChunk(new DimChunkPos(world, tile).getChunk()); - - int jhg = 0; - while (jhg < 50) { - jhg++; - } - - if (!mChunkLoaderManagerMap.isEmpty()) { - GregtechMetaTileEntityChunkLoader f = mChunkLoaderManagerMap.get(tile.getUniqueIdentifier()).getValue_2(); - int timeout = 0; - while (f == null) { - if (timeout > 5000) { - Logger.INFO("[Chunk Loader] Timed out"); - break; - } - else { - GregtechMetaTileEntityChunkLoader g; - if (!mChunkLoaderManagerMap.isEmpty()) { - g = mChunkLoaderManagerMap.get(tile.getUniqueIdentifier()).getValue_2(); - if (g == null) { - timeout++; - } - else { - Logger.INFO("[Chunk Loader]Tile became Valid"); - f = g; - break; - } - } - } - } - try { - if (f != null) { - if (H != null) { - ForgeChunkManager.releaseTicket(H); - } - f.forceChunkLoading(f.getBaseMetaTileEntity(), ticket); - printAnchor("Force Chunk Loading. Chunk Loader has ID of "+f.getUUID().toString()+". ",x,y,z); - } - else { - Logger.INFO("Tile Entity is null."); - } - } - catch (Throwable t) { - t.printStackTrace(); - Logger.INFO("Mild problem with chunk loading, nothing to worry about."); - } - - - if (H != null) { - ForgeChunkManager.releaseTicket(H); - } - - } - - /*if (tile instanceof IGregTechTileEntity) { - final IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity) tile; - IGregTechTileEntity anchor = (IGregTechTileEntity) tile; - GregtechMetaTileEntityChunkLoader jun = (GregtechMetaTileEntityChunkLoader) anchor; - jun.forceChunkLoading(ticket); - //printAnchor(anchor.getName(), x, y, z); - }*/ - } - } - } - } - - @Override - public List ticketsLoaded(List tickets, World world, int maxTicketCount) { - // System.out.println("Callback 1"); - Set adminTickets = new HashSet(); - Set worldTickets = new HashSet(); - Set cartTickets = new HashSet(); - for (Ticket ticket : tickets) { - Entity entity = ticket.getEntity(); - if (entity == null) { - int x = ticket.getModData().getInteger("xCoord"); - int y = ticket.getModData().getInteger("yCoord"); - int z = ticket.getModData().getInteger("zCoord"); - if (y >= 0) { - worldTickets.add(ticket); - } - } - } - - List claimedTickets = new LinkedList(); - claimedTickets.addAll(cartTickets); - claimedTickets.addAll(adminTickets); - claimedTickets.addAll(worldTickets); - return claimedTickets; - } - - @Override - public ListMultimap playerTicketsLoaded(ListMultimap tickets, World world) { - return LinkedListMultimap.create(); - } - - - public static Timer createChunkQueue() { - return ChunkTimerLoader(); - } - - public static Ticket tryForceLoadChunk(Chunk c) { - Ticket T = getTicketFromForge(c.worldObj); - if (T == null) { - Logger.INFO("[Chunk Loader] Trying to force load a chunk that holds a chunkloader, however the Chunk Loading Ticket was null."); - return null; - } - ForgeChunkManager.forceChunk(T, c.getChunkCoordIntPair()); - Logger.INFO("[Chunk Loader] Trying to force load a chunk that holds a chunkloader."); - return T; - } - - public static Ticket getTicketFromForge(World world) { - return ForgeChunkManager.requestTicket(GTplusplus.instance, world, Type.NORMAL); - } - - static Timer ChunkTimerLoader() { - Timer timer; - timer = new Timer(); - timer.schedule(new ChunkCache(), 20 * 500); - timer.scheduleAtFixedRate(new ChunkCache(), 15000, 60000); - return timer; - } - - //Timer Task for notifying the player. - static class ChunkCache extends TimerTask { - public ChunkCache() { - - } - - @Override - public void run() { - if (mChunkLoaderManagerMap.size() > 0) { - for (Triplet j : mChunkLoaderManagerMap.values()) { - Ticket T; - Chunk C; - T = j.getValue_2().getTicketFromForge(j.getValue_2().getBaseMetaTileEntity()); - C = j.getValue_3().getChunk(); - ForgeChunkManager.forceChunk(T, C.getChunkCoordIntPair()); - Logger.INFO("[Chunk Loader] Trying to force load a chunk that holds a chunkloader. [Timer]"); - } - } - else { - Logger.INFO("[Chunk Loader] No chunks to try to force load chunks that hold chunkloaders."); - } - } - } -} \ No newline at end of file -- cgit