From ba61cc42a83626b866d4f96808f539b953bbebcc Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 2 Nov 2023 14:12:39 +0100 Subject: [PATCH] quick gordon, the mcgriddle is still on the menu! --- changelog | 16 +++++ .../hbm/blocks/machine/MachineIGenerator.java | 2 + .../com/hbm/commands/CommandRadiation.java | 33 ++++++++++ .../radiation/ChunkRadiationHandler.java | 1 + .../radiation/ChunkRadiationHandler3D.java | 9 +++ .../radiation/ChunkRadiationHandlerBlank.java | 22 ++----- .../radiation/ChunkRadiationHandlerNT.java | 12 ++++ .../ChunkRadiationHandlerSimple.java | 9 +++ .../com/hbm/inventory/OreDictManager.java | 3 + src/main/java/com/hbm/inventory/OreNames.java | 3 +- .../inventory/material/MaterialShapes.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 16 ++--- .../hbm/inventory/recipes/MagicRecipes.java | 18 ++++-- .../inventory/recipes/anvil/AnvilRecipes.java | 2 + src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/machine/ItemMold.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 13 ++++ .../tileentity/machine/TileEntityHadron.java | 10 ++- .../machine/TileEntityMachineIGenerator.java | 3 + .../machine/TileEntityMachineWoodBurner.java | 59 +++++++++++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 4 ++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++ .../hbm/textures/items/mold_wire_dense.png | Bin 0 -> 443 bytes .../hbm/textures/items/mold_wires_dense.png | Bin 0 -> 447 bytes .../assets/hbm/textures/items/wire_dense.png | Bin 0 -> 371 bytes .../hbm/textures/models/machines/igen.png | Bin 2701 -> 2817 bytes 26 files changed, 214 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/hbm/commands/CommandRadiation.java create mode 100644 src/main/resources/assets/hbm/textures/items/mold_wire_dense.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_wires_dense.png create mode 100644 src/main/resources/assets/hbm/textures/items/wire_dense.png diff --git a/changelog b/changelog index 043b6d8a8..562b40a8f 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,20 @@ ## Added * Pigeons +* Wood burner + * Replaces the old combustion generator + * A larger machine, has higher efficiency when burning logs or planks + * Collects ashes at the same rate as ashpits + * Also has an option to burn flammable liquids at 50% efficiency +* `/ntmrad` + * `set` operator can change the radiation amount in the current chunk + * `clear` operator will remove the radiation data from all loaded chunks +* Dense wires + * Can be made in a crucible + * Material cost is equivalent to 1 ingot + * For ease of mass-production, 9-fold molds are also available + * Used to craft hadron magnets, reducing crafting complexity be removing annoying upgrade recipes which make automation more complicated and needlessly inflate the amount of materials required for a magnet tier that isn't even the one that's being made +* Neodymium os now a valid crucible material +* Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate ## Changed * Changed many tool recipes that exclusively used polymer to now also accept bakelite @@ -9,6 +24,7 @@ * 1000mB of red mud now makes one ingot of iron in the coker * Doubled coal bedrock ore's coal output to 8 coal * A new config option now replaces the iron and copper bedrock ores in 528 mode with hematite and malachite +* the industrial generator now has three additional ports on its underside, meaning it is now a lot easier to properly automate all necessary IO ## Fixed * Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java index 8c00aeffb..5f3de0132 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java @@ -72,6 +72,8 @@ public class MachineIGenerator extends BlockDummyable { public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); + this.makeExtra(world, x + dir.offsetX * (o - 2), y, z + dir.offsetZ * (o - 2)); + this.makeExtra(world, x + dir.offsetX * (o - 1), y, z + dir.offsetZ * (o - 1)); this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2)); } diff --git a/src/main/java/com/hbm/commands/CommandRadiation.java b/src/main/java/com/hbm/commands/CommandRadiation.java new file mode 100644 index 000000000..436d7bcc4 --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandRadiation.java @@ -0,0 +1,33 @@ +package com.hbm.commands; + +import com.hbm.handler.radiation.ChunkRadiationManager; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; + +public class CommandRadiation extends CommandBase { + + @Override + public String getCommandName() { + return "ntmrad"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmrad "; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + if(args.length == 1 && "clear".equals(args[0])) { + ChunkRadiationManager.proxy.clearSystem(sender.getEntityWorld()); + } + + if(args.length == 2 && "set".equals(args[0])) { + float amount = (float) this.parseDoubleBounded(sender, args[1], 0D, 100_000D); + ChunkRadiationManager.proxy.setRadiation(sender.getEntityWorld(), sender.getPlayerCoordinates().posX, sender.getPlayerCoordinates().posY, sender.getPlayerCoordinates().posZ, amount); + } + } + +} diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java index 6e53a8838..f351d2a27 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java @@ -17,6 +17,7 @@ public abstract class ChunkRadiationHandler { public abstract void setRadiation(World world, int x, int y, int z, float rad); public abstract void incrementRad(World world, int x, int y, int z, float rad); public abstract void decrementRad(World world, int x, int y, int z, float rad); + public abstract void clearSystem(World world); /* * Proxy'd event handlers diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java index 5c81a416e..30066a91e 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java @@ -109,6 +109,15 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + ThreeDimRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java index c28a69348..76cc31af0 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java @@ -4,20 +4,10 @@ import net.minecraft.world.World; public class ChunkRadiationHandlerBlank extends ChunkRadiationHandler { - @Override - public float getRadiation(World world, int x, int y, int z) { - return 0; - } - - @Override - public void setRadiation(World world, int x, int y, int z, float rad) { } - - @Override - public void incrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void decrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void updateSystem() { } + @Override public float getRadiation(World world, int x, int y, int z) { return 0; } + @Override public void setRadiation(World world, int x, int y, int z, float rad) { } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { } + @Override public void decrementRad(World world, int x, int y, int z, float rad) { } + @Override public void updateSystem() { } + @Override public void clearSystem(World world) { } } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java index c95c180d5..50144d6aa 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java @@ -38,6 +38,18 @@ public class ChunkRadiationHandlerNT extends ChunkRadiationHandler { private static HashMap worldMap = new HashMap(); + @Override + public void clearSystem(World world) { + WorldRadiationData radWorld = worldMap.get(world); + + if(radWorld != null) { + radWorld.data.clear(); + radWorld.activePockets.clear(); + radWorld.dirtyChunks.clear(); + radWorld.dirtyChunks2.clear(); + } + } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { if(!world.blockExists(x, y, z)) { diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java index 72ab84887..161dd5522 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java @@ -116,6 +116,15 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + SimpleRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index d62452c94..4bf6ef68c 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -506,6 +506,7 @@ public class OreDictManager { if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); } } @@ -654,6 +655,7 @@ public class OreDictManager { public String plateCast() { return PLATECAST + mats[0]; } public String plateWelded() { return PLATEWELDED + mats[0]; } public String heavyComp() { return HEAVY_COMPONENT + mats[0]; } + public String wireDense() { return WIREDENSE + mats[0]; } public String billet() { return BILLET + mats[0]; } public String block() { return BLOCK + mats[0]; } public String ore() { return ORE + mats[0]; } @@ -906,6 +908,7 @@ public class OreDictManager { public String plateCast() { return PLATECAST + groupName; } public String plateWelded() { return PLATEWELDED + groupName; } public String heavyComp() { return HEAVY_COMPONENT + groupName; } + public String wireDense() { return WIREDENSE + groupName; } public String billet() { return BILLET + groupName; } public String block() { return BLOCK + groupName; } public String ore() { return ORE + groupName; } diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 9f4efc4e1..4f1584d60 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -16,6 +16,7 @@ public class OreNames { public static final String PLATE = "plate"; public static final String PLATECAST = "plateTriple"; //cast plates are solid plates made from 3 ingots, turns out that's literally just a GT triple plate public static final String PLATEWELDED = "plateSextuple"; + public static final String WIREDENSE = "wireDense"; public static final String BILLET = "billet"; public static final String BLOCK = "block"; public static final String ORE = "ore"; @@ -23,6 +24,6 @@ public class OreNames { public static final String HEAVY_COMPONENT = "componentHeavy"; public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT + ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIREDENSE }; } diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index 12a1f9a9d..df72f9da9 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -18,6 +18,7 @@ public class MaterialShapes { public static final MaterialShapes GEM = new MaterialShapes(INGOT.quantity, "gem"); public static final MaterialShapes CRYSTAL = new MaterialShapes(INGOT.quantity, "crystal"); public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust"); + public static final MaterialShapes DENSEWIRE = new MaterialShapes(INGOT.quantity, "wireDense"); public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 74949b37f..d3613fac6 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -55,7 +55,7 @@ public class Mats { public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE, WELDEDPLATE); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(CASTPLATE); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(DENSEWIRE, CASTPLATE); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D); public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D); @@ -87,21 +87,22 @@ public class Mats { public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST); - public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setShapes(INGOT, BLOCK); public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); //Base metals public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); @@ -114,16 +115,17 @@ public class Mats { //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); - public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK); + public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST); public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT); diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 39fc4c54b..0c4e12f45 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static com.hbm.inventory.OreDictManager.*; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -41,7 +42,7 @@ public class MagicRecipes { public static void register() { recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_u238m2, 1, 1), new ComparableStack(ModItems.ingot_u238m2, 1, 2), new ComparableStack(ModItems.ingot_u238m2, 1, 3))); recipes.add(new MagicRecipe(new ItemStack(ModItems.rod_of_discord), new ComparableStack(Items.ender_pearl), new ComparableStack(Items.blaze_rod), new ComparableStack(ModItems.nugget_euphemium))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack("ingotSteel"), new ComparableStack(ModItems.egg_balefire_shard))); + recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.egg_balefire_shard))); recipes.add(new MagicRecipe(new ItemStack(ModItems.mysteryshovel), new ComparableStack(Items.iron_shovel), new ComparableStack(Items.bone), new ComparableStack(ModItems.ingot_starmetal), new ComparableStack(ModItems.ducttape))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_electronium), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.ingot_dineutronium), new ComparableStack(ModItems.ingot_dineutronium))); @@ -83,13 +84,19 @@ public class MagicRecipes { new ComparableStack(ModBlocks.hadron_coil_chlorophyte), new ComparableStack(ModItems.powder_dineutronium), new ComparableStack(ModItems.plate_desh), - new OreDictStack("dustGold"))); + new OreDictStack(GOLD.dust()))); + + recipes.add(new MagicRecipe(new ItemStack(ModBlocks.hadron_coil_mese), + new ComparableStack(ModBlocks.hadron_coil_chlorophyte), + new OreDictStack(DNT.wireDense()), + new OreDictStack(W.wireDense()), + new OreDictStack(GOLD.wireDense()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_darter), - new OreDictStack("plateSteel"), - new OreDictStack("plateSteel"), + new OreDictStack(STEEL.plate()), + new OreDictStack(STEEL.plate()), new ComparableStack(ModItems.ingot_polymer), - new OreDictStack("plateGold"))); + new OreDictStack(GOLD.plate()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), new ComparableStack(ModItems.plate_polymer), @@ -109,7 +116,6 @@ public class MagicRecipes { public MagicRecipe(ItemStack out, AStack... in) { this.out = out; this.in = Arrays.asList(in); - //Collections.sort(this.in); } public boolean matches(List comps) { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 281d884e3..778b17be4 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -126,6 +126,8 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingMold(16, new ComparableStack(ModItems.casing_9), new ItemStack[] {new ItemStack(ModItems.casing_9)})); smithingRecipes.add(new AnvilSmithingMold(17, new ComparableStack(ModItems.casing_50), new ItemStack[] {new ItemStack(ModItems.casing_50)})); smithingRecipes.add(new AnvilSmithingMold(18, new ComparableStack(ModItems.casing_buckshot), new ItemStack[] {new ItemStack(ModItems.casing_buckshot)})); + smithingRecipes.add(new AnvilSmithingMold(20, new OreDictStack(ALLOY.wireDense(), 1), new OreDictStack("wireDense", 1))); + smithingRecipes.add(new AnvilSmithingMold(21, new OreDictStack(ALLOY.wireDense(), 9), new OreDictStack("wireDense", 9))); smithingRecipes.add(new AnvilSmithingCyanideRecipe()); smithingRecipes.add(new AnvilSmithingRenameRecipe()); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2a28f99d5..4609fed6d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -780,6 +780,7 @@ public class ModItems { public static Item plate_cast; public static Item plate_welded; public static Item heavy_component; + public static Item wire_dense; public static Item part_lithium; public static Item part_beryllium; @@ -3263,6 +3264,7 @@ public class ModItems { plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); + wire_dense = new ItemAutogen(MaterialShapes.DENSEWIRE).setUnlocalizedName("wire_dense").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_dense"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); @@ -6028,6 +6030,7 @@ public class ModItems { GameRegistry.registerItem(wire_gold, wire_gold.getUnlocalizedName()); GameRegistry.registerItem(wire_schrabidium, wire_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(wire_magnetized_tungsten, wire_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(wire_dense, wire_dense.getUnlocalizedName()); //Parts GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 6da8ca650..78e5a8ff1 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -46,8 +46,9 @@ public class ItemMold extends Item { registerMold(new MoldShape( 2, S, "ingot", MaterialShapes.INGOT)); registerMold(new MoldShape( 3, S, "plate", MaterialShapes.PLATE)); registerMold(new MoldWire( 4, S, "wire")); - + registerMold(new MoldShape( 19, S, "plate_cast", MaterialShapes.CASTPLATE)); + registerMold(new MoldShape( 20, S, "wire_dense", MaterialShapes.DENSEWIRE)); registerMold(new MoldMulti( 5, S, "blade", MaterialShapes.INGOT.q(3), Mats.MAT_TITANIUM, new ItemStack(ModItems.blade_titanium), @@ -76,6 +77,7 @@ public class ItemMold extends Item { registerMold(new MoldShape( 10, L, "ingots", MaterialShapes.INGOT, 9)); registerMold(new MoldShape( 11, L, "plates", MaterialShapes.PLATE, 9)); + registerMold(new MoldShape( 21, L, "wires_dense", MaterialShapes.DENSEWIRE, 9)); registerMold(new MoldBlock( 12, L, "block", MaterialShapes.BLOCK)); registerMold(new MoldSingle( 13, L, "pipes", new ItemStack(ModItems.pipes_steel), Mats.MAT_STEEL, MaterialShapes.BLOCK.q(3))); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 624d4ce59..4c7e39863 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -825,14 +825,27 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_advanced_alloy }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_gold }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_TUNGSTEN.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_tungsten }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_MAGTUNG.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_advanced_alloy, 'C', ModBlocks.fusion_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WW", "WW", 'W', ALLOY.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "PGP", "PCP", "PGP", 'G', GOLD.dust(), 'C', ModBlocks.hadron_coil_alloy, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "WG", "GW", 'W', ALLOY.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "G", "C", "G", 'G', ND.dust(), 'C', ModBlocks.hadron_coil_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "WG", "GW", 'W', ND.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_magnetized_tungsten, 'C', ModBlocks.fwatz_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WW", "WW", 'W', MAGTUNG.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_schrabidium, 'C', ModBlocks.hadron_coil_magtung }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WS", "SW", 'W', MAGTUNG.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { " S ", "SCS", " S ", 'S', SBD.dust(), 'C', ModBlocks.hadron_coil_schrabidium }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { "WS", "SW", 'W', SBD.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SNS", "SCS", "SNS", 'S', STAR.ingot(), 'N', ModBlocks.hadron_coil_neodymium, 'C', ModBlocks.hadron_coil_schrabidate }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SW", "WS", 'W', SBD.wireDense(), 'S', STAR.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TCT", "TST", "TCT", 'T', ModItems.coil_tungsten, 'C', ModItems.powder_chlorophyte, 'S', ModBlocks.hadron_coil_starmetal }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TC", "CT", 'T', W.wireDense(), 'C', ModItems.powder_chlorophyte }); addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', ModItems.circuit_gold }); addRecipeAuto(new ItemStack(ModBlocks.hadron_plating, 16), new Object[] { "CC", "CC", 'C', STEEL.plateCast()}); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_blue, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLUE }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 0c87a90b0..4eab1dba4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -81,7 +81,15 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return i == 0 || i == 1; + if(i != 0 && i != 1) return false; + + //makes sure that equal items like the antimatter capsules are spread out evenly + if(slots[0] != null && slots[1] != null && slots[0].getItem() == slots[1].getItem() && slots[0].getItemDamage() == slots[1].getItemDamage()) { + if(i == 0) return slots[1].stackSize - slots[0].stackSize >= 0; + if(i == 1) return slots[0].stackSize - slots[1].stackSize >= 0; + } + + return true; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index f980ca60b..141c16d38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -124,6 +124,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); return new DirPos[] { new DirPos(xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * -2, yCoord - 1, zCoord + dir.offsetZ * -2, ForgeDirection.DOWN), + new DirPos(xCoord + dir.offsetX * -1, yCoord - 1, zCoord + dir.offsetZ * -1, ForgeDirection.DOWN), + new DirPos(xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN), new DirPos(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, dir), }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index ac93421ca..a818bb0ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -15,7 +15,9 @@ import com.hbm.lib.Library; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -24,10 +26,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider { public long power; public static final long maxPower = 100_000; @@ -63,6 +66,11 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.tank.loadTank(3, 4, slots); this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); + for(DirPos pos : getConPos()) { + if(power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + if(!liquidBurn) { if(this.burnTime <= 0) { @@ -121,6 +129,15 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement } } } + + private DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetX, dir.getOpposite()) + }; + } @Override public void networkUnpack(NBTTagCompound nbt) { @@ -190,6 +207,21 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement return slot == 1; } + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; @@ -199,4 +231,29 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 6, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 39f98c28e..2d4834860 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -809,6 +809,7 @@ hbmmat.magnetizedtungsten=Magnetisierter Wolfram hbmmat.malachite=Malachit hbmmat.meteoriciron=Meteoriteneisen hbmmat.mingrade=Minecraft-Kupfer +hbmmat.neodymium=Neodym hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niob hbmmat.obsidian=Obsidian @@ -3394,6 +3395,7 @@ item.wings_murk.name=Trübe Flügel item.wire_advanced_alloy.name=Supraleiter item.wire_aluminium.name=Aluminiumdraht item.wire_copper.name=Kupferdraht +item.wire_dense.name=Dichter %sdraht item.wire_gold.name=Golddraht item.wire_magnetized_tungsten.name=4000K Hochtemperaturensupraleiter item.wire_red_copper.name=Roter Kupferdraht @@ -3468,6 +3470,8 @@ shape.plate=Platte shape.plateTriple=Gussplatte shape.stamp=Stempel shape.wire=Draht +shape.wireDense=Dichter Draht +shape.wiresDense=Dichte Drähte soundCategory.ntmMachines=NTM Maschinen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 85e9a142c..eb2348566 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1459,6 +1459,7 @@ hbmmat.magnetizedtungsten=Magnetized Tungsten hbmmat.malachite=Malachite hbmmat.meteoriciron=Meteoric Iron hbmmat.mingrade=Minecraft Grade Copper +hbmmat.neodymium=Neodymium hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niobium hbmmat.obsidian=Obsidian @@ -4322,6 +4323,7 @@ item.wings_murk.name=Murky Wings item.wire_advanced_alloy.name=Super Conductor item.wire_aluminium.name=Aluminium Wire item.wire_copper.name=Copper Wire +item.wire_dense.name=Dense %s Wire item.wire_gold.name=Gold Wire item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor item.wire_red_copper.name=Red Copper Wire @@ -4409,6 +4411,8 @@ shape.plate=Plate shape.plateTriple=Cast Plate shape.stamp=Press Stamp shape.wire=Wire +shape.wireDense=Dense Wire +shape.wiresDense=Dense Wires soundCategory.ntmMachines=NTM Machines diff --git a/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc03fe36a90ce82e41bd5db58cfe79b0f037fff GIT binary patch literal 443 zcmV;s0Yv_ZP)S6otRcq)m3AAQapPQiKLXSKSq)(ic$h1-kD`_y*!m zguZ}JAh>a7S0Xe}M36$kRV<~DpH9X_NzBwz5zlHk_s*Gf?;Pv;>_j`Z#B&{HQ4C<5 zbL8B5&30_bB%E_Od_rkWzkS3coEHs)VSv)w5bL*(Si~uxQGyL{`!vF@*QiQ~x7UF8 zR~B(<@QG4|z}4e3y_OGvC@bepi#TO44DjnUgU{jDYwR90R|1~vunFt7&$}G}(kwH0 zF^giPWo;BGU!INwMjs&+Aq)}WxeiKes#0zhDWf6;Nv2E(>vL{Hnq^eQ>Oleg&p}T9 z#Q|VC_-%;*ky-*jf5C?D5fY`iyMJKx5f&N9;YyoKYbwHsjyXcUhxN-vvt|9vf#*8( zT0ZC9PO*n_Q=S2!a8RyWHy5XR63&U#lKti(Nv4Vg0lWn-xY8z4OI&HQ(>S0iB-3%g lXOv*|+s9^R|A30H_yR9xu^Vulr3nB4002ovPDHLkV1mwszWe|H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4df12b9f00943cedb19e0bfc253690630a0f77 GIT binary patch literal 447 zcmV;w0YLtVP)xQ_KoAgHZ@Krrcku3WcjV>iA!Z_lQfF9m4*&}1)KaY+ z6PZY1J1&-tW8(#onFQN$vjmw**mwbKB$^F3(^lMvm?jR!6Hr1B#&PC#O@+B|vU_T} zrsD4MG^rq8X1mqM&NWKWGdeJbqk;|q{jP!e%u0Ts)ER8J&@~nPu7R?Zbw3IVaq{~7 z7%#s$2IEQP$L7M>)32Kf?yt_19w>DN+i^h&sVvnTj-YGmp8jD?6NEMQATtT=R^upy z6r)Z>@W4+HY{$jhyH)7)UkJLU;`X8m9z?q-q+>f4VLr3KgY6#3O!{{UeiWi6(CR51 zix9;z1VXY!Dr{mH$GAB=fgkQ(s6q&$={U6hxm<#1$+{RO!-(ijJ1loPZPLAUQ!!kct9YL_-BV zT`DBYS8&5tM%ZMv+SN{l#`DJyW8lAZzu(ugEZ5Lq1C8V8WrQ1EmIZ4q0CimpH#|*~ zS7?j@;C8zSfD=HT=RBWJ0M6$#`{BOtKN6Q^xxQX65dlaksj7-B%RYw3aby?0YfT)- z-+Ep_7&gXuxIYpor4E6xG$cJ7Vv;0>3$!P2R35=JO&DX)TBDSrZCi{n%=3KMIs95D zfHX}-(=@9?-s8XD@9kq#tO*OD^h{#pGM5xG z_hRT`wW2j1Y8e$}u00spTz-3=UccXezrTLx^*ZOg&Uu~lIiJgUzdxVrZZ5~T>!wWY%(6DY#Y!2=>`S0H!_0Bmb@z@R;13ui}MFYfkM2Y)XP zx_ZFMJbJ?Rk-k>_j`lo@Q#l9q{wm4yy=5`y{-c?m^P8uR?2akl?N0IAKk(Ei&Mx04 z$eWm_y?1gl0Im2VD89NVs%p+1>+-V9fTMTKLN_|hnDgLkgd6ENX_gjcsayKaxyh5MK9X!Q<9hDHr(5pGI6sVICRHR$;ur{^RMg?Y{ z*H1jt_;HrkV$be~Tddf@)>LbgK`WS=1se5COc1K6_Td^z>ry~^DiT5CWK@SlB!Qbk}#IEEUqB3u=MaTMLP4cbc2b?jr0x3bxjCT;hz%#!NN5r zWtpq%XX6^_Crt)!Mf(HJi;uPU#a6r0lzsSPWbJrKwJbr;BnItg&hNN$aIA#UM=+WzDd zVDvzhY`eZ62#q}0f}B)ctN*>YelYQYP`GcuIWc_5g4v#_1f==hWOQ^o@TLnI7llrQ z6&~ZZ54`b1Hm&Nf-5!0uQl}gxM#jq`W11P zMJN*{6OVw?`D*)(z6ok0Bxd1j4(r29U(u}FrZ3keVK;AYTodU;!By4OQ#(6bTD;RI zN}Goc7p+5?uvg`{$?SOZpG++AxDzW^IV*|0FjgCHS4CHgERrn!P{w$M(Q8+%a2_D zkoIRnTi(jAo1eVTANWz0RHO6Lu``PdCUYLHU`<@c@=o5T&*>4DCfz5e=i;JA z^7Iu4k9|iscqI`C+U{{mx7!(+j3?xKUNzeL>&PcG5IYirU2hJ-R>d-3iNAEfv_Mii zGnIbIqx*7{L03PgcQ#kDEZFr{dus>KwjOJR=a0O>r6S?pBIMY%UeISnu+-cZx7^8C zyNXMeK0ZF&QSo}B|G}WA2CRk$=>%NXW?;?W{ZrHlxI$Z9L51L1wS9BuaW($@*Y&KC zkQmX5gEj*5=5Xf8d+`EcJXh|Sv2%&sTQRqJb~uW4TcO&1T-+x|jNHSuP9W?XSZ?{* zI&X;wl(@!Ul)-YXn|>{xH+Wj?ft!QzN010xpan}pk^oi2Z7e4uUCAU6r^o^+=&|p| z7S~)c!g9VyD_P9BN%nTRKVr!CXd>{S2r8ZVt1e3d^cHMRtodxcaw7jC!aW~(zsP(- zg@ zNq(yA_~aevtpWF`k&@E7S&s07CZ2rjc#V<6PQJTssjN(L%A)HY1gZI*iZnPMXw&iDw# zh{UyJWbTXcnVC!qB|19#t4(�R$$?^pJXXrTp8cFJC&0FCLLe?q1S#s>mw+b9X)z zm3w^&ywF1?($D9cA+2k6hR58zQsP z&5exXm-7_E$Aect&pFAekZvCdzoU{C`eYsF)6e50Qj<%GRvh=dC)t&vGAf0sV6yts5T437R{OaP) zq;8xV6t{9=uOQ8z2JQLL4@0j$>I0R8elL`=gMTMs$C8rwL2jvTxhKKkj3N4C0(T_M z@AVVE#WaG|{}_vGLg|>`CHW;^l4|~e6UqAjT=tLN zT^6tVPO;8+Xu(17vC&xBrxZ{AfB6D4UP$P2tsAOom0vN536JCy8%E)q_&O{QyuPKy z%qX5lz$vjCR5``X!M(LV=_3b<>>9oM;ywIZ6ASk@>3|HSKu82Y{0Sa6=L@Hn;-Y@| zWuMNwXsyNe)R;@)8wmG*Z!VRPUYHM_YfNkX4_i6*|EAqTa}OgBQYaKj0<2)5(&1_s zMy;e+PpJOJDqB&zaA(g}#CNzn{gmV7?QNgbr|Vrah+!VBosKb+p1%UmNDa_f6YUNT z4tDmNUJ+k~Rfe?eetaa$Ck?ynrsb2-H)6Hx7u)p)M>L-rsLspG-^yR&$&sp*BaBr~ z)T|F*zY7IF3uA+-H4xW=zlSB;8Ur6!knnfUXYU||4Ew<#&-)WG&!Iq``0Q&U6;`Nr zg7g|)R-k~ifaTxg&AKFm)viw zcAqUUx%Hp09!I|EGt_|@qV3MDgB-*#q#p|eeg1x!(?&<($%V1R)DC$abwe}^fA9ur z4T;#hV{jh{aMO^m(v)Z3VjpazJt~7j;ddrDy+{^s-{Nnq>Ii0CG%x2CZ|>}rT|r#q zyXG_=68*(XejChc&=Y*Ij!Ev@ZpkKDM^e$KjbUfb=M7jSRf_1y$I0YW+F7vy57LF7 zRn4b9!{d8rMEdhp8Y3ZQZm7QDlW|=%Le8Dd5Bi~!aNOv!H>sAn8qE8ntgP%6hvWWy z_bf!(CQ@}nrZOBE#h2pDByCnsW+R}IOHkU2t9F6A@QzK%V+NCYTbAFt0y9dAp!OME zY5BHM+}G%GB-~ahC6cNMx7AJ=!To9RqvT!C;b=I-tr6=wfuX5yFTfqGEIO(KE>x5L zA4QmUvTel{Ia){%N3dDq3upPB_|$3kU{P+NlDBE!hD4_CgtV`Bvt4>O(;8yBp0za} suRI)Ew3hU^o=H%7d|<;eQk=A=k)h#2f&~kgBsDGIaKr^uYv)h?HzAHXZ~y=R literal 2701 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