diff options
Diffstat (limited to 'src/main/java/gregtech/api')
4 files changed, 68 insertions, 58 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IGlobalWirelessEnergy.java b/src/main/java/gregtech/api/interfaces/IGlobalWirelessEnergy.java index 3ba59a54a2..a4b3129bc3 100644 --- a/src/main/java/gregtech/api/interfaces/IGlobalWirelessEnergy.java +++ b/src/main/java/gregtech/api/interfaces/IGlobalWirelessEnergy.java @@ -42,23 +42,23 @@ public interface IGlobalWirelessEnergy { String GlobalEnergyTeamFileName = "GlobalEnergyTeamMap"; // User 0 will join user 1 by calling this function. They will share the same energy network. - default void JoinUserNetwork(String user_uuid_0, String user_uuid_1) { + default void joinUserNetwork(String user_uuid_0, String user_uuid_1) { GlobalEnergyTeam.put(user_uuid_0, user_uuid_1); } // --- Save data for global energy network -- - default void SaveGlobalEnergyInfo(String world_name) { + default void saveGlobalEnergyInfo(String world_name) { // Replace chars because of bug in forge that doesn't understand MC converts . to _ upon world creation. world_name = world_name.replace('.','_'); - CreateStorageIfNotExist(world_name); - SaveGlobalEnergyMap(world_name); - SaveGlobalEnergyName(world_name); - SaveGlobalEnergyTeam(world_name); + createStorageIfNotExist(world_name); + saveGlobalEnergyMap(world_name); + saveGlobalEnergyName(world_name); + saveGlobalEnergyTeam(world_name); } - default void SaveGlobalEnergyMap(String world_name) { + default void saveGlobalEnergyMap(String world_name) { try { List<String> lines = GlobalEnergy.entrySet() .stream() @@ -73,7 +73,7 @@ public interface IGlobalWirelessEnergy { } } - default void SaveGlobalEnergyName(String world_name) { + default void saveGlobalEnergyName(String world_name) { try { List<String> lines = GlobalEnergyName.entrySet() .stream() @@ -88,7 +88,7 @@ public interface IGlobalWirelessEnergy { } } - default void SaveGlobalEnergyTeam(String world_name) { + default void saveGlobalEnergyTeam(String world_name) { try { List<String> lines = GlobalEnergyTeam.entrySet() .stream() @@ -105,17 +105,17 @@ public interface IGlobalWirelessEnergy { // --- Load data for global energy network --- - default void LoadGlobalEnergyInfo(World world) { + default void loadGlobalEnergyInfo(World world) { // Replace chars because of bug in forge that doesn't understand MC converts . to _ upon world creation. String world_name = world.getWorldInfo().getWorldName().replace('.','_'); PrivateGlobalEnergy.WorldName = world_name; - CreateStorageIfNotExist(world_name); - LoadGlobalEnergyMap(world); - LoadGlobalEnergyName(world); + createStorageIfNotExist(world_name); + loadGlobalEnergyMap(world); + loadGlobalEnergyName(world); LoadGlobalEnergyTeam(world); } - default void LoadGlobalEnergyMap(World world) { + default void loadGlobalEnergyMap(World world) { try { Path path = Paths.get("./saves/" + world.getWorldInfo().getWorldName() + "/" + GlobalEnergyFolderName + "/" + GlobalEnergyMapFileName + ".txt").toAbsolutePath(); @@ -133,7 +133,7 @@ public interface IGlobalWirelessEnergy { } } - default void LoadGlobalEnergyName(World world) { + default void loadGlobalEnergyName(World world) { try { Path path = Paths.get("./saves/" + world.getWorldInfo().getWorldName() + "/" + GlobalEnergyFolderName + "/" + GlobalEnergyNameFileName + ".txt").toAbsolutePath(); @@ -167,7 +167,7 @@ public interface IGlobalWirelessEnergy { // ------------------ - default void CreateStorageIfNotExist(String world_name) { + default void createStorageIfNotExist(String world_name) { Path folder_path = Paths.get("./saves/" + world_name + "/" + GlobalEnergyFolderName).toAbsolutePath(); // Create folder for storing global energy network info. @@ -195,15 +195,15 @@ public interface IGlobalWirelessEnergy { // has changed their username and adjust the maps accordingly. This should be called infrequently. Ideally on first // tick of a machine being placed only. - default void StrongCheckOrAddUser(EntityPlayer user) { - StrongCheckOrAddUser(user.getUniqueID().toString(), user.getDisplayName()); + default void strongCheckOrAddUser(EntityPlayer user) { + strongCheckOrAddUser(user.getUniqueID().toString(), user.getDisplayName()); } - default void StrongCheckOrAddUser(UUID user_uuid, String user_name) { - StrongCheckOrAddUser(user_uuid.toString(), user_name); + default void strongCheckOrAddUser(UUID user_uuid, String user_name) { + strongCheckOrAddUser(user_uuid.toString(), user_name); } - default void StrongCheckOrAddUser(String user_uuid, String user_name) { + default void strongCheckOrAddUser(String user_uuid, String user_name) { // Check if the user has a team. Add them if not. GlobalEnergyTeam.putIfAbsent(user_uuid, user_uuid); @@ -233,7 +233,7 @@ public interface IGlobalWirelessEnergy { PrivateGlobalEnergy.EnergyAdds += 1; if (PrivateGlobalEnergy.EnergyAddsBeforeSaving >= PrivateGlobalEnergy.EnergyAdds) { - SaveGlobalEnergyInfo(PrivateGlobalEnergy.WorldName); + saveGlobalEnergyInfo(PrivateGlobalEnergy.WorldName); PrivateGlobalEnergy.EnergyAdds = 0; } @@ -276,12 +276,12 @@ public interface IGlobalWirelessEnergy { // ------------------------------------------------------------------------------------ - default BigInteger GetUserEU(String user_uuid) { + default BigInteger getUserEU(String user_uuid) { return GlobalEnergy.getOrDefault(GlobalEnergyTeam.getOrDefault(user_uuid, user_uuid), BigInteger.ZERO); } // This overwrites the EU in the network. Only use this if you are absolutely sure you know what you are doing. - default void SetUserEU(String user_uuid, BigInteger EU) { + default void setUserEU(String user_uuid, BigInteger EU) { GlobalEnergy.put(GlobalEnergyTeam.get(user_uuid), EU); } @@ -289,11 +289,11 @@ public interface IGlobalWirelessEnergy { return GlobalEnergyName.getOrDefault(GlobalEnergyTeam.getOrDefault(uuid, ""), ""); } - default String GetUUIDFromUsername(String username) { + default String getUUIDFromUsername(String username) { return GlobalEnergyTeam.getOrDefault(GlobalEnergyName.getOrDefault(username, ""), ""); } - default void ClearMaps() { + default void clearMaps() { // Do not use this unless you are 100% certain you know what you are doing. GlobalEnergy.clear(); GlobalEnergyName.clear(); diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IWirelessEnergyHatchInformation.java b/src/main/java/gregtech/api/interfaces/tileentity/IWirelessEnergyHatchInformation.java new file mode 100644 index 0000000000..fb6492d894 --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/tileentity/IWirelessEnergyHatchInformation.java @@ -0,0 +1,19 @@ +package gregtech.api.interfaces.tileentity; + +import static gregtech.api.enums.GT_Values.V; + +public interface IWirelessEnergyHatchInformation { + + // This interface is solely for usage by wireless hatches/dynamos. + + // Ticks between energy additions to the hatch. For a dynamo this is how many ticks between energy being consumed + // and added to the global energy map. + long ticks_between_energy_addition = 100L * 20L; + + // Total number of energy additions this multi can store before it is full. + long number_of_energy_additions = 4L; + + default long totalStorage(long tier_eu_per_tick) { + return tier_eu_per_tick * ticks_between_energy_addition * number_of_energy_additions; + } +} diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java index 7f59b13669..bfc9b2118e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java @@ -4,21 +4,18 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.IGlobalWirelessEnergy; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.IWirelessEnergyHatchInformation; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import java.math.BigInteger; import static gregtech.GT_Mod.gregtechproxy; import static gregtech.api.enums.GT_Values.*; -public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_Dynamo implements IGlobalWirelessEnergy { +public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_Dynamo implements IGlobalWirelessEnergy, IWirelessEnergyHatchInformation { - private static final long ticks_between_energy_addition = 100L*20L; - private static final long number_of_energy_additions = 2L; - private final BigInteger eu_transferred_per_operation = BigInteger.valueOf(2L * V[mTier] * ticks_between_energy_addition); private String owner_uuid; private String owner_name; @@ -82,16 +79,14 @@ public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_D @Override public long maxEUStore() { - return V[mTier] * number_of_energy_additions * ticks_between_energy_addition; + return totalStorage(V[mTier]); } @Override public String[] getDescription() { - String uuid = gregtechproxy.getThePlayer().getUniqueID().toString(); return new String[] { -// "Transmits " + EnumChatFormatting.RED + GT_Utility.formatNumbers(eu_transferred_per_operation/V[mTier]) + EnumChatFormatting.GRAY + " A of " + TIER_COLORS[mTier] + VN[mTier] + EnumChatFormatting.GRAY + " through trans-dimensional space every " + EnumChatFormatting.RED + GT_Utility.formatNumbers(ticks_between_energy_addition) + EnumChatFormatting.GRAY + " ticks.", - EnumChatFormatting.GRAY + "Does not connect to wires.", - EnumChatFormatting.GRAY + "There is currently " + EnumChatFormatting.RED + GT_Utility.formatNumbers(GlobalEnergy.getOrDefault(uuid, BigInteger.ZERO)) + EnumChatFormatting.GRAY + " EU in your network.", + EnumChatFormatting.GRAY + "Stores energy globally in a network, up to 2^(2^31) EU.", + EnumChatFormatting.GRAY + "Does not connect to wires. This block accepts EU into the network.", AuthorColen }; } @@ -131,15 +126,15 @@ public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_D // Attempt to load in map from file. if (GlobalEnergy.size() == 0) - IGlobalWirelessEnergy.super.LoadGlobalEnergyInfo(aBaseMetaTileEntity.getWorld()); + loadGlobalEnergyInfo(aBaseMetaTileEntity.getWorld()); - IGlobalWirelessEnergy.super.StrongCheckOrAddUser(owner_uuid, owner_name); + strongCheckOrAddUser(owner_uuid, owner_name); } // Every ticks_between_energy_addition ticks change the energy content of the machine. if (aTick % ticks_between_energy_addition == 0L) { - IGlobalWirelessEnergy.super.addEUToGlobalEnergyMap(owner_uuid, getEUVar()); + addEUToGlobalEnergyMap(owner_uuid, getEUVar()); setEUVar(0L); } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java index cd999fce4e..84e6ed7e51 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java @@ -4,6 +4,7 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.IGlobalWirelessEnergy; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.IWirelessEnergyHatchInformation; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; @@ -15,16 +16,14 @@ import java.math.BigInteger; import static gregtech.GT_Mod.gregtechproxy; import static gregtech.api.enums.GT_Values.*; -public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_Energy implements IGlobalWirelessEnergy { +public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_Energy implements IGlobalWirelessEnergy, IWirelessEnergyHatchInformation { + + private final BigInteger eu_transferred_per_operation = BigInteger.valueOf(V[mTier] * ticks_between_energy_addition); + private final long eu_transferred_per_operation_long = eu_transferred_per_operation.longValue(); - private static final long ticks_between_energy_addition = 100L*20L; - private static final long number_of_energy_additions = 2L; - private final BigInteger eu_transferred_per_operation = BigInteger.valueOf(2L * V[mTier] * ticks_between_energy_addition); - private final long eu_transferred_per_operation_long = eu_transferred_per_operation.longValueExact(); private String owner_uuid; private String owner_name; - public GT_MetaTileEntity_Wireless_Hatch(String aName, byte aTier, String[] aDescription, ITexture[][][] aTextures) { super(aName, aTier, 0, aDescription, aTextures); } @@ -35,11 +34,9 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En @Override public String[] getDescription() { - String uuid = gregtechproxy.getThePlayer().getUniqueID().toString(); return new String[] { -// "Receives " + EnumChatFormatting.RED + GT_Utility.formatNumbers(eu_transferred_per_operation.divide(BigInteger.valueOf(V[mTier]))) + EnumChatFormatting.GRAY + " A of " + TIER_COLORS[mTier] + VN[mTier] + EnumChatFormatting.GRAY + " through trans-dimensional space every " + EnumChatFormatting.RED + GT_Utility.formatNumbers(ticks_between_energy_addition) + EnumChatFormatting.GRAY + " ticks.", - EnumChatFormatting.GRAY + "Does not connect to wires.", - EnumChatFormatting.GRAY + "There is currently " + EnumChatFormatting.RED + GT_Utility.formatNumbers(IGlobalWirelessEnergy.super.GetUserEU(uuid)) + EnumChatFormatting.GRAY + " EU in your network.", + EnumChatFormatting.GRAY + "Stores energy globally in a network, up to 2^(2^31) EU.", + EnumChatFormatting.GRAY + "Does not connect to wires. This block withdraws EU from the network.", AuthorColen }; } @@ -96,11 +93,9 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En @Override public long maxEUStore() { - return V[mTier] * number_of_energy_additions * ticks_between_energy_addition; + return totalStorage(V[mTier]); } - public long getEUCapacity() { return 40000L; } - @Override public long maxAmperesIn() { return 2; @@ -137,11 +132,11 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En // Attempt to load in map from file. if (GlobalEnergy.size() == 0) - IGlobalWirelessEnergy.super.LoadGlobalEnergyInfo(aBaseMetaTileEntity.getWorld()); + loadGlobalEnergyInfo(aBaseMetaTileEntity.getWorld()); - IGlobalWirelessEnergy.super.StrongCheckOrAddUser(owner_uuid, owner_name); + strongCheckOrAddUser(owner_uuid, owner_name); - if (IGlobalWirelessEnergy.super.addEUToGlobalEnergyMap(owner_uuid, eu_transferred_per_operation.negate())) + if (addEUToGlobalEnergyMap(owner_uuid, eu_transferred_per_operation.negate())) setEUVar(eu_transferred_per_operation_long); } @@ -153,11 +148,12 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En long total_eu = this.getBaseMetaTileEntity().getStoredEU(); // Can the machine store the EU being added? - if (total_eu + eu_transferred_per_operation_long <= maxEUStore()) { + long new_eu_storage = total_eu + eu_transferred_per_operation_long; + if (new_eu_storage <= maxEUStore()) { // Attempt to remove energy from the network and add it to the internal buffer of the machine. - if (IGlobalWirelessEnergy.super.addEUToGlobalEnergyMap(owner_uuid, eu_transferred_per_operation.negate())) { - setEUVar(total_eu + eu_transferred_per_operation_long); + if (addEUToGlobalEnergyMap(owner_uuid, eu_transferred_per_operation.negate())) { + setEUVar(new_eu_storage); } } } |