diff options
| author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-12-31 15:22:02 +0000 |
|---|---|---|
| committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-12-31 15:22:02 +0000 |
| commit | 0ebbaf88ecce9a0e6fcd84498a0e4f1bcf387331 (patch) | |
| tree | 9b304c63e6b794a29e71df6e7082b4467b27432a /src/Java | |
| parent | 3a9f2400d30a319990e2ec792fef963cb2f1d3df (diff) | |
| download | GT5-Unofficial-0ebbaf88ecce9a0e6fcd84498a0e4f1bcf387331.tar.gz GT5-Unofficial-0ebbaf88ecce9a0e6fcd84498a0e4f1bcf387331.tar.bz2 GT5-Unofficial-0ebbaf88ecce9a0e6fcd84498a0e4f1bcf387331.zip | |
+ Added the Adv. DT. (Locked to T1 for now)
+ Added 10 new casing blocks, with assembler recipes.
- Removed obsolete Chunkloading classes.
Diffstat (limited to 'src/Java')
15 files changed, 578 insertions, 704 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 5828cc9ac2..7f22ac179e 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -37,7 +37,6 @@ import gtPlusPlus.core.common.CommonProxy; import gtPlusPlus.core.config.ConfigHandler; import gtPlusPlus.core.handler.BookHandler; import gtPlusPlus.core.handler.Recipes.RegistrationHandler; -import gtPlusPlus.core.handler.chunkloading.ChunkLoading; import gtPlusPlus.core.handler.events.BlockEventHandler; import gtPlusPlus.core.handler.events.LoginEventHandler; import gtPlusPlus.core.handler.events.MissingMappingsEvent; @@ -47,7 +46,6 @@ import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.data.LocaleUtils; -import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.HazmatUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.RecipeUtils; @@ -66,7 +64,6 @@ import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechMiniRaFusion; import gtPlusPlus.xmod.thaumcraft.commands.CommandDumpAspects; import net.minecraft.launchwrapper.Launch; import net.minecraft.util.IIcon; -import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; @MCVersion(value = "1.7.10") @@ -116,9 +113,6 @@ public class GTplusplus implements ActionListener { //GT++ Proxy Instances @SidedProxy(clientSide = "gtPlusPlus.core.proxy.ClientProxy", serverSide = "gtPlusPlus.core.proxy.ServerProxy") public static CommonProxy proxy; - - //Chunk handler - public static ChunkLoading mChunkLoading; // Loads Textures @SideOnly(value = Side.CLIENT) @@ -138,7 +132,6 @@ public class GTplusplus implements ActionListener { public GTplusplus() { super(); INIT_PHASE.SUPER.setPhaseActive(true); - mChunkLoading = new ChunkLoading(); } // Pre-Init @@ -176,9 +169,6 @@ public class GTplusplus implements ActionListener { Utils.registerEvent(new MissingMappingsEvent()); Logger.INFO("Login Handler Initialized"); - - - mChunkLoading.preInit(event); proxy.preInit(event); Logger.INFO("Setting up our own GT_Proxy."); Meta_GT_Proxy.preInit(); @@ -190,7 +180,6 @@ public class GTplusplus implements ActionListener { @Mod.EventHandler public void init(final FMLInitializationEvent event) { INIT_PHASE.INIT.setPhaseActive(true); - mChunkLoading.init(event); proxy.init(event); HazmatUtils.init(); proxy.registerNetworkStuff(); @@ -208,7 +197,6 @@ public class GTplusplus implements ActionListener { @Mod.EventHandler public void postInit(final FMLPostInitializationEvent event) { INIT_PHASE.POST_INIT.setPhaseActive(true); - mChunkLoading.postInit(event); proxy.postInit(event); BookHandler.runLater(); Meta_GT_Proxy.postInit(); @@ -231,7 +219,6 @@ public class GTplusplus implements ActionListener { @EventHandler public synchronized void serverStarting(final FMLServerStartingEvent event) { INIT_PHASE.SERVER_START.setPhaseActive(true); - mChunkLoading.serverStarting(event); event.registerServerCommand(new CommandMath()); event.registerServerCommand(new CommandEnableDebugWhileRunning()); event.registerServerCommand(new CommandDebugChunks()); @@ -247,7 +234,6 @@ public class GTplusplus implements ActionListener { @Mod.EventHandler public synchronized void serverStopping(final FMLServerStoppingEvent event) { - mChunkLoading.serverStopping(event); Core_Manager.serverStop(); if (GregtechBufferThread.mBufferThreadAllocation.size() > 0) { for (GregtechBufferThread i : GregtechBufferThread.mBufferThreadAllocation.values()) { 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 <http://www.railcraft.info> - */ -public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, ForgeChunkManager.PlayerOrderedLoadingCallback { - - private static final ChunkManager instance; - 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."); - } - - 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<mIdToUUIDMap.size()+1;u++) { - if (mIdToUUIDMap.injectCleanDataToAutoMap(u, blockposString)) { - Logger.INFO("Success! Cleanly injected into ChunkManager."); - return true; - } - } - 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)) { - return mIdToUUIDMap.get(blockposString); - } - else { - return mIdToUUIDMap.putToInternalMap(blockposString); - } - } - - public static String getUniqueStringFromID(int id) { - if (mIdToUUIDMap.containsKey(id)) { - return mIdToUUIDMap.get(id); - } - else { - return "0@0@0@0"; - } - } - - @EventHandler - public void serverStarting(final FMLServerStartingEvent event) { - //Chunk Loading - ChunkManager.getInstance().mChunkQueue = ChunkManager.createChunkQueue(); - } - - @SubscribeEvent - public void serverTick(final TickEvent.ServerTickEvent e){ - mInternalTickCounter++; - try { - if (mInternalTickCounter % (20*15) == 0) { - for (String g : mChunkLoaderManagerMap.keySet()) { - BlockPos i = BlockPos.generateBlockPos(g); - if (i == null) { - mChunkLoaderManagerMap.remove(g); - Logger.MACHINE_INFO("Bad Mapping: "+g); - continue; - } - else { - Logger.MACHINE_INFO("Good Mapping: "+i.getLocationString()); - } - Block mBlock = i.world.getBlock(i.xPos, i.yPos, i.zPos); - TileEntity mTile = i.world.getTileEntity(i.xPos, i.yPos, i.zPos); - IGregTechTileEntity mGTile = null; - boolean remove = false; - if (((mTile = i.world.getTileEntity(i.xPos, i.yPos, i.zPos)) != null) && (mTile instanceof IGregTechTileEntity)){ - mGTile = (IGregTechTileEntity) mTile; //943-945 - if (mGTile instanceof GregtechMetaTileEntityChunkLoader || mGTile.getMetaTileID() == 943 || mGTile.getMetaTileID() == 944 || mGTile.getMetaTileID() == 945) { - Logger.MACHINE_INFO("Found Valid Chunk Loader Entity."); - continue; - } - else { - Logger.MACHINE_INFO("Found Valid GT Tile which was not a Chunk Loader Entity."); - remove = true; - } - } - else if ((mTile = i.world.getTileEntity(i.xPos, i.yPos, i.zPos)) != null){ - Logger.MACHINE_INFO("Found Valid Tile Entity."); - remove = true; - } - else { - mTile = null; - remove = true; - } - if (mBlock == null || mGTile == null || mBlock != GregTech_API.sBlockMachines) { - remove = true; - } - - if (remove) { - //1 - if (mBlock != null) { - Logger.MACHINE_INFO("Found Block."); - //2 - if (mBlock == GregTech_API.sBlockMachines) { - Logger.MACHINE_INFO("Found GT Machine."); - //3 - if (mTile != null) { - //4 - if (GregtechMetaTileEntityChunkLoader.class.isInstance(mTile.getClass())) { - Logger.MACHINE_INFO("Found Valid Chunk Loader."); - } - else { - Logger.MACHINE_INFO("Tile Entity was not a Chunk Loader."); - }//4 - } - else { - Logger.MACHINE_INFO("Tile Entity was Null though."); - }//3 - } - else { - Logger.MACHINE_INFO("Found Block that was not a GT Machine."); - }//2 - } - else { - Logger.MACHINE_INFO("Found Null Block."); - }//1 - } - mChunkLoaderManagerMap.remove(i.getUniqueIdentifier()); - Logger.INFO("Removing invalid Chunk Loader. Mapping: "+i.getUniqueIdentifier()); - continue; - } - } - } - catch (Throwable t) { - t.printStackTrace(); - } - - } - - public static ChunkManager getInstance() { - return instance; - } - - @SubscribeEvent - public void entityEnteredChunk(EntityEvent.EnteringChunk event) { - - } - - /** - * Returns a Set of ChunkCoordIntPair containing the chunks between the - * start and end chunks. - * <p/> - * One of the pairs of start/end coords need to be equal. - * <p/> - * 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<ChunkCoordIntPair> getChunksBetween(int xChunkA, int zChunkA, int xChunkB, int zChunkB, int max) { - Set<ChunkCoordIntPair> chunkList = new HashSet<ChunkCoordIntPair>(); - - 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<ChunkCoordIntPair> getChunksAround(int xChunk, int zChunk, int radius) { - Set<ChunkCoordIntPair> chunkList = new HashSet<ChunkCoordIntPair>(); - 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<ChunkCoordIntPair> 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<ChunkCoordIntPair> chunkList = new HashSet<ChunkCoordIntPair>(); - 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<Ticket> 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<Ticket> ticketsLoaded(List<Ticket> tickets, World world, int maxTicketCount) { - // System.out.println("Callback 1"); - Set<Ticket> adminTickets = new HashSet<Ticket>(); - Set<Ticket> worldTickets = new HashSet<Ticket>(); - Set<Ticket> cartTickets = new HashSet<Ticket>(); - 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<Ticket> claimedTickets = new LinkedList<Ticket>(); - claimedTickets.addAll(cartTickets); - claimedTickets.addAll(adminTickets); - claimedTickets.addAll(worldTickets); - return claimedTickets; - } - - @Override - public ListMultimap<String, Ticket> playerTicketsLoaded(ListMultimap<String, Ticket> 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<Integer, GregtechMetaTileEntityChunkLoader, DimChunkPos> 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 diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index a448e313ac..4bc5908f98 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -29,6 +29,7 @@ import gtPlusPlus.core.block.machine.Machine_WorkbenchAdvanced; import gtPlusPlus.core.block.machine.bedrock.Mining_Head_Fake; import gtPlusPlus.core.block.machine.bedrock.Mining_Pipe_Fake; import gtPlusPlus.core.fluids.FluidRegistryHandler; +import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaTieredCasingBlocks1; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraftforge.fluids.Fluid; @@ -96,6 +97,7 @@ public final class ModBlocks { public static Block blockPooCollector; public static Block blockPestKiller; + public static GregtechMetaTieredCasingBlocks1 BlockTieredCasings1; public static void init() { Logger.INFO("Initializing Blocks."); diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java index 1ce16bf4de..71a7b37cfc 100644 --- a/src/Java/gtPlusPlus/core/common/CommonProxy.java +++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java @@ -14,7 +14,6 @@ import gtPlusPlus.GTplusplus; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.api.objects.minecraft.ChunkManager; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.entity.InternalEntityRegistry; @@ -61,7 +60,6 @@ import net.minecraft.entity.monster.EntityZombie; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.ForgeChunkManager; public class CommonProxy { @@ -159,9 +157,6 @@ public class CommonProxy { Utils.registerEvent(new StopAnnoyingFuckingAchievements()); } - // Register Chunkloader - ForgeChunkManager.setForcedChunkLoadingCallback(GTplusplus.instance, ChunkManager.getInstance()); - Utils.registerEvent(ChunkManager.getInstance()); Utils.registerEvent(new EnderDragonDeathHandler()); Utils.registerEvent(new EntityDeathHandler()); diff --git a/src/Java/gtPlusPlus/core/handler/chunkloading/ChunkLoading.java b/src/Java/gtPlusPlus/core/handler/chunkloading/ChunkLoading.java deleted file mode 100644 index bc690f250c..0000000000 --- a/src/Java/gtPlusPlus/core/handler/chunkloading/ChunkLoading.java +++ /dev/null @@ -1,57 +0,0 @@ -package gtPlusPlus.core.handler.chunkloading; - -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.event.FMLServerStoppingEvent; -import gtPlusPlus.GTplusplus; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.api.objects.minecraft.ChunkManager; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.minecraft.network.PacketHandler; -import net.minecraftforge.common.ForgeChunkManager; - -public class ChunkLoading { - - private final ChunkLoading instance; - - public ChunkLoading() { - instance = this; - } - - public ChunkLoading getInstance() { - return this.instance; - } - - - public void preInit(final FMLPreInitializationEvent event) { - PacketHandler.init(); - ForgeChunkManager.setForcedChunkLoadingCallback(GTplusplus.instance, ChunkManager.getInstance()); - Utils.registerEvent(ChunkManager.getInstance()); - } - - - public void init(final FMLInitializationEvent event) { - - } - - - public void postInit(final FMLPostInitializationEvent event) { - - } - - - public synchronized void serverStarting(final FMLServerStartingEvent event) { - - } - - public void serverStopping(final FMLServerStoppingEvent event){ - //Chunkload Handler - if (ChunkManager.mChunkLoaderManagerMap.size() > 0) { - Logger.INFO("Clearing Chunk Loaders."); - ChunkManager.clearInternalMaps(); - } - } - -} diff --git a/src/Java/gtPlusPlus/core/handler/chunkloading/ChunkManager.java b/src/Java/gtPlusPlus/core/handler/chunkloading/ChunkManager.java deleted file mode 100644 index f95c4e7a78..0000000000 --- a/src/Java/gtPlusPlus/core/handler/chunkloading/ChunkManager.java +++ /dev/null @@ -1,153 +0,0 @@ -package gtPlusPlus.core.handler.chunkloading; - -import com.google.common.collect.LinkedListMultimap; -import com.google.common.collect.ListMultimap; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaTileEntityChunkLoader; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager.LoadingCallback; -import net.minecraftforge.common.ForgeChunkManager.OrderedLoadingCallback; -import net.minecraftforge.common.ForgeChunkManager.PlayerOrderedLoadingCallback; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; - -public class ChunkManager implements LoadingCallback, OrderedLoadingCallback, PlayerOrderedLoadingCallback { - private static ChunkManager instance; - - public static ChunkManager getInstance() { - if (instance == null) { - instance = new ChunkManager(); - } - - return instance; - } - - @SubscribeEvent - public void entityEnteredChunk(EnteringChunk event) { - - } - - public Set<ChunkCoordIntPair> getChunksBetween(int xChunkA, int zChunkA, int xChunkB, int zChunkB, int max) { - Set<ChunkCoordIntPair> chunkList = new HashSet<ChunkCoordIntPair>(); - if (xChunkA != xChunkB && zChunkA != zChunkB) { - return chunkList; - } else { - 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; - } - } - - public Set<ChunkCoordIntPair> getChunksAround(int xChunk, int zChunk, int radius) { - Set<ChunkCoordIntPair> chunkList = new HashSet<ChunkCoordIntPair>(); - - 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; - } - - public Set<ChunkCoordIntPair> 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<ChunkCoordIntPair> chunkList = new HashSet<ChunkCoordIntPair>(); - - for (int xx = minX; xx <= maxX; ++xx) { - for (int zz = minZ; zz <= maxZ; ++zz) { - chunkList.add(new ChunkCoordIntPair(xx, zz)); - } - } - - return chunkList; - } - - public void ticketsLoaded(List<Ticket> tickets, World world) { - Iterator<Ticket> var3 = tickets.iterator(); - while (var3.hasNext()) { - Ticket ticket = (Ticket) var3.next(); - if (!ticket.isPlayerTicket()) { - 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) { - TileEntity tile = world.getTileEntity(x, y, z); - if (tile instanceof IGregTechTileEntity) { - IGregTechTileEntity g = (IGregTechTileEntity) tile; - if (g instanceof GregtechMetaTileEntityChunkLoader) { - GregtechMetaTileEntityChunkLoader t = (GregtechMetaTileEntityChunkLoader) g; - t.forceChunkLoading(t.getBaseMetaTileEntity(), ticket); - // this.printChunkLoader(t.getName(), x, y, z); - } - } - } - } - } - } - } - - public List<Ticket> ticketsLoaded(List<Ticket> tickets, World world, int maxTicketCount) { - Set<Ticket> adminTickets = new HashSet<Ticket>(); - Set<Ticket> worldTickets = new HashSet<Ticket>(); - Set<Ticket> cartTickets = new HashSet<Ticket>(); - Iterator<Ticket> var7 = tickets.iterator(); - - while (var7.hasNext()) { - Ticket ticket = (Ticket) var7.next(); - 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"); - String type = ticket.getModData().getString("type"); - if (y >= 0) { - if (type.equals("AdminChunkLoader")) { - adminTickets.add(ticket); - } else if (type.equals("StandardChunkLoader")) { - worldTickets.add(ticket); - } else if (type.isEmpty()) { - worldTickets.add(ticket); - } - } - } - } - - List<Ticket> claimedTickets = new LinkedList<Ticket>(); - claimedTickets.addAll(cartTickets); - claimedTickets.addAll(adminTickets); - claimedTickets.addAll(worldTickets); - return claimedTickets; - } - - public ListMultimap<String, Ticket> playerTicketsLoaded(ListMultimap<String, Ticket> tickets, World world) { - return LinkedListMultimap.create(); - } -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java index 578ef8f89c..4feebce648 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -223,6 +223,7 @@ public class RECIPES_Machines { } initModItems(); + tieredMachineHulls(); controlCores(); energyCores(); wirelessChargers(); @@ -234,6 +235,39 @@ public class RECIPES_Machines { roundRobinators(); } + private static void tieredMachineHulls() { + + GregtechItemList[] aHulls = new GregtechItemList[] { + GregtechItemList.GTPP_Casing_ULV, + GregtechItemList.GTPP_Casing_LV, + GregtechItemList.GTPP_Casing_MV, + GregtechItemList.GTPP_Casing_HV, + GregtechItemList.GTPP_Casing_EV, + GregtechItemList.GTPP_Casing_IV, + GregtechItemList.GTPP_Casing_LuV, + GregtechItemList.GTPP_Casing_ZPM, + GregtechItemList.GTPP_Casing_UV, + GregtechItemList.GTPP_Casing_MAX + }; + + for (int i=0;i<10;i++) { + CORE.RA.addSixSlotAssemblingRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(22), + CI.getTieredMachineCasing(i), + CI.getPlate(i, 8), + CI.getGear(i, 2), + CI.getTieredComponent(OrePrefixes.cableGt02, i, 4), + CI.getTieredComponent(OrePrefixes.circuit, i, 2) + }, + CI.getTieredFluid(i, 144 * i * 2), + aHulls[i].get(1), + 20 * 20, + MaterialUtils.getVoltageForTier(i)); + } + + } + private static void initModItems(){ |
