From 42f6778b86aded3b58c62713431b01ae6e23052c Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 5 Mar 2022 11:45:05 -0800 Subject: [PATCH 1/5] aaaaaa i can't be bothered --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 + .../blocks/machine/CustomPartAssembler.java | 121 ++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 2 +- .../items/bomb/ItemCustomNukeComponent.java | 61 +++++++++ .../java/com/hbm/main/CraftingManager.java | 3 +- .../TileEntityCustomPartAssembler.java | 23 ++++ 6 files changed, 213 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java create mode 100644 src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8fde28704..85f8752fa 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -883,6 +883,8 @@ public class ModBlocks { public static Block machine_powerrtg; public static Block machine_radiolysis; + public static Block custom_part_assembler; + public static Block machine_well; public static Block oil_pipe; public static final int guiID_machine_well = 40; @@ -1815,6 +1817,8 @@ public class ModBlocks { machine_powerrtg = new MachineMiniRTG(Material.iron).setBlockName("machine_powerrtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_polonium"); machine_radiolysis = new MachineRadiolysis(Material.iron).setBlockName("machine_radiolysis").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + custom_part_assembler = new CustomPartAssembler(Material.iron).setBlockName("custom_part_assembler").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo"); rf_cable = new BlockRFCable(Material.iron).setBlockName("rf_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rf_cable_icon"); @@ -2860,6 +2864,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); + GameRegistry.registerBlock(custom_part_assembler, custom_part_assembler.getUnlocalizedName()); GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName()); GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java b/src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java new file mode 100644 index 000000000..090f2eebe --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java @@ -0,0 +1,121 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityCustomPartAssembler; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class CustomPartAssembler extends BlockContainer { + + public CustomPartAssembler(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int type) { + return new TileEntityCustomPartAssembler(); + } + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + private IIcon iconBottom; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":block_steel_machine"); + this.iconTop = reg.registerIcon(RefStrings.MODID + ":block_steel"); + //this.blockIcon = reg.registerIcon(RefStrings.MODID + ":custom_part_assembler_side"); + //this.iconTop = reg.registerIcon(RefStrings.MODID + ":custom_part_assembler_top"); + this.iconBottom = reg.registerIcon(RefStrings.MODID + ":block_steel"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + switch(side) { + case 0: + return iconBottom; + case 1: + return iconTop; + default: + return blockIcon; + } + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return true; + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int i) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof ISidedInventory) { + + ISidedInventory sidedinv = (ISidedInventory) te; + + if(sidedinv != null) { + for(int i1 = 0; i1 < sidedinv.getSizeInventory(); ++i1) { + ItemStack itemstack = sidedinv.getStackInSlot(i1); + + if(itemstack != null) { + float f = world.rand.nextFloat() * 0.8F + 0.1F; + float f1 = world.rand.nextFloat() * 0.8F + 0.1F; + float f2 = world.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = world.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) world.rand.nextGaussian() * f3; + entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) world.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, b); + } + } + + super.breakBlock(world, x, y, z, b, i); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ca2ce4839..7a729d872 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1815,7 +1815,7 @@ public class ModItems { public static Item n2_charge; public static Item egg_balefire_shard; public static Item egg_balefire; - + public static Item custom_tnt; public static Item custom_nuke; public static Item custom_hydro; diff --git a/src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java b/src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java new file mode 100644 index 000000000..a55b21493 --- /dev/null +++ b/src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java @@ -0,0 +1,61 @@ +package com.hbm.items.bomb; + +import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumBombType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class ItemCustomNukeComponent extends Item { + + //Use getItemDamage() for the boolean type + public void writeToNBT(ItemStack stack, EnumBombType stage, float value, float multiplier) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setByte("stage", (byte)stage.ordinal()); + stack.stackTagCompound.setFloat("value", value); + stack.stackTagCompound.setFloat("multiplier", multiplier); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote) { + player.addChatComponentMessage(new ChatComponentText("eat this, you gay pony").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + } + + return stack; + } + + private IIcon secondaryIcon; + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + + if(getHasSubtypes()) { + secondaryIcon = reg.registerIcon(this.getIconString() + ".secondary"); + } + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + + if(meta == 1 && secondaryIcon != null) { + return this.secondaryIcon; + } else { + return this.itemIcon; + } + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9a26dad9d..b20e373a0 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -270,7 +270,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); - + addRecipeAuto(new ItemStack(ModBlocks.custom_part_assembler), new Object[] { "HBH", "STD", "PCP", 'H', ModItems.coil_tungsten, 'B', ItemBattery.getFullBattery(ModItems.battery_advanced), 'S', ModItems.screwdriver, 'T', ModBlocks.machine_armor_table, 'D', ModItems.hand_drill, 'P', ModItems.plate_steel, 'C', ModItems.circuit_copper }); + addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 1), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java new file mode 100644 index 000000000..f44f015ac --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java @@ -0,0 +1,23 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityCustomPartAssembler extends TileEntityMachineBase { + + public TileEntityCustomPartAssembler() { + super(13); //12 input, 1 output + } + + @Override + public String getName() { + return "container.customPartAssembler"; + } + + @Override + public void updateEntity() { + + } + + + +} From 9c0cc8080504804f24574347d05cf924ff1db62f Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 9 Mar 2022 19:38:10 -0800 Subject: [PATCH 2/5] very, very preliminary recipe stuff --- .../inventory/recipes/CustomNukeRecipes.java | 56 +++++++++++++++++++ .../TileEntityCustomPartAssembler.java | 21 ++++++- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java diff --git a/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java new file mode 100644 index 000000000..977617081 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java @@ -0,0 +1,56 @@ +package com.hbm.inventory.recipes; + +import java.util.HashMap; + +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; + +public class CustomNukeRecipes { + + //a bit hacky, i'll probably just straight copy that system bob has yet to make + public static float getQuantity(String key) { + if(key.startsWith("nugget")) { + return 1; + } else if(key.startsWith("billet")) { + return 6; + } else if(key.startsWith("ingot")) { + return 9; + } else if(key.startsWith("block")) { + return 81; + } else { + return 0; + } + } + + private static boolean containsMatch(DictFrame frame, String key) { + String[] mats = frame.anys(); + + for(String mat : mats) { + if(mat.contains(key)) { + return true; + } + } + + return false; + } + + public static float nonPredetonatingFissile(String key) { + float multiplier = getQuantity(key); + if(multiplier == 0) { + return 0; + } + + if(containsMatch(OreDictManager.U233, key)) { + return 1.05f * multiplier; + } else if(containsMatch(OreDictManager.U235, key)) { + return 1.0f * multiplier; + } else if(containsMatch(OreDictManager.NP237, key)) { + return 0.95f * multiplier; + } else if(containsMatch(OreDictManager.SA326, key)) { + return 10.0f * multiplier; + } + + return 0; + } + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java index f44f015ac..e9508d324 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java @@ -2,8 +2,12 @@ package com.hbm.tileentity.machine; import com.hbm.tileentity.TileEntityMachineBase; -public class TileEntityCustomPartAssembler extends TileEntityMachineBase { +import net.minecraft.item.ItemStack; +public class TileEntityCustomPartAssembler extends TileEntityMachineBase { + + private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; + public TileEntityCustomPartAssembler() { super(13); //12 input, 1 output } @@ -12,6 +16,21 @@ public class TileEntityCustomPartAssembler extends TileEntityMachineBase { public String getName() { return "container.customPartAssembler"; } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i <= 11; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return slot_io; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 12; + } @Override public void updateEntity() { From a7fd72f76fc4796db6c1f9e6866b5d30edc1ea01 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 10 Mar 2022 17:10:37 -0800 Subject: [PATCH 3/5] Preliminary stuff gonna have to make a gui and do packet fuckery for this, shouldn't be too hard --- .../com/hbm/inventory/OreDictManager.java | 6 ++- .../inventory/recipes/CustomNukeRecipes.java | 23 ++++++++++- .../TileEntityCustomPartAssembler.java | 38 ++++++++++++++++--- 3 files changed, 59 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e7378d2cf..994771b2c 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -490,7 +490,11 @@ public class OreDictManager { public DictFrame(String... mats) { this.mats = mats; } - + + public String[] getMaterials() { + return this.mats; + } + /* * Quick access methods to grab ore names for recipes. */ diff --git a/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java index 977617081..1994dc23b 100644 --- a/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java @@ -22,8 +22,29 @@ public class CustomNukeRecipes { } } + /** + * Checks if the OreDict key fits the material, but not the form + * @param frame DictFrame + * @param key Input key + */ private static boolean containsMatch(DictFrame frame, String key) { - String[] mats = frame.anys(); + String[] mats = frame.getMaterials(); + + for(String mat : mats) { + if(key.contains(mat)) { + return true; + } + } + + return false; + } + + /** + * Checks if the OreDict key fits the material and the form thereof. + * @param mats Ore names + * @param key Input key + */ + private static boolean containsMatch(String[] mats, String key) { for(String mat : mats) { if(mat.contains(key)) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java index e9508d324..60073a416 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java @@ -3,13 +3,18 @@ package com.hbm.tileentity.machine; import com.hbm.tileentity.TileEntityMachineBase; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public class TileEntityCustomPartAssembler extends TileEntityMachineBase { - private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; + //Save the item and the mode for automation purposes + public byte item; + public byte mode; + + private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; public TileEntityCustomPartAssembler() { - super(13); //12 input, 1 output + super(17); //16 input, 1 output } @Override @@ -19,7 +24,7 @@ public class TileEntityCustomPartAssembler extends TileEntityMachineBase { @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return i <= 11; + return i <= 15; } @Override @@ -29,14 +34,35 @@ public class TileEntityCustomPartAssembler extends TileEntityMachineBase { @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return i == 12; + return i == 16; } - + @Override public void updateEntity() { - + /* + * String troll = "trolling"; + * + * System.Console.WriteLine($"We do a little bit of {troll}!"); + */ } + @Override + public boolean canUpdate() { + return false; + } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + item = nbt.getByte("item"); + mode = nbt.getByte("mode"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setByte("item", item); + nbt.setByte("mode", mode); + } } From c47072ab1d984f0e60cb1bb381d9da354087eddc Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 18 Mar 2022 19:22:05 -0700 Subject: [PATCH 4/5] Revert "Merge remote-tracking branch 'origin/master'" This reverts commit e62144b627398e8e2fa39be3d686ee963fa631c1. --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 - .../blocks/machine/CustomPartAssembler.java | 121 ------------------ .../com/hbm/inventory/OreDictManager.java | 6 +- .../inventory/recipes/CustomNukeRecipes.java | 77 ----------- src/main/java/com/hbm/items/ModItems.java | 2 +- .../items/bomb/ItemCustomNukeComponent.java | 61 --------- .../java/com/hbm/main/CraftingManager.java | 3 +- .../TileEntityCustomPartAssembler.java | 68 ---------- 8 files changed, 3 insertions(+), 340 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java delete mode 100644 src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java delete mode 100644 src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index df6586940..aee4890f9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -888,8 +888,6 @@ public class ModBlocks { public static Block machine_powerrtg; public static Block machine_radiolysis; - public static Block custom_part_assembler; - public static Block machine_well; public static Block oil_pipe; public static final int guiID_machine_well = 40; @@ -1827,8 +1825,6 @@ public class ModBlocks { machine_powerrtg = new MachineMiniRTG(Material.iron).setBlockName("machine_powerrtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_polonium"); machine_radiolysis = new MachineRadiolysis(Material.iron).setBlockName("machine_radiolysis").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - custom_part_assembler = new CustomPartAssembler(Material.iron).setBlockName("custom_part_assembler").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo"); rf_cable = new BlockRFCable(Material.iron).setBlockName("rf_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rf_cable_icon"); @@ -2880,7 +2876,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); - GameRegistry.registerBlock(custom_part_assembler, custom_part_assembler.getUnlocalizedName()); GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName()); GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java b/src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java deleted file mode 100644 index 090f2eebe..000000000 --- a/src/main/java/com/hbm/blocks/machine/CustomPartAssembler.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityCustomPartAssembler; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class CustomPartAssembler extends BlockContainer { - - public CustomPartAssembler(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int type) { - return new TileEntityCustomPartAssembler(); - } - - @SideOnly(Side.CLIENT) - private IIcon iconTop; - private IIcon iconBottom; - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister reg) { - this.blockIcon = reg.registerIcon(RefStrings.MODID + ":block_steel_machine"); - this.iconTop = reg.registerIcon(RefStrings.MODID + ":block_steel"); - //this.blockIcon = reg.registerIcon(RefStrings.MODID + ":custom_part_assembler_side"); - //this.iconTop = reg.registerIcon(RefStrings.MODID + ":custom_part_assembler_top"); - this.iconBottom = reg.registerIcon(RefStrings.MODID + ":block_steel"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - - switch(side) { - case 0: - return iconBottom; - case 1: - return iconTop; - default: - return blockIcon; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - return true; - } else { - return true; - } - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block b, int i) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof ISidedInventory) { - - ISidedInventory sidedinv = (ISidedInventory) te; - - if(sidedinv != null) { - for(int i1 = 0; i1 < sidedinv.getSizeInventory(); ++i1) { - ItemStack itemstack = sidedinv.getStackInSlot(i1); - - if(itemstack != null) { - float f = world.rand.nextFloat() * 0.8F + 0.1F; - float f1 = world.rand.nextFloat() * 0.8F + 0.1F; - float f2 = world.rand.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = world.rand.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) world.rand.nextGaussian() * f3; - entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) world.rand.nextGaussian() * f3; - world.spawnEntityInWorld(entityitem); - } - } - } - - world.func_147453_f(x, y, z, b); - } - } - - super.breakBlock(world, x, y, z, b, i); - } -} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 25ad52d3b..e70a3fe3f 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -515,11 +515,7 @@ public class OreDictManager { public DictFrame(String... mats) { this.mats = mats; } - - public String[] getMaterials() { - return this.mats; - } - + /* * Quick access methods to grab ore names for recipes. */ diff --git a/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java deleted file mode 100644 index 1994dc23b..000000000 --- a/src/main/java/com/hbm/inventory/recipes/CustomNukeRecipes.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hbm.inventory.recipes; - -import java.util.HashMap; - -import com.hbm.inventory.OreDictManager; -import com.hbm.inventory.OreDictManager.DictFrame; - -public class CustomNukeRecipes { - - //a bit hacky, i'll probably just straight copy that system bob has yet to make - public static float getQuantity(String key) { - if(key.startsWith("nugget")) { - return 1; - } else if(key.startsWith("billet")) { - return 6; - } else if(key.startsWith("ingot")) { - return 9; - } else if(key.startsWith("block")) { - return 81; - } else { - return 0; - } - } - - /** - * Checks if the OreDict key fits the material, but not the form - * @param frame DictFrame - * @param key Input key - */ - private static boolean containsMatch(DictFrame frame, String key) { - String[] mats = frame.getMaterials(); - - for(String mat : mats) { - if(key.contains(mat)) { - return true; - } - } - - return false; - } - - /** - * Checks if the OreDict key fits the material and the form thereof. - * @param mats Ore names - * @param key Input key - */ - private static boolean containsMatch(String[] mats, String key) { - - for(String mat : mats) { - if(mat.contains(key)) { - return true; - } - } - - return false; - } - - public static float nonPredetonatingFissile(String key) { - float multiplier = getQuantity(key); - if(multiplier == 0) { - return 0; - } - - if(containsMatch(OreDictManager.U233, key)) { - return 1.05f * multiplier; - } else if(containsMatch(OreDictManager.U235, key)) { - return 1.0f * multiplier; - } else if(containsMatch(OreDictManager.NP237, key)) { - return 0.95f * multiplier; - } else if(containsMatch(OreDictManager.SA326, key)) { - return 10.0f * multiplier; - } - - return 0; - } - -} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d3d28ebd8..3960a4489 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1818,7 +1818,7 @@ public class ModItems { public static Item n2_charge; public static Item egg_balefire_shard; public static Item egg_balefire; - + public static Item custom_tnt; public static Item custom_nuke; public static Item custom_hydro; diff --git a/src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java b/src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java deleted file mode 100644 index a55b21493..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemCustomNukeComponent.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.items.bomb; - -import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumBombType; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class ItemCustomNukeComponent extends Item { - - //Use getItemDamage() for the boolean type - public void writeToNBT(ItemStack stack, EnumBombType stage, float value, float multiplier) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setByte("stage", (byte)stage.ordinal()); - stack.stackTagCompound.setFloat("value", value); - stack.stackTagCompound.setFloat("multiplier", multiplier); - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(!world.isRemote) { - player.addChatComponentMessage(new ChatComponentText("eat this, you gay pony").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - } - - return stack; - } - - private IIcon secondaryIcon; - - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister reg) { - super.registerIcons(reg); - - if(getHasSubtypes()) { - secondaryIcon = reg.registerIcon(this.getIconString() + ".secondary"); - } - } - - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int meta) { - - if(meta == 1 && secondaryIcon != null) { - return this.secondaryIcon; - } else { - return this.itemIcon; - } - } -} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index e936e4831..ab51cbad6 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -271,8 +271,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); - addRecipeAuto(new ItemStack(ModBlocks.custom_part_assembler), new Object[] { "HBH", "STD", "PCP", 'H', ModItems.coil_tungsten, 'B', ItemBattery.getFullBattery(ModItems.battery_advanced), 'S', ModItems.screwdriver, 'T', ModBlocks.machine_armor_table, 'D', ModItems.hand_drill, 'P', ModItems.plate_steel, 'C', ModItems.circuit_copper }); - + addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 1), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java deleted file mode 100644 index 60073a416..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomPartAssembler.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.tileentity.TileEntityMachineBase; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class TileEntityCustomPartAssembler extends TileEntityMachineBase { - - //Save the item and the mode for automation purposes - public byte item; - public byte mode; - - private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; - - public TileEntityCustomPartAssembler() { - super(17); //16 input, 1 output - } - - @Override - public String getName() { - return "container.customPartAssembler"; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return i <= 15; - } - - @Override - public int[] getAccessibleSlotsFromSide(int side) { - return slot_io; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return i == 16; - } - - @Override - public void updateEntity() { - /* - * String troll = "trolling"; - * - * System.Console.WriteLine($"We do a little bit of {troll}!"); - */ - } - - @Override - public boolean canUpdate() { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - item = nbt.getByte("item"); - mode = nbt.getByte("mode"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setByte("item", item); - nbt.setByte("mode", mode); - } - -} From e69f403f156a7cc5280c509fa4702cbdeb70de02 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 3 Apr 2022 08:42:54 -0700 Subject: [PATCH 5/5] radiolysis buff --- .../tileentity/machine/TileEntityMachineRadiolysis.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 4bcbed6c4..02a497dc7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -33,7 +33,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer { - //TODO: Render file + resource locations + itemrenderlibrary + clientproxy, gui texture, further recipes public long power; public static final int maxPower = 1000000; @@ -127,8 +126,10 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement tanks[0].setType(10, 11, slots); setupTanks(); - if(heat > 0) { - if(heat >= 100 && worldObj.getTotalWorldTime() % 30 == 0) + if(heat > 100) { + int crackTime = (int) Math.min(-0.1 * (heat - 100) + 30, 5); + + if(worldObj.getTotalWorldTime() % crackTime == 0) crack(); if(heat >= 200 && worldObj.getTotalWorldTime() % 100 == 0)