diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index acb2c44b5..f6cc996a9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -295,6 +295,19 @@ public class ModBlocks { public static Block steel_scaffold; public static Block steel_grate; + public static Block deco_pipe; + public static Block deco_pipe_rusted; + public static Block deco_pipe_green; + public static Block deco_pipe_green_rusted; + public static Block deco_pipe_rim; + public static Block deco_pipe_rim_rusted; + public static Block deco_pipe_rim_green; + public static Block deco_pipe_rim_green_rusted; + public static Block deco_pipe_quad; + public static Block deco_pipe_quad_rusted; + public static Block deco_pipe_quad_green; + public static Block deco_pipe_quad_green_rusted; + public static Block broadcaster_pc; public static Block geiger; @@ -1267,6 +1280,19 @@ public class ModBlocks { steel_scaffold = new DecoBlock(Material.iron).setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); @@ -2092,6 +2118,18 @@ public class ModBlocks { GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName()); GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName()); GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe, deco_pipe.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rusted, deco_pipe_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_green, deco_pipe_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_green_rusted, deco_pipe_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim, deco_pipe_rim.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_rusted, deco_pipe_rim_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_green, deco_pipe_rim_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_green_rusted, deco_pipe_rim_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad, deco_pipe_quad.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_rusted, deco_pipe_quad_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_green, deco_pipe_quad_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_green_rusted, deco_pipe_quad_green_rusted.getUnlocalizedName()); GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockPipe.java b/src/main/java/com/hbm/blocks/generic/BlockPipe.java new file mode 100644 index 000000000..852f89b0d --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPipe.java @@ -0,0 +1,76 @@ +package com.hbm.blocks.generic; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockPipe extends Block { + + @SideOnly(Side.CLIENT) + private IIcon sideIcon; + private String sideString; + public int rType = 0; //because registering either new renderer classes or making new block classes is a pain in the ass + + public BlockPipe(Material mat, String tex, int rType) { + super(mat); + this.sideString = tex; + this.rType = rType; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.sideIcon = iconRegister.registerIcon(sideString); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.blockIcon : (side == 0 ? this.blockIcon : this.sideIcon); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + int j1 = meta & 3; + byte b0 = 0; + + switch(side) { + case 0: + case 1: + b0 = 0; + break; + case 2: + case 3: + b0 = 8; + break; + case 4: + case 5: + b0 = 4; + } + + return j1 | b0; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java index 86a8cf119..25936cbfb 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -19,6 +19,8 @@ public abstract class RBMKBase extends BlockDummyable { protected RBMKBase() { super(Material.iron); + this.setHardness(3F); + this.setResistance(30F); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java index b5bdefd98..a7a18c655 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java @@ -17,6 +17,8 @@ public class RBMKConsole extends BlockDummyable { public RBMKConsole() { super(Material.iron); + this.setHardness(3F); + this.setResistance(30F); } @Override diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index d127501dc..ee9bbdeda 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -104,7 +104,7 @@ public class MineralRecipes { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "nuggetUranium238", "nuggetUranium238" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "tinyU238", "tinyU238" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 3), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_neptunium }); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "nuggetNeptunium", "nuggetNeptunium", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "nuggetNeptunium237", "nuggetNeptunium237", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "tinyNp237", "tinyNp237", "tinyU238", "tinyU238", "tinyU238", "tinyU238" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_mox_fuel, 3), new Object[] { ModItems.billet_u238, ModItems.billet_u235, ModItems.billet_pu_mix }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_mox_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "nuggetUranium238", "nuggetUranium238", "nuggetUranium235", "nuggetUranium235" })); @@ -342,9 +342,9 @@ public class MineralRecipes { //GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "tinyU235", "tinyU235", "tinyU235", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238" })); //GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 1), new Object[] { "tinyPu238", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu240", "tinyPu240", "tinyPu240" })); //GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_mox_fuel, 1), new Object[] { "tinyU235", "tinyU235", "tinyU235", "tinyU238", "tinyU238", "tinyPu238", "tinyPu239", "tinyPu239", "tinyPu239" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_schrabidium_fuel, 1), new Object[] { "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetNeptunium", "nuggetNeptunium", "nuggetNeptunium", ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_hes, 1), new Object[] { "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetNeptunium", "nuggetNeptunium", ModItems.nugget_beryllium, ModItems.nugget_beryllium })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_les, 1), new Object[] { "nuggetSchrabidium", "nuggetNeptunium", "nuggetNeptunium", "nuggetNeptunium", "nuggetNeptunium", ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_schrabidium_fuel, 1), new Object[] { "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetNeptunium237", "nuggetNeptunium237", "nuggetNeptunium237", ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_hes, 1), new Object[] { "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetSchrabidium", "nuggetNeptunium237", "nuggetNeptunium237", ModItems.nugget_beryllium, ModItems.nugget_beryllium })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_les, 1), new Object[] { "nuggetSchrabidium", "nuggetNeptunium237", "nuggetNeptunium237", "nuggetNeptunium237", "nuggetNeptunium237", ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_pu_mix, 1), new Object[] { "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPluonium240", "nuggetPluonium240", "nuggetPluonium240" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_pu_mix, 1), new Object[] { "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu240", "tinyPu240", "tinyPu240" })); } diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index 9a164c6ff..370ed079a 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -269,7 +269,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 5), new OreDictStack("plateSteel", 8), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.ingot_polymer, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack("ingotSteel", 4), new OreDictStack("dustSulfur", 12), new OreDictStack("dustLead", 12), new OreDictStack("ingotRedCopperAlloy", 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new ComparableStack(ModItems.ingot_polymer, 4), new OreDictStack("dustCobalt", 12), new OreDictStack("dustLithium", 12), new ComparableStack(ModItems.ingot_advanced_alloy, 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack("ingotDesh", 4), new ComparableStack(ModItems.powder_neptunium, 12), new ComparableStack(ModItems.powder_schrabidium, 12), new ComparableStack(ModItems.ingot_schrabidium, 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack("ingotDesh", 4), new OreDictStack("dustNeptunium237", 12), new ComparableStack(ModItems.powder_schrabidium, 12), new ComparableStack(ModItems.ingot_schrabidium, 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new ComparableStack(ModItems.ingot_dineutronium, 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new ComparableStack(ModItems.ingot_combine_steel, 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack("ingotSteel", 2), new OreDictStack("plateSteel", 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 5d29c45ce..90175ef0c 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -145,7 +145,7 @@ public class OreDictManager { OreDictionary.registerOre("dustNiter", ModItems.niter); OreDictionary.registerOre("dustSaltpeter", ModItems.niter); OreDictionary.registerOre("dustLead", ModItems.powder_lead); - OreDictionary.registerOre("dustNeptunium", ModItems.powder_neptunium); + OreDictionary.registerOre("dustNeptunium237", ModItems.powder_neptunium); OreDictionary.registerOre("dustPolonium", ModItems.powder_polonium); OreDictionary.registerOre("dustAsbestos", ModItems.powder_asbestos); OreDictionary.registerOre("dustPhosphorus", ModItems.powder_fire); @@ -270,7 +270,7 @@ public class OreDictManager { OreDictionary.registerOre("blockUranium233", ModBlocks.block_u233); OreDictionary.registerOre("blockUranium235", ModBlocks.block_u235); OreDictionary.registerOre("blockUranium238", ModBlocks.block_u238); - OreDictionary.registerOre("blockNeptunium", ModBlocks.block_neptunium); + OreDictionary.registerOre("blockNeptunium237", ModBlocks.block_neptunium); OreDictionary.registerOre("blockPolonium", ModBlocks.block_polonium); OreDictionary.registerOre("blockPlutonium", ModBlocks.block_plutonium); OreDictionary.registerOre("blockPlutonium238", ModBlocks.block_pu238); diff --git a/src/main/java/com/hbm/inventory/container/ContainerRBMKBoiler.java b/src/main/java/com/hbm/inventory/container/ContainerRBMKBoiler.java index 64031fb09..732f403c1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerRBMKBoiler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerRBMKBoiler.java @@ -40,6 +40,6 @@ public class ContainerRBMKBoiler extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return rbmk.isUseableByPlayer(player); + return true; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerRBMKControl.java b/src/main/java/com/hbm/inventory/container/ContainerRBMKControl.java index cb8f826d6..a0c59ffd8 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerRBMKControl.java +++ b/src/main/java/com/hbm/inventory/container/ContainerRBMKControl.java @@ -28,18 +28,11 @@ public class ContainerRBMKControl extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - return null; - } - - return var3; + return null; } @Override public boolean canInteractWith(EntityPlayer player) { - return rbmk.isUseableByPlayer(player); + return true; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerRBMKControlAuto.java b/src/main/java/com/hbm/inventory/container/ContainerRBMKControlAuto.java index 92b020bc9..76649025e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerRBMKControlAuto.java +++ b/src/main/java/com/hbm/inventory/container/ContainerRBMKControlAuto.java @@ -25,21 +25,14 @@ public class ContainerRBMKControlAuto extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); } } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - return null; - } - - return var3; + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) { + return null; } @Override public boolean canInteractWith(EntityPlayer player) { - return rbmk.isUseableByPlayer(player); + return true; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerRBMKRod.java b/src/main/java/com/hbm/inventory/container/ContainerRBMKRod.java index 2056fa0df..48724764c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerRBMKRod.java +++ b/src/main/java/com/hbm/inventory/container/ContainerRBMKRod.java @@ -57,6 +57,6 @@ public class ContainerRBMKRod extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return rbmk.isUseableByPlayer(player); + return true; } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bca4ad219..a0a728067 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -19,6 +19,7 @@ import com.hbm.items.weapon.ItemMissile.*; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.creativetab.CreativeTabs; @@ -3188,6 +3189,7 @@ public class ModItems { .setYield(100000000D) .setStats(100, 20) .setMeltingPoint(2000) + .setNeutronTypes(NType.FAST, NType.FAST) .addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men"); rbmk_fuel_mox = new ItemRBMKRod("Mixed LEU & LEP Oxide") @@ -3196,19 +3198,19 @@ public class ModItems { .setMeltingPoint(2000) .addRadiation(ItemHazard.mox * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox"); - rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-236") + rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-326") .setYield(100000000D) .setStats(100) .setMeltingPoint(2000) .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les"); - rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-236") + rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-326") .setYield(100000000D) .setStats(100) .setMeltingPoint(2000) .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes"); - rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-236") + rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-326") .setYield(100000000D) .setStats(100) .setMeltingPoint(2000) diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 62b09ff04..904c9e322 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -192,7 +192,7 @@ public class ItemRBMKRod extends ItemHazard { * @return the amount of reactivity yielded, unmodified by xenon */ public double reactivityFunc(double flux) { - return Math.log10(flux + 1) * funcEnd / 100D; + return Math.log10(flux + 1) * funcEnd * 0.1D; } /** diff --git a/src/main/java/com/hbm/items/special/ItemCell.java b/src/main/java/com/hbm/items/special/ItemCell.java index e7f9222c2..c04f802fb 100644 --- a/src/main/java/com/hbm/items/special/ItemCell.java +++ b/src/main/java/com/hbm/items/special/ItemCell.java @@ -12,48 +12,42 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class ItemCell extends Item { - + @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if(world.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) instanceof BlockCrashedBomb) - { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) { + + if(world.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) instanceof BlockCrashedBomb) { Random rand = new Random(); int i = rand.nextInt(100); - if(i == 0) - { - if (!world.isRemote) - { - ((BlockCrashedBomb)world.getBlock(p_77648_4_, p_77648_5_, p_77648_6_)).explode(world, p_77648_4_, p_77648_5_, p_77648_6_); - } - } else if(i < 90) - { - //if (!world.isRemote) - { - player.inventory.consumeInventoryItem(ModItems.cell_empty); + + if(i == 0) { + if(!world.isRemote) { + ((BlockCrashedBomb) world.getBlock(p_77648_4_, p_77648_5_, p_77648_6_)).explode(world, p_77648_4_, p_77648_5_, p_77648_6_); + } + } else if(i < 90) { + if(!world.isRemote) { + player.inventory.consumeInventoryItem(ModItems.cell_empty); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_antimatter))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_antimatter, 1, 0), false); - } - } + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_antimatter))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_antimatter, 1, 0), false); + } + } } else { - //if (!world.isRemote) - { - player.inventory.consumeInventoryItem(ModItems.cell_empty); + if(!world.isRemote) { + player.inventory.consumeInventoryItem(ModItems.cell_empty); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_anti_schrabidium))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_anti_schrabidium, 1, 0), false); - } - } + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_anti_schrabidium))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_anti_schrabidium, 1, 0), false); + } + } } - + + player.inventoryContainer.detectAndSendChanges(); ContaminationUtil.applyRadDirect(player, 50F); - + return true; } return false; - } + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 7fe932dec..085d0d5e2 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -542,6 +542,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderChain()); RenderingRegistry.registerBlockHandler(new RenderMirror()); RenderingRegistry.registerBlockHandler(new RenderGrate()); + RenderingRegistry.registerBlockHandler(new RenderPipe()); RenderingRegistry.registerBlockHandler(new RenderRBMKRod()); RenderingRegistry.registerBlockHandler(new RenderRBMKReflector()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 0b4791d8f..1204a9c06 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -269,7 +269,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.factory_core_advanced), new Object[] { "BLB", "SHS", "BLB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', "blockSulfur", 'L', "blockLead", 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.factory_core_advanced), new Object[] { "BSB", "LHL", "BSB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', "blockSulfur", 'L', "blockLead", 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', "dustCoal", 'T', ModItems.bolt_tungsten })); + GameRegistry.addRecipe(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', ModItems.ingot_graphite, 'T', ModItems.bolt_tungsten }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', "dustDesh", 'T', ModItems.arc_electrode })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', "plateSteel", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', "ingotSteel" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, ModItems.circuit_targeting_tier3 }); @@ -351,6 +351,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModBlocks.tile_lab, 4), new Object[] { "CBC", "CBC", "CBC", 'C', Items.brick, 'B', ModItems.ingot_asbestos }); GameRegistry.addRecipe(new ItemStack(ModBlocks.tile_lab_cracked, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab }); GameRegistry.addRecipe(new ItemStack(ModBlocks.tile_lab_broken, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab_cracked }); + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.asphalt_light, 1), new Object[] { ModBlocks.asphalt, Items.glowstone_dust }); + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.asphalt, 1), new Object[] { ModBlocks.asphalt_light }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 8), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 8), new Object[] { "FBF", "BFB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index cea5bee26..b42b23aba 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1004,6 +1004,9 @@ public class ResourceManager { public static final IModelCustom spikes = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/spikes.obj")); public static final IModelCustom antenna_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/antenna_top.obj")); public static final IModelCustom conservecrate = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/conservecrate.obj")); + public static final IModelCustom pipe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe.obj")); + public static final IModelCustom pipe_rim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_rim.obj")); + public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj")); public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")); public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderBarrel.java b/src/main/java/com/hbm/render/block/RenderBarrel.java index dc19946e5..96894ec2b 100644 --- a/src/main/java/com/hbm/render/block/RenderBarrel.java +++ b/src/main/java/com/hbm/render/block/RenderBarrel.java @@ -20,41 +20,39 @@ public class RenderBarrel implements ISimpleBlockRenderingHandler { public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); tessellator.setColorOpaque_F(1, 1, 1); - if (renderer.hasOverrideBlockTexture()) - { - iicon = renderer.overrideBlockTexture; - } - - GL11.glTranslated(0, -0.5, 0); - tessellator.startDrawingQuads(); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.barrel, iicon, tessellator, 0, false); tessellator.draw(); - - GL11.glPopMatrix(); + + GL11.glPopMatrix(); } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); - if (renderer.hasOverrideBlockTexture()) - { - iicon = renderer.overrideBlockTexture; - } - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.barrel, iicon, tessellator, 0, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderPipe.java b/src/main/java/com/hbm/render/block/RenderPipe.java new file mode 100644 index 000000000..4412a3297 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderPipe.java @@ -0,0 +1,114 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPipe; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderPipe implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + if(!(block instanceof BlockPipe)) + return; + + BlockPipe pipe = (BlockPipe) block; + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iiconTop = block.getIcon(0, 0); + IIcon iiconSide = block.getIcon(4, 0); + tessellator.setColorOpaque_F(1, 1, 1); + + tessellator.startDrawingQuads(); + + if(pipe.rType == 0) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe, "Side", iiconSide, tessellator, 0, false); + } + + if(pipe.rType == 1) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, 0, false); + } + + if(pipe.rType == 2) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, 0, false); + } + + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + if(!(block instanceof BlockPipe)) + return true; + + BlockPipe pipe = (BlockPipe) block; + + Tessellator tessellator = Tessellator.instance; + IIcon iiconTop = block.getIcon(0, world.getBlockMetadata(x, y, z)); + IIcon iiconSide = block.getIcon(4, world.getBlockMetadata(x, y, z)); + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); + + float rot = 0; + float pitch = 0; + + if(meta == 8) { + rot = (float)(Math.PI * 0.5); + pitch = (float)(Math.PI * 0.5); + } + + if(meta == 4) { + pitch = (float)(Math.PI * 0.5); + } + + if(pipe.rType == 0) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe, "Side", iiconSide, tessellator, rot, pitch, true); + } + + if(pipe.rType == 1) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, rot, pitch, true); + } + + if(pipe.rType == 2) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, rot, pitch, true); + } + + tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockPipe.renderID; + } +} diff --git a/src/main/java/com/hbm/render/util/ObjUtil.java b/src/main/java/com/hbm/render/util/ObjUtil.java index 85f829191..262790cc6 100644 --- a/src/main/java/com/hbm/render/util/ObjUtil.java +++ b/src/main/java/com/hbm/render/util/ObjUtil.java @@ -19,7 +19,8 @@ public class ObjUtil { tes.setNormal(n.x, n.y, n.z); if(shadow) { - float brightness = (n.y + 1) * 0.65F; + Vec3 normal = Vec3.createVectorHelper(n.x, n.y, n.z); + float brightness = ((float)normal.yCoord + 0.7F) * 0.9F - (float)Math.abs(normal.xCoord) * 0.1F + (float)Math.abs(normal.zCoord) * 0.1F; if(brightness < 0.45F) brightness = 0.45F; @@ -51,6 +52,10 @@ public class ObjUtil { } public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, boolean shadow) { + renderPartWithIcon(model, name, icon, tes, rot, 0, shadow); + } + + public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { GroupObject go = null; @@ -65,10 +70,14 @@ public class ObjUtil { for(Face f : go.faces) { Vertex n = f.faceNormal; - tes.setNormal(n.x, n.y, n.z); + + Vec3 normal = Vec3.createVectorHelper(n.x, n.y, n.z); + normal.rotateAroundZ(pitch); + normal.rotateAroundY(rot); + tes.setNormal((float)normal.xCoord, (float)normal.yCoord, (float)normal.zCoord); if(shadow) { - float brightness = (n.y + 1) * 0.65F; + float brightness = ((float)normal.yCoord + 0.7F) * 0.9F - (float)Math.abs(normal.xCoord) * 0.1F + (float)Math.abs(normal.zCoord) * 0.1F; if(brightness < 0.45F) brightness = 0.45F; @@ -81,6 +90,7 @@ public class ObjUtil { Vertex v = f.vertices[i]; Vec3 vec = Vec3.createVectorHelper(v.x, v.y, v.z); + vec.rotateAroundZ(pitch); vec.rotateAroundY(rot); float x = (float) vec.xCoord; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 9390ca2c6..941adf309 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -141,7 +141,7 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IS public int getHEFromFuel() { FluidType type = tank.getTankType(); if(type.name().equals(FluidType.HYDROGEN.name())) - return 1000; + return 10; if(type.name().equals(FluidType.DIESEL.name())) return 500; if(type.name().equals(FluidType.PETROIL.name())) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index 8c45b55f5..ffe1b2311 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -270,7 +270,7 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide if(type.name().equals(FluidType.HEATINGOIL.name())) return 75; if(type.name().equals(FluidType.HYDROGEN.name())) - return 500; + return 5; if(type.name().equals(FluidType.DIESEL.name())) return 225; if(type.name().equals(FluidType.KEROSENE.name())) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index 5d1d8b08f..ac5cb9029 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -15,19 +15,23 @@ public class RBMKDials { public static final String KEY_BOILER_HEAT_CONSUMPTION = "dialBoilerHeatConsumption"; public static final String KEY_CONTROL_SPEED_MOD = "dialControlSpeed"; public static final String KEY_REACTIVITY_MOD = "dialReactivityMod"; + public static final String KEY_SAVE_DIALS = "dialSaveDials"; public static void createDials(World world) { GameRules rules = world.getGameRules(); - - rules.setOrCreateGameRule(KEY_PASSIVE_COOLING, "1.0"); - rules.setOrCreateGameRule(KEY_COLUMN_HEAT_FLOW, "0.2"); - rules.setOrCreateGameRule(KEY_FUEL_DIFFUSION_MOD, "0.02"); - rules.setOrCreateGameRule(KEY_HEAT_PROVISION, "0.2"); - rules.setOrCreateGameRule(KEY_COLUMN_HEIGHT, "4"); - rules.setOrCreateGameRule(KEY_PERMANENT_SCRAP, "false"); - rules.setOrCreateGameRule(KEY_BOILER_HEAT_CONSUMPTION, "0.1"); - rules.setOrCreateGameRule(KEY_CONTROL_SPEED_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_REACTIVITY_MOD, "1.0"); + + if(!rules.getGameRuleBooleanValue(KEY_SAVE_DIALS)) { + rules.setOrCreateGameRule(KEY_PASSIVE_COOLING, "1.0"); + rules.setOrCreateGameRule(KEY_COLUMN_HEAT_FLOW, "0.2"); + rules.setOrCreateGameRule(KEY_FUEL_DIFFUSION_MOD, "0.02"); + rules.setOrCreateGameRule(KEY_HEAT_PROVISION, "0.2"); + rules.setOrCreateGameRule(KEY_COLUMN_HEIGHT, "4"); + rules.setOrCreateGameRule(KEY_PERMANENT_SCRAP, "false"); + rules.setOrCreateGameRule(KEY_BOILER_HEAT_CONSUMPTION, "0.1"); + rules.setOrCreateGameRule(KEY_CONTROL_SPEED_MOD, "1.0"); + rules.setOrCreateGameRule(KEY_REACTIVITY_MOD, "1.0"); + rules.setOrCreateGameRule(KEY_SAVE_DIALS, "true"); + } } /** diff --git a/src/main/resources/assets/hbm/models/blocks/pipe.obj b/src/main/resources/assets/hbm/models/blocks/pipe.obj new file mode 100644 index 000000000..3243e624b --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/pipe.obj @@ -0,0 +1,124 @@ +# Blender v2.79 (sub 0) OBJ File: 'pipe.blend' +# www.blender.org +o Top +v 0.000000 -0.500000 -0.375000 +v 0.000000 0.500000 -0.375000 +v 0.265165 -0.500000 -0.265165 +v 0.265165 0.500000 -0.265165 +v 0.375000 -0.500000 0.000000 +v 0.375000 0.500000 0.000000 +v 0.265165 -0.500000 0.265165 +v 0.265165 0.500000 0.265165 +v -0.000000 -0.500000 0.375000 +v -0.000000 0.500000 0.375000 +v -0.265165 -0.500000 0.265165 +v -0.265165 0.500000 0.265165 +v -0.375000 -0.500000 -0.000000 +v -0.375000 0.500000 -0.000000 +v -0.265165 -0.500000 -0.265165 +v -0.265165 0.500000 -0.265165 +v -0.000000 0.500000 0.000000 +v -0.000000 -0.500000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.500000 +vt 0.750000 0.250000 +vt 0.250000 0.250000 +vt 0.500000 0.500000 +vt 0.500000 0.125000 +vt 0.750000 0.750000 +vt 0.500000 0.875000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.750000 +vt 0.500000 0.875000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 4/1/1 17/2/1 6/3/1 +f 1/4/2 18/5/2 15/6/2 +f 10/7/1 17/2/1 12/8/1 +f 14/9/1 17/2/1 16/10/1 +f 6/3/1 17/2/1 8/11/1 +f 12/8/1 17/2/1 14/9/1 +f 17/2/1 4/1/1 2/12/1 +f 8/11/1 17/2/1 10/7/1 +f 16/10/1 17/2/1 2/12/1 +f 15/6/2 18/5/2 13/13/2 +f 9/14/2 18/5/2 7/15/2 +f 18/5/2 5/16/2 7/15/2 +f 5/16/2 18/5/2 3/17/2 +f 13/13/2 18/5/2 11/18/2 +f 3/17/2 18/5/2 1/4/2 +f 11/18/2 18/5/2 9/14/2 +o Side +v 0.000000 -0.500000 -0.375000 +v 0.000000 0.500000 -0.375000 +v 0.265165 -0.500000 -0.265165 +v 0.265165 0.500000 -0.265165 +v 0.375000 -0.500000 0.000000 +v 0.375000 0.500000 0.000000 +v 0.265165 -0.500000 0.265165 +v 0.265165 0.500000 0.265165 +v -0.000000 -0.500000 0.375000 +v -0.000000 0.500000 0.375000 +v -0.265165 -0.500000 0.265165 +v -0.265165 0.500000 0.265165 +v -0.375000 -0.500000 -0.000000 +v -0.375000 0.500000 -0.000000 +v -0.265165 -0.500000 -0.265165 +v -0.265165 0.500000 -0.265165 +vt 0.500000 1.000000 +vt 0.187500 0.000000 +vt 0.500000 0.000000 +vt 0.812500 1.000000 +vt 0.500000 -0.000000 +vt 0.812500 -0.000000 +vt 0.500000 1.000000 +vt 0.187500 0.000000 +vt 0.812500 1.000000 +vt 0.500000 0.000000 +vt 0.812500 0.000000 +vt 0.500000 1.000000 +vt 0.187500 0.000000 +vt 0.812500 1.000000 +vt 0.500000 0.000000 +vt 0.812500 0.000000 +vt 0.500000 1.000000 +vt 0.187500 0.000000 +vt 0.812500 1.000000 +vt 0.812500 0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9239 0.0000 0.3827 +vn -0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 -0.9239 +s off +f 20/19/3 21/20/3 19/21/3 +f 22/22/4 23/23/4 21/24/4 +f 24/25/5 25/26/5 23/23/5 +f 26/27/6 27/28/6 25/29/6 +f 28/30/7 29/31/7 27/28/7 +f 30/32/8 31/33/8 29/34/8 +f 32/35/9 33/36/9 31/33/9 +f 34/37/10 19/21/10 33/38/10 +f 20/19/3 22/39/3 21/20/3 +f 22/22/4 24/25/4 23/23/4 +f 24/25/5 26/40/5 25/26/5 +f 26/27/6 28/30/6 27/28/6 +f 28/30/7 30/41/7 29/31/7 +f 30/32/8 32/35/8 31/33/8 +f 32/35/9 34/42/9 33/36/9 +f 34/37/10 20/19/10 19/21/10 diff --git a/src/main/resources/assets/hbm/models/blocks/pipe_quad.obj b/src/main/resources/assets/hbm/models/blocks/pipe_quad.obj new file mode 100644 index 000000000..bc487812d --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/pipe_quad.obj @@ -0,0 +1,448 @@ +# Blender v2.79 (sub 0) OBJ File: 'pipe_quad.blend' +# www.blender.org +o Top +v -0.250000 -0.500000 0.125000 +v -0.250000 0.500000 0.125000 +v -0.161612 -0.500000 0.161612 +v -0.161612 0.500000 0.161612 +v -0.125000 -0.500000 0.250000 +v -0.125000 0.500000 0.250000 +v -0.161612 -0.500000 0.338388 +v -0.161612 0.500000 0.338388 +v -0.250000 -0.500000 0.375000 +v -0.250000 0.500000 0.375000 +v -0.338388 -0.500000 0.338388 +v -0.338388 0.500000 0.338388 +v -0.375000 -0.500000 0.250000 +v -0.375000 0.500000 0.250000 +v -0.338388 -0.500000 0.161612 +v -0.338388 0.500000 0.161612 +v 0.338388 -0.500000 -0.161612 +v 0.338388 0.500000 -0.161612 +v 0.250000 -0.500000 -0.125000 +v 0.250000 0.500000 -0.125000 +v 0.161612 -0.500000 -0.161612 +v 0.161612 0.500000 -0.161612 +v 0.125000 -0.500000 -0.250000 +v 0.125000 0.500000 -0.250000 +v 0.161612 -0.500000 -0.338388 +v 0.161612 0.500000 -0.338388 +v 0.250000 -0.500000 -0.250000 +v 0.250000 0.500000 -0.250000 +v 0.161612 0.500000 0.161612 +v 0.161612 -0.500000 0.161612 +v 0.125000 0.500000 0.250000 +v 0.125000 -0.500000 0.250000 +v 0.161612 0.500000 0.338388 +v 0.161612 -0.500000 0.338388 +v 0.250000 0.500000 0.375000 +v 0.250000 -0.500000 0.375000 +v 0.338388 0.500000 0.338388 +v 0.338388 -0.500000 0.338388 +v 0.375000 0.500000 0.250000 +v 0.375000 -0.500000 0.250000 +v 0.338388 0.500000 0.161612 +v 0.338388 -0.500000 0.161612 +v 0.250000 0.500000 0.125000 +v 0.250000 -0.500000 0.125000 +v -0.250000 0.500000 -0.250000 +v -0.250000 -0.500000 -0.250000 +v -0.338388 0.500000 -0.338388 +v -0.338388 -0.500000 -0.338388 +v -0.375000 0.500000 -0.250000 +v -0.375000 -0.500000 -0.250000 +v -0.338388 0.500000 -0.161612 +v -0.338388 -0.500000 -0.161612 +v -0.250000 0.500000 -0.125000 +v -0.250000 -0.500000 -0.125000 +v -0.161612 0.500000 -0.161612 +v -0.161612 -0.500000 -0.161612 +v -0.125000 0.500000 -0.250000 +v -0.125000 -0.500000 -0.250000 +v -0.161612 0.500000 -0.338388 +v -0.161612 -0.500000 -0.338388 +v -0.250000 0.500000 -0.375000 +v -0.250000 -0.500000 -0.375000 +v -0.250000 -0.500000 0.250000 +v -0.250000 0.500000 0.250000 +v 0.375000 0.500000 -0.250000 +v 0.375000 -0.500000 -0.250000 +v 0.338388 0.500000 -0.338388 +v 0.338388 -0.500000 -0.338388 +v 0.250000 0.500000 -0.375000 +v 0.250000 -0.500000 -0.375000 +v 0.250000 -0.500000 0.250000 +v 0.250000 0.500000 0.250000 +vt 0.500000 0.312500 +vt 0.500000 0.500000 +vt 0.625000 0.375000 +vt 0.375000 0.375000 +vt 0.500000 0.500000 +vt 0.500000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.500000 +vt 0.625000 0.375000 +vt 0.500000 0.687500 +vt 0.375000 0.625000 +vt 0.312500 0.500000 +vt 0.375000 0.375000 +vt 0.687500 0.500000 +vt 0.625000 0.625000 +vt 0.500000 0.312500 +vt 0.500000 0.500000 +vt 0.625000 0.375000 +vt 0.625000 0.375000 +vt 0.687500 0.500000 +vt 0.375000 0.625000 +vt 0.312500 0.500000 +vt 0.625000 0.625000 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.625000 +vt 0.375000 0.375000 +vt 0.687500 0.500000 +vt 0.625000 0.625000 +vt 0.312500 0.500000 +vt 0.500000 0.687500 +vt 0.375000 0.625000 +vt 0.375000 0.375000 +vt 0.687500 0.500000 +vt 0.625000 0.625000 +vt 0.312500 0.500000 +vt 0.500000 0.312500 +vt 0.500000 0.500000 +vt 0.625000 0.375000 +vt 0.375000 0.375000 +vt 0.500000 0.500000 +vt 0.500000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.500000 +vt 0.625000 0.375000 +vt 0.500000 0.687500 +vt 0.375000 0.625000 +vt 0.312500 0.500000 +vt 0.375000 0.375000 +vt 0.687500 0.500000 +vt 0.625000 0.625000 +vt 0.500000 0.312500 +vt 0.500000 0.500000 +vt 0.625000 0.375000 +vt 0.625000 0.375000 +vt 0.687500 0.500000 +vt 0.375000 0.625000 +vt 0.312500 0.500000 +vt 0.625000 0.625000 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.625000 +vt 0.375000 0.375000 +vt 0.687500 0.500000 +vt 0.625000 0.625000 +vt 0.312500 0.500000 +vt 0.500000 0.687500 +vt 0.375000 0.625000 +vt 0.375000 0.375000 +vt 0.687500 0.500000 +vt 0.625000 0.625000 +vt 0.312500 0.500000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 4/1/1 64/2/1 6/3/1 +f 1/4/2 63/5/2 15/6/2 +f 48/7/2 46/8/2 50/9/2 +f 56/10/2 46/8/2 58/11/2 +f 60/12/2 46/8/2 62/13/2 +f 52/14/2 46/8/2 54/15/2 +f 58/11/2 46/8/2 60/12/2 +f 50/9/2 46/8/2 52/14/2 +f 62/13/2 46/8/2 48/7/2 +f 59/16/1 45/17/1 57/18/1 +f 13/19/2 63/5/2 11/20/2 +f 5/21/2 63/5/2 3/22/2 +f 11/20/2 63/5/2 9/23/2 +f 3/22/2 63/5/2 1/4/2 +f 7/24/2 63/5/2 5/21/2 +f 15/6/2 63/5/2 13/19/2 +f 9/23/2 63/5/2 7/24/2 +f 12/25/1 64/2/1 14/26/1 +f 64/2/1 4/1/1 2/27/1 +f 8/28/1 64/2/1 10/29/1 +f 16/30/1 64/2/1 2/27/1 +f 14/26/1 64/2/1 16/30/1 +f 6/3/1 64/2/1 8/28/1 +f 10/29/1 64/2/1 12/25/1 +f 54/15/2 46/8/2 56/10/2 +f 51/31/1 45/17/1 49/32/1 +f 45/17/1 59/16/1 61/33/1 +f 55/34/1 45/17/1 53/35/1 +f 47/36/1 45/17/1 61/33/1 +f 49/32/1 45/17/1 47/36/1 +f 57/18/1 45/17/1 55/34/1 +f 53/35/1 45/17/1 51/31/1 +f 41/37/1 72/38/1 39/39/1 +f 44/40/2 71/41/2 30/42/2 +f 25/43/2 27/44/2 23/45/2 +f 17/46/2 27/44/2 66/47/2 +f 68/48/2 27/44/2 70/49/2 +f 21/50/2 27/44/2 19/51/2 +f 66/47/2 27/44/2 68/48/2 +f 23/45/2 27/44/2 21/50/2 +f 70/49/2 27/44/2 25/43/2 +f 67/52/1 28/53/1 65/54/1 +f 32/55/2 71/41/2 34/56/2 +f 40/57/2 71/41/2 42/58/2 +f 34/56/2 71/41/2 36/59/2 +f 42/58/2 71/41/2 44/40/2 +f 38/60/2 71/41/2 40/57/2 +f 30/42/2 71/41/2 32/55/2 +f 36/59/2 71/41/2 38/60/2 +f 33/61/1 72/38/1 31/62/1 +f 72/38/1 41/37/1 43/63/1 +f 37/64/1 72/38/1 35/65/1 +f 29/66/1 72/38/1 43/63/1 +f 31/62/1 72/38/1 29/66/1 +f 39/39/1 72/38/1 37/64/1 +f 35/65/1 72/38/1 33/61/1 +f 19/51/2 27/44/2 17/46/2 +f 22/67/1 28/53/1 24/68/1 +f 28/53/1 67/52/1 69/69/1 +f 18/70/1 28/53/1 20/71/1 +f 26/72/1 28/53/1 69/69/1 +f 24/68/1 28/53/1 26/72/1 +f 65/54/1 28/53/1 18/70/1 +f 20/71/1 28/53/1 22/67/1 +o Side +v -0.250000 -0.500000 0.125000 +v -0.250000 0.500000 0.125000 +v -0.161612 -0.500000 0.161612 +v -0.161612 0.500000 0.161612 +v -0.125000 -0.500000 0.250000 +v -0.125000 0.500000 0.250000 +v -0.161612 -0.500000 0.338388 +v -0.161612 0.500000 0.338388 +v -0.250000 -0.500000 0.375000 +v -0.250000 0.500000 0.375000 +v -0.338388 -0.500000 0.338388 +v -0.338388 0.500000 0.338388 +v -0.375000 -0.500000 0.250000 +v -0.375000 0.500000 0.250000 +v -0.338388 -0.500000 0.161612 +v -0.338388 0.500000 0.161612 +v 0.338388 -0.500000 -0.161612 +v 0.338388 0.500000 -0.161612 +v 0.250000 -0.500000 -0.125000 +v 0.250000 0.500000 -0.125000 +v 0.161612 -0.500000 -0.161612 +v 0.161612 0.500000 -0.161612 +v 0.125000 -0.500000 -0.250000 +v 0.125000 0.500000 -0.250000 +v 0.161612 -0.500000 -0.338388 +v 0.161612 0.500000 -0.338388 +v 0.161612 0.500000 0.161612 +v 0.161612 -0.500000 0.161612 +v 0.125000 0.500000 0.250000 +v 0.125000 -0.500000 0.250000 +v 0.161612 0.500000 0.338388 +v 0.161612 -0.500000 0.338388 +v 0.250000 0.500000 0.375000 +v 0.250000 -0.500000 0.375000 +v 0.338388 0.500000 0.338388 +v 0.338388 -0.500000 0.338388 +v 0.375000 0.500000 0.250000 +v 0.375000 -0.500000 0.250000 +v 0.338388 0.500000 0.161612 +v 0.338388 -0.500000 0.161612 +v 0.250000 0.500000 0.125000 +v 0.250000 -0.500000 0.125000 +v -0.338388 0.500000 -0.338388 +v -0.338388 -0.500000 -0.338388 +v -0.375000 0.500000 -0.250000 +v -0.375000 -0.500000 -0.250000 +v -0.338388 0.500000 -0.161612 +v -0.338388 -0.500000 -0.161612 +v -0.250000 0.500000 -0.125000 +v -0.250000 -0.500000 -0.125000 +v -0.161612 0.500000 -0.161612 +v -0.161612 -0.500000 -0.161612 +v -0.125000 0.500000 -0.250000 +v -0.125000 -0.500000 -0.250000 +v -0.161612 0.500000 -0.338388 +v -0.161612 -0.500000 -0.338388 +v -0.250000 0.500000 -0.375000 +v -0.250000 -0.500000 -0.375000 +v 0.375000 0.500000 -0.250000 +v 0.375000 -0.500000 -0.250000 +v 0.338388 0.500000 -0.338388 +v 0.338388 -0.500000 -0.338388 +v 0.250000 0.500000 -0.375000 +v 0.250000 -0.500000 -0.375000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.625000 1.000000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.500000 -0.000000 +vt 0.625000 1.000000 +vt 0.625000 -0.000000 +vt 0.500000 1.000000 +vt 0.375000 -0.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9239 0.0000 0.3827 +vn -0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 -0.9239 +s off +f 74/73/3 75/74/3 73/75/3 +f 76/76/4 77/77/4 75/78/4 +f 78/79/5 79/80/5 77/77/5 +f 80/81/6 81/82/6 79/83/6 +f 82/84/7 83/85/7 81/82/7 +f 84/86/8 85/87/8 83/88/8 +f 86/89/9 87/90/9 85/87/9 +f 88/91/10 73/75/10 87/92/10 +f 115/93/10 130/94/10 116/95/10 +f 117/96/9 116/97/9 118/98/9 +f 119/99/8 118/98/8 120/100/8 +f 121/101/7 120/102/7 122/103/7 +f 123/104/6 122/103/6 124/105/6 +f 125/106/5 124/107/5 126/108/5 +f 127/109/4 126/108/4 128/110/4 +f 129/111/3 128/112/3 130/94/3 +f 113/113/3 112/114/3 114/115/3 +f 111/116/4 110/117/4 112/118/4 +f 109/119/5 108/120/5 110/117/5 +f 107/121/6 106/122/6 108/123/6 +f 105/124/7 104/125/7 106/122/7 +f 103/126/8 102/127/8 104/128/8 +f 101/129/9 100/130/9 102/127/9 +f 99/131/10 114/115/10 100/132/10 +f 98/133/10 136/134/10 97/135/10 +f 96/136/9 97/137/9 95/138/9 +f 94/139/8 95/138/8 93/140/8 +f 92/141/7 93/142/7 91/143/7 +f 90/144/6 91/143/6 89/145/6 +f 131/146/5 89/147/5 132/148/5 +f 133/149/4 132/148/4 134/150/4 +f 135/151/3 134/152/3 136/134/3 +f 74/73/3 76/153/3 75/74/3 +f 76/76/4 78/79/4 77/77/4 +f 78/79/5 80/154/5 79/80/5 +f 80/81/6 82/84/6 81/82/6 +f 82/84/7 84/155/7 83/85/7 +f 84/86/8 86/89/8 85/87/8 +f 86/89/9 88/156/9 87/90/9 +f 88/91/10 74/73/10 73/75/10 +f 115/93/10 129/111/10 130/94/10 +f 117/96/9 115/157/9 116/97/9 +f 119/99/8 117/96/8 118/98/8 +f 121/101/7 119/158/7 120/102/7 +f 123/104/6 121/101/6 122/103/6 +f 125/106/5 123/159/5 124/107/5 +f 127/109/4 125/106/4 126/108/4 +f 129/111/3 127/160/3 128/112/3 +f 113/113/3 111/161/3 112/114/3 +f 111/116/4 109/119/4 110/117/4 +f 109/119/5 107/162/5 108/120/5 +f 107/121/6 105/124/6 106/122/6 +f 105/124/7 103/163/7 104/125/7 +f 103/126/8 101/129/8 102/127/8 +f 101/129/9 99/164/9 100/130/9 +f 99/131/10 113/113/10 114/115/10 +f 98/133/10 135/151/10 136/134/10 +f 96/136/9 98/165/9 97/137/9 +f 94/139/8 96/136/8 95/138/8 +f 92/141/7 94/166/7 93/142/7 +f 90/144/6 92/141/6 91/143/6 +f 131/146/5 90/167/5 89/147/5 +f 133/149/4 131/146/4 132/148/4 +f 135/151/3 133/168/3 134/152/3 diff --git a/src/main/resources/assets/hbm/models/blocks/pipe_rim.obj b/src/main/resources/assets/hbm/models/blocks/pipe_rim.obj new file mode 100644 index 000000000..213fa9d82 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/pipe_rim.obj @@ -0,0 +1,288 @@ +# Blender v2.79 (sub 0) OBJ File: 'pipe_rim.blend' +# www.blender.org +o Top +v 0.309359 0.500000 -0.309359 +v 0.000000 0.500000 -0.437500 +v 0.000000 -0.500000 -0.437500 +v 0.000000 -0.437500 -0.437500 +v 0.309359 -0.500000 -0.309359 +v 0.309359 -0.437500 -0.309359 +v 0.437500 -0.500000 0.000000 +v 0.437500 -0.437500 0.000000 +v 0.309359 -0.500000 0.309359 +v 0.309359 -0.437500 0.309359 +v -0.000000 -0.500000 0.437500 +v -0.000000 -0.437500 0.437500 +v -0.309359 -0.500000 0.309359 +v -0.309359 -0.437500 0.309359 +v -0.437500 -0.500000 -0.000000 +v -0.437500 -0.437500 -0.000000 +v -0.309359 -0.500000 -0.309359 +v -0.309359 -0.437500 -0.309359 +v 0.437500 0.500000 0.000000 +v 0.309359 0.500000 0.309359 +v -0.000000 0.500000 0.437500 +v -0.309359 0.500000 0.309359 +v -0.437500 0.500000 -0.000000 +v -0.309359 0.500000 -0.309359 +v -0.309359 0.437500 -0.309359 +v 0.000000 0.437500 -0.437500 +v -0.437500 0.437500 -0.000000 +v -0.309359 0.437500 0.309359 +v -0.000000 0.437500 0.437500 +v 0.309359 0.437500 0.309359 +v 0.437500 0.437500 0.000000 +v 0.309359 0.437500 -0.309359 +v 0.000000 0.500000 0.000000 +v 0.000000 0.437500 -0.000000 +v -0.000000 -0.437500 0.000000 +v 0.000000 -0.500000 0.000000 +vt 0.187500 0.187500 +vt 0.500000 0.500000 +vt 0.500000 0.062500 +vt 0.187500 0.187500 +vt 0.500000 0.500000 +vt 0.500000 0.062500 +vt 0.500000 0.062500 +vt 0.500000 0.500000 +vt 0.812500 0.187500 +vt 0.187500 0.187500 +vt 0.500000 0.500000 +vt 0.500000 0.062500 +vt 0.812500 0.187500 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.187500 0.812500 +vt 0.812500 0.812500 +vt 0.500000 0.937500 +vt 0.812500 0.812500 +vt 0.500000 0.937500 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.812500 0.187500 +vt 0.187500 0.812500 +vt 0.937500 0.500000 +vt 0.812500 0.812500 +vt 0.062500 0.500000 +vt 0.187500 0.812500 +vt 0.500000 0.937500 +vt 0.187500 0.187500 +vt 0.812500 0.812500 +vt 0.500000 0.937500 +vt 0.812500 0.187500 +vt 0.937500 0.500000 +vt 0.187500 0.812500 +vt 0.062500 0.500000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 26/1/1 34/2/1 25/3/1 +f 2/4/2 33/5/2 1/6/2 +f 6/7/2 35/8/2 8/9/2 +f 3/10/1 36/11/1 17/12/1 +f 19/13/2 33/5/2 20/14/2 +f 33/5/2 24/15/2 23/16/2 +f 20/14/2 33/5/2 21/17/2 +f 22/18/2 33/5/2 23/16/2 +f 1/6/2 33/5/2 19/13/2 +f 21/17/2 33/5/2 22/18/2 +f 33/5/2 2/4/2 24/15/2 +f 29/19/1 34/2/1 30/20/1 +f 28/21/1 34/2/1 29/19/1 +f 32/22/1 34/2/1 26/1/1 +f 25/3/1 34/2/1 27/23/1 +f 30/20/1 34/2/1 31/24/1 +f 27/23/1 34/2/1 28/21/1 +f 31/24/1 34/2/1 32/22/1 +f 8/9/2 35/8/2 10/25/2 +f 10/25/2 35/8/2 12/26/2 +f 35/8/2 18/27/2 16/28/2 +f 12/26/2 35/8/2 14/29/2 +f 35/8/2 4/30/2 18/27/2 +f 14/29/2 35/8/2 16/28/2 +f 35/8/2 6/7/2 4/30/2 +f 11/31/1 36/11/1 9/32/1 +f 15/33/1 36/11/1 13/34/1 +f 7/35/1 36/11/1 5/36/1 +f 13/34/1 36/11/1 11/31/1 +f 5/36/1 36/11/1 3/10/1 +f 17/12/1 36/11/1 15/33/1 +f 9/32/1 36/11/1 7/35/1 +o Side +v 0.000000 -0.437500 -0.375000 +v 0.000000 0.437500 -0.375000 +v 0.265165 -0.437500 -0.265165 +v 0.265165 0.437500 -0.265165 +v 0.375000 -0.437500 0.000000 +v 0.375000 0.437500 0.000000 +v 0.265165 -0.437500 0.265165 +v 0.265165 0.437500 0.265165 +v -0.000000 -0.437500 0.375000 +v -0.000000 0.437500 0.375000 +v -0.265165 -0.437500 0.265165 +v -0.265165 0.437500 0.265165 +v -0.375000 -0.437500 -0.000000 +v -0.375000 0.437500 -0.000000 +v -0.265165 -0.437500 -0.265165 +v -0.265165 0.437500 -0.265165 +v 0.309359 0.500000 -0.309359 +v 0.000000 0.500000 -0.437500 +v 0.000000 -0.500000 -0.437500 +v 0.000000 -0.437500 -0.437500 +v 0.309359 -0.500000 -0.309359 +v 0.309359 -0.437500 -0.309359 +v 0.437500 -0.500000 0.000000 +v 0.437500 -0.437500 0.000000 +v 0.309359 -0.500000 0.309359 +v 0.309359 -0.437500 0.309359 +v -0.000000 -0.500000 0.437500 +v -0.000000 -0.437500 0.437500 +v -0.309359 -0.500000 0.309359 +v -0.309359 -0.437500 0.309359 +v -0.437500 -0.500000 -0.000000 +v -0.437500 -0.437500 -0.000000 +v -0.309359 -0.500000 -0.309359 +v -0.309359 -0.437500 -0.309359 +v 0.437500 0.500000 0.000000 +v 0.309359 0.500000 0.309359 +v -0.000000 0.500000 0.437500 +v -0.309359 0.500000 0.309359 +v -0.437500 0.500000 -0.000000 +v -0.309359 0.500000 -0.309359 +v -0.309359 0.437500 -0.309359 +v 0.000000 0.437500 -0.437500 +v -0.437500 0.437500 -0.000000 +v -0.309359 0.437500 0.309359 +v -0.000000 0.437500 0.437500 +v 0.309359 0.437500 0.309359 +v 0.437500 0.437500 0.000000 +v 0.309359 0.437500 -0.309359 +vt 0.500000 0.937500 +vt 0.187500 0.062500 +vt 0.500000 0.062500 +vt 0.812500 0.937500 +vt 0.500000 0.062500 +vt 0.812500 0.062500 +vt 0.500000 0.937500 +vt 0.187500 0.062500 +vt 0.812500 0.937500 +vt 0.500000 0.062500 +vt 0.812500 0.062500 +vt 0.500000 0.937500 +vt 0.187500 0.062500 +vt 0.812500 0.937500 +vt 0.500000 0.062500 +vt 0.812500 0.062500 +vt 0.500000 0.937500 +vt 0.187500 0.062500 +vt 0.812500 0.937500 +vt 0.812500 0.062500 +vt 0.187500 1.000000 +vt 0.500000 0.937500 +vt 0.500000 1.000000 +vt 0.500000 0.000000 +vt 0.812500 0.062500 +vt 0.500000 0.062500 +vt 0.187500 1.000000 +vt 0.500000 0.937500 +vt 0.500000 1.000000 +vt 0.812500 0.062500 +vt 0.500000 0.000000 +vt 0.812500 0.000000 +vt 0.500000 1.000000 +vt 0.812500 0.937500 +vt 0.812500 1.000000 +vt 0.500000 0.062500 +vt 0.187500 0.000000 +vt 0.812500 0.937500 +vt 0.812500 1.000000 +vt 0.812500 0.062500 +vt 0.500000 0.000000 +vt 0.812500 0.000000 +vt 0.500000 1.000000 +vt 0.812500 0.937500 +vt 0.812500 1.000000 +vt 0.500000 0.062500 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.500000 0.937500 +vt 0.187500 0.000000 +vt 0.500000 0.062500 +vt 0.187500 0.062500 +vt 0.812500 0.937500 +vt 0.812500 1.000000 +vt 0.500000 0.000000 +vt 0.812500 0.062500 +vt 0.187500 1.000000 +vt 0.500000 0.937500 +vt 0.187500 0.000000 +vt 0.187500 0.062500 +vt 0.187500 0.937500 +vt 0.187500 0.937500 +vt 0.187500 0.937500 +vt 0.187500 0.937500 +vt 0.187500 0.937500 +vt 0.812500 0.000000 +vt 0.187500 0.937500 +vt 0.187500 0.062500 +vt 0.187500 0.062500 +vt 0.187500 0.937500 +vt 0.812500 0.000000 +vt 0.187500 0.937500 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9239 0.0000 0.3827 +vn -0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 -0.9239 +s off +f 38/37/3 39/38/3 37/39/3 +f 40/40/4 41/41/4 39/42/4 +f 42/43/5 43/44/5 41/41/5 +f 44/45/6 45/46/6 43/47/6 +f 46/48/7 47/49/7 45/46/7 +f 48/50/8 49/51/8 47/52/8 +f 50/53/9 51/54/9 49/51/9 +f 52/55/10 37/39/10 51/56/10 +f 74/57/7 81/58/7 73/59/7 +f 56/60/3 57/61/3 55/62/3 +f 76/63/9 79/64/9 75/65/9 +f 58/66/4 59/67/4 57/68/4 +f 71/69/4 84/70/4 53/71/4 +f 60/72/5 61/73/5 59/67/5 +f 75/65/8 80/74/8 74/75/8 +f 62/76/6 63/77/6 61/78/6 +f 54/79/10 77/80/10 76/81/10 +f 64/82/7 65/83/7 63/77/7 +f 72/84/5 83/85/5 71/69/5 +f 66/86/8 67/87/8 65/88/8 +f 73/59/6 82/89/6 72/90/6 +f 68/91/9 69/92/9 67/87/9 +f 53/93/3 78/94/3 54/79/3 +f 70/95/10 55/62/10 69/96/10 +f 38/37/3 40/97/3 39/38/3 +f 40/40/4 42/43/4 41/41/4 +f 42/43/5 44/98/5 43/44/5 +f 44/45/6 46/48/6 45/46/6 +f 46/48/7 48/99/7 47/49/7 +f 48/50/8 50/53/8 49/51/8 +f 50/53/9 52/100/9 51/54/9 +f 52/55/10 38/37/10 37/39/10 +f 74/57/7 80/101/7 81/58/7 +f 56/60/3 58/102/3 57/61/3 +f 76/63/9 77/103/9 79/64/9 +f 58/66/4 60/72/4 59/67/4 +f 71/69/4 83/85/4 84/70/4 +f 60/72/5 62/104/5 61/73/5 +f 75/65/8 79/64/8 80/74/8 +f 62/76/6 64/82/6 63/77/6 +f 54/79/10 78/94/10 77/80/10 +f 64/82/7 66/105/7 65/83/7 +f 72/84/5 82/106/5 83/85/5 +f 66/86/8 68/91/8 67/87/8 +f 73/59/6 81/58/6 82/89/6 +f 68/91/9 70/107/9 69/92/9 +f 53/93/3 84/108/3 78/94/3 +f 70/95/10 56/60/10 55/62/10 diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side.png new file mode 100644 index 000000000..57c681fad Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_green.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_green.png new file mode 100644 index 000000000..b6e453584 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_green.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_green_rusty.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_green_rusty.png new file mode 100644 index 000000000..7f8f9175b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_green_rusty.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_rusty.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_rusty.png new file mode 100644 index 000000000..d36f71d87 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_rusty.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_top.png b/src/main/resources/assets/hbm/textures/blocks/pipe_top.png new file mode 100644 index 000000000..ce7c7aa08 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_top_green.png b/src/main/resources/assets/hbm/textures/blocks/pipe_top_green.png new file mode 100644 index 000000000..6b65cb6a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_top_green.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_top_green_rusty.png b/src/main/resources/assets/hbm/textures/blocks/pipe_top_green_rusty.png new file mode 100644 index 000000000..e51f2bb76 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_top_green_rusty.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_top_rusty.png b/src/main/resources/assets/hbm/textures/blocks/pipe_top_rusty.png new file mode 100644 index 000000000..52c5f5ddd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_top_rusty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_balefire_gold.png b/src/main/resources/assets/hbm/textures/items/billet_balefire_gold.png new file mode 100644 index 000000000..80a8602f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_balefire_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_balefire_gold.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_balefire_gold.png new file mode 100644 index 000000000..be4debdc1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_balefire_gold.png differ