diff options
author | Connor-Colenso <52056774+Connor-Colenso@users.noreply.github.com> | 2022-07-31 07:23:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-31 13:23:05 +0700 |
commit | b9fea1be881fa1e21d3385f8c378dca636f885bf (patch) | |
tree | d5d1d46a42554ef9c80f04147e5ec2a82a68f782 /src/main/java/gregtech/common | |
parent | 445003d9f1b9f57fd8dc1b597be5ba529e558202 (diff) | |
download | GT5-Unofficial-b9fea1be881fa1e21d3385f8c378dca636f885bf.tar.gz GT5-Unofficial-b9fea1be881fa1e21d3385f8c378dca636f885bf.tar.bz2 GT5-Unofficial-b9fea1be881fa1e21d3385f8c378dca636f885bf.zip |
Better Endgame Wireless EU (#1144)
* Basis of changes
* Adjust voltage tiers to remove OpV
* Better textures, move IDs around etc.
* Format cleanup
* Log level change
* Dynamos
* More stuff
* More OpV purging.
* Fixes
* Remove wire support.
* Textures
* IDs
* Update hatch/dynamo
* New number formatter
* Add default method
* Add save method on world close
* Cleanup old comments/debug
* Author
* Author
* Author
* Author
* Restructuring of code
* Unit tests
* More unit tests + cleanup
* Fix ID shift + add spares
Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech/common')
4 files changed, 95 insertions, 27 deletions
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 26ed6f155c..f15970a965 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -26,6 +26,7 @@ import gregtech.api.enums.SubTag; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.enums.ToolDictNames; import gregtech.api.interfaces.IBlockOnWalkOver; +import gregtech.api.interfaces.IGlobalWirelessEnergy; import gregtech.api.interfaces.IProjectileItem; import gregtech.api.interfaces.internal.IGT_Mod; import gregtech.api.interfaces.internal.IThaumcraftCompat; @@ -139,7 +140,7 @@ import static gregtech.api.enums.GT_Values.debugEntityCramming; import static gregtech.api.util.GT_Util.LAST_BROKEN_TILEENTITY; -public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { +public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IGlobalWirelessEnergy { private static final EnumSet<OreGenEvent.GenerateMinable.EventType> PREVENTED_ORES = EnumSet.of(OreGenEvent.GenerateMinable.EventType.COAL, OreGenEvent.GenerateMinable.EventType.IRON, OreGenEvent.GenerateMinable.EventType.GOLD, OreGenEvent.GenerateMinable.EventType.DIAMOND, OreGenEvent.GenerateMinable.EventType.REDSTONE, OreGenEvent.GenerateMinable.EventType.LAPIS, @@ -903,6 +904,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public void onServerStopping() { File tSaveDirectory = getSaveDirectory(); GregTech_API.sWirelessRedstone.clear(); + IGlobalWirelessEnergy.super.SaveGlobalEnergyInfo(mUniverse.getWorldInfo().getWorldName()); + IGlobalWirelessEnergy.super.ClearMaps(); if (tSaveDirectory != null) { try { for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) { @@ -916,6 +919,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } this.mUniverse = null; //GT_ChunkAssociatedData.saveAll(); todo: figure out if this is needed + } @SubscribeEvent diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java index 2a108aca71..9cf4029934 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java @@ -89,7 +89,7 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem { if (tTileEntity.getOutputAmperage() > 1L) { aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(tTileEntity.getOutputAmperage()) + EnumChatFormatting.GRAY); } - aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + GT_Utility.formatNumbers(tTileEntity.getEUCapacity()) + EnumChatFormatting.GRAY); + aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + GT_Utility.formatNumbers(tTileEntity.getEUCapacity()) + EnumChatFormatting.GRAY + " EU"); } if (GregTech_API.METATILEENTITIES[tDamage] instanceof GT_MetaTileEntity_QuantumTank || GregTech_API.METATILEENTITIES[tDamage] instanceof GT_MetaTileEntity_SuperTank) { if (aStack.hasTagCompound() && aStack.stackTagCompound.hasKey("mFluid")) { diff --git a/src/main/java/gregtech/common/misc/GT_Command.java b/src/main/java/gregtech/common/misc/GT_Command.java index 4f6f77ea70..a91a696d37 100644 --- a/src/main/java/gregtech/common/misc/GT_Command.java +++ b/src/main/java/gregtech/common/misc/GT_Command.java @@ -3,20 +3,21 @@ package gregtech.common.misc; import com.gtnewhorizon.structurelib.StructureLib; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; +import gregtech.api.interfaces.IGlobalWirelessEnergy; import gregtech.api.objects.GT_ChunkManager; import gregtech.common.GT_Pollution; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.math.BigInteger; +import java.util.*; import java.util.stream.Stream; -public final class GT_Command extends CommandBase { +public final class GT_Command extends CommandBase implements IGlobalWirelessEnergy { @Override public String getCommandName() { @@ -27,8 +28,9 @@ public final class GT_Command extends CommandBase { public String getCommandUsage(ICommandSender sender) { return "Usage: gt <subcommand>. Valid subcommands are: toggle, chunks, pollution."; } + private void printHelp(ICommandSender sender) { - sender.addChatMessage(new ChatComponentText("Usage: gt <toggle|chunks|pollution>")); + sender.addChatMessage(new ChatComponentText("Usage: gt <toggle|chunks|pollution|global_energy_add|global_energy_set|global_energy_join>")); sender.addChatMessage(new ChatComponentText("\"toggle D1\" - toggles general.Debug (D1)")); sender.addChatMessage(new ChatComponentText("\"toggle D2\" - toggles general.Debug2 (D2)")); sender.addChatMessage(new ChatComponentText("\"toggle debugCleanroom\" - toggles cleanroom debug log")); @@ -47,15 +49,21 @@ public final class GT_Command extends CommandBase { "\"pollution <amount>\" - adds the <amount> of the pollution to the current chunk, " + "\n if <amount> isnt specified, will add" + GT_Mod.gregtechproxy.mPollutionSmogLimit + "gibbl." )); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + " --- Global wireless EU controls ---")); + sender.addChatMessage(new ChatComponentText("Allows you to set the amount of EU in a users wireless network.")); + sender.addChatMessage(new ChatComponentText("Usage: global_energy_set [Name] [EU]")); + sender.addChatMessage(new ChatComponentText("Allows you to add EU to a users wireless network. Also accepts negative numbers.")); + sender.addChatMessage(new ChatComponentText("Usage: global_energy_add [Name] [EU]")); + sender.addChatMessage(new ChatComponentText("Allows you to join two users together into one network. Can be undone by writing the users name twice.")); + sender.addChatMessage(new ChatComponentText("Usage: global_energy_join [User joining] [User to join]")); } @Override public List addTabCompletionOptions(ICommandSender sender, String[] ss) { List<String> l = new ArrayList<>(); - Stream<String> keywords = Arrays.stream(new String[]{"toggle", "chunks"}); String test = ss.length == 0 ? "" : ss[0].trim(); - if (ss.length == 0 || ss.length == 1 && (test.isEmpty() || Stream.of("toggle", "chunks", "pollution").anyMatch(s -> s.startsWith(test)))) { - Stream.of("toggle", "chunks", "pollution") + if (ss.length == 0 || ss.length == 1 && (test.isEmpty() || Stream.of("toggle", "chunks", "pollution", "global_energy_add", "global_energy_set", "global_energy_join").anyMatch(s -> s.startsWith(test)))) { + Stream.of("toggle", "chunks", "pollution", "global_energy_add", "global_energy_set", "global_energy_join") .filter(s -> test.isEmpty() || s.startsWith(test)) .forEach(l::add); } else if (test.equals("toggle")) { @@ -64,7 +72,6 @@ public final class GT_Command extends CommandBase { "debugOrevein", "debugSmallOres", "debugStones", "debugChunkloaders", "debugMulti", "debugWorldData") .filter(s -> test1.isEmpty() || s.startsWith(test1)) .forEach(l::add); - } return l; } @@ -75,6 +82,10 @@ public final class GT_Command extends CommandBase { printHelp(sender); return; } + + String username; + String uuid; + switch (strings[0]) { case "toggle": if (strings.length < 2) { @@ -103,20 +114,79 @@ public final class GT_Command extends CommandBase { GT_ChunkManager.printTickets(); sender.addChatMessage(new ChatComponentText("Forced chunks logged to GregTech.log")); break; - case "pollution": { + case "pollution": ChunkCoordinates coordinates = sender.getPlayerCoordinates(); int amount = (strings.length < 2) ? GT_Mod.gregtechproxy.mPollutionSmogLimit : Integer.parseInt(strings[1]); GT_Pollution.addPollution(sender - .getEntityWorld() - .getChunkFromBlockCoords( - coordinates.posX, - coordinates.posZ - ), - amount + .getEntityWorld() + .getChunkFromBlockCoords( + coordinates.posX, + coordinates.posZ + ), + amount ); break; - } + case "global_energy_add": + + username = strings[1]; + uuid = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username); + + String EU_String = strings[2]; + + // Usage is /gt global_energy_add username EU + + if (uuid.equals("")) { + sender.addChatMessage(new ChatComponentText("User " + username + " has no global energy network.")); + break; + } + + if (addEUToGlobalEnergyMap(uuid, new BigInteger(EU_String))) + sender.addChatMessage(new ChatComponentText("Successfully added " + EU_String + "EU to the global energy network of " + username + ".")); + else + sender.addChatMessage(new ChatComponentText("Failed to add " + EU_String + "EU to the global energy map of " + username + + ". Insufficient energy in network. " + username + "currently has " + IGlobalWirelessEnergy.super.GetUserEU(uuid).toString() + " in their network.")); + + break; + case "global_energy_set": + + // Usage is /gt global_energy_set username EU + + username = strings[1]; + uuid = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username); + + String EU_String_0 = strings[2]; + + IGlobalWirelessEnergy.super.SetUserEU(uuid, new BigInteger(EU_String_0)); + break; + + case "global_energy_join": + + // Usage is /gt global_energy_join username_of_you username_to_join + + String username_0 = strings[1]; + String username_1 = strings[2]; + + String uuid_0 = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username_0); + String uuid_1 = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username_1); + + if (uuid_0.equals("")) { + sender.addChatMessage(new ChatComponentText("User " + username_0 + " has no global energy network.")); + break; + } + + if (uuid_0.equals("")) { + sender.addChatMessage(new ChatComponentText("User " + username_1 + " has no global energy network.")); + break; + } + + IGlobalWirelessEnergy.super.JoinUserNetwork(uuid_0, uuid_1); + + sender.addChatMessage(new ChatComponentText("Success! " + username_0 + " has joined " + username_1 + ".")); + sender.addChatMessage(new ChatComponentText("To undo this simply join your own network again with /gt global_energy_join " + username_0 + " " + username_0 + ".")); + + break; default: + sender.addChatMessage(new ChatComponentText( EnumChatFormatting.RED + "Invalid command/syntax detected.")); printHelp(sender); } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java index 3f7405931b..6c88d7c203 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java @@ -31,8 +31,7 @@ import java.util.List; import java.util.ArrayList; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static gregtech.api.enums.GT_Values.TIER_COLORS; -import static gregtech.api.enums.GT_Values.VN; +import static gregtech.api.enums.GT_Values.*; import static gregtech.api.enums.Textures.BlockIcons.*; import static gregtech.api.util.GT_StructureUtility.ofCoil; import static gregtech.api.util.GT_StructureUtility.ofHatchAdderOptional; @@ -152,12 +151,7 @@ public class GT_MetaTileEntity_PlasmaForge extends GT_MetaTileEntity_AbstractMul .addInfo("Takes " + EnumChatFormatting.RED + GT_Utility.formatNumbers(max_efficiency_time_in_ticks/(3600*20)) + EnumChatFormatting.GRAY + " hours of continuous run time to fully breach dimensional") .addInfo("boundaries and achieve maximum efficiency. This reduces fuel") .addInfo("consumption by up to " + EnumChatFormatting.RED + GT_Utility.formatNumbers(100*maximum_discount) + "%" + EnumChatFormatting.GRAY + ". Supports overclocking beyond MAX voltage.") - .addInfo("Author: " + - EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + EnumChatFormatting.ITALIC + EnumChatFormatting.UNDERLINE + "C" + - EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + EnumChatFormatting.ITALIC + EnumChatFormatting.UNDERLINE + "o" + - EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + EnumChatFormatting.ITALIC + EnumChatFormatting.UNDERLINE + "l" + - EnumChatFormatting.DARK_AQUA + EnumChatFormatting.BOLD + EnumChatFormatting.ITALIC + EnumChatFormatting.UNDERLINE + "e" + - EnumChatFormatting.DARK_PURPLE + EnumChatFormatting.BOLD + EnumChatFormatting.ITALIC + EnumChatFormatting.UNDERLINE + "n") + .addInfo(AuthorColen) .addSeparator() .beginStructureBlock(33, 24, 33, false) .addStructureInfo("DTPF Structure is too complex! See schematic for details.") |