From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../api/objects/AE2DigitalChestHandler.java | 6 +- .../java/gregtech/api/objects/GTArrayList.java | 73 +++ .../java/gregtech/api/objects/GTChunkManager.java | 204 +++++++ .../gregtech/api/objects/GTCopiedBlockTexture.java | 36 ++ .../java/gregtech/api/objects/GTCoverDefault.java | 81 +++ .../java/gregtech/api/objects/GTCoverNone.java | 237 ++++++++ src/main/java/gregtech/api/objects/GTFluid.java | 36 ++ src/main/java/gregtech/api/objects/GTHashSet.java | 91 +++ .../java/gregtech/api/objects/GTItemStack.java | 107 ++++ .../java/gregtech/api/objects/GTItemStack2.java | 41 ++ .../java/gregtech/api/objects/GTMultiTexture.java | 27 + .../gregtech/api/objects/GTRenderedTexture.java | 33 ++ .../java/gregtech/api/objects/GTSidedTexture.java | 48 ++ .../gregtech/api/objects/GTStdRenderedTexture.java | 46 ++ .../java/gregtech/api/objects/GTUODimension.java | 54 ++ .../gregtech/api/objects/GTUODimensionList.java | 648 +++++++++++++++++++++ src/main/java/gregtech/api/objects/GTUOFluid.java | 69 +++ .../java/gregtech/api/objects/GT_ArrayList.java | 73 --- .../java/gregtech/api/objects/GT_ChunkManager.java | 204 ------- .../api/objects/GT_CopiedBlockTexture.java | 35 -- .../gregtech/api/objects/GT_Cover_Default.java | 81 --- .../java/gregtech/api/objects/GT_Cover_None.java | 237 -------- src/main/java/gregtech/api/objects/GT_Fluid.java | 36 -- src/main/java/gregtech/api/objects/GT_HashSet.java | 91 --- .../java/gregtech/api/objects/GT_ItemStack.java | 107 ---- .../java/gregtech/api/objects/GT_ItemStack2.java | 41 -- .../java/gregtech/api/objects/GT_MultiTexture.java | 26 - .../gregtech/api/objects/GT_RenderedTexture.java | 33 -- .../java/gregtech/api/objects/GT_SidedTexture.java | 48 -- .../api/objects/GT_StdRenderedTexture.java | 46 -- .../java/gregtech/api/objects/GT_UO_Dimension.java | 54 -- .../gregtech/api/objects/GT_UO_DimensionList.java | 648 --------------------- .../java/gregtech/api/objects/GT_UO_Fluid.java | 69 --- src/main/java/gregtech/api/objects/ItemData.java | 2 +- .../java/gregtech/api/objects/MaterialStack.java | 4 +- .../overclockdescriber/EUNoOverclockDescriber.java | 38 +- .../overclockdescriber/EUOverclockDescriber.java | 34 +- .../FusionOverclockDescriber.java | 16 +- .../overclockdescriber/OverclockDescriber.java | 36 +- .../SteamOverclockDescriber.java | 20 +- 40 files changed, 1909 insertions(+), 1907 deletions(-) create mode 100644 src/main/java/gregtech/api/objects/GTArrayList.java create mode 100644 src/main/java/gregtech/api/objects/GTChunkManager.java create mode 100644 src/main/java/gregtech/api/objects/GTCopiedBlockTexture.java create mode 100644 src/main/java/gregtech/api/objects/GTCoverDefault.java create mode 100644 src/main/java/gregtech/api/objects/GTCoverNone.java create mode 100644 src/main/java/gregtech/api/objects/GTFluid.java create mode 100644 src/main/java/gregtech/api/objects/GTHashSet.java create mode 100644 src/main/java/gregtech/api/objects/GTItemStack.java create mode 100644 src/main/java/gregtech/api/objects/GTItemStack2.java create mode 100644 src/main/java/gregtech/api/objects/GTMultiTexture.java create mode 100644 src/main/java/gregtech/api/objects/GTRenderedTexture.java create mode 100644 src/main/java/gregtech/api/objects/GTSidedTexture.java create mode 100644 src/main/java/gregtech/api/objects/GTStdRenderedTexture.java create mode 100644 src/main/java/gregtech/api/objects/GTUODimension.java create mode 100644 src/main/java/gregtech/api/objects/GTUODimensionList.java create mode 100644 src/main/java/gregtech/api/objects/GTUOFluid.java delete mode 100644 src/main/java/gregtech/api/objects/GT_ArrayList.java delete mode 100644 src/main/java/gregtech/api/objects/GT_ChunkManager.java delete mode 100644 src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java delete mode 100644 src/main/java/gregtech/api/objects/GT_Cover_Default.java delete mode 100644 src/main/java/gregtech/api/objects/GT_Cover_None.java delete mode 100644 src/main/java/gregtech/api/objects/GT_Fluid.java delete mode 100644 src/main/java/gregtech/api/objects/GT_HashSet.java delete mode 100644 src/main/java/gregtech/api/objects/GT_ItemStack.java delete mode 100644 src/main/java/gregtech/api/objects/GT_ItemStack2.java delete mode 100644 src/main/java/gregtech/api/objects/GT_MultiTexture.java delete mode 100644 src/main/java/gregtech/api/objects/GT_RenderedTexture.java delete mode 100644 src/main/java/gregtech/api/objects/GT_SidedTexture.java delete mode 100644 src/main/java/gregtech/api/objects/GT_StdRenderedTexture.java delete mode 100644 src/main/java/gregtech/api/objects/GT_UO_Dimension.java delete mode 100644 src/main/java/gregtech/api/objects/GT_UO_DimensionList.java delete mode 100644 src/main/java/gregtech/api/objects/GT_UO_Fluid.java (limited to 'src/main/java/gregtech/api/objects') diff --git a/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java b/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java index c2e0556de9..3ede25f5ea 100644 --- a/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java +++ b/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.metatileentity.BaseMetaTileEntity; -import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalChestBase; +import gregtech.common.tileentities.storage.MTEDigitalChestBase; public class AE2DigitalChestHandler implements appeng.api.storage.IExternalStorageHandler { @@ -12,14 +12,14 @@ public class AE2DigitalChestHandler implements appeng.api.storage.IExternalStora public boolean canHandle(final TileEntity te, final ForgeDirection d, final appeng.api.storage.StorageChannel chan, final appeng.api.networking.security.BaseActionSource mySrc) { return chan == appeng.api.storage.StorageChannel.ITEMS && te instanceof BaseMetaTileEntity - && ((BaseMetaTileEntity) te).getMetaTileEntity() instanceof GT_MetaTileEntity_DigitalChestBase; + && ((BaseMetaTileEntity) te).getMetaTileEntity() instanceof MTEDigitalChestBase; } @Override public appeng.api.storage.IMEInventory getInventory(final TileEntity te, final ForgeDirection d, final appeng.api.storage.StorageChannel chan, final appeng.api.networking.security.BaseActionSource src) { if (chan == appeng.api.storage.StorageChannel.ITEMS) { - return ((GT_MetaTileEntity_DigitalChestBase) (((BaseMetaTileEntity) te).getMetaTileEntity())); + return ((MTEDigitalChestBase) (((BaseMetaTileEntity) te).getMetaTileEntity())); } return null; } diff --git a/src/main/java/gregtech/api/objects/GTArrayList.java b/src/main/java/gregtech/api/objects/GTArrayList.java new file mode 100644 index 0000000000..33fbb18571 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTArrayList.java @@ -0,0 +1,73 @@ +package gregtech.api.objects; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Objects; + +import com.google.common.collect.Collections2; + +public class GTArrayList extends ArrayList { + + private static final long serialVersionUID = 1L; + private int size_sS; + + private final boolean mAllowNulls; + + public GTArrayList(boolean aAllowNulls, int aCapacity) { + super(aCapacity); + mAllowNulls = aAllowNulls; + } + + @SafeVarargs + public GTArrayList(boolean aAllowNulls, E... aArray) { + super(Arrays.asList(aArray)); + mAllowNulls = aAllowNulls; + if (!mAllowNulls) { + size_sS = size(); + for (int i = 0; i < size_sS; i++) if (get(i) == null) { + remove(i--); + size_sS = size(); + } + } + } + + public GTArrayList(boolean aAllowNulls, Collection aList) { + super(aList); + mAllowNulls = aAllowNulls; + if (!mAllowNulls) { + size_sS = size(); + for (int i = 0; i < size_sS; i++) if (get(i) == null) { + remove(i--); + size_sS = size(); + } + } + } + + @Override + public E set(int aIndex, E aElement) { + if (mAllowNulls || aElement != null) return super.set(aIndex, aElement); + return null; + } + + @Override + public boolean add(E aElement) { + if (mAllowNulls || aElement != null) return super.add(aElement); + return false; + } + + @Override + public void add(int aIndex, E aElement) { + if (mAllowNulls || aElement != null) super.add(aIndex, aElement); + } + + @Override + public boolean addAll(Collection aList) { + return super.addAll(Collections2.filter(aList, Objects::nonNull)); + } + + @Override + public boolean addAll(int aIndex, Collection aList) { + return super.addAll(aIndex, Collections2.filter(aList, Objects::nonNull)); + } +} diff --git a/src/main/java/gregtech/api/objects/GTChunkManager.java b/src/main/java/gregtech/api/objects/GTChunkManager.java new file mode 100644 index 0000000000..59bc90aa1c --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTChunkManager.java @@ -0,0 +1,204 @@ +package gregtech.api.objects; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ListMultimap; + +import gregtech.GTMod; +import gregtech.api.enums.GTValues; +import gregtech.api.interfaces.IChunkLoader; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GTLog; + +/** + * Handles re-initialization of chunks after a server restart. + */ +public class GTChunkManager + implements ForgeChunkManager.OrderedLoadingCallback, ForgeChunkManager.PlayerOrderedLoadingCallback { + + private final Map registeredTickets = new HashMap<>(); + public static GTChunkManager instance = new GTChunkManager(); + + public static void init() { + ForgeChunkManager.setForcedChunkLoadingCallback(GTMod.instance, instance); + } + + @Override + public void ticketsLoaded(List tickets, World world) {} + + /** + * Determines if tickets should be kept. Based on if the ticket is a machine or a working-chunk ticket. + * Working-chunk tickets are tossed and recreated when the machine reactivates. + * Machine tickets are kept only if the config {@code alwaysReloadChunkloaders} is true. + * Otherwise, machine chunks are tossed and recreated only when the machine reactivates, + * similarly to a Passive Anchor. + * + * @param tickets The tickets that you will want to select from. + * The list is immutable and cannot be manipulated directly. Copy it first. + * @param world The world + * @param maxTicketCount The maximum number of tickets that will be allowed. + * @return list of tickets + */ + + @Override + public List ticketsLoaded(List tickets, World world, int maxTicketCount) { + List validTickets = new ArrayList<>(); + if (GTValues.alwaysReloadChunkloaders) { + for (Ticket ticket : tickets) { + int x = ticket.getModData() + .getInteger("OwnerX"); + int y = ticket.getModData() + .getInteger("OwnerY"); + int z = ticket.getModData() + .getInteger("OwnerZ"); + if (y > 0) { + TileEntity tile = world.getTileEntity(x, y, z); + if (tile instanceof IGregTechTileEntity && ((IGregTechTileEntity) tile).isAllowedToWork()) { + ForgeChunkManager.forceChunk(ticket, new ChunkCoordIntPair(x >> 4, z >> 4)); + if (!registeredTickets.containsKey(tile)) { + registeredTickets.put(tile, ticket); + if (((IGregTechTileEntity) tile).getMetaTileEntity() instanceof IChunkLoader) + ForgeChunkManager.forceChunk( + ticket, + ((IChunkLoader) ((IGregTechTileEntity) tile).getMetaTileEntity()).getActiveChunk()); + validTickets.add(ticket); + } + } + } + } + } + return validTickets; + } + + /** + * Determines if player tickets should be kept. This is where a ticket list per-player would be created and + * maintained. When a player joins, an event occurs, their name/UUID/etc is compared against tickets on this list + * and those tickets are reactivated. + * Since that info would be maintained/dealt with on a per-player startup, the list returned back to Forge is empty. + * + * @param tickets The tickets that you will want to select from. + * The list is immutable and cannot be manipulated directly. Copy it first. + * @param world The world + * @return the list of string-ticket paris + */ + @Override + public ListMultimap playerTicketsLoaded(ListMultimap tickets, World world) { + // Not currently used, so just return an empty list. + return ArrayListMultimap.create(); + } + + /** + * Requests a chunk to be loaded for this machine. May pass a {@code null} chunk to load just the machine itself if + * {@code alwaysReloadChunkloaders} is enabled in config. + * + * @param owner owner of the TileEntity + * @param chunkXZ chunk coordinates + * @param player player + * @return if the chunk was loaded successfully + */ + public static boolean requestPlayerChunkLoad(TileEntity owner, ChunkCoordIntPair chunkXZ, String player) { + if (!GTValues.enableChunkloaders) return false; + if (!GTValues.alwaysReloadChunkloaders && chunkXZ == null) return false; + if (GTValues.debugChunkloaders && chunkXZ != null) + GTLog.out.println("GT_ChunkManager: Chunk request: (" + chunkXZ.chunkXPos + ", " + chunkXZ.chunkZPos + ")"); + if (instance.registeredTickets.containsKey(owner)) { + ForgeChunkManager.forceChunk(instance.registeredTickets.get(owner), chunkXZ); + } else { + Ticket ticket; + if (player.equals("")) ticket = ForgeChunkManager + .requestTicket(GTMod.instance, owner.getWorldObj(), ForgeChunkManager.Type.NORMAL); + else ticket = ForgeChunkManager + .requestPlayerTicket(GTMod.instance, player, owner.getWorldObj(), ForgeChunkManager.Type.NORMAL); + if (ticket == null) { + if (GTValues.debugChunkloaders) + GTLog.out.println("GT_ChunkManager: ForgeChunkManager.requestTicket failed"); + return false; + } + if (GTValues.debugChunkloaders) GTLog.out.println( + "GT_ChunkManager: ticket issued for machine at: (" + owner.xCoord + + ", " + + owner.yCoord + + ", " + + owner.zCoord + + ")"); + NBTTagCompound tag = ticket.getModData(); + tag.setInteger("OwnerX", owner.xCoord); + tag.setInteger("OwnerY", owner.yCoord); + tag.setInteger("OwnerZ", owner.zCoord); + ForgeChunkManager.forceChunk(ticket, chunkXZ); + if (GTValues.alwaysReloadChunkloaders) + ForgeChunkManager.forceChunk(ticket, new ChunkCoordIntPair(owner.xCoord >> 4, owner.zCoord >> 4)); + instance.registeredTickets.put(owner, ticket); + } + return true; + } + + @SuppressWarnings("UnusedReturnValue") + public static boolean requestChunkLoad(TileEntity owner, ChunkCoordIntPair chunkXZ) { + return requestPlayerChunkLoad(owner, chunkXZ, ""); + } + + public static void releaseChunk(TileEntity owner, ChunkCoordIntPair chunkXZ) { + if (!GTValues.enableChunkloaders) return; + Ticket ticket = instance.registeredTickets.get(owner); + if (ticket != null) { + if (GTValues.debugChunkloaders) GTLog.out + .println("GT_ChunkManager: Chunk release: (" + chunkXZ.chunkXPos + ", " + chunkXZ.chunkZPos + ")"); + ForgeChunkManager.unforceChunk(ticket, chunkXZ); + } + } + + public static void releaseTicket(TileEntity owner) { + if (!GTValues.enableChunkloaders) return; + Ticket ticket = instance.registeredTickets.get(owner); + if (ticket != null) { + if (GTValues.debugChunkloaders) { + GTLog.out.println( + "GT_ChunkManager: ticket released by machine at: (" + owner.xCoord + + ", " + + owner.yCoord + + ", " + + owner.zCoord + + ")"); + for (ChunkCoordIntPair chunk : ticket.getChunkList()) GTLog.out + .println("GT_ChunkManager: Chunk release: (" + chunk.chunkXPos + ", " + chunk.chunkZPos + ")"); + } + ForgeChunkManager.releaseTicket(ticket); + instance.registeredTickets.remove(owner); + } + } + + public static void printTickets() { + GTLog.out.println("GT_ChunkManager: Start forced chunks dump:"); + instance.registeredTickets.forEach((machine, ticket) -> { + GTLog.out.print( + "GT_ChunkManager: Chunks forced by the machine at (" + machine.xCoord + + ", " + + machine.yCoord + + ", " + + machine.zCoord + + ")"); + if (ticket.isPlayerTicket()) GTLog.out.print(" Owner: " + ticket.getPlayerName()); + GTLog.out.print(" :"); + for (ChunkCoordIntPair c : ticket.getChunkList()) { + GTLog.out.print("("); + GTLog.out.print(c.chunkXPos); + GTLog.out.print(", "); + GTLog.out.print(c.chunkZPos); + GTLog.out.print("), "); + } + }); + GTLog.out.println("GT_ChunkManager: End forced chunks dump:"); + } +} diff --git a/src/main/java/gregtech/api/objects/GTCopiedBlockTexture.java b/src/main/java/gregtech/api/objects/GTCopiedBlockTexture.java new file mode 100644 index 0000000000..79be90c3b6 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTCopiedBlockTexture.java @@ -0,0 +1,36 @@ +package gregtech.api.objects; + +import net.minecraft.block.Block; + +import gregtech.api.enums.Dyes; +import gregtech.api.interfaces.ITexture; +import gregtech.common.render.GTCopiedBlockTextureRender; + +/** + * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. + */ +@Deprecated +public class GTCopiedBlockTexture extends GTCopiedBlockTextureRender implements ITexture { + + // Backwards Compat + @Deprecated + public short[] mRGBa; + + public GTCopiedBlockTexture(Block aBlock, int ordinalSide, int aMeta, short[] aRGBa, boolean aAllowAlpha) { + super(aBlock, ordinalSide, aMeta, aRGBa, aAllowAlpha); + GTCopiedBlockTexture.this.mRGBa = aRGBa; + } + + public GTCopiedBlockTexture(Block aBlock, int ordinalSide, int aMeta, short[] aRGBa) { + this(aBlock, ordinalSide, aMeta, aRGBa, true); + } + + public GTCopiedBlockTexture(Block aBlock, int ordinalSide, int aMeta) { + this(aBlock, ordinalSide, aMeta, Dyes._NULL.mRGBa); + } + + @Override + public boolean isOldTexture() { + return true; + } +} diff --git a/src/main/java/gregtech/api/objects/GTCoverDefault.java b/src/main/java/gregtech/api/objects/GTCoverDefault.java new file mode 100644 index 0000000000..6e9664c355 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTCoverDefault.java @@ -0,0 +1,81 @@ +package gregtech.api.objects; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; + +import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.util.CoverBehavior; +import gregtech.api.util.GTUtility; + +public class GTCoverDefault extends CoverBehavior { + + /** + * This is the Dummy, if there is a generic Cover without behavior + */ + public GTCoverDefault() { + super(); + } + + @Override + public boolean isSimpleCover() { + return true; + } + + @Override + public int onCoverScrewdriverclick(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + EntityPlayer aPlayer, float aX, float aY, float aZ) { + aCoverVariable = ((aCoverVariable + 1) & 15); + GTUtility.sendChatToPlayer( + aPlayer, + ((aCoverVariable & 1) != 0 ? GTUtility.trans("128.1", "Redstone ") : "") + + ((aCoverVariable & 2) != 0 ? GTUtility.trans("129.1", "Energy ") : "") + + ((aCoverVariable & 4) != 0 ? GTUtility.trans("130.1", "Fluids ") : "") + + ((aCoverVariable & 8) != 0 ? GTUtility.trans("131.1", "Items ") : "")); + return aCoverVariable; + } + + @Override + public boolean letsRedstoneGoIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 1) != 0; + } + + @Override + public boolean letsRedstoneGoOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 1) != 0; + } + + @Override + public boolean letsEnergyIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 2) != 0; + } + + @Override + public boolean letsEnergyOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return (aCoverVariable & 2) != 0; + } + + @Override + public boolean letsFluidIn(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, + ICoverable aTileEntity) { + return (aCoverVariable & 4) != 0; + } + + @Override + public boolean letsFluidOut(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, + ICoverable aTileEntity) { + return (aCoverVariable & 4) != 0; + } + + @Override + public boolean letsItemsIn(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, + ICoverable aTileEntity) { + return (aCoverVariable & 8) != 0; + } + + @Override + public boolean letsItemsOut(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, + ICoverable aTileEntity) { + return (aCoverVariable & 8) != 0; + } +} diff --git a/src/main/java/gregtech/api/objects/GTCoverNone.java b/src/main/java/gregtech/api/objects/GTCoverNone.java new file mode 100644 index 0000000000..2c07538186 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTCoverNone.java @@ -0,0 +1,237 @@ +package gregtech.api.objects; + +import static gregtech.api.enums.GTValues.E; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; + +import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.util.CoverBehavior; +import gregtech.api.util.ISerializableObject; + +public class GTCoverNone extends CoverBehavior { + + /** + * This is the Dummy, if there is no Cover + */ + public GTCoverNone() {} + + @Override + public float getBlastProofLevel(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return 10.0F; + } + + @Override + public boolean letsRedstoneGoIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsRedstoneGoOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsEnergyIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsEnergyOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsFluidIn(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, + ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsFluidOut(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, + ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsItemsIn(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, + ICoverable aTileEntity) { + return true; + } + + @Override + public boolean letsItemsOut(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, + ICoverable aTileEntity) { + return true; + } + + @Override + public boolean isGUIClickable(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + public boolean manipulatesSidedRedstoneOutput(ForgeDirection side, int aCoverID, int aCoverVariable, + ICoverable aTileEntity) { + return false; + } + + @Override + public boolean onCoverRightclick(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + EntityPlayer aPlayer, float aX, float aY, float aZ) { + return false; + } + + @Override + public boolean onCoverRemoval(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + boolean aForced) { + return true; + } + + @Override + public int doCoverThings(ForgeDirection side, byte aInputRedstone, int aCoverID, int aCoverVariable, + ICoverable aTileEntity, long aTimer) { + return 0; + } + + @Override + public boolean isSimpleCover() { + return true; + } + + @Override + protected boolean isRedstoneSensitiveImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, long aTimer) { + return false; + } + + @Override + protected ISerializableObject.LegacyCoverData doCoverThingsImpl(ForgeDirection side, byte aInputRedstone, + int aCoverID, ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, long aTimer) { + return aCoverVariable; + } + + @Override + protected boolean onCoverRightClickImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, + float aY, float aZ) { + return false; + } + + @Override + protected ISerializableObject.LegacyCoverData onCoverScrewdriverClickImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, + float aY, float aZ) { + return aCoverVariable; + } + + @Override + protected boolean onCoverShiftRightClickImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer) { + return false; + } + + @Override + protected boolean onCoverRemovalImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, boolean aForced) { + return true; + } + + @Override + protected String getDescriptionImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return E; + } + + @Override + protected float getBlastProofLevelImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return 10.0F; + } + + @Override + protected boolean letsRedstoneGoInImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsRedstoneGoOutImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsEnergyInImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsEnergyOutImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsFluidInImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsFluidOutImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsItemsInImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean letsItemsOutImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, int aSlot, ICoverable aTileEntity) { + return true; + } + + @Override + protected boolean manipulatesSidedRedstoneOutputImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return false; + } + + @Override + protected boolean alwaysLookConnectedImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return false; + } + + @Override + protected byte getRedstoneInputImpl(ForgeDirection side, byte aInputRedstone, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return aInputRedstone; + } + + @Override + protected int getTickRateImpl(ForgeDirection side, int aCoverID, ISerializableObject.LegacyCoverData aCoverVariable, + ICoverable aTileEntity) { + return 0; + } + + @Override + protected byte getLensColorImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return -1; + } + + @Override + protected ItemStack getDropImpl(ForgeDirection side, int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { + return null; + } +} diff --git a/src/main/java/gregtech/api/objects/GTFluid.java b/src/main/java/gregtech/api/objects/GTFluid.java new file mode 100644 index 0000000000..9ffeac5b8f --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTFluid.java @@ -0,0 +1,36 @@ +package gregtech.api.objects; + +import static gregtech.api.enums.Mods.GregTech; + +import net.minecraftforge.fluids.Fluid; + +import gregtech.api.GregTechAPI; +import gregtech.api.fluid.GTFluidFactory; + +/** + * @deprecated use {@link GTFluidFactory#builder} + */ +@Deprecated +public class GTFluid extends Fluid implements Runnable { + + public final String mTextureName; + private final short[] mRGBa; + + public GTFluid(String aName, String aTextureName, short[] aRGBa) { + super(aName); + mRGBa = aRGBa; + mTextureName = aTextureName; + GregTechAPI.sGTBlockIconload.add(this); + } + + @Override + public int getColor() { + return (Math.max(0, Math.min(255, mRGBa[0])) << 16) | (Math.max(0, Math.min(255, mRGBa[1])) << 8) + | Math.max(0, Math.min(255, mRGBa[2])); + } + + @Override + public void run() { + setIcons(GregTechAPI.sBlockIcons.registerIcon(GregTech.getResourcePath("fluids", "fluid." + mTextureName))); + } +} diff --git a/src/main/java/gregtech/api/objects/GTHashSet.java b/src/main/java/gregtech/api/objects/GTHashSet.java new file mode 100644 index 0000000000..df012c05f7 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTHashSet.java @@ -0,0 +1,91 @@ +package gregtech.api.objects; + +import java.util.AbstractSet; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; + +import net.minecraft.item.ItemStack; + +import gregtech.api.GregTechAPI; +import gregtech.api.util.GTUtility; + +public class GTHashSet extends AbstractSet { + + private static final Object OBJECT = new Object(); + private final transient HashMap map; + + public GTHashSet() { + map = new HashMap<>(); + GregTechAPI.sItemStackMappings.add(map); + } + + public GTHashSet(Collection c) { + map = new HashMap<>(Math.max((int) (c.size() / .75f) + 1, 16)); + addAll(c); + GregTechAPI.sItemStackMappings.add(map); + } + + public GTHashSet(int initialCapacity, float loadFactor) { + map = new HashMap<>(initialCapacity, loadFactor); + GregTechAPI.sItemStackMappings.add(map); + } + + public GTHashSet(int initialCapacity) { + map = new HashMap<>(initialCapacity); + GregTechAPI.sItemStackMappings.add(map); + } + + GTHashSet(int initialCapacity, float loadFactor, boolean dummy) { + map = new LinkedHashMap<>(initialCapacity, loadFactor); + GregTechAPI.sItemStackMappings.add(map); + } + + public Map getMap() { + return map; + } + + @SuppressWarnings("unchecked") // The downcasting below will throw ClassCastException unless E is GT_ItemStack. + @Override + public Iterator iterator() { + return (Iterator) map.keySet() + .iterator(); + } + + @Override + public int size() { + return map.size(); + } + + @Override + public boolean isEmpty() { + return map.isEmpty(); + } + + @Override + public boolean contains(Object o) { + return map.containsKey(o); + } + + public boolean add(ItemStack aStack) { + if (GTUtility.isStackInvalid(aStack)) return false; + return map.put(new GTItemStack(aStack), OBJECT) == null; + } + + @Override + public boolean add(E e) { + return map.put(e, OBJECT) == null; + } + + @Override + public boolean remove(Object o) { + return map.remove(o) == OBJECT; + } + + @Override + public void clear() { + map.clear(); + } +} diff --git a/src/main/java/gregtech/api/objects/GTItemStack.java b/src/main/java/gregtech/api/objects/GTItemStack.java new file mode 100644 index 0000000000..3ddfcd706a --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTItemStack.java @@ -0,0 +1,107 @@ +package gregtech.api.objects; + +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GTValues; +import gregtech.api.util.GTUtility; +import gregtech.api.util.item.ItemHolder; +import it.unimi.dsi.fastutil.Hash; + +/** + * An optimization of {@link ItemStack} to have a better {@code hashcode} and {@code equals} in order to improve + * {@code HashMap} and {@code Set} performance + */ +public class GTItemStack extends ItemHolder { + + /** + * A better {@link Hash.Strategy} for {@link ItemStack}. Implementation originally from {@code GT_ItemStack2}. + */ + public static final Hash.Strategy ITEMSTACK_HASH_STRATEGY2 = new Hash.Strategy<>() { + + @Override + public int hashCode(ItemStack o) { + return o.getItem() + .hashCode() * 38197 + Items.feather.getDamage(o); + } + + @Override + public boolean equals(ItemStack a, ItemStack b) { + if (a == b) return true; + if (a == null || b == null) return false; + return a.getItem() == b.getItem() && Items.feather.getDamage(a) == Items.feather.getDamage(b); + } + }; + + public final Item mItem; + public final byte mStackSize; + public final short mMetaData; + + public GTItemStack(Item aItem, long aStackSize, long aMetaData) { + super(new ItemStack(aItem, 1, (int) aMetaData)); + mItem = aItem; + mStackSize = (byte) aStackSize; + mMetaData = (short) aMetaData; + } + + public GTItemStack(ItemStack aStack) { + this(aStack, false); + } + + public GTItemStack(ItemStack aStack, boolean wildcard) { + this( + aStack == null ? null : aStack.getItem(), + aStack == null ? 0 : aStack.stackSize, + aStack == null ? 0 : wildcard ? GTValues.W : Items.feather.getDamage(aStack)); + } + + public GTItemStack(int aHashCode) { + this(GTUtility.intToStack(aHashCode)); + } + + public final ItemStack toStack() { + if (mItem == null) return null; + return new ItemStack(mItem, 1, mMetaData); + } + + public final boolean isStackEqual(ItemStack aStack) { + return GTUtility.areStacksEqual(toStack(), aStack); + } + + public final boolean isStackEqual(GTItemStack aStack) { + return GTUtility.areStacksEqual(toStack(), aStack.toStack()); + } + + @Override + public boolean equals(Object aStack) { + if (aStack == this) return true; + if (aStack instanceof GTItemStack) { + return ((GTItemStack) aStack).mItem == mItem && ((GTItemStack) aStack).mMetaData == mMetaData; + } + return false; + } + + @Override + public int hashCode() { + return GTUtility.stackToInt(toStack()); + } + + /** + * @see #internalCopyStack(ItemStack, boolean) + */ + public static ItemStack internalCopyStack(ItemStack aStack) { + return internalCopyStack(aStack, false); + } + + /** + * Replicates the copy behavior of {@link #toStack()} but for normal {@link ItemStack}s. + * + * @param aStack the stack to copy + * @param wildcard whether to use wildcard damage value + * @return a copy of the stack with stack size 1 and no NBT + */ + public static ItemStack internalCopyStack(ItemStack aStack, boolean wildcard) { + return new ItemStack(aStack.getItem(), 1, wildcard ? GTValues.W : Items.feather.getDamage(aStack)); + } +} diff --git a/src/main/java/gregtech/api/objects/GTItemStack2.java b/src/main/java/gregtech/api/objects/GTItemStack2.java new file mode 100644 index 0000000000..798915d848 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTItemStack2.java @@ -0,0 +1,41 @@ +package gregtech.api.objects; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +/** + * GT_ItemStack, but with a better hashCode(). Due to this change, it should not be placed in the same hash based data + * structure with GT_ItemStack. It also shouldn't be used to construct search query into a hash based data structure + * that contains GT_ItemStack. + * + * @deprecated See {@link GTItemStack#ITEMSTACK_HASH_STRATEGY2} + */ +@Deprecated +public class GTItemStack2 extends GTItemStack { + + public GTItemStack2(Item aItem, long aStackSize, long aMetaData) { + super(aItem, aStackSize, aMetaData); + } + + public GTItemStack2(ItemStack aStack) { + super(aStack); + } + + public GTItemStack2(ItemStack aStack, boolean wildcard) { + super(aStack, wildcard); + } + + @Override + public boolean equals(Object aStack) { + if (aStack == this) return true; + if (aStack instanceof GTItemStack) { + return ((GTItemStack) aStack).mItem == mItem && ((GTItemStack) aStack).mMetaData == mMetaData; + } + return false; + } + + @Override + public int hashCode() { + return mItem.hashCode() * 38197 + mMetaData; + } +} diff --git a/src/main/java/gregtech/api/objects/GTMultiTexture.java b/src/main/java/gregtech/api/objects/GTMultiTexture.java new file mode 100644 index 0000000000..ecd2f55661 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTMultiTexture.java @@ -0,0 +1,27 @@ +package gregtech.api.objects; + +import gregtech.api.interfaces.ITexture; +import gregtech.common.render.GTMultiTextureRender; + +/** + *

+ * Lets Multiple ITextures Render overlay over each other.< + *

+ *

+ * I should have done this much earlier... + *

+ * + * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. + */ +@Deprecated +public class GTMultiTexture extends GTMultiTextureRender implements ITexture { + + public GTMultiTexture(ITexture... aTextures) { + super(aTextures); + } + + @Override + public boolean isOldTexture() { + return true; + } +} diff --git a/src/main/java/gregtech/api/objects/GTRenderedTexture.java b/src/main/java/gregtech/api/objects/GTRenderedTexture.java new file mode 100644 index 0000000000..a4d0a064ff --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTRenderedTexture.java @@ -0,0 +1,33 @@ +package gregtech.api.objects; + +import gregtech.api.enums.Dyes; +import gregtech.api.interfaces.IColorModulationContainer; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; + +@Deprecated +public class GTRenderedTexture extends gregtech.common.render.GTRenderedTexture + implements ITexture, IColorModulationContainer { + + @Deprecated + public short[] mRGBa; + + public GTRenderedTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { + super(aIcon, aRGBa, aAllowAlpha, false, true, false); + if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); + mRGBa = aRGBa; + } + + public GTRenderedTexture(IIconContainer aIcon, short[] aRGBa) { + this(aIcon, aRGBa, true); + } + + public GTRenderedTexture(IIconContainer aIcon) { + this(aIcon, Dyes._NULL.mRGBa); + } + + @Override + public boolean isOldTexture() { + return true; + } +} diff --git a/src/main/java/gregtech/api/objects/GTSidedTexture.java b/src/main/java/gregtech/api/objects/GTSidedTexture.java new file mode 100644 index 0000000000..d7b2291386 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTSidedTexture.java @@ -0,0 +1,48 @@ +package gregtech.api.objects; + +import gregtech.api.enums.Dyes; +import gregtech.api.interfaces.IColorModulationContainer; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.common.render.GTSidedTextureRender; + +/** + * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. + */ +@Deprecated +public class GTSidedTexture extends GTSidedTextureRender implements ITexture, IColorModulationContainer { + + @Deprecated + public short[] mRGBa; + + public GTSidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, + IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa, boolean aAllowAlpha) { + super(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, aRGBa, aAllowAlpha); + + // Backwards Compat + GTSidedTexture.this.mRGBa = aRGBa; + } + + public GTSidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, + IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa) { + this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, aRGBa, true); + } + + public GTSidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, + IIconContainer aIcon4, IIconContainer aIcon5) { + this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, Dyes._NULL.mRGBa); + } + + public GTSidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides, short[] aRGBa) { + this(aBottom, aTop, aSides, aSides, aSides, aSides, aRGBa); + } + + public GTSidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides) { + this(aBottom, aTop, aSides, Dyes._NULL.mRGBa); + } + + @Override + public boolean isOldTexture() { + return true; + } +} diff --git a/src/main/java/gregtech/api/objects/GTStdRenderedTexture.java b/src/main/java/gregtech/api/objects/GTStdRenderedTexture.java new file mode 100644 index 0000000000..11a3a4818f --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTStdRenderedTexture.java @@ -0,0 +1,46 @@ +package gregtech.api.objects; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraftforge.common.util.ForgeDirection; + +import gregtech.api.enums.Dyes; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.util.LightingHelper; + +/** + * This ITexture implementation extends the GT_RenderedTexture class to render with bottom side flipped as with dumb + * blocks rendering. It is used in Ore blocks rendering so they better blends with dumb block ores from vanilla or other + * mods, when seen from bottom. + * + * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. + */ +@Deprecated +public class GTStdRenderedTexture extends GTRenderedTexture { + + @SuppressWarnings("unused") + public GTStdRenderedTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { + super(aIcon, aRGBa, aAllowAlpha); + } + + public GTStdRenderedTexture(IIconContainer aIcon, short[] aRGBa) { + super(aIcon, aRGBa, true); + } + + @SuppressWarnings("unused") + public GTStdRenderedTexture(IIconContainer aIcon) { + super(aIcon, Dyes._NULL.mRGBa); + } + + @Override + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + LightingHelper lighting = new LightingHelper(aRenderer); + lighting.setupLightingYNeg(aBlock, aX, aY, aZ) + .setupColor(ForgeDirection.DOWN, mRGBa); + aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + lighting.setupColor(ForgeDirection.DOWN, 0xffffff); + aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + } +} diff --git a/src/main/java/gregtech/api/objects/GTUODimension.java b/src/main/java/gregtech/api/objects/GTUODimension.java new file mode 100644 index 0000000000..2fe10196bd --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTUODimension.java @@ -0,0 +1,54 @@ +package gregtech.api.objects; + +import java.util.Random; + +import net.minecraftforge.common.config.ConfigCategory; + +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; + +public class GTUODimension { + + private final BiMap fFluids; + private int maxChance; + public String Dimension = "null"; + + public GTUODimension(ConfigCategory aConfigCategory) { // TODO CONFIGURE + fFluids = HashBiMap.create(); + if (aConfigCategory.containsKey("Dimension")) { + aConfigCategory.get("Dimension").comment = "Dimension ID or Class Name"; + Dimension = aConfigCategory.get("Dimension") + .getString(); + } + maxChance = 0; + // GT_FML_LOGGER.info("GT UO "+aConfigCategory.getName()+" Dimension:"+Dimension); + for (int i = 0; i < aConfigCategory.getChildren() + .size(); i++) { + GTUOFluid fluid = new GTUOFluid( + (ConfigCategory) aConfigCategory.getChildren() + .toArray()[i]); + fFluids.put(fluid.Registry, fluid); + maxChance += fluid.Chance; + } + } + + public GTUOFluid getRandomFluid(Random aRandom) { + int random = aRandom.nextInt(1000); + for (BiMap.Entry fl : fFluids.entrySet()) { + int chance = fl.getValue().Chance * 1000 / maxChance; + if (random <= chance) return fl.getValue(); + // GT_FML_LOGGER.info("GT UO "+fl.getValue().Registry+" Chance:"+chance+" Random:"+random); + random -= chance; + } + return null; + } + + public String getUOFluidKey(GTUOFluid uoFluid) { + return fFluids.inverse() + .get(uoFluid); + } + + public GTUOFluid getUOFluid(String key) { + return fFluids.get(key); + } +} diff --git a/src/main/java/gregtech/api/objects/GTUODimensionList.java b/src/main/java/gregtech/api/objects/GTUODimensionList.java new file mode 100644 index 0000000000..60d11fdaa7 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTUODimensionList.java @@ -0,0 +1,648 @@ +package gregtech.api.objects; + +import static gregtech.api.enums.Dimensions.AlphaCentauriBb; +import static gregtech.api.enums.Dimensions.BarnardaC; +import static gregtech.api.enums.Dimensions.BarnardaE; +import static gregtech.api.enums.Dimensions.BarnardaF; +import static gregtech.api.enums.Dimensions.Callisto; +import static gregtech.api.enums.Dimensions.Europa; +import static gregtech.api.enums.Dimensions.Io; +import static gregtech.api.enums.Dimensions.Makemake; +import static gregtech.api.enums.Dimensions.Mars; +import static gregtech.api.enums.Dimensions.Mercury; +import static gregtech.api.enums.Dimensions.Miranda; +import static gregtech.api.enums.Dimensions.Moon; +import static gregtech.api.enums.Dimensions.Oberon; +import static gregtech.api.enums.Dimensions.Overworld; +import static gregtech.api.enums.Dimensions.Pluto; +import static gregtech.api.enums.Dimensions.Proteus; +import static gregtech.api.enums.Dimensions.Ross128b; +import static gregtech.api.enums.Dimensions.Ross128ba; +import static gregtech.api.enums.Dimensions.TCetiE; +import static gregtech.api.enums.Dimensions.Titan; +import static gregtech.api.enums.Dimensions.Triton; +import static gregtech.api.enums.Dimensions.Venus; +import static gregtech.api.enums.UndergroundFluidNames.carbonDioxide; +import static gregtech.api.enums.UndergroundFluidNames.carbonMonoxide; +import static gregtech.api.enums.UndergroundFluidNames.chlorobenzene; +import static gregtech.api.enums.UndergroundFluidNames.deuterium; +import static gregtech.api.enums.UndergroundFluidNames.distilledWater; +import static gregtech.api.enums.UndergroundFluidNames.ethane; +import static gregtech.api.enums.UndergroundFluidNames.ethylene; +import static gregtech.api.enums.UndergroundFluidNames.fluorine; +import static gregtech.api.enums.UndergroundFluidNames.heavyOil; +import static gregtech.api.enums.UndergroundFluidNames.helium3; +import static gregtech.api.enums.UndergroundFluidNames.hydrofluoricAcid; +import static gregtech.api.enums.UndergroundFluidNames.hydrogen; +import static gregtech.api.enums.UndergroundFluidNames.hydrogenSulfide; +import static gregtech.api.enums.UndergroundFluidNames.lava; +import static gregtech.api.enums.UndergroundFluidNames.lightOil; +import static gregtech.api.enums.UndergroundFluidNames.liquidAir; +import static gregtech.api.enums.UndergroundFluidNames.mediumOil; +import static gregtech.api.enums.UndergroundFluidNames.methane; +import static gregtech.api.enums.UndergroundFluidNames.moltenCopper; +import static gregtech.api.enums.UndergroundFluidNames.moltenIron; +import static gregtech.api.enums.UndergroundFluidNames.moltenLead; +import static gregtech.api.enums.UndergroundFluidNames.moltenTin; +import static gregtech.api.enums.UndergroundFluidNames.naturalGas; +import static gregtech.api.enums.UndergroundFluidNames.nitrogen; +import static gregtech.api.enums.UndergroundFluidNames.oil; +import static gregtech.api.enums.UndergroundFluidNames.oxygen; +import static gregtech.api.enums.UndergroundFluidNames.saltWater; +import static gregtech.api.enums.UndergroundFluidNames.sulfuricAcid; +import static gregtech.api.enums.UndergroundFluidNames.unknownWater; +import static gregtech.api.enums.UndergroundFluidNames.veryHeavyOil; + +import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.common.config.Configuration; + +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; + +import gregtech.api.enums.Dimensions; +import gregtech.api.enums.UndergroundFluidNames; + +public class GTUODimensionList { + + private Configuration fConfig; + private String fCategory; + private final BiMap fDimensionList; + + public int[] blackList = new int[0]; + + public GTUODimensionList() { + fDimensionList = HashBiMap.create(); + } + + public void save() { + fConfig.save(); + } + + public GTUODimension GetDimension(int aDimension) { + if (CheckBlackList(aDimension)) return null; + if (fDimensionList.containsKey(Integer.toString(aDimension))) + return fDimensionList.get(Integer.toString(aDimension)); + for (BiMap.Entry dl : fDimensionList.entrySet()) + if (DimensionManager.getProvider(aDimension) + .getClass() + .getName() + .contains(dl.getValue().Dimension)) return dl.getValue(); + return fDimensionList.get("Default"); + } + + private boolean CheckBlackList(int aDimensionId) { + try { + return java.util.Arrays.binarySearch(blackList, aDimensionId) >= 0; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + public void SetConfigValues(String aDimensionName, String aDimension, String aName, String aRegistry, + int aMinAmount, int aMaxAmount, int aChance, int aDecreasePerOperationAmount) { + String Category = fCategory + "." + aDimensionName; + fConfig.get(Category, "Dimension", aDimension) + .getString(); + Category += "." + aName; + fConfig.get(Category, "Registry", aRegistry) + .getString(); + fConfig.get(Category, "MinAmount", aMinAmount) + .getInt(aMinAmount); + fConfig.get(Category, "MaxAmount", aMaxAmount) + .getInt(aMaxAmount); + fConfig.get(Category, "Chance", aChance) + .getInt(aChance); + fConfig.get(Category, "DecreasePerOperationAmount", aDecreasePerOperationAmount) + .getInt(aDecreasePerOperationAmount); + // IT IS IN BUCKETS!!! + } + + private void setOverworldValues() { + new ConfigSetter().dimension(Overworld) + .fluid(naturalGas) + .chance(20) + .decreaseAmount(5) + .maxAmount(350) + .minAmount(10) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(lightOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(350) + .minAmount(10) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(mediumOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(heavyOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Overworld) + .fluid(oil) + .chance(20) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + } + + private void setMoonValues() { + new ConfigSetter().dimension(Moon) + .fluid(helium3) + .chance(100) + .decreaseAmount(5) + .maxAmount(425) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Moon) + .fluid(saltWater) + .chance(20) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + } + + private void setMercuryValues() { + new ConfigSetter().dimension(Mercury) + .fluid(helium3) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Mercury) + .fluid(moltenIron) + .chance(30) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setVenusValues() { + new ConfigSetter().dimension(Venus) + .fluid(moltenLead) + .chance(100) + .decreaseAmount(5) + .maxAmount(1600) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Venus) + .fluid(sulfuricAcid) + .chance(100) + .decreaseAmount(5) + .maxAmount(250) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Venus) + .fluid(carbonDioxide) + .chance(100) + .decreaseAmount(5) + .maxAmount(1500) + .minAmount(0) + .writeToConfig(); + } + + private void setMarsValues() { + new ConfigSetter().dimension(Mars) + .fluid(saltWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Mars) + .fluid(chlorobenzene) + .chance(100) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setIoValues() { + new ConfigSetter().dimension(Io) + .fluid(moltenLead) + .chance(20) + .decreaseAmount(5) + .maxAmount(650) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Io) + .fluid(sulfuricAcid) + .chance(80) + .decreaseAmount(5) + .maxAmount(350) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Io) + .fluid(carbonDioxide) + .chance(80) + .decreaseAmount(5) + .maxAmount(750) + .minAmount(0) + .writeToConfig(); + } + + private void setEuropaValues() { + new ConfigSetter().dimension(Europa) + .fluid(saltWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Europa) + .fluid(veryHeavyOil) + .chance(20) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Europa) + .fluid(distilledWater) + .chance(80) + .decreaseAmount(5) + .maxAmount(3500) + .minAmount(0) + .writeToConfig(); + } + + private void setCallistoValues() { + new ConfigSetter().dimension(Callisto) + .fluid(oxygen) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Callisto) + .fluid(liquidAir) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + } + + private void setTitanValues() { + new ConfigSetter().dimension(Titan) + .fluid(methane) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Titan) + .fluid(ethane) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + } + + private void setMirandaValues() { + new ConfigSetter().dimension(Miranda) + .fluid(hydrogenSulfide) + .chance(100) + .decreaseAmount(5) + .maxAmount(900) + .minAmount(0) + .writeToConfig(); + } + + private void setOberonValues() { + new ConfigSetter().dimension(Oberon) + .fluid(carbonMonoxide) + .chance(100) + .decreaseAmount(5) + .maxAmount(2000) + .minAmount(0) + .writeToConfig(); + } + + private void setTritonValues() { + new ConfigSetter().dimension(Triton) + .fluid(nitrogen) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Triton) + .fluid(ethylene) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + } + + private void setProteusValues() { + new ConfigSetter().dimension(Proteus) + .fluid(deuterium) + .chance(100) + .decreaseAmount(5) + .maxAmount(700) + .minAmount(0) + .writeToConfig(); + } + + private void setPlutoValues() { + new ConfigSetter().dimension(Pluto) + .fluid(nitrogen) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Pluto) + .fluid(oxygen) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Pluto) + .fluid(liquidAir) + .chance(40) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(4) + .writeToConfig(); + + new ConfigSetter().dimension(Pluto) + .fluid(fluorine) + .chance(80) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(4) + .writeToConfig(); + } + + private void setMakeMakeValues() { + new ConfigSetter().dimension(Makemake) + .fluid(hydrofluoricAcid) + .chance(80) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(0) + .writeToConfig(); + } + + private void setAlphaCentauriBBValues() { + new ConfigSetter().dimension(AlphaCentauriBb) + .fluid(moltenCopper) + .chance(10) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(0) + .writeToConfig(); + } + + private void setBarnardaCValues() { + new ConfigSetter().dimension(BarnardaC) + .fluid(veryHeavyOil) + .chance(100) + .decreaseAmount(5) + .maxAmount(800) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(BarnardaC) + .fluid(unknownWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(300) + .minAmount(0) + .writeToConfig(); + } + + private void setBarnardaEValues() { + new ConfigSetter().dimension(BarnardaE) + .fluid(liquidAir) + .chance(20) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setBarnardaFValues() { + new ConfigSetter().dimension(BarnardaF) + .fluid(moltenTin) + .chance(15) + .decreaseAmount(5) + .maxAmount(400) + .minAmount(0) + .writeToConfig(); + } + + private void setTcetiEValues() { + new ConfigSetter().dimension(TCetiE) + .fluid(veryHeavyOil) + .chance(100) + .decreaseAmount(5) + .maxAmount(200) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(TCetiE) + .fluid(hydrogen) + .chance(50) + .decreaseAmount(5) + .maxAmount(700) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(TCetiE) + .fluid(distilledWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(10_000) + .minAmount(0) + .writeToConfig(); + } + + private void setRoss128bValues() { + new ConfigSetter().dimension(Ross128b) + .fluid(veryHeavyOil) + .chance(40) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128b) + .fluid(lava) + .chance(5) + .decreaseAmount(5) + .maxAmount(820) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128b) + .fluid(naturalGas) + .chance(65) + .decreaseAmount(5) + .maxAmount(625) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128b) + .fluid(distilledWater) + .chance(100) + .decreaseAmount(5) + .maxAmount(5000) + .minAmount(0) + .writeToConfig(); + } + + private void setRoss128baValues() { + new ConfigSetter().dimension(Ross128ba) + .fluid(saltWater) + .chance(40) + .decreaseAmount(5) + .maxAmount(1250) + .minAmount(0) + .writeToConfig(); + + new ConfigSetter().dimension(Ross128ba) + .fluid(helium3) + .chance(60) + .decreaseAmount(5) + .maxAmount(1250) + .minAmount(0) + .writeToConfig(); + } + + public void setDefaultValues() { + setOverworldValues(); + setMoonValues(); + setMercuryValues(); + setVenusValues(); + setMarsValues(); + setIoValues(); + setEuropaValues(); + setCallistoValues(); + setTitanValues(); + setMirandaValues(); + setOberonValues(); + setTritonValues(); + setProteusValues(); + setPlutoValues(); + setMakeMakeValues(); + setAlphaCentauriBBValues(); + setBarnardaCValues(); + setBarnardaEValues(); + setBarnardaFValues(); + setTcetiEValues(); + setRoss128bValues(); + setRoss128baValues(); + } + + public void getConfig(Configuration aConfig, String aCategory) { + fCategory = aCategory; + fConfig = aConfig; + if (!fConfig.hasCategory(fCategory)) setDefaultValues(); + + blackList = new int[] { -1, 1 }; + blackList = aConfig.get(fCategory, "DimBlackList", blackList, "Dimension IDs Black List") + .getIntList(); + java.util.Arrays.sort(blackList); + + for (int i = 0; i < fConfig.getCategory(fCategory) + .getChildren() + .size(); i++) { + GTUODimension Dimension = new GTUODimension( + (ConfigCategory) fConfig.getCategory(fCategory) + .getChildren() + .toArray()[i]); + fDimensionList.put(Dimension.Dimension, Dimension); + } + save(); + } + + public class ConfigSetter { + + private int chance; + private int decreaseAmount; + private int maxAmount; + private int minAmount; + private UndergroundFluidNames fluid; + private Dimensions dim; + + public ConfigSetter chance(int chance) { + this.chance = chance; + return this; + } + + public ConfigSetter decreaseAmount(int decreaseAmount) { + this.decreaseAmount = decreaseAmount; + return this; + } + + public ConfigSetter maxAmount(int maxAmount) { + this.maxAmount = maxAmount; + return this; + } + + public ConfigSetter minAmount(int minAmount) { + this.minAmount = minAmount; + return this; + } + + public ConfigSetter fluid(UndergroundFluidNames fluid) { + this.fluid = fluid; + return this; + } + + public ConfigSetter dimension(Dimensions dim) { + this.dim = dim; + return this; + } + + public void writeToConfig() { + SetConfigValues( + dim.toString(), + dim.id, + fluid.toString(), + fluid.name, + minAmount, + maxAmount, + chance, + decreaseAmount); + } + } +} diff --git a/src/main/java/gregtech/api/objects/GTUOFluid.java b/src/main/java/gregtech/api/objects/GTUOFluid.java new file mode 100644 index 0000000000..cd019dbc8e --- /dev/null +++ b/src/main/java/gregtech/api/objects/GTUOFluid.java @@ -0,0 +1,69 @@ +package gregtech.api.objects; + +import static gregtech.common.UndergroundOil.DIVIDER; + +import java.util.Random; + +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; + +public class GTUOFluid { + + public String Registry = "null"; + public int MaxAmount = 0; + public int MinAmount = 0; + public int Chance = 0; + public int DecreasePerOperationAmount = 5; + + public GTUOFluid(ConfigCategory aConfigCategory) { // TODO CONFIGURE + if (aConfigCategory.containsKey("Registry")) { + aConfigCategory.get("Registry").comment = "Fluid registry name"; + Registry = aConfigCategory.get("Registry") + .getString(); + } + if (aConfigCategory.containsKey("MaxAmount")) { + aConfigCategory + .get("MaxAmount").comment = "Max amount generation (per operation, sets the VeinData) 80000 MAX"; + MaxAmount = aConfigCategory.get("MaxAmount") + .getInt(0); + } + if (aConfigCategory.containsKey("MinAmount")) { + aConfigCategory.get("MinAmount").comment = "Min amount generation (per operation, sets the VeinData) 0 MIN"; + MinAmount = aConfigCategory.get("MinAmount") + .getInt(0); + } + if (aConfigCategory.containsKey("Chance")) { + aConfigCategory + .get("Chance").comment = "Chance generating (weighted chance!, there will be a fluid in chunk always!)"; + Chance = aConfigCategory.get("Chance") + .getInt(0); + } + if (aConfigCategory.containsKey("DecreasePerOperationAmount")) { + aConfigCategory.get( + "DecreasePerOperationAmount").comment = "Decrease per operation (actual fluid gained works like (Litre)VeinData/5000)"; + DecreasePerOperationAmount = aConfigCategory.get("DecreasePerOperationAmount") + .getInt(5); + } + // GT_FML_LOGGER.info("GT UO "+aConfigCategory.getName()+" Fluid:"+Registry+" Max:"+MaxAmount+" + // Min:"+MinAmount+" Chance:"+Chance); + } + + public Fluid getFluid() { + try { + return FluidRegistry.getFluid(this.Registry); + } catch (Exception e) { + return null; + } + } + + public int getRandomAmount(Random aRandom) { // generates some random ass number that correlates to extraction + // speeds + int smax = (int) Math.floor(Math.pow(MaxAmount * 100.d * DIVIDER, 0.2d)); // use scaled max and min values for + // the randomness to make high values + // more rare. + double smin = Math.pow(MinAmount * 100.d * DIVIDER, 0.2d); + double samount = Math.max(smin, aRandom.nextInt(smax) + aRandom.nextDouble()); + return (int) (Math.pow(samount, 5) / 100); // reverses the computation above + } +} diff --git a/src/main/java/gregtech/api/objects/GT_ArrayList.java b/src/main/java/gregtech/api/objects/GT_ArrayList.java deleted file mode 100644 index 9124ef8616..0000000000 --- a/src/main/java/gregtech/api/objects/GT_ArrayList.java +++ /dev/null @@ -1,73 +0,0 @@ -package gregtech.api.objects; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Objects; - -import com.google.common.collect.Collections2; - -public class GT_ArrayList extends ArrayList { - - private static final long serialVersionUID = 1L; - private int size_sS; - - private final boolean mAllowNulls; - - public GT_ArrayList(boolean aAllowNulls, int aCapacity) { - super(aCapacity); - mAllowNulls = aAllowNulls; - } - - @SafeVarargs - public GT_ArrayList(boolean aAllowNulls, E... aArray) { - super(Arrays.asList(aArray)); - mAllowNulls = aAllowNulls; - if (!mAllowNulls) { - size_sS = size(); - for (int i = 0; i < size_sS; i++) if (get(i) == null) { - remove(i--); - size_sS = size(); - } - } - } - - public GT_ArrayList(boolean aAllowNulls, Collection aList) { - super(aList); - mAllowNulls = aAllowNulls; - if (!mAllowNulls) { - size_sS = size(); - for (int i = 0; i < size_sS; i++) if (get(i) == null) { - remove(i--); - size_sS = size(); - } - } - } - - @Override - public E set(int aIndex, E aElement) { - if (mAllowNulls || aElement != null) return super.set(aIndex, aElement); - return null; - } - - @Override - public boolean add(E aElement) { - if (mAllowNulls || aElement != null) return super.add(aElement); - return false; - } - - @Override - public void add(int aIndex, E aElement) { - if (mAllowNulls || aElement != null) super.add(aIndex, aElement); - } - - @Override - public boolean addAll(Collection aList) { - return super.addAll(Collections2.filter(aList, Objects::nonNull)); - } - - @Override - public boolean addAll(int aIndex, Collection aList) { - return super.addAll(aIndex, Collections2.filter(aList, Objects::nonNull)); - } -} diff --git a/src/main/java/gregtech/api/objects/GT_ChunkManager.java b/src/main/java/gregtech/api/objects/GT_ChunkManager.java deleted file mode 100644 index 14baaddd3d..0000000000 --- a/src/main/java/gregtech/api/objects/GT_ChunkManager.java +++ /dev/null @@ -1,204 +0,0 @@ -package gregtech.api.objects; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; - -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.ListMultimap; - -import gregtech.GT_Mod; -import gregtech.api.enums.GT_Values; -import gregtech.api.interfaces.IChunkLoader; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.util.GT_Log; - -/** - * Handles re-initialization of chunks after a server restart. - */ -public class GT_ChunkManager - implements ForgeChunkManager.OrderedLoadingCallback, ForgeChunkManager.PlayerOrderedLoadingCallback { - - private final Map registeredTickets = new HashMap<>(); - public static GT_ChunkManager instance = new GT_ChunkManager(); - - public static void init() { - ForgeChunkManager.setForcedChunkLoadingCallback(GT_Mod.instance, instance); - } - - @Override - public void ticketsLoaded(List tickets, World world) {} - - /** - * Determines if tickets should be kept. Based on if the ticket is a machine or a working-chunk ticket. - * Working-chunk tickets are tossed and recreated when the machine reactivates. - * Machine tickets are kept only if the config {@code alwaysReloadChunkloaders} is true. - * Otherwise, machine chunks are tossed and recreated only when the machine reactivates, - * similarly to a Passive Anchor. - * - * @param tickets The tickets that you will want to select from. - * The list is immutable and cannot be manipulated directly. Copy it first. - * @param world The world - * @param maxTicketCount The maximum number of tickets that will be allowed. - * @return list of tickets - */ - - @Override - public List ticketsLoaded(List tickets, World world, int maxTicketCount) { - List validTickets = new ArrayList<>(); - if (GT_Values.alwaysReloadChunkloaders) { - for (Ticket ticket : tickets) { - int x = ticket.getModData() - .getInteger("OwnerX"); - int y = ticket.getModData() - .getInteger("OwnerY"); - int z = ticket.getModData() - .getInteger("OwnerZ"); - if (y > 0) { - TileEntity tile = world.getTileEntity(x, y, z); - if (tile instanceof IGregTechTileEntity && ((IGregTechTileEntity) tile).isAllowedToWork()) { - ForgeChunkManager.forceChunk(ticket, new ChunkCoordIntPair(x >> 4, z >> 4)); - if (!registeredTickets.containsKey(tile)) { - registeredTickets.put(tile, ticket); - if (((IGregTechTileEntity) tile).getMetaTileEntity() instanceof IChunkLoader) - ForgeChunkManager.forceChunk( - ticket, - ((IChunkLoader) ((IGregTechTileEntity) tile).getMetaTileEntity()).getActiveChunk()); - validTickets.add(ticket); - } - } - } - } - } - return validTickets; - } - - /** - * Determines if player tickets should be kept. This is where a ticket list per-player would be created and - * maintained. When a player joins, an event occurs, their name/UUID/etc is compared against tickets on this list - * and those tickets are reactivated. - * Since that info would be maintained/dealt with on a per-player startup, the list returned back to Forge is empty. - * - * @param tickets The tickets that you will want to select from. - * The list is immutable and cannot be manipulated directly. Copy it first. - * @param world The world - * @return the list of string-ticket paris - */ - @Override - public ListMultimap playerTicketsLoaded(ListMultimap tickets, World world) { - // Not currently used, so just return an empty list. - return ArrayListMultimap.create(); - } - - /** - * Requests a chunk to be loaded for this machine. May pass a {@code null} chunk to load just the machine itself if - * {@code alwaysReloadChunkloaders} is enabled in config. - * - * @param owner owner of the TileEntity - * @param chunkXZ chunk coordinates - * @param player player - * @return if the chunk was loaded successfully - */ - public static boolean requestPlayerChunkLoad(TileEntity owner, ChunkCoordIntPair chunkXZ, String player) { - if (!GT_Values.enableChunkloaders) return false; - if (!GT_Values.alwaysReloadChunkloaders && chunkXZ == null) return false; - if (GT_Values.debugChunkloaders && chunkXZ != null) GT_Log.out - .println("GT_ChunkManager: Chunk request: (" + chunkXZ.chunkXPos + ", " + chunkXZ.chunkZPos + ")"); - if (instance.registeredTickets.containsKey(owner)) { - ForgeChunkManager.forceChunk(instance.registeredTickets.get(owner), chunkXZ); - } else { - Ticket ticket; - if (player.equals("")) ticket = ForgeChunkManager - .requestTicket(GT_Mod.instance, owner.getWorldObj(), ForgeChunkManager.Type.NORMAL); - else ticket = ForgeChunkManager - .requestPlayerTicket(GT_Mod.instance, player, owner.getWorldObj(), ForgeChunkManager.Type.NORMAL); - if (ticket == null) { - if (GT_Values.debugChunkloaders) - GT_Log.out.println("GT_ChunkManager: ForgeChunkManager.requestTicket failed"); - return false; - } - if (GT_Values.debugChunkloaders) GT_Log.out.println( - "GT_ChunkManager: ticket issued for machine at: (" + owner.xCoord - + ", " - + owner.yCoord - + ", " - + owner.zCoord - + ")"); - NBTTagCompound tag = ticket.getModData(); - tag.setInteger("OwnerX", owner.xCoord); - tag.setInteger("OwnerY", owner.yCoord); - tag.setInteger("OwnerZ", owner.zCoord); - ForgeChunkManager.forceChunk(ticket, chunkXZ); - if (GT_Values.alwaysReloadChunkloaders) - ForgeChunkManager.forceChunk(ticket, new ChunkCoordIntPair(owner.xCoord >> 4, owner.zCoord >> 4)); - instance.registeredTickets.put(owner, ticket); - } - return true; - } - - @SuppressWarnings("UnusedReturnValue") - public static boolean requestChunkLoad(TileEntity owner, ChunkCoordIntPair chunkXZ) { - return requestPlayerChunkLoad(owner, chunkXZ, ""); - } - - public static void releaseChunk(TileEntity owner, ChunkCoordIntPair chunkXZ) { - if (!GT_Values.enableChunkloaders) return; - Ticket ticket = instance.registeredTickets.get(owner); - if (ticket != null) { - if (GT_Values.debugChunkloaders) GT_Log.out - .println("GT_ChunkManager: Chunk release: (" + chunkXZ.chunkXPos + ", " + chunkXZ.chunkZPos + ")"); - ForgeChunkManager.unforceChunk(ticket, chunkXZ); - } - } - - public static void releaseTicket(TileEntity owner) { - if (!GT_Values.enableChunkloaders) return; - Ticket ticket = instance.registeredTickets.get(owner); - if (ticket != null) { - if (GT_Values.debugChunkloaders) { - GT_Log.out.println( - "GT_ChunkManager: ticket released by machine at: (" + owner.xCoord - + ", " - + owner.yCoord - + ", " - + owner.zCoord - + ")"); - for (ChunkCoordIntPair chunk : ticket.getChunkList()) GT_Log.out - .println("GT_ChunkManager: Chunk release: (" + chunk.chunkXPos + ", " + chunk.chunkZPos + ")"); - } - ForgeChunkManager.releaseTicket(ticket); - instance.registeredTickets.remove(owner); - } - } - - public static void printTickets() { - GT_Log.out.println("GT_ChunkManager: Start forced chunks dump:"); - instance.registeredTickets.forEach((machine, ticket) -> { - GT_Log.out.print( - "GT_ChunkManager: Chunks forced by the machine at (" + machine.xCoord - + ", " - + machine.yCoord - + ", " - + machine.zCoord - + ")"); - if (ticket.isPlayerTicket()) GT_Log.out.print(" Owner: " + ticket.getPlayerName()); - GT_Log.out.print(" :"); - for (ChunkCoordIntPair c : ticket.getChunkList()) { - GT_Log.out.print("("); - GT_Log.out.print(c.chunkXPos); - GT_Log.out.print(", "); - GT_Log.out.print(c.chunkZPos); - GT_Log.out.print("), "); - } - }); - GT_Log.out.println("GT_ChunkManager: End forced chunks dump:"); - } -} diff --git a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java deleted file mode 100644 index c5307b4803..0000000000 --- a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java +++ /dev/null @@ -1,35 +0,0 @@ -package gregtech.api.objects; - -import net.minecraft.block.Block; - -import gregtech.api.enums.Dyes; -import gregtech.api.interfaces.ITexture; - -/** - * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. - */ -@Deprecated -public class GT_CopiedBlockTexture extends gregtech.common.render.GT_CopiedBlockTexture implements ITexture { - - // Backwards Compat - @Deprecated - public short[] mRGBa; - - public GT_CopiedBlockTexture(Block aBlock, int ordinalSide, int aMeta, short[] aRGBa, boolean aAllowAlpha) { - super(aBlock, ordinalSide, aMeta, aRGBa, aAllowAlpha); - GT_CopiedBlockTexture.this.mRGBa = aRGBa; - } - - public GT_CopiedBlockTexture(Block aBlock, int ordinalSide, int aMeta, short[] aRGBa) { - this(aBlock, ordinalSide, aMeta, aRGBa, true); - } - - public GT_CopiedBlockTexture(Block aBlock, int ordinalSide, int aMeta) { - this(aBlock, ordinalSide, aMeta, Dyes._NULL.mRGBa); - } - - @Override - public boolean isOldTexture() { - return true; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_Cover_Default.java b/src/main/java/gregtech/api/objects/GT_Cover_Default.java deleted file mode 100644 index cc5f96eef3..0000000000 --- a/src/main/java/gregtech/api/objects/GT_Cover_Default.java +++ /dev/null @@ -1,81 +0,0 @@ -package gregtech.api.objects; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; - -import gregtech.api.interfaces.tileentity.ICoverable; -import gregtech.api.util.GT_CoverBehavior; -import gregtech.api.util.GT_Utility; - -public class GT_Cover_Default extends GT_CoverBehavior { - - /** - * This is the Dummy, if there is a generic Cover without behavior - */ - public GT_Cover_Default() { - super(); - } - - @Override - public boolean isSimpleCover() { - return true; - } - - @Override - public int onCoverScrewdriverclick(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, - EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = ((aCoverVariable + 1) & 15); - GT_Utility.sendChatToPlayer( - aPlayer, - ((aCoverVariable & 1) != 0 ? GT_Utility.trans("128.1", "Redstone ") : "") - + ((aCoverVariable & 2) != 0 ? GT_Utility.trans("129.1", "Energy ") : "") - + ((aCoverVariable & 4) != 0 ? GT_Utility.trans("130.1", "Fluids ") : "") - + ((aCoverVariable & 8) != 0 ? GT_Utility.trans("131.1", "Items ") : "")); - return aCoverVariable; - } - - @Override - public boolean letsRedstoneGoIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 1) != 0; - } - - @Override - public boolean letsRedstoneGoOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 1) != 0; - } - - @Override - public boolean letsEnergyIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 2) != 0; - } - - @Override - public boolean letsEnergyOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return (aCoverVariable & 2) != 0; - } - - @Override - public boolean letsFluidIn(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, - ICoverable aTileEntity) { - return (aCoverVariable & 4) != 0; - } - - @Override - public boolean letsFluidOut(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, - ICoverable aTileEntity) { - return (aCoverVariable & 4) != 0; - } - - @Override - public boolean letsItemsIn(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, - ICoverable aTileEntity) { - return (aCoverVariable & 8) != 0; - } - - @Override - public boolean letsItemsOut(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, - ICoverable aTileEntity) { - return (aCoverVariable & 8) != 0; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_Cover_None.java b/src/main/java/gregtech/api/objects/GT_Cover_None.java deleted file mode 100644 index 279efe63d8..0000000000 --- a/src/main/java/gregtech/api/objects/GT_Cover_None.java +++ /dev/null @@ -1,237 +0,0 @@ -package gregtech.api.objects; - -import static gregtech.api.enums.GT_Values.E; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; - -import gregtech.api.interfaces.tileentity.ICoverable; -import gregtech.api.util.GT_CoverBehavior; -import gregtech.api.util.ISerializableObject; - -public class GT_Cover_None extends GT_CoverBehavior { - - /** - * This is the Dummy, if there is no Cover - */ - public GT_Cover_None() {} - - @Override - public float getBlastProofLevel(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return 10.0F; - } - - @Override - public boolean letsRedstoneGoIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsRedstoneGoOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsEnergyIn(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsEnergyOut(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsFluidIn(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, - ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsFluidOut(ForgeDirection side, int aCoverID, int aCoverVariable, Fluid aFluid, - ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsItemsIn(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, - ICoverable aTileEntity) { - return true; - } - - @Override - public boolean letsItemsOut(ForgeDirection side, int aCoverID, int aCoverVariable, int aSlot, - ICoverable aTileEntity) { - return true; - } - - @Override - public boolean isGUIClickable(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - public boolean manipulatesSidedRedstoneOutput(ForgeDirection side, int aCoverID, int aCoverVariable, - ICoverable aTileEntity) { - return false; - } - - @Override - public boolean onCoverRightclick(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, - EntityPlayer aPlayer, float aX, float aY, float aZ) { - return false; - } - - @Override - public boolean onCoverRemoval(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, - boolean aForced) { - return true; - } - - @Override - public int doCoverThings(ForgeDirection side, byte aInputRedstone, int aCoverID, int aCoverVariable, - ICoverable aTileEntity, long aTimer) { - return 0; - } - - @Override - public boolean isSimpleCover() { - return true; - } - - @Override - protected boolean isRedstoneSensitiveImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, long aTimer) { - return false; - } - - @Override - protected ISerializableObject.LegacyCoverData doCoverThingsImpl(ForgeDirection side, byte aInputRedstone, - int aCoverID, ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, long aTimer) { - return aCoverVariable; - } - - @Override - protected boolean onCoverRightClickImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, - float aY, float aZ) { - return false; - } - - @Override - protected ISerializableObject.LegacyCoverData onCoverScrewdriverClickImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, - float aY, float aZ) { - return aCoverVariable; - } - - @Override - protected boolean onCoverShiftRightClickImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer) { - return false; - } - - @Override - protected boolean onCoverRemovalImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity, boolean aForced) { - return true; - } - - @Override - protected String getDescriptionImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return E; - } - - @Override - protected float getBlastProofLevelImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return 10.0F; - } - - @Override - protected boolean letsRedstoneGoInImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsRedstoneGoOutImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsEnergyInImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsEnergyOutImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsFluidInImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsFluidOutImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsItemsInImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, int aSlot, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean letsItemsOutImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, int aSlot, ICoverable aTileEntity) { - return true; - } - - @Override - protected boolean manipulatesSidedRedstoneOutputImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return false; - } - - @Override - protected boolean alwaysLookConnectedImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return false; - } - - @Override - protected byte getRedstoneInputImpl(ForgeDirection side, byte aInputRedstone, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return aInputRedstone; - } - - @Override - protected int getTickRateImpl(ForgeDirection side, int aCoverID, ISerializableObject.LegacyCoverData aCoverVariable, - ICoverable aTileEntity) { - return 0; - } - - @Override - protected byte getLensColorImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return -1; - } - - @Override - protected ItemStack getDropImpl(ForgeDirection side, int aCoverID, - ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) { - return null; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_Fluid.java b/src/main/java/gregtech/api/objects/GT_Fluid.java deleted file mode 100644 index 10824d6327..0000000000 --- a/src/main/java/gregtech/api/objects/GT_Fluid.java +++ /dev/null @@ -1,36 +0,0 @@ -package gregtech.api.objects; - -import static gregtech.api.enums.Mods.GregTech; - -import net.minecraftforge.fluids.Fluid; - -import gregtech.api.GregTech_API; -import gregtech.api.fluid.GT_FluidFactory; - -/** - * @deprecated use {@link GT_FluidFactory#builder} - */ -@Deprecated -public class GT_Fluid extends Fluid implements Runnable { - - public final String mTextureName; - private final short[] mRGBa; - - public GT_Fluid(String aName, String aTextureName, short[] aRGBa) { - super(aName); - mRGBa = aRGBa; - mTextureName = aTextureName; - GregTech_API.sGTBlockIconload.add(this); - } - - @Override - public int getColor() { - return (Math.max(0, Math.min(255, mRGBa[0])) << 16) | (Math.max(0, Math.min(255, mRGBa[1])) << 8) - | Math.max(0, Math.min(255, mRGBa[2])); - } - - @Override - public void run() { - setIcons(GregTech_API.sBlockIcons.registerIcon(GregTech.getResourcePath("fluids", "fluid." + mTextureName))); - } -} diff --git a/src/main/java/gregtech/api/objects/GT_HashSet.java b/src/main/java/gregtech/api/objects/GT_HashSet.java deleted file mode 100644 index d42f194e5d..0000000000 --- a/src/main/java/gregtech/api/objects/GT_HashSet.java +++ /dev/null @@ -1,91 +0,0 @@ -package gregtech.api.objects; - -import java.util.AbstractSet; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; - -import net.minecraft.item.ItemStack; - -import gregtech.api.GregTech_API; -import gregtech.api.util.GT_Utility; - -public class GT_HashSet extends AbstractSet { - - private static final Object OBJECT = new Object(); - private final transient HashMap map; - - public GT_HashSet() { - map = new HashMap<>(); - GregTech_API.sItemStackMappings.add(map); - } - - public GT_HashSet(Collection c) { - map = new HashMap<>(Math.max((int) (c.size() / .75f) + 1, 16)); - addAll(c); - GregTech_API.sItemStackMappings.add(map); - } - - public GT_HashSet(int initialCapacity, float loadFactor) { - map = new HashMap<>(initialCapacity, loadFactor); - GregTech_API.sItemStackMappings.add(map); - } - - public GT_HashSet(int initialCapacity) { - map = new HashMap<>(initialCapacity); - GregTech_API.sItemStackMappings.add(map); - } - - GT_HashSet(int initialCapacity, float loadFactor, boolean dummy) { - map = new LinkedHashMap<>(initialCapacity, loadFactor); - GregTech_API.sItemStackMappings.add(map); - } - - public Map getMap() { - return map; - } - - @SuppressWarnings("unchecked") // The downcasting below will throw ClassCastException unless E is GT_ItemStack. - @Override - public Iterator iterator() { - return (Iterator) map.keySet() - .iterator(); - } - - @Override - public int size() { - return map.size(); - } - - @Override - public boolean isEmpty() { - return map.isEmpty(); - } - - @Override - public boolean contains(Object o) { - return map.containsKey(o); - } - - public boolean add(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return false; - return map.put(new GT_ItemStack(aStack), OBJECT) == null; - } - - @Override - public boolean add(E e) { - return map.put(e, OBJECT) == null; - } - - @Override - public boolean remove(Object o) { - return map.remove(o) == OBJECT; - } - - @Override - public void clear() { - map.clear(); - } -} diff --git a/src/main/java/gregtech/api/objects/GT_ItemStack.java b/src/main/java/gregtech/api/objects/GT_ItemStack.java deleted file mode 100644 index 492655740d..0000000000 --- a/src/main/java/gregtech/api/objects/GT_ItemStack.java +++ /dev/null @@ -1,107 +0,0 @@ -package gregtech.api.objects; - -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import gregtech.api.enums.GT_Values; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.item.ItemHolder; -import it.unimi.dsi.fastutil.Hash; - -/** - * An optimization of {@link ItemStack} to have a better {@code hashcode} and {@code equals} in order to improve - * {@code HashMap} and {@code Set} performance - */ -public class GT_ItemStack extends ItemHolder { - - /** - * A better {@link Hash.Strategy} for {@link ItemStack}. Implementation originally from {@code GT_ItemStack2}. - */ - public static final Hash.Strategy ITEMSTACK_HASH_STRATEGY2 = new Hash.Strategy<>() { - - @Override - public int hashCode(ItemStack o) { - return o.getItem() - .hashCode() * 38197 + Items.feather.getDamage(o); - } - - @Override - public boolean equals(ItemStack a, ItemStack b) { - if (a == b) return true; - if (a == null || b == null) return false; - return a.getItem() == b.getItem() && Items.feather.getDamage(a) == Items.feather.getDamage(b); - } - }; - - public final Item mItem; - public final byte mStackSize; - public final short mMetaData; - - public GT_ItemStack(Item aItem, long aStackSize, long aMetaData) { - super(new ItemStack(aItem, 1, (int) aMetaData)); - mItem = aItem; - mStackSize = (byte) aStackSize; - mMetaData = (short) aMetaData; - } - - public GT_ItemStack(ItemStack aStack) { - this(aStack, false); - } - - public GT_ItemStack(ItemStack aStack, boolean wildcard) { - this( - aStack == null ? null : aStack.getItem(), - aStack == null ? 0 : aStack.stackSize, - aStack == null ? 0 : wildcard ? GT_Values.W : Items.feather.getDamage(aStack)); - } - - public GT_ItemStack(int aHashCode) { - this(GT_Utility.intToStack(aHashCode)); - } - - public final ItemStack toStack() { - if (mItem == null) return null; - return new ItemStack(mItem, 1, mMetaData); - } - - public final boolean isStackEqual(ItemStack aStack) { - return GT_Utility.areStacksEqual(toStack(), aStack); - } - - public final boolean isStackEqual(GT_ItemStack aStack) { - return GT_Utility.areStacksEqual(toStack(), aStack.toStack()); - } - - @Override - public boolean equals(Object aStack) { - if (aStack == this) return true; - if (aStack instanceof GT_ItemStack) { - return ((GT_ItemStack) aStack).mItem == mItem && ((GT_ItemStack) aStack).mMetaData == mMetaData; - } - return false; - } - - @Override - public int hashCode() { - return GT_Utility.stackToInt(toStack()); - } - - /** - * @see #internalCopyStack(ItemStack, boolean) - */ - public static ItemStack internalCopyStack(ItemStack aStack) { - return internalCopyStack(aStack, false); - } - - /** - * Replicates the copy behavior of {@link #toStack()} but for normal {@link ItemStack}s. - * - * @param aStack the stack to copy - * @param wildcard whether to use wildcard damage value - * @return a copy of the stack with stack size 1 and no NBT - */ - public static ItemStack internalCopyStack(ItemStack aStack, boolean wildcard) { - return new ItemStack(aStack.getItem(), 1, wildcard ? GT_Values.W : Items.feather.getDamage(aStack)); - } -} diff --git a/src/main/java/gregtech/api/objects/GT_ItemStack2.java b/src/main/java/gregtech/api/objects/GT_ItemStack2.java deleted file mode 100644 index aa93876830..0000000000 --- a/src/main/java/gregtech/api/objects/GT_ItemStack2.java +++ /dev/null @@ -1,41 +0,0 @@ -package gregtech.api.objects; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -/** - * GT_ItemStack, but with a better hashCode(). Due to this change, it should not be placed in the same hash based data - * structure with GT_ItemStack. It also shouldn't be used to construct search query into a hash based data structure - * that contains GT_ItemStack. - * - * @deprecated See {@link GT_ItemStack#ITEMSTACK_HASH_STRATEGY2} - */ -@Deprecated -public class GT_ItemStack2 extends GT_ItemStack { - - public GT_ItemStack2(Item aItem, long aStackSize, long aMetaData) { - super(aItem, aStackSize, aMetaData); - } - - public GT_ItemStack2(ItemStack aStack) { - super(aStack); - } - - public GT_ItemStack2(ItemStack aStack, boolean wildcard) { - super(aStack, wildcard); - } - - @Override - public boolean equals(Object aStack) { - if (aStack == this) return true; - if (aStack instanceof GT_ItemStack) { - return ((GT_ItemStack) aStack).mItem == mItem && ((GT_ItemStack) aStack).mMetaData == mMetaData; - } - return false; - } - - @Override - public int hashCode() { - return mItem.hashCode() * 38197 + mMetaData; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_MultiTexture.java b/src/main/java/gregtech/api/objects/GT_MultiTexture.java deleted file mode 100644 index 9748ecb934..0000000000 --- a/src/main/java/gregtech/api/objects/GT_MultiTexture.java +++ /dev/null @@ -1,26 +0,0 @@ -package gregtech.api.objects; - -import gregtech.api.interfaces.ITexture; - -/** - *

- * Lets Multiple ITextures Render overlay over each other.< - *

- *

- * I should have done this much earlier... - *

- * - * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. - */ -@Deprecated -public class GT_MultiTexture extends gregtech.common.render.GT_MultiTexture implements ITexture { - - public GT_MultiTexture(ITexture... aTextures) { - super(aTextures); - } - - @Override - public boolean isOldTexture() { - return true; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java deleted file mode 100644 index bbb22e7d36..0000000000 --- a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java +++ /dev/null @@ -1,33 +0,0 @@ -package gregtech.api.objects; - -import gregtech.api.enums.Dyes; -import gregtech.api.interfaces.IColorModulationContainer; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; - -@Deprecated -public class GT_RenderedTexture extends gregtech.common.render.GT_RenderedTexture - implements ITexture, IColorModulationContainer { - - @Deprecated - public short[] mRGBa; - - public GT_RenderedTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { - super(aIcon, aRGBa, aAllowAlpha, false, true, false); - if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); - mRGBa = aRGBa; - } - - public GT_RenderedTexture(IIconContainer aIcon, short[] aRGBa) { - this(aIcon, aRGBa, true); - } - - public GT_RenderedTexture(IIconContainer aIcon) { - this(aIcon, Dyes._NULL.mRGBa); - } - - @Override - public boolean isOldTexture() { - return true; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_SidedTexture.java b/src/main/java/gregtech/api/objects/GT_SidedTexture.java deleted file mode 100644 index d042ebede9..0000000000 --- a/src/main/java/gregtech/api/objects/GT_SidedTexture.java +++ /dev/null @@ -1,48 +0,0 @@ -package gregtech.api.objects; - -import gregtech.api.enums.Dyes; -import gregtech.api.interfaces.IColorModulationContainer; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; - -/** - * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. - */ -@Deprecated -public class GT_SidedTexture extends gregtech.common.render.GT_SidedTexture - implements ITexture, IColorModulationContainer { - - @Deprecated - public short[] mRGBa; - - public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, - IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa, boolean aAllowAlpha) { - super(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, aRGBa, aAllowAlpha); - - // Backwards Compat - GT_SidedTexture.this.mRGBa = aRGBa; - } - - public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, - IIconContainer aIcon4, IIconContainer aIcon5, short[] aRGBa) { - this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, aRGBa, true); - } - - public GT_SidedTexture(IIconContainer aIcon0, IIconContainer aIcon1, IIconContainer aIcon2, IIconContainer aIcon3, - IIconContainer aIcon4, IIconContainer aIcon5) { - this(aIcon0, aIcon1, aIcon2, aIcon3, aIcon4, aIcon5, Dyes._NULL.mRGBa); - } - - public GT_SidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides, short[] aRGBa) { - this(aBottom, aTop, aSides, aSides, aSides, aSides, aRGBa); - } - - public GT_SidedTexture(IIconContainer aBottom, IIconContainer aTop, IIconContainer aSides) { - this(aBottom, aTop, aSides, Dyes._NULL.mRGBa); - } - - @Override - public boolean isOldTexture() { - return true; - } -} diff --git a/src/main/java/gregtech/api/objects/GT_StdRenderedTexture.java b/src/main/java/gregtech/api/objects/GT_StdRenderedTexture.java deleted file mode 100644 index d4b8d16da6..0000000000 --- a/src/main/java/gregtech/api/objects/GT_StdRenderedTexture.java +++ /dev/null @@ -1,46 +0,0 @@ -package gregtech.api.objects; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraftforge.common.util.ForgeDirection; - -import gregtech.api.enums.Dyes; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.util.LightingHelper; - -/** - * This ITexture implementation extends the GT_RenderedTexture class to render with bottom side flipped as with dumb - * blocks rendering. It is used in Ore blocks rendering so they better blends with dumb block ores from vanilla or other - * mods, when seen from bottom. - * - * @deprecated Replaced by the {@link gregtech.api.render.TextureFactory} API. - */ -@Deprecated -public class GT_StdRenderedTexture extends GT_RenderedTexture { - - @SuppressWarnings("unused") - public GT_StdRenderedTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { - super(aIcon, aRGBa, aAllowAlpha); - } - - public GT_StdRenderedTexture(IIconContainer aIcon, short[] aRGBa) { - super(aIcon, aRGBa, true); - } - - @SuppressWarnings("unused") - public GT_StdRenderedTexture(IIconContainer aIcon) { - super(aIcon, Dyes._NULL.mRGBa); - } - - @Override - public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { - LightingHelper lighting = new LightingHelper(aRenderer); - lighting.setupLightingYNeg(aBlock, aX, aY, aZ) - .setupColor(ForgeDirection.DOWN, mRGBa); - aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); - if (mIconContainer.getOverlayIcon() != null) { - lighting.setupColor(ForgeDirection.DOWN, 0xffffff); - aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); - } - } -} diff --git a/src/main/java/gregtech/api/objects/GT_UO_Dimension.java b/src/main/java/gregtech/api/objects/GT_UO_Dimension.java deleted file mode 100644 index af82c35dab..0000000000 --- a/src/main/java/gregtech/api/objects/GT_UO_Dimension.java +++ /dev/null @@ -1,54 +0,0 @@ -package gregtech.api.objects; - -import java.util.Random; - -import net.minecraftforge.common.config.ConfigCategory; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -public class GT_UO_Dimension { - - private final BiMap fFluids; - private int maxChance; - public String Dimension = "null"; - - public GT_UO_Dimension(ConfigCategory aConfigCategory) { // TODO CONFIGURE - fFluids = HashBiMap.create(); - if (aConfigCategory.containsKey("Dimension")) { - aConfigCategory.get("Dimension").comment = "Dimension ID or Class Name"; - Dimension = aConfigCategory.get("Dimension") - .getString(); - } - maxChance = 0; - // GT_FML_LOGGER.info("GT UO "+aConfigCategory.getName()+" Dimension:"+Dimension); - for (int i = 0; i < aConfigCategory.getChildren() - .size(); i++) { - GT_UO_Fluid fluid = new GT_UO_Fluid( - (ConfigCategory) aConfigCategory.getChildren() - .toArray()[i]); - fFluids.put(fluid.Registry, fluid); - maxChance += fluid.Chance; - } - } - - public GT_UO_Fluid getRandomFluid(Random aRandom) { - int random = aRandom.nextInt(1000); - for (BiMap.Entry fl : fFluids.entrySet()) { - int chance = fl.getValue().Chance * 1000 / maxChance; - if (random <= chance) return fl.getValue(); - // GT_FML_LOGGER.info("GT UO "+fl.getValue().Registry+" Chance:"+chance+" Random:"+random); - random -= chance; - } - return null; - } - - public String getUOFluidKey(GT_UO_Fluid uoFluid) { - return fFluids.inverse() - .get(uoFluid); - } - - public GT_UO_Fluid getUOFluid(String key) { - return fFluids.get(key); - } -} diff --git a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java deleted file mode 100644 index f057614ccf..0000000000 --- a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java +++ /dev/null @@ -1,648 +0,0 @@ -package gregtech.api.objects; - -import static gregtech.api.enums.Dimensions.AlphaCentauriBb; -import static gregtech.api.enums.Dimensions.BarnardaC; -import static gregtech.api.enums.Dimensions.BarnardaE; -import static gregtech.api.enums.Dimensions.BarnardaF; -import static gregtech.api.enums.Dimensions.Callisto; -import static gregtech.api.enums.Dimensions.Europa; -import static gregtech.api.enums.Dimensions.Io; -import static gregtech.api.enums.Dimensions.Makemake; -import static gregtech.api.enums.Dimensions.Mars; -import static gregtech.api.enums.Dimensions.Mercury; -import static gregtech.api.enums.Dimensions.Miranda; -import static gregtech.api.enums.Dimensions.Moon; -import static gregtech.api.enums.Dimensions.Oberon; -import static gregtech.api.enums.Dimensions.Overworld; -import static gregtech.api.enums.Dimensions.Pluto; -import static gregtech.api.enums.Dimensions.Proteus; -import static gregtech.api.enums.Dimensions.Ross128b; -import static gregtech.api.enums.Dimensions.Ross128ba; -import static gregtech.api.enums.Dimensions.TCetiE; -import static gregtech.api.enums.Dimensions.Titan; -import static gregtech.api.enums.Dimensions.Triton; -import static gregtech.api.enums.Dimensions.Venus; -import static gregtech.api.enums.UndergroundFluidNames.carbonDioxide; -import static gregtech.api.enums.UndergroundFluidNames.carbonMonoxide; -import static gregtech.api.enums.UndergroundFluidNames.chlorobenzene; -import static gregtech.api.enums.UndergroundFluidNames.deuterium; -import static gregtech.api.enums.UndergroundFluidNames.distilledWater; -import static gregtech.api.enums.UndergroundFluidNames.ethane; -import static gregtech.api.enums.UndergroundFluidNames.ethylene; -import static gregtech.api.enums.UndergroundFluidNames.fluorine; -import static gregtech.api.enums.UndergroundFluidNames.heavyOil; -import static gregtech.api.enums.UndergroundFluidNames.helium3; -import static gregtech.api.enums.UndergroundFluidNames.hydrofluoricAcid; -import static gregtech.api.enums.UndergroundFluidNames.hydrogen; -import static gregtech.api.enums.UndergroundFluidNames.hydrogenSulfide; -import static gregtech.api.enums.UndergroundFluidNames.lava; -import static gregtech.api.enums.UndergroundFluidNames.lightOil; -import static gregtech.api.enums.UndergroundFluidNames.liquidAir; -import static gregtech.api.enums.UndergroundFluidNames.mediumOil; -import static gregtech.api.enums.UndergroundFluidNames.methane; -import static gregtech.api.enums.UndergroundFluidNames.moltenCopper; -import static gregtech.api.enums.UndergroundFluidNames.moltenIron; -import static gregtech.api.enums.UndergroundFluidNames.moltenLead; -import static gregtech.api.enums.UndergroundFluidNames.moltenTin; -import static gregtech.api.enums.UndergroundFluidNames.naturalGas; -import static gregtech.api.enums.UndergroundFluidNames.nitrogen; -import static gregtech.api.enums.UndergroundFluidNames.oil; -import static gregtech.api.enums.UndergroundFluidNames.oxygen; -import static gregtech.api.enums.UndergroundFluidNames.saltWater; -import static gregtech.api.enums.UndergroundFluidNames.sulfuricAcid; -import static gregtech.api.enums.UndergroundFluidNames.unknownWater; -import static gregtech.api.enums.UndergroundFluidNames.veryHeavyOil; - -import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.common.config.ConfigCategory; -import net.minecraftforge.common.config.Configuration; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -import gregtech.api.enums.Dimensions; -import gregtech.api.enums.UndergroundFluidNames; - -public class GT_UO_DimensionList { - - private Configuration fConfig; - private String fCategory; - private final BiMap fDimensionList; - - public int[] blackList = new int[0]; - - public GT_UO_DimensionList() { - fDimensionList = HashBiMap.create(); - } - - public void save() { - fConfig.save(); - } - - public GT_UO_Dimension GetDimension(int aDimension) { - if (CheckBlackList(aDimension)) return null; - if (fDimensionList.containsKey(Integer.toString(aDimension))) - return fDimensionList.get(Integer.toString(aDimension)); - for (BiMap.Entry dl : fDimensionList.entrySet()) - if (DimensionManager.getProvider(aDimension) - .getClass() - .getName() - .contains(dl.getValue().Dimension)) return dl.getValue(); - return fDimensionList.get("Default"); - } - - private boolean CheckBlackList(int aDimensionId) { - try { - return java.util.Arrays.binarySearch(blackList, aDimensionId) >= 0; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - public void SetConfigValues(String aDimensionName, String aDimension, String aName, String aRegistry, - int aMinAmount, int aMaxAmount, int aChance, int aDecreasePerOperationAmount) { - String Category = fCategory + "." + aDimensionName; - fConfig.get(Category, "Dimension", aDimension) - .getString(); - Category += "." + aName; - fConfig.get(Category, "Registry", aRegistry) - .getString(); - fConfig.get(Category, "MinAmount", aMinAmount) - .getInt(aMinAmount); - fConfig.get(Category, "MaxAmount", aMaxAmount) - .getInt(aMaxAmount); - fConfig.get(Category, "Chance", aChance) - .getInt(aChance); - fConfig.get(Category, "DecreasePerOperationAmount", aDecreasePerOperationAmount) - .getInt(aDecreasePerOperationAmount); - // IT IS IN BUCKETS!!! - } - - private void setOverworldValues() { - new ConfigSetter().dimension(Overworld) - .fluid(naturalGas) - .chance(20) - .decreaseAmount(5) - .maxAmount(350) - .minAmount(10) - .writeToConfig(); - - new ConfigSetter().dimension(Overworld) - .fluid(lightOil) - .chance(20) - .decreaseAmount(5) - .maxAmount(350) - .minAmount(10) - .writeToConfig(); - - new ConfigSetter().dimension(Overworld) - .fluid(mediumOil) - .chance(20) - .decreaseAmount(5) - .maxAmount(625) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Overworld) - .fluid(heavyOil) - .chance(20) - .decreaseAmount(5) - .maxAmount(625) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Overworld) - .fluid(oil) - .chance(20) - .decreaseAmount(5) - .maxAmount(625) - .minAmount(0) - .writeToConfig(); - } - - private void setMoonValues() { - new ConfigSetter().dimension(Moon) - .fluid(helium3) - .chance(100) - .decreaseAmount(5) - .maxAmount(425) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Moon) - .fluid(saltWater) - .chance(20) - .decreaseAmount(5) - .maxAmount(200) - .minAmount(0) - .writeToConfig(); - } - - private void setMercuryValues() { - new ConfigSetter().dimension(Mercury) - .fluid(helium3) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Mercury) - .fluid(moltenIron) - .chance(30) - .decreaseAmount(5) - .maxAmount(400) - .minAmount(0) - .writeToConfig(); - } - - private void setVenusValues() { - new ConfigSetter().dimension(Venus) - .fluid(moltenLead) - .chance(100) - .decreaseAmount(5) - .maxAmount(1600) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Venus) - .fluid(sulfuricAcid) - .chance(100) - .decreaseAmount(5) - .maxAmount(250) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Venus) - .fluid(carbonDioxide) - .chance(100) - .decreaseAmount(5) - .maxAmount(1500) - .minAmount(0) - .writeToConfig(); - } - - private void setMarsValues() { - new ConfigSetter().dimension(Mars) - .fluid(saltWater) - .chance(100) - .decreaseAmount(5) - .maxAmount(400) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Mars) - .fluid(chlorobenzene) - .chance(100) - .decreaseAmount(5) - .maxAmount(400) - .minAmount(0) - .writeToConfig(); - } - - private void setIoValues() { - new ConfigSetter().dimension(Io) - .fluid(moltenLead) - .chance(20) - .decreaseAmount(5) - .maxAmount(650) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Io) - .fluid(sulfuricAcid) - .chance(80) - .decreaseAmount(5) - .maxAmount(350) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Io) - .fluid(carbonDioxide) - .chance(80) - .decreaseAmount(5) - .maxAmount(750) - .minAmount(0) - .writeToConfig(); - } - - private void setEuropaValues() { - new ConfigSetter().dimension(Europa) - .fluid(saltWater) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Europa) - .fluid(veryHeavyOil) - .chance(20) - .decreaseAmount(5) - .maxAmount(200) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Europa) - .fluid(distilledWater) - .chance(80) - .decreaseAmount(5) - .maxAmount(3500) - .minAmount(0) - .writeToConfig(); - } - - private void setCallistoValues() { - new ConfigSetter().dimension(Callisto) - .fluid(oxygen) - .chance(100) - .decreaseAmount(5) - .maxAmount(200) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Callisto) - .fluid(liquidAir) - .chance(100) - .decreaseAmount(5) - .maxAmount(200) - .minAmount(0) - .writeToConfig(); - } - - private void setTitanValues() { - new ConfigSetter().dimension(Titan) - .fluid(methane) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Titan) - .fluid(ethane) - .chance(100) - .decreaseAmount(5) - .maxAmount(200) - .minAmount(0) - .writeToConfig(); - } - - private void setMirandaValues() { - new ConfigSetter().dimension(Miranda) - .fluid(hydrogenSulfide) - .chance(100) - .decreaseAmount(5) - .maxAmount(900) - .minAmount(0) - .writeToConfig(); - } - - private void setOberonValues() { - new ConfigSetter().dimension(Oberon) - .fluid(carbonMonoxide) - .chance(100) - .decreaseAmount(5) - .maxAmount(2000) - .minAmount(0) - .writeToConfig(); - } - - private void setTritonValues() { - new ConfigSetter().dimension(Triton) - .fluid(nitrogen) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Triton) - .fluid(ethylene) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - } - - private void setProteusValues() { - new ConfigSetter().dimension(Proteus) - .fluid(deuterium) - .chance(100) - .decreaseAmount(5) - .maxAmount(700) - .minAmount(0) - .writeToConfig(); - } - - private void setPlutoValues() { - new ConfigSetter().dimension(Pluto) - .fluid(nitrogen) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Pluto) - .fluid(oxygen) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Pluto) - .fluid(liquidAir) - .chance(40) - .decreaseAmount(5) - .maxAmount(300) - .minAmount(4) - .writeToConfig(); - - new ConfigSetter().dimension(Pluto) - .fluid(fluorine) - .chance(80) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(4) - .writeToConfig(); - } - - private void setMakeMakeValues() { - new ConfigSetter().dimension(Makemake) - .fluid(hydrofluoricAcid) - .chance(80) - .decreaseAmount(5) - .maxAmount(300) - .minAmount(0) - .writeToConfig(); - } - - private void setAlphaCentauriBBValues() { - new ConfigSetter().dimension(AlphaCentauriBb) - .fluid(moltenCopper) - .chance(10) - .decreaseAmount(5) - .maxAmount(300) - .minAmount(0) - .writeToConfig(); - } - - private void setBarnardaCValues() { - new ConfigSetter().dimension(BarnardaC) - .fluid(veryHeavyOil) - .chance(100) - .decreaseAmount(5) - .maxAmount(800) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(BarnardaC) - .fluid(unknownWater) - .chance(100) - .decreaseAmount(5) - .maxAmount(300) - .minAmount(0) - .writeToConfig(); - } - - private void setBarnardaEValues() { - new ConfigSetter().dimension(BarnardaE) - .fluid(liquidAir) - .chance(20) - .decreaseAmount(5) - .maxAmount(400) - .minAmount(0) - .writeToConfig(); - } - - private void setBarnardaFValues() { - new ConfigSetter().dimension(BarnardaF) - .fluid(moltenTin) - .chance(15) - .decreaseAmount(5) - .maxAmount(400) - .minAmount(0) - .writeToConfig(); - } - - private void setTcetiEValues() { - new ConfigSetter().dimension(TCetiE) - .fluid(veryHeavyOil) - .chance(100) - .decreaseAmount(5) - .maxAmount(200) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(TCetiE) - .fluid(hydrogen) - .chance(50) - .decreaseAmount(5) - .maxAmount(700) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(TCetiE) - .fluid(distilledWater) - .chance(100) - .decreaseAmount(5) - .maxAmount(10_000) - .minAmount(0) - .writeToConfig(); - } - - private void setRoss128bValues() { - new ConfigSetter().dimension(Ross128b) - .fluid(veryHeavyOil) - .chance(40) - .decreaseAmount(5) - .maxAmount(625) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Ross128b) - .fluid(lava) - .chance(5) - .decreaseAmount(5) - .maxAmount(820) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Ross128b) - .fluid(naturalGas) - .chance(65) - .decreaseAmount(5) - .maxAmount(625) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Ross128b) - .fluid(distilledWater) - .chance(100) - .decreaseAmount(5) - .maxAmount(5000) - .minAmount(0) - .writeToConfig(); - } - - private void setRoss128baValues() { - new ConfigSetter().dimension(Ross128ba) - .fluid(saltWater) - .chance(40) - .decreaseAmount(5) - .maxAmount(1250) - .minAmount(0) - .writeToConfig(); - - new ConfigSetter().dimension(Ross128ba) - .fluid(helium3) - .chance(60) - .decreaseAmount(5) - .maxAmount(1250) - .minAmount(0) - .writeToConfig(); - } - - public void setDefaultValues() { - setOverworldValues(); - setMoonValues(); - setMercuryValues(); - setVenusValues(); - setMarsValues(); - setIoValues(); - setEuropaValues(); - setCallistoValues(); - setTitanValues(); - setMirandaValues(); - setOberonValues(); - setTritonValues(); - setProteusValues(); - setPlutoValues(); - setMakeMakeValues(); - setAlphaCentauriBBValues(); - setBarnardaCValues(); - setBarnardaEValues(); - setBarnardaFValues(); - setTcetiEValues(); - setRoss128bValues(); - setRoss128baValues(); - } - - public void getConfig(Configuration aConfig, String aCategory) { - fCategory = aCategory; - fConfig = aConfig; - if (!fConfig.hasCategory(fCategory)) setDefaultValues(); - - blackList = new int[] { -1, 1 }; - blackList = aConfig.get(fCategory, "DimBlackList", blackList, "Dimension IDs Black List") - .getIntList(); - java.util.Arrays.sort(blackList); - - for (int i = 0; i < fConfig.getCategory(fCategory) - .getChildren() - .size(); i++) { - GT_UO_Dimension Dimension = new GT_UO_Dimension( - (ConfigCategory) fConfig.getCategory(fCategory) - .getChildren() - .toArray()[i]); - fDimensionList.put(Dimension.Dimension, Dimension); - } - save(); - } - - public class ConfigSetter { - - private int chance; - private int decreaseAmount; - private int maxAmount; - private int minAmount; - private UndergroundFluidNames fluid; - private Dimensions dim; - - public ConfigSetter chance(int chance) { - this.chance = chance; - return this; - } - - public ConfigSetter decreaseAmount(int decreaseAmount) { - this.decreaseAmount = decreaseAmount; - return this; - } - - public ConfigSetter maxAmount(int maxAmount) { - this.maxAmount = maxAmount; - return this; - } - - public ConfigSetter minAmount(int minAmount) { - this.minAmount = minAmount; - return this; - } - - public ConfigSetter fluid(UndergroundFluidNames fluid) { - this.fluid = fluid; - return this; - } - - public ConfigSetter dimension(Dimensions dim) { - this.dim = dim; - return this; - } - - public void writeToConfig() { - SetConfigValues( - dim.toString(), - dim.id, - fluid.toString(), - fluid.name, - minAmount, - maxAmount, - chance, - decreaseAmount); - } - } -} diff --git a/src/main/java/gregtech/api/objects/GT_UO_Fluid.java b/src/main/java/gregtech/api/objects/GT_UO_Fluid.java deleted file mode 100644 index 7f9898e02e..0000000000 --- a/src/main/java/gregtech/api/objects/GT_UO_Fluid.java +++ /dev/null @@ -1,69 +0,0 @@ -package gregtech.api.objects; - -import static gregtech.common.GT_UndergroundOil.DIVIDER; - -import java.util.Random; - -import net.minecraftforge.common.config.ConfigCategory; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -public class GT_UO_Fluid { - - public String Registry = "null"; - public int MaxAmount = 0; - public int MinAmount = 0; - public int Chance = 0; - public int DecreasePerOperationAmount = 5; - - public GT_UO_Fluid(ConfigCategory aConfigCategory) { // TODO CONFIGURE - if (aConfigCategory.containsKey("Registry")) { - aConfigCategory.get("Registry").comment = "Fluid registry name"; - Registry = aConfigCategory.get("Registry") - .getString(); - } - if (aConfigCategory.containsKey("MaxAmount")) { - aConfigCategory - .get("MaxAmount").comment = "Max amount generation (per operation, sets the VeinData) 80000 MAX"; - MaxAmount = aConfigCategory.get("MaxAmount") - .getInt(0); - } - if (aConfigCategory.containsKey("MinAmount")) { - aConfigCategory.get("MinAmount").comment = "Min amount generation (per operation, sets the VeinData) 0 MIN"; - MinAmount = aConfigCategory.get("MinAmount") - .getInt(0); - } - if (aConfigCategory.containsKey("Chance")) { - aConfigCategory - .get("Chance").comment = "Chance generating (weighted chance!, there will be a fluid in chunk always!)"; - Chance = aConfigCategory.get("Chance") - .getInt(0); - } - if (aConfigCategory.containsKey("DecreasePerOperationAmount")) { - aConfigCategory.get( - "DecreasePerOperationAmount").comment = "Decrease per operation (actual fluid gained works like (Litre)VeinData/5000)"; - DecreasePerOperationAmount = aConfigCategory.get("DecreasePerOperationAmount") - .getInt(5); - } - // GT_FML_LOGGER.info("GT UO "+aConfigCategory.getName()+" Fluid:"+Registry+" Max:"+MaxAmount+" - // Min:"+MinAmount+" Chance:"+Chance); - } - - public Fluid getFluid() { - try { - return FluidRegistry.getFluid(this.Registry); - } catch (Exception e) { - return null; - } - } - - public int getRandomAmount(Random aRandom) { // generates some random ass number that correlates to extraction - // speeds - int smax = (int) Math.floor(Math.pow(MaxAmount * 100.d * DIVIDER, 0.2d)); // use scaled max and min values for - // the randomness to make high values - // more rare. - double smin = Math.pow(MinAmount * 100.d * DIVIDER, 0.2d); - double samount = Math.max(smin, aRandom.nextInt(smax) + aRandom.nextDouble()); - return (int) (Math.pow(samount, 5) / 100); // reverses the computation above - } -} diff --git a/src/main/java/gregtech/api/objects/ItemData.java b/src/main/java/gregtech/api/objects/ItemData.java index 779e45ac8b..071b09a55f 100644 --- a/src/main/java/gregtech/api/objects/ItemData.java +++ b/src/main/java/gregtech/api/objects/ItemData.java @@ -13,7 +13,7 @@ public class ItemData { private static final MaterialStack[] EMPTY_MATERIALSTACK_ARRAY = new MaterialStack[0]; - public final List mExtraData = new GT_ArrayList<>(false, 1); + public final List mExtraData = new GTArrayList<>(false, 1); public final OrePrefixes mPrefix; public final MaterialStack mMaterial; public final MaterialStack[] mByProducts; diff --git a/src/main/java/gregtech/api/objects/MaterialStack.java b/src/main/java/gregtech/api/objects/MaterialStack.java index 0a433e0d99..742c210901 100644 --- a/src/main/java/gregtech/api/objects/MaterialStack.java +++ b/src/main/java/gregtech/api/objects/MaterialStack.java @@ -1,7 +1,7 @@ package gregtech.api.objects; import gregtech.api.enums.Materials; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.GTUtility; public class MaterialStack implements Cloneable { @@ -44,7 +44,7 @@ public class MaterialStack implements Cloneable { public String toString(boolean single) { String temp1 = "", temp2 = mMaterial.getToolTip(true), temp3 = "", temp4 = ""; if (mAmount > 1) { - temp4 = GT_Utility.toSubscript(mAmount); + temp4 = GTUtility.toSubscript(mAmount); } if ((!single || mAmount > 1) && isMaterialListComplex(this)) { temp1 = "("; diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java index 1e29e2d812..6f73b5467a 100644 --- a/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java +++ b/src/main/java/gregtech/api/objects/overclockdescriber/EUNoOverclockDescriber.java @@ -1,13 +1,13 @@ package gregtech.api.objects.overclockdescriber; -import static gregtech.api.util.GT_Utility.trans; +import static gregtech.api.util.GTUtility.trans; import javax.annotation.ParametersAreNonnullByDefault; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.GTRecipe; +import gregtech.api.util.GTUtility; import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.api.util.OverclockCalculator; import gregtech.nei.RecipeDisplayInfo; @ParametersAreNonnullByDefault @@ -28,13 +28,13 @@ public class EUNoOverclockDescriber extends OverclockDescriber { } @Override - public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { - return GT_OverclockCalculator.ofNoOverclock(recipe); + public OverclockCalculator createCalculator(OverclockCalculator template, GTRecipe recipe) { + return OverclockCalculator.ofNoOverclock(recipe); } @Override public String getTierString() { - return GT_Utility.getColoredTierNameFromTier(tier); + return GTUtility.getColoredTierNameFromTier(tier); } @Override @@ -60,48 +60,48 @@ public class EUNoOverclockDescriber extends OverclockDescriber { } } - protected String getTotalPowerString(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(calculator.getConsumption() * calculator.getDuration()) + " EU"; + protected String getTotalPowerString(OverclockCalculator calculator) { + return GTUtility.formatNumbers(calculator.getConsumption() * calculator.getDuration()) + " EU"; } /** * @return If amperage should be shown on NEI. */ - protected boolean shouldShowAmperage(GT_OverclockCalculator calculator) { + protected boolean shouldShowAmperage(OverclockCalculator calculator) { return amperage != 1; } /** * @return Whole EU/t usage, without tier display. */ - protected String getEUtWithoutTier(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(calculator.getConsumption()) + " EU/t"; + protected String getEUtWithoutTier(OverclockCalculator calculator) { + return GTUtility.formatNumbers(calculator.getConsumption()) + " EU/t"; } /** * @return Whole EU/t usage, with tier display. */ - protected String getEUtWithTier(GT_OverclockCalculator calculator) { - return getEUtWithoutTier(calculator) + GT_Utility.getTierNameWithParentheses(calculator.getConsumption()); + protected String getEUtWithTier(OverclockCalculator calculator) { + return getEUtWithoutTier(calculator) + GTUtility.getTierNameWithParentheses(calculator.getConsumption()); } /** * @return Whole EU/t usage. Also displays voltage tier if it should be shown. */ - protected String getEUtDisplay(GT_OverclockCalculator calculator) { + protected String getEUtDisplay(OverclockCalculator calculator) { return shouldShowAmperage(calculator) ? getEUtWithoutTier(calculator) : getEUtWithTier(calculator); } /** * @return EU/t usage, divided by amperage. With tier display. */ - protected String getVoltageString(GT_OverclockCalculator calculator) { + protected String getVoltageString(OverclockCalculator calculator) { long voltage = computeVoltageForEURate(calculator.getConsumption()); - return GT_Utility.formatNumbers(voltage) + " EU/t" + GT_Utility.getTierNameWithParentheses(voltage); + return GTUtility.formatNumbers(voltage) + " EU/t" + GTUtility.getTierNameWithParentheses(voltage); } - protected String getAmperageString(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(amperage); + protected String getAmperageString(OverclockCalculator calculator) { + return GTUtility.formatNumbers(amperage); } protected long computeVoltageForEURate(long euPerTick) { diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java index 9d53711515..42b459e874 100644 --- a/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java +++ b/src/main/java/gregtech/api/objects/overclockdescriber/EUOverclockDescriber.java @@ -1,17 +1,17 @@ package gregtech.api.objects.overclockdescriber; -import static gregtech.api.enums.GT_Values.V; -import static gregtech.api.util.GT_Utility.trans; +import static gregtech.api.enums.GTValues.V; +import static gregtech.api.util.GTUtility.trans; import javax.annotation.ParametersAreNonnullByDefault; import com.google.common.primitives.Ints; -import gregtech.GT_Mod; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.GTMod; +import gregtech.api.util.GTRecipe; +import gregtech.api.util.GTUtility; import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.api.util.OverclockCalculator; import gregtech.nei.RecipeDisplayInfo; @ParametersAreNonnullByDefault @@ -23,7 +23,7 @@ public class EUOverclockDescriber extends EUNoOverclockDescriber { } @Override - public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + public OverclockCalculator createCalculator(OverclockCalculator template, GTRecipe recipe) { return template.setEUt(Ints.saturatedCast(V[tier] * amperage)); } @@ -38,9 +38,9 @@ public class EUOverclockDescriber extends EUNoOverclockDescriber { if (shouldShowAmperage(recipeInfo.calculator)) { recipeInfo.drawText(trans("154", "Voltage: ") + getVoltageString(recipeInfo.calculator)); } - if (GT_Mod.gregtechproxy.mNEIOriginalVoltage) { + if (GTMod.gregtechproxy.mNEIOriginalVoltage) { EUNoOverclockDescriber originalPower = new EUNoOverclockDescriber(tier, amperage); - GT_OverclockCalculator originalPowerCalculator = GT_OverclockCalculator.ofNoOverclock(recipeInfo.recipe) + OverclockCalculator originalPowerCalculator = OverclockCalculator.ofNoOverclock(recipeInfo.recipe) .calculate(); recipeInfo .drawText(trans("275", "Original usage: ") + originalPower.getEUtDisplay(originalPowerCalculator)); @@ -51,30 +51,30 @@ public class EUOverclockDescriber extends EUNoOverclockDescriber { } @Override - protected String getEUtWithoutTier(GT_OverclockCalculator calculator) { + protected String getEUtWithoutTier(OverclockCalculator calculator) { return decorateWithOverclockLabel(super.getEUtWithoutTier(calculator), calculator); } @Override - protected String getEUtWithTier(GT_OverclockCalculator calculator) { - return this.getEUtWithoutTier(calculator) + GT_Utility.getTierNameWithParentheses(calculator.getConsumption()); + protected String getEUtWithTier(OverclockCalculator calculator) { + return this.getEUtWithoutTier(calculator) + GTUtility.getTierNameWithParentheses(calculator.getConsumption()); } @Override - protected String getVoltageString(GT_OverclockCalculator calculator) { + protected String getVoltageString(OverclockCalculator calculator) { long voltage = computeVoltageForEURate(calculator.getConsumption()); - return decorateWithOverclockLabel(GT_Utility.formatNumbers(voltage) + " EU/t", calculator) - + GT_Utility.getTierNameWithParentheses(voltage); + return decorateWithOverclockLabel(GTUtility.formatNumbers(voltage) + " EU/t", calculator) + + GTUtility.getTierNameWithParentheses(voltage); } - protected String decorateWithOverclockLabel(String s, GT_OverclockCalculator calculator) { + protected String decorateWithOverclockLabel(String s, OverclockCalculator calculator) { if (wasOverclocked(calculator)) { s += " (OC)"; } return s; } - protected boolean wasOverclocked(GT_OverclockCalculator calculator) { + protected boolean wasOverclocked(OverclockCalculator calculator) { return calculator.getPerformedOverclocks() > 0; } } diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java index b570ebcab5..019af073f0 100644 --- a/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java +++ b/src/main/java/gregtech/api/objects/overclockdescriber/FusionOverclockDescriber.java @@ -4,11 +4,11 @@ import javax.annotation.ParametersAreNonnullByDefault; import net.minecraft.util.EnumChatFormatting; -import gregtech.api.enums.GT_Values; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.enums.GTValues; +import gregtech.api.util.GTRecipe; +import gregtech.api.util.GTUtility; import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.api.util.OverclockCalculator; import gregtech.nei.formatter.FusionSpecialValueFormatter; @ParametersAreNonnullByDefault @@ -23,7 +23,7 @@ public class FusionOverclockDescriber extends EUOverclockDescriber { } @Override - public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { + public OverclockCalculator createCalculator(OverclockCalculator template, GTRecipe recipe) { return super.createCalculator(template, recipe) .limitOverclockCount(overclock(recipe.mSpecialValue, recipe.mEUt)) .setEUtIncreasePerOC(getEUtIncreasePerOC()) @@ -40,12 +40,12 @@ public class FusionOverclockDescriber extends EUOverclockDescriber { @Override public String getTierString() { - return GT_Values.TIER_COLORS[tier] + "MK " + getFusionTier() + EnumChatFormatting.RESET; + return GTValues.TIER_COLORS[tier] + "MK " + getFusionTier() + EnumChatFormatting.RESET; } @Override - public boolean canHandle(GT_Recipe recipe) { - byte tier = GT_Utility.getTier(recipe.mEUt); + public boolean canHandle(GTRecipe recipe) { + byte tier = GTUtility.getTier(recipe.mEUt); if (this.tier < tier) { return false; } diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java index 0b253c95fa..9f995e4758 100644 --- a/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java +++ b/src/main/java/gregtech/api/objects/overclockdescriber/OverclockDescriber.java @@ -1,14 +1,14 @@ package gregtech.api.objects.overclockdescriber; -import static gregtech.api.util.GT_Utility.trans; +import static gregtech.api.util.GTUtility.trans; import javax.annotation.ParametersAreNonnullByDefault; -import gregtech.GT_Mod; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.GTMod; +import gregtech.api.util.GTRecipe; +import gregtech.api.util.GTUtility; import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.api.util.OverclockCalculator; import gregtech.nei.RecipeDisplayInfo; /** @@ -45,12 +45,12 @@ public abstract class OverclockDescriber { /** * Creates overclock calculator from given template. This template should be used instead of building from the * ground to avoid issues coming from different caller using different templates, but it's not applicable when using - * {@link GT_OverclockCalculator#ofNoOverclock(GT_Recipe)}. + * {@link OverclockCalculator#ofNoOverclock(GTRecipe)}. * * @param template Calculator that can be used as template. Recipe EU/t and duration are already set. * @param recipe Recipe to calculate. */ - public abstract GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe); + public abstract OverclockCalculator createCalculator(OverclockCalculator template, GTRecipe recipe); /** * Draws info about the energy this object can handle on NEI recipe GUI. @@ -61,7 +61,7 @@ public abstract class OverclockDescriber { if (getDurationTicks(recipeInfo.calculator) <= 0) return; String textToDraw = trans("158", "Time: "); - if (GT_Mod.gregtechproxy.mNEIRecipeSecondMode) { + if (GTMod.gregtechproxy.mNEIRecipeSecondMode) { textToDraw += getDurationStringSeconds(recipeInfo.calculator); if (getDurationSeconds(recipeInfo.calculator) <= 1.0d) { textToDraw += String.format(" (%s)", getDurationStringTicks(recipeInfo.calculator)); @@ -81,26 +81,26 @@ public abstract class OverclockDescriber { * * @return If this object can handle the supplied recipe */ - public boolean canHandle(GT_Recipe recipe) { - byte tier = GT_Utility.getTier(recipe.mEUt); + public boolean canHandle(GTRecipe recipe) { + byte tier = GTUtility.getTier(recipe.mEUt); return this.tier >= tier; } - private int getDurationTicks(GT_OverclockCalculator calculator) { + private int getDurationTicks(OverclockCalculator calculator) { return calculator.getDuration(); } - private double getDurationSeconds(GT_OverclockCalculator calculator) { + private double getDurationSeconds(OverclockCalculator calculator) { return 0.05d * getDurationTicks(calculator); } - private String getDurationStringSeconds(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(getDurationSeconds(calculator)) + GT_Utility.trans("161", " secs"); + private String getDurationStringSeconds(OverclockCalculator calculator) { + return GTUtility.formatNumbers(getDurationSeconds(calculator)) + GTUtility.trans("161", " secs"); } - private String getDurationStringTicks(GT_OverclockCalculator calculator) { - String ticksString = getDurationTicks(calculator) == 1 ? GT_Utility.trans("209.1", " tick") - : GT_Utility.trans("209", " ticks"); - return GT_Utility.formatNumbers(getDurationTicks(calculator)) + ticksString; + private String getDurationStringTicks(OverclockCalculator calculator) { + String ticksString = getDurationTicks(calculator) == 1 ? GTUtility.trans("209.1", " tick") + : GTUtility.trans("209", " ticks"); + return GTUtility.formatNumbers(getDurationTicks(calculator)) + ticksString; } } diff --git a/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java b/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java index 5da64d4028..3a2da01b08 100644 --- a/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java +++ b/src/main/java/gregtech/api/objects/overclockdescriber/SteamOverclockDescriber.java @@ -1,16 +1,16 @@ package gregtech.api.objects.overclockdescriber; -import static gregtech.api.util.GT_Utility.trans; +import static gregtech.api.util.GTUtility.trans; import javax.annotation.ParametersAreNonnullByDefault; import net.minecraft.util.StatCollector; import gregtech.api.enums.SteamVariant; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.GTRecipe; +import gregtech.api.util.GTUtility; import gregtech.api.util.MethodsReturnNonnullByDefault; +import gregtech.api.util.OverclockCalculator; import gregtech.nei.RecipeDisplayInfo; @ParametersAreNonnullByDefault @@ -34,8 +34,8 @@ public class SteamOverclockDescriber extends OverclockDescriber { } @Override - public GT_OverclockCalculator createCalculator(GT_OverclockCalculator template, GT_Recipe recipe) { - return GT_OverclockCalculator.ofNoOverclock(recipe) + public OverclockCalculator createCalculator(OverclockCalculator template, GTRecipe recipe) { + return OverclockCalculator.ofNoOverclock(recipe) .setEUtDiscount(euPerTickMultiplier) .setSpeedBoost(durationMultiplier); } @@ -48,13 +48,13 @@ public class SteamOverclockDescriber extends OverclockDescriber { recipeInfo.drawText(trans("153", "Usage: ") + getSteamUsageString(recipeInfo.calculator)); } - private String getTotalPowerString(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(convertEUToSteam(calculator.getConsumption() * calculator.getDuration())) + private String getTotalPowerString(OverclockCalculator calculator) { + return GTUtility.formatNumbers(convertEUToSteam(calculator.getConsumption() * calculator.getDuration())) + " Steam"; } - private String getSteamUsageString(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(20 * convertEUToSteam(calculator.getConsumption())) + " L/s Steam"; + private String getSteamUsageString(OverclockCalculator calculator) { + return GTUtility.formatNumbers(20 * convertEUToSteam(calculator.getConsumption())) + " L/s Steam"; } private static long convertEUToSteam(long eu) { -- cgit