From aaf94ba6e4e88d3ccf6f8c444c199580dc3f5c4e Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 2 Mar 2026 22:12:23 +0100 Subject: [PATCH] lids aren't done yet shut up --- .../java/com/hbm/blocks/BlockDummyable.java | 4 +- .../com/hbm/blocks/machine/MachineFunnel.java | 14 +- .../java/com/hbm/blocks/machine/NTMAnvil.java | 14 +- .../com/hbm/blocks/machine/Spotlight.java | 10 +- .../com/hbm/blocks/machine/rbmk/RBMKBase.java | 40 +- .../hbm/blocks/machine/rbmk/RBMKBoiler.java | 7 +- .../hbm/blocks/machine/rbmk/RBMKControl.java | 11 +- .../blocks/machine/rbmk/RBMKControlAuto.java | 7 +- .../hbm/blocks/machine/rbmk/RBMKHeater.java | 7 +- .../blocks/machine/rbmk/RBMKPipedBase.java | 34 + .../com/hbm/blocks/machine/rbmk/RBMKRod.java | 29 +- .../com/hbm/blocks/rail/RailNarrowCurve.java | 6 +- .../hbm/blocks/rail/RailNarrowStraight.java | 6 +- .../hbm/blocks/rail/RailStandardBuffer.java | 6 +- .../blocks/rail/RailStandardCurveBase.java | 6 +- .../blocks/rail/RailStandardCurveWide7.java | 6 +- .../blocks/rail/RailStandardCurveWide9.java | 6 +- .../com/hbm/blocks/rail/RailStandardRamp.java | 6 +- .../hbm/blocks/rail/RailStandardStraight.java | 6 +- .../rail/RailStandardStraightShort.java | 6 +- .../hbm/blocks/rail/RailStandardSwitch.java | 8 +- .../rail/RailStandardSwitchFlipped.java | 8 +- .../recipes/loader/SerializableRecipe.java | 1 - .../java/com/hbm/main/ResourceManager.java | 159 +-- .../hbm/render/block/RenderAntennaTop.java | 52 +- .../com/hbm/render/block/RenderAnvil.java | 26 +- .../hbm/render/block/RenderBarbedWire.java | 62 +- .../com/hbm/render/block/RenderBarrel.java | 6 +- .../com/hbm/render/block/RenderBattery.java | 6 +- .../render/block/RenderBlockDecoModel.java | 6 +- .../hbm/render/block/RenderBlockRotated.java | 6 +- .../java/com/hbm/render/block/RenderCRT.java | 8 +- .../com/hbm/render/block/RenderCable.java | 32 +- .../com/hbm/render/block/RenderCapacitor.java | 22 +- .../com/hbm/render/block/RenderConserve.java | 50 +- .../com/hbm/render/block/RenderDetCord.java | 24 +- .../block/RenderDiFurnaceExtension.java | 14 +- .../com/hbm/render/block/RenderDiode.java | 24 +- .../com/hbm/render/block/RenderMirror.java | 16 +- .../hbm/render/block/RenderPartitioner.java | 14 +- .../java/com/hbm/render/block/RenderPipe.java | 42 +- .../com/hbm/render/block/RenderPribris.java | 6 +- .../hbm/render/block/RenderRBMKControl.java | 91 +- .../hbm/render/block/RenderRBMKReflector.java | 46 +- .../com/hbm/render/block/RenderRBMKRod.java | 47 +- .../com/hbm/render/block/RenderRTGBlock.java | 25 +- .../java/com/hbm/render/block/RenderRTTY.java | 4 +- .../hbm/render/block/RenderScaffoldBlock.java | 6 +- .../hbm/render/block/RenderSpikeBlock.java | 52 +- .../com/hbm/render/block/RenderSplitter.java | 24 +- .../com/hbm/render/block/RenderSteelBeam.java | 52 +- .../com/hbm/render/block/RenderTapeBlock.java | 84 +- .../com/hbm/render/block/RenderTestPipe.java | 22 +- .../com/hbm/render/block/RenderToaster.java | 6 +- .../hbm/render/loader/HFRWavefrontObject.java | 22 +- .../tileentity/RenderRBMKControlRod.java | 16 +- .../hbm/render/tileentity/RenderRBMKLid.java | 52 +- .../java/com/hbm/render/util/ObjUtil.java | 29 +- .../assets/hbm/models/rbmk/rbmk_element.obj | 1038 ++++++++--------- .../hbm/models/rbmk/rbmk_element_rods.obj | 350 ++++++ .../assets/hbm/models/rbmk/rbmk_reflector.obj | 234 ---- .../textures/blocks/rbmk/rbmk_absorber.png | Bin 1027 -> 0 bytes .../blocks/rbmk/rbmk_absorber_glass.png | Bin 362 -> 0 bytes .../blocks/rbmk/rbmk_absorber_side.png | Bin 0 -> 459 bytes .../blocks/rbmk/rbmk_absorber_top.png | Bin 0 -> 424 bytes .../hbm/textures/blocks/rbmk/rbmk_blank.png | Bin 826 -> 0 bytes .../blocks/rbmk/rbmk_blank_cover_side.png | Bin 0 -> 190 bytes .../blocks/rbmk/rbmk_blank_cover_top.png | Bin 0 -> 396 bytes .../textures/blocks/rbmk/rbmk_blank_glass.png | Bin 333 -> 0 bytes .../textures/blocks/rbmk/rbmk_blank_side.png | Bin 0 -> 417 bytes .../textures/blocks/rbmk/rbmk_blank_top.png | Bin 0 -> 396 bytes .../hbm/textures/blocks/rbmk/rbmk_boiler.png | Bin 898 -> 0 bytes .../blocks/rbmk/rbmk_boiler_glass.png | Bin 398 -> 0 bytes .../blocks/rbmk/rbmk_boiler_pipe_side.png | Bin 0 -> 118 bytes .../blocks/rbmk/rbmk_boiler_pipe_top.png | Bin 0 -> 232 bytes .../textures/blocks/rbmk/rbmk_boiler_side.png | Bin 0 -> 370 bytes .../textures/blocks/rbmk/rbmk_boiler_top.png | Bin 0 -> 410 bytes .../hbm/textures/blocks/rbmk/rbmk_control.png | Bin 892 -> 988 bytes .../blocks/rbmk/rbmk_control_auto.png | Bin 952 -> 1000 bytes .../rbmk/rbmk_control_auto_pipe_side.png | Bin 0 -> 121 bytes .../rbmk/rbmk_control_auto_pipe_top.png | Bin 0 -> 167 bytes .../blocks/rbmk/rbmk_control_auto_side.png | Bin 0 -> 417 bytes .../blocks/rbmk/rbmk_control_auto_top.png | Bin 0 -> 417 bytes .../textures/blocks/rbmk/rbmk_control_mod.png | Bin 930 -> 1019 bytes .../rbmk/rbmk_control_mod_pipe_side.png | Bin 0 -> 121 bytes .../blocks/rbmk/rbmk_control_mod_pipe_top.png | Bin 0 -> 167 bytes .../blocks/rbmk/rbmk_control_mod_side.png | Bin 0 -> 417 bytes .../blocks/rbmk/rbmk_control_mod_top.png | Bin 0 -> 417 bytes .../blocks/rbmk/rbmk_control_pipe_side.png | Bin 0 -> 121 bytes .../blocks/rbmk/rbmk_control_pipe_top.png | Bin 0 -> 167 bytes .../blocks/rbmk/rbmk_control_side.png | Bin 0 -> 417 bytes .../textures/blocks/rbmk/rbmk_control_top.png | Bin 0 -> 417 bytes .../hbm/textures/blocks/rbmk/rbmk_cooler.png | Bin 931 -> 0 bytes .../textures/blocks/rbmk/rbmk_cooler_side.png | Bin 0 -> 390 bytes .../textures/blocks/rbmk/rbmk_cooler_top.png | Bin 0 -> 384 bytes .../hbm/textures/blocks/rbmk/rbmk_element.png | Bin 881 -> 452 bytes .../blocks/rbmk/rbmk_element_cover_side.png | Bin 0 -> 208 bytes .../blocks/rbmk/rbmk_element_cover_top.png | Bin 0 -> 452 bytes .../blocks/rbmk/rbmk_element_fuel.png | Bin 0 -> 216 bytes .../blocks/rbmk/rbmk_element_glass.png | Bin 347 -> 0 bytes .../blocks/rbmk/rbmk_element_inner.png | Bin 0 -> 191 bytes .../textures/blocks/rbmk/rbmk_element_mod.png | Bin 919 -> 0 bytes .../blocks/rbmk/rbmk_element_mod_fuel.png | Bin 0 -> 216 bytes .../blocks/rbmk/rbmk_element_mod_inner.png | Bin 0 -> 192 bytes .../blocks/rbmk/rbmk_element_mod_side.png | Bin 0 -> 417 bytes .../blocks/rbmk/rbmk_element_mod_top.png | Bin 0 -> 452 bytes .../blocks/rbmk/rbmk_element_reasim.png | Bin 887 -> 0 bytes .../blocks/rbmk/rbmk_element_reasim_fuel.png | Bin 0 -> 216 bytes .../blocks/rbmk/rbmk_element_reasim_inner.png | Bin 0 -> 191 bytes .../blocks/rbmk/rbmk_element_reasim_mod.png | Bin 920 -> 0 bytes .../rbmk/rbmk_element_reasim_mod_fuel.png | Bin 0 -> 216 bytes .../rbmk/rbmk_element_reasim_mod_inner.png | Bin 0 -> 192 bytes .../rbmk/rbmk_element_reasim_mod_side.png | Bin 0 -> 417 bytes .../rbmk/rbmk_element_reasim_mod_top.png | Bin 0 -> 452 bytes .../blocks/rbmk/rbmk_element_reasim_side.png | Bin 0 -> 417 bytes .../blocks/rbmk/rbmk_element_reasim_top.png | Bin 0 -> 452 bytes .../blocks/rbmk/rbmk_element_side.png | Bin 0 -> 417 bytes .../textures/blocks/rbmk/rbmk_element_top.png | Bin 0 -> 452 bytes .../hbm/textures/blocks/rbmk/rbmk_heater.png | Bin 1043 -> 0 bytes .../blocks/rbmk/rbmk_heater_pipe_side.png | Bin 0 -> 118 bytes .../blocks/rbmk/rbmk_heater_pipe_top.png | Bin 0 -> 232 bytes .../textures/blocks/rbmk/rbmk_heater_side.png | Bin 0 -> 370 bytes .../textures/blocks/rbmk/rbmk_heater_top.png | Bin 0 -> 410 bytes .../textures/blocks/rbmk/rbmk_moderator.png | Bin 880 -> 0 bytes .../blocks/rbmk/rbmk_moderator_glass.png | Bin 338 -> 0 bytes .../blocks/rbmk/rbmk_moderator_side.png | Bin 0 -> 363 bytes .../blocks/rbmk/rbmk_moderator_top.png | Bin 0 -> 452 bytes .../textures/blocks/rbmk/rbmk_outgasser.png | Bin 882 -> 0 bytes .../blocks/rbmk/rbmk_outgasser_glass.png | Bin 339 -> 0 bytes .../blocks/rbmk/rbmk_outgasser_side.png | Bin 0 -> 318 bytes .../blocks/rbmk/rbmk_outgasser_top.png | Bin 0 -> 428 bytes .../textures/blocks/rbmk/rbmk_reflector.png | Bin 860 -> 0 bytes .../blocks/rbmk/rbmk_reflector_glass.png | Bin 346 -> 0 bytes .../blocks/rbmk/rbmk_reflector_side.png | Bin 0 -> 334 bytes .../blocks/rbmk/rbmk_reflector_top.png | Bin 0 -> 416 bytes .../hbm/textures/blocks/rbmk/rbmk_storage.png | Bin 925 -> 0 bytes .../blocks/rbmk/rbmk_storage_side.png | Bin 0 -> 370 bytes .../textures/blocks/rbmk/rbmk_storage_top.png | Bin 0 -> 370 bytes 138 files changed, 1561 insertions(+), 1462 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/rbmk/RBMKPipedBase.java create mode 100644 src/main/resources/assets/hbm/models/rbmk/rbmk_element_rods.obj delete mode 100644 src/main/resources/assets/hbm/models/rbmk/rbmk_reflector.obj delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_cover_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_cover_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_pipe_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_pipe_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_pipe_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_pipe_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_pipe_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_pipe_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_pipe_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_pipe_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_cover_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_cover_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_fuel.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_inner.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_fuel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_inner.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_fuel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_inner.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_fuel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_inner.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater_pipe_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater_pipe_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_top.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage_top.png diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index cd6c7addd..e618b8401 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -131,14 +131,14 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl world.setBlockMetadataWithNotify(x, y, z, offset + world.getBlockMetadata(x, y, z), 3); } - public int[] findCore(World world, int x, int y, int z) { + public int[] findCore(IBlockAccess world, int x, int y, int z) { positions.clear(); return findCoreRec(world, x, y, z); } List positions = new ArrayList<>(); - public int[] findCoreRec(World world, int x, int y, int z) { + public int[] findCoreRec(IBlockAccess world, int x, int y, int z) { ThreeInts pos = new ThreeInts(x, y, z); diff --git a/src/main/java/com/hbm/blocks/machine/MachineFunnel.java b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java index 7506e2218..0f84e0b9e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFunnel.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java @@ -10,6 +10,7 @@ import com.hbm.blocks.rail.IRenderBlock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.machine.TileEntityMachineFunnel; @@ -30,7 +31,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; public class MachineFunnel extends BlockContainer implements ITooltipProvider, IRenderBlock { @@ -120,9 +120,9 @@ public class MachineFunnel extends BlockContainer implements ITooltipProvider, I public void renderInventory(Tessellator tessellator, Block block, int metadata) { GL11.glTranslatef(0F, -0.5F, 0F); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, false); tessellator.draw(); } @@ -130,9 +130,9 @@ public class MachineFunnel extends BlockContainer implements ITooltipProvider, I @SideOnly(Side.CLIENT) public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java index 466c0a02f..1f365824a 100644 --- a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java +++ b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java @@ -13,6 +13,7 @@ import com.hbm.inventory.gui.GUIAnvil; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.IGUIProvider; @@ -35,7 +36,6 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIProvider { @@ -211,12 +211,12 @@ public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIPr if(falling.getMeta() == 4) rotation = 180F / 180F * (float)Math.PI; tessellator.addTranslation(0F, -0.5F, 0F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", getIcon(1, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Bottom", getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Front", getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Back", getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Left", getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Right", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Top", getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Bottom", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Front", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Back", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Left", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Right", getIcon(0, 0), tessellator, rotation, true); tessellator.addTranslation(0F, 0.5F, 0F); } } diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index caf101e51..c90471ac4 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.blocks.BlockEnums.LightType; import com.hbm.blocks.ISpotlight; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.world.gen.nbt.INBTBlockTransformable; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -23,7 +24,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class Spotlight extends Block implements ISpotlight, INBTBlockTransformable { @@ -61,11 +61,11 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab return renderID; } - public WavefrontObject getModel() { + public HFRWavefrontObject getModel() { switch(type) { - case FLUORESCENT: return (WavefrontObject) ResourceManager.fluorescent_lamp; - case HALOGEN: return (WavefrontObject) ResourceManager.flood_lamp; - default: return (WavefrontObject) ResourceManager.cage_lamp; + case FLUORESCENT: return (HFRWavefrontObject) ResourceManager.fluorescent_lamp; + case HALOGEN: return (HFRWavefrontObject) ResourceManager.flood_lamp; + default: return (HFRWavefrontObject) ResourceManager.cage_lamp; } } 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 df7899d3a..b81c618f0 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -7,7 +7,6 @@ import com.hbm.handler.neutron.NeutronNodeWorld; import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKNeutronNode; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKLid; -import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; @@ -20,12 +19,14 @@ 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.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ResourceLocation; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; @@ -34,7 +35,13 @@ public abstract class RBMKBase extends BlockDummyable implements IToolable, ILoo public static boolean dropLids = true; public static boolean digamma = false; - public ResourceLocation coverTexture; + + public static boolean renderLid = false; + public static boolean overrideOnlyRenderSides = false; + + public IIcon coverTextureTop; + public IIcon coverTextureSide; + public IIcon textureTop; protected RBMKBase() { super(Material.iron); @@ -42,11 +49,30 @@ public abstract class RBMKBase extends BlockDummyable implements IToolable, ILoo this.setResistance(30F); } + @Override public boolean isOpaqueCube() { return true; } + @Override public boolean renderAsNormalBlock() { return true; } + + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + if(overrideOnlyRenderSides && side < 2) return false; + if(renderLid && side > 1) return true; + return super.shouldSideBeRendered(world, x, y, z, side); + } + @Override - public Block setBlockTextureName(String texture) { - this.textureName = texture; - this.coverTexture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + (texture.split(":")[1]) + ".png"); - return this; + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(this.getTextureName() + "_side"); + this.textureTop = reg.registerIcon(this.getTextureName() + "_top"); + this.coverTextureTop = reg.registerIcon(this.getTextureName() + "_cover_top"); + this.coverTextureSide = reg.registerIcon(this.getTextureName() + "_cover_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(renderLid) return side == 0 || side == 1 ? coverTextureTop : coverTextureSide; + return side == 0 || side == 1 ? textureTop : blockIcon; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java index cb8d0c048..1cf5fce2a 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java @@ -7,7 +7,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKBoiler extends RBMKBase { +public class RBMKBoiler extends RBMKPipedBase { @Override public TileEntity createNewTileEntity(World world, int meta) { @@ -25,9 +25,4 @@ public class RBMKBoiler extends RBMKBase { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return openInv(world, x, y, z, player); } - - @Override - public int getRenderType(){ - return this.renderIDControl; - } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java index c01ff59e9..89f3a4531 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class RBMKControl extends RBMKBase { +public class RBMKControl extends RBMKPipedBase { public boolean moderated = false; @@ -18,9 +18,7 @@ public class RBMKControl extends RBMKBase { @Override public TileEntity createNewTileEntity(World world, int meta) { - - if(meta >= this.offset) - return new TileEntityRBMKControlManual(); + if(meta >= this.offset) return new TileEntityRBMKControlManual(); return null; } @@ -33,9 +31,4 @@ public class RBMKControl extends RBMKBase { public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { return super.getCollisionBoundingBoxFromPool(world, x, y, z); } - - @Override - public int getRenderType(){ - return this.renderIDControl; - } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControlAuto.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControlAuto.java index 3ca461556..33c069b8e 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControlAuto.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControlAuto.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class RBMKControlAuto extends RBMKBase { +public class RBMKControlAuto extends RBMKPipedBase { @Override public TileEntity createNewTileEntity(World world, int meta) { @@ -26,9 +26,4 @@ public class RBMKControlAuto extends RBMKBase { public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { return super.getCollisionBoundingBoxFromPool(world, x, y, z); } - - @Override - public int getRenderType(){ - return this.renderIDControl; - } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeater.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeater.java index 14f9615dc..054ee4b4e 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeater.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeater.java @@ -7,7 +7,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKHeater extends RBMKBase { +public class RBMKHeater extends RBMKPipedBase { @Override public TileEntity createNewTileEntity(World world, int meta) { @@ -25,9 +25,4 @@ public class RBMKHeater extends RBMKBase { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return openInv(world, x, y, z, player); } - - @Override - public int getRenderType(){ - return this.renderIDControl; - } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKPipedBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKPipedBase.java new file mode 100644 index 000000000..51dd06f95 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKPipedBase.java @@ -0,0 +1,34 @@ +package com.hbm.blocks.machine.rbmk; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public abstract class RBMKPipedBase extends RBMKBase { + + public static boolean renderPipes = false; + + public IIcon pipeTextureTop; + public IIcon pipeTextureSide; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.pipeTextureTop = reg.registerIcon(this.getTextureName() + "_pipe_top"); + this.pipeTextureSide = reg.registerIcon(this.getTextureName() + "_pipe_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(renderPipes) return side == 0 || side == 1 ? pipeTextureTop : pipeTextureSide; + return super.getIcon(side, meta); + } + + @Override + public int getRenderType(){ + return this.renderIDControl; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java index ba5865e82..2d574562e 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java @@ -4,12 +4,16 @@ import com.hbm.handler.BossSpawnHandler; import com.hbm.items.machine.ItemRBMKLid; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.TileEntityProxyInventory; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +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.tileentity.TileEntity; +import net.minecraft.util.IIcon; import net.minecraft.world.World; public class RBMKRod extends RBMKBase { @@ -21,17 +25,26 @@ public class RBMKRod extends RBMKBase { this.moderated = moderated; } + public IIcon inner; + public IIcon fuel; + + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + @Override public TileEntity createNewTileEntity(World world, int meta) { - - if(meta >= this.offset) - return new TileEntityRBMKRod(); - - if(hasExtra(meta)) - return new TileEntityProxyInventory(); - + if(meta >= this.offset) return new TileEntityRBMKRod(); + if(hasExtra(meta)) return new TileEntityProxyCombo().inventory(); return null; } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.inner = reg.registerIcon(this.getTextureName() + "_inner"); + this.fuel = reg.registerIcon(this.getTextureName() + "_fuel"); + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index 861bda8c0..870717e41 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +20,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -154,7 +154,7 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRender GL11.glScaled(0.2, 0.2, 0.2); GL11.glTranslated(2.5, -0.0625, -1.5); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -167,7 +167,7 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRender if(meta == 14) rotation = 180F / 180F * (float) Math.PI; if(meta == 13) rotation = 270F / 180F * (float) Math.PI; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 45bf500c8..b6b0d3c7d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +20,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -124,7 +124,7 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRen public void renderInventory(Tessellator tessellator, Block block, int metadata) { GL11.glTranslated(0, -0.0625, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -134,7 +134,7 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRen float rotation = 0; if(meta == 2 || meta == 3 || meta == 12 || meta == 13) rotation = 90F / 180F * (float) Math.PI; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index 07e07c6b2..02f36b445 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -18,7 +19,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -148,7 +148,7 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRen GL11.glRotated(90, 0, 1, 0); GL11.glScaled(0.3, 0.3, 0.3); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -165,7 +165,7 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRen if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java index 101c7801f..be2946133 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +20,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardCurveBase extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -215,7 +215,7 @@ public class RailStandardCurveBase extends BlockDummyable implements IRailNTM, I GL11.glRotated(60, 1, 0, 0); GL11.glTranslated(2, 0, 2); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -228,7 +228,7 @@ public class RailStandardCurveBase extends BlockDummyable implements IRailNTM, I if(meta == 12) rotation = 180F / 180F * (float) Math.PI; if(meta == 14) rotation = 270F / 180F * (float) Math.PI; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java index 99c370760..70b84dc32 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.relauncher.Side; @@ -12,7 +13,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardCurveWide7 extends RailStandardCurveBase { @@ -94,7 +94,7 @@ public class RailStandardCurveWide7 extends RailStandardCurveBase { GL11.glRotated(60, 1, 0, 0); GL11.glTranslated(3, 0, 3); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -107,7 +107,7 @@ public class RailStandardCurveWide7 extends RailStandardCurveBase { if(meta == 12) rotation = 180F / 180F * (float) Math.PI; if(meta == 14) rotation = 270F / 180F * (float) Math.PI; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java index bb48b111b..c49134c97 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.relauncher.Side; @@ -12,7 +13,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardCurveWide9 extends RailStandardCurveBase { @@ -129,7 +129,7 @@ public class RailStandardCurveWide9 extends RailStandardCurveBase { GL11.glRotated(60, 1, 0, 0); GL11.glTranslated(4, 0, 4); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -142,7 +142,7 @@ public class RailStandardCurveWide9 extends RailStandardCurveBase { if(meta == 12) rotation = 180F / 180F * (float) Math.PI; if(meta == 14) rotation = 270F / 180F * (float) Math.PI; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index 214aac005..e259a6cb8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -6,6 +6,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -20,7 +21,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -150,7 +150,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRende GL11.glRotated(90, 0, 1, 0); GL11.glScaled(0.3, 0.3, 0.3); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -167,7 +167,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRende if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 3fc0ff745..f8f954521 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +20,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardStraight extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -131,7 +131,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM, IR GL11.glRotated(90, 0, 1, 0); GL11.glScaled(0.3, 0.3, 0.3); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -146,7 +146,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM, IR if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java index 44ed16f6a..893af54d2 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +20,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardStraightShort extends BlockDummyable implements IRailNTM, IRenderBlock { @@ -127,7 +127,7 @@ public class RailStandardStraightShort extends BlockDummyable implements IRailNT GL11.glRotated(90, 0, 1, 0); GL11.glScaled(0.7, 0.7, 0.7); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); } @@ -142,7 +142,7 @@ public class RailStandardStraightShort extends BlockDummyable implements IRailNT if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java index d35adb57d..116fefe72 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java @@ -7,6 +7,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.relauncher.Side; @@ -25,7 +26,6 @@ import net.minecraft.util.IIcon; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardSwitch extends BlockRailWaypointSystem implements IRenderBlock { @@ -205,7 +205,7 @@ public class RailStandardSwitch extends BlockRailWaypointSystem implements IRend GL11.glRotated(90, 0, 1, 0); GL11.glScaled(0.1, 0.1, 0.1); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, 0, false); tessellator.draw(); } @@ -222,13 +222,13 @@ public class RailStandardSwitch extends BlockRailWaypointSystem implements IRend if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, rotation, true); TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityRailSwitch) { TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_switch, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); } tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java index 25cc227e1..e89700b3a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java @@ -8,6 +8,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.relauncher.Side; @@ -22,7 +23,6 @@ import net.minecraft.util.IIcon; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implements IRenderBlock { @@ -202,7 +202,7 @@ public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implement GL11.glRotated(90, 0, 1, 0); GL11.glScaled(0.1, 0.1, 0.1); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, 0, false); tessellator.draw(); } @@ -219,13 +219,13 @@ public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implement if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, rotation, true); TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityRailSwitch) { TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rail_standard_switch_flipped, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); } tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index b778b7342..083cb871d 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -263,7 +263,6 @@ public abstract class SerializableRecipe { int stacksize = array.size() > 2 ? array.get(2).getAsInt() : 1; if("nbt".equals(type)) { Item item = (Item) Item.itemRegistry.getObject(array.get(1).getAsString()); - int meta = array.size() > 3 ? array.get(3).getAsInt() : 0; NBTBase nbt = array.size() > 4 ? JsonToNBT.func_150315_a(array.get(4).getAsString()) : null; return new NBTStack(item, stacksize, 0).withNBT(nbt instanceof NBTTagCompound ? (NBTTagCompound) nbt : null); } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 2f4ae35ba..34e764861 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -7,6 +7,7 @@ import com.hbm.lib.RefStrings; import com.hbm.render.anim.AnimationLoader; import com.hbm.render.anim.BusAnimation; import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.loader.HFRWavefrontObjectVBO; import com.hbm.render.loader.IModelCustomNamed; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; @@ -34,10 +35,10 @@ public class ResourceManager { public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")).asVBO(); //Heaters - public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"), false).asVBO(); - public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"), false).asVBO(); + public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj")).noSmooth().asVBO(); + public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj")).noSmooth().asVBO(); public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")).asVBO(); - public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false).asVBO(); + public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj")).noSmooth().asVBO(); public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")).asVBO(); //Heat Engines @@ -152,10 +153,10 @@ public class ResourceManager { public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")).asVBO(); //Arc Welder - public static final IModelCustom arc_welder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/arc_welder.obj"), false).asVBO(); + public static final IModelCustom arc_welder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/arc_welder.obj")).noSmooth().asVBO(); //Solderer - public static final IModelCustom soldering_station = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/soldering_station.obj"), false).asVBO(); + public static final IModelCustom soldering_station = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/soldering_station.obj")).noSmooth().asVBO(); //Arc Furnace public static final IModelCustom arc_furnace = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/arc_furnace.obj")).asVBO(); @@ -173,7 +174,7 @@ public class ResourceManager { public static final IModelCustom microwave = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/microwave.obj")); //Big Man Johnson - public static final IModelCustom autosaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj"), false).asVBO(); + public static final IModelCustom autosaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj")).noSmooth().asVBO(); //Mining Drill public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO(); @@ -200,7 +201,7 @@ public class ResourceManager { public static final IModelCustom exposure_chamber = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/exposure_chamber.obj")).asVBO(); //RTG - public static final IModelCustom rtg = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/rtg.obj")); + public static final IModelCustom rtg = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/rtg.obj")).noSmooth(); //Waste Drum public static final IModelCustom waste_drum = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drum.obj")); @@ -265,10 +266,10 @@ public class ResourceManager { public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO(); //Radar - public static final IModelCustom radar_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj"), false).asVBO(); - public static final IModelCustom radar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj"), false).asVBO(); - public static final IModelCustom radar_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj"), false).asVBO(); - public static final IModelCustom radar_screen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj"), false).asVBO(); + public static final IModelCustom radar_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")).noSmooth().asVBO(); + public static final IModelCustom radar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj")).noSmooth().asVBO(); + public static final IModelCustom radar_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj")).noSmooth().asVBO(); + public static final IModelCustom radar_screen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj")).noSmooth().asVBO(); //Forcefield public static final IModelCustom forcefield_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/forcefield_top.obj")); @@ -299,7 +300,7 @@ public class ResourceManager { //Solar Tower public static final IModelCustom solar_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_boiler.obj")).asVBO(); - public static final IModelCustom solar_mirror = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/solar_mirror.obj")); + public static final IModelCustom solar_mirror = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_mirror.obj")).noSmooth(); //Drain public static final IModelCustom drain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drain.obj")); @@ -363,13 +364,13 @@ public class ResourceManager { public static IModelCustomNamed silo_hatch_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj")).asVBO(); //Skeleton - public static final IModelCustom skeleton_holder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/skeleton_holder.obj"),false).asVBO(); + public static final IModelCustom skeleton_holder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/skeleton_holder.obj")).noSmooth().asVBO(); //Lights - public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); - public static final IModelCustom cage_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/cage_lamp.obj")); - public static final IModelCustom fluorescent_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/fluorescent_lamp.obj")); - public static final IModelCustom flood_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/flood_lamp.obj")); + public static final IModelCustom lantern = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")).noSmooth(); + public static final IModelCustom cage_lamp = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/lights/cage_lamp.obj")).noSmooth(); + public static final IModelCustom fluorescent_lamp = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/lights/fluorescent_lamp.obj")).noSmooth(); + public static final IModelCustom flood_lamp = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/lights/flood_lamp.obj")).noSmooth(); //Tesla Coil public static final IModelCustom tesla = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tesla.obj")); @@ -882,7 +883,7 @@ public class ResourceManager { public static final IModelCustom stopsign = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/stopsign.obj")); public static final IModelCustom gavel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/gavel.obj")).asVBO(); public static final IModelCustom crucible = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/crucible.obj")).asVBO(); - public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj"), false).asVBO(); + public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj")).noSmooth().asVBO(); public static final IModelCustom boltgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/boltgun.obj")).asVBO(); public static final IModelCustom bolter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bolter.obj")).asVBO(); public static final IModelCustom detonator_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/detonator_laser.obj")).asVBO(); @@ -965,7 +966,7 @@ public class ResourceManager { public static final IModelCustom armor_wings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/murk.obj")).asVBO(); public static final IModelCustom armor_axepack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/wings_pheo.obj")).asVBO(); public static final IModelCustom armor_tail = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/tail_peep.obj")).asVBO(); - public static final IModelCustom player_manly_af = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj"), false).asVBO(); + public static final IModelCustom player_manly_af = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj")).noSmooth().asVBO(); public static final IModelCustom armor_envsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/envsuit.obj")).asVBO(); public static final IModelCustom armor_taurun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/taurun.obj")).asVBO(); public static final IModelCustom armor_trenchmaster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/trenchmaster.obj")).asVBO(); @@ -1203,7 +1204,7 @@ public class ResourceManager { //Missiles public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asVBO(); public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asVBO(); - public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asVBO(); + public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj")).noSmooth().asVBO(); public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asVBO(); public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asVBO(); public static final IModelCustom missileNuclear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_atlas.obj")).asVBO(); @@ -1213,12 +1214,12 @@ public class ResourceManager { public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")).asVBO(); public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")).asVBO(); public static final IModelCustom soyuz_module = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_module.obj")).asVBO(); - public static final IModelCustom soyuz_launcher_legs = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj"), false).asVBO(); - public static final IModelCustom soyuz_launcher_table = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj"), false).asVBO(); - public static final IModelCustom soyuz_launcher_tower_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj"), false).asVBO(); - public static final IModelCustom soyuz_launcher_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower.obj"), false).asVBO(); - public static final IModelCustom soyuz_launcher_support_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support_base.obj"), false).asVBO(); - public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_legs = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj")).noSmooth().asVBO(); + public static final IModelCustom soyuz_launcher_table = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj")).noSmooth().asVBO(); + public static final IModelCustom soyuz_launcher_tower_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj")).noSmooth().asVBO(); + public static final IModelCustom soyuz_launcher_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower.obj")).noSmooth().asVBO(); + public static final IModelCustom soyuz_launcher_support_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support_base.obj")).noSmooth().asVBO(); + public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj")).noSmooth().asVBO(); //Missile Parts public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_silo.obj")); @@ -1581,67 +1582,67 @@ public class ResourceManager { public static final ResourceLocation delivery_drone_request_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_request.png"); //ISBRHs - public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); - public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj")); - public static final IModelCustom beam = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/beam.obj")); - public static final IModelCustom barrel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barrel.obj")); - public static final IModelCustom pole = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pole.obj")); - public static final IModelCustom barbed_wire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barbed_wire.obj")); - 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 pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj")); - public static final IModelCustom rtty = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rtty.obj")); - public static final IModelCustom crt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crt.obj")); - public static final IModelCustom toaster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/toaster.obj")); + public static final HFRWavefrontObject scaffold = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")).noSmooth(); + public static final HFRWavefrontObject taperecorder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj")).noSmooth(); + public static final HFRWavefrontObject beam = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/beam.obj")).noSmooth(); + public static final HFRWavefrontObject barrel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/barrel.obj")).noSmooth(); + public static final HFRWavefrontObject pole = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/pole.obj")).noSmooth(); + public static final HFRWavefrontObject barbed_wire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/barbed_wire.obj")).noSmooth(); + public static final HFRWavefrontObject spikes = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/spikes.obj")).noSmooth(); + public static final HFRWavefrontObject antenna_top = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/antenna_top.obj")).noSmooth(); + public static final HFRWavefrontObject conservecrate = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/conservecrate.obj")).noSmooth(); + public static final HFRWavefrontObject pipe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe.obj")).noSmooth(); + public static final HFRWavefrontObject pipe_rim = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_rim.obj")).noSmooth(); + public static final HFRWavefrontObject pipe_quad = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj")).noSmooth(); + public static final HFRWavefrontObject pipe_frame = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj")).noSmooth(); + public static final HFRWavefrontObject rtty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rtty.obj")).noSmooth(); + public static final HFRWavefrontObject crt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crt.obj")).noSmooth(); + public static final HFRWavefrontObject toaster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/toaster.obj")).noSmooth(); - public static final IModelCustom deco_computer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/puter.obj")); + public static final IModelCustom deco_computer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/puter.obj")).noSmooth(); // Some RBMK elements are loaded twice due to VBOs not supporting tessellation - public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")); - public static final IModelCustom rbmk_element_vbo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")).asVBO(); - public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj")); - public static final IModelCustom rbmk_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")); - public static final IModelCustom rbmk_rods_vbo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")).asVBO(); - public static final IModelCustom rbmk_crane_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane_console.obj")).asVBO(); - public static final IModelCustom rbmk_crane = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane.obj")).asVBO(); - public static final IModelCustom rbmk_autoloader = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/autoloader.obj")).asVBO(); - public static final IModelCustom rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")).asVBO(); - public static final IModelCustom rbmk_debris = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")); + public static final HFRWavefrontObject rbmk_element = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj"), true).noSmooth(); + public static final HFRWavefrontObject rbmk_element_rods = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element_rods.obj")).noSmooth(); + public static final HFRWavefrontObjectVBO rbmk_element_rods_vbo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element_rods.obj")).noSmooth().asVBO(); + public static final HFRWavefrontObject rbmk_rods = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")).noSmooth(); + public static final HFRWavefrontObjectVBO rbmk_rods_vbo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")).noSmooth().asVBO(); + public static final HFRWavefrontObjectVBO rbmk_crane_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane_console.obj")).asVBO(); + public static final HFRWavefrontObjectVBO rbmk_crane = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane.obj")).asVBO(); + public static final HFRWavefrontObjectVBO rbmk_autoloader = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/autoloader.obj")).asVBO(); + public static final HFRWavefrontObjectVBO rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")).asVBO(); + public static final HFRWavefrontObject rbmk_debris = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")).noSmooth(); public static final ResourceLocation rbmk_crane_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crane_console.png"); public static final ResourceLocation rbmk_crane_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_crane.png"); public static final ResourceLocation rbmk_autoloader_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_autoloader.png"); public static final ResourceLocation rbmk_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_control.png"); - public static final IModelCustom hev_battery = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/battery.obj")); - public static final IModelCustom anvil = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/anvil.obj")); - public static final IModelCustom crystal_power = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_power.obj")); - public static final IModelCustom crystal_energy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_energy.obj")); - public static final IModelCustom crystal_robust = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_robust.obj")); - public static final IModelCustom crystal_trixite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_trixite.obj")); - public static final IModelCustom cable_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/cable_neo.obj")); - public static final IModelCustom pipe_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_neo.obj")); - public static final IModelCustom difurnace_extension = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/difurnace_extension.obj")); - public static final IModelCustom splitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")); - public static final IModelCustom crane_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crane_buffer.obj")); - public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); - public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); - public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); - public static final IModelCustom rail_standard_straight_short = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_short.obj")); - public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); - public static final IModelCustom rail_standard_curve_wide7 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")); - public static final IModelCustom rail_standard_curve_wide9 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide9.obj")); - public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); - public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); - public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); - public static final IModelCustom rail_standard_switch_flipped = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch_flipped.obj")); - public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); - public static final IModelCustom funnel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/funnel.obj")); + public static final HFRWavefrontObject hev_battery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/battery.obj")).noSmooth(); + public static final HFRWavefrontObject anvil = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/anvil.obj")).noSmooth(); + public static final HFRWavefrontObject crystal_power = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_power.obj")).noSmooth(); + public static final HFRWavefrontObject crystal_energy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_energy.obj")).noSmooth(); + public static final HFRWavefrontObject crystal_robust = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_robust.obj")).noSmooth(); + public static final HFRWavefrontObject crystal_trixite = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_trixite.obj")).noSmooth(); + public static final HFRWavefrontObject cable_neo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/cable_neo.obj")).noSmooth(); + public static final HFRWavefrontObject pipe_neo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_neo.obj")); + public static final HFRWavefrontObject difurnace_extension = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/difurnace_extension.obj")).noSmooth(); + public static final HFRWavefrontObject splitter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")).noSmooth(); + public static final HFRWavefrontObject crane_buffer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crane_buffer.obj")).noSmooth(); + public static final HFRWavefrontObject rail_narrow_straight = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")).noSmooth(); + public static final HFRWavefrontObject rail_narrow_curve = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_straight = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_straight_short = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_short.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_curve = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_curve_wide7 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_curve_wide9 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide9.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_ramp = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_buffer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_switch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")).noSmooth(); + public static final HFRWavefrontObject rail_standard_switch_flipped = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch_flipped.obj")).noSmooth(); + public static final HFRWavefrontObject capacitor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")).noSmooth(); + public static final HFRWavefrontObject funnel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/funnel.obj")).noSmooth(); - public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); - public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); + public static final IModelCustom charge_dynamite = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")).noSmooth(); + public static final IModelCustom charge_c4 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")).noSmooth(); //RBMK DEBRIS public static final IModelCustom deb_blank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/projectiles/deb_blank.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderAntennaTop.java b/src/main/java/com/hbm/render/block/RenderAntennaTop.java index e5048e41c..46fc0e83c 100644 --- a/src/main/java/com/hbm/render/block/RenderAntennaTop.java +++ b/src/main/java/com/hbm/render/block/RenderAntennaTop.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.DecoPoleTop; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderAntennaTop implements ISimpleBlockRenderingHandler { @@ -20,42 +20,40 @@ public class RenderAntennaTop 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; - } + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } - GL11.glTranslated(0, -0.5, 0); - GL11.glScalef(0.75F, 0.75F, 0.75F); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, false); + GL11.glTranslated(0, -0.5, 0); + GL11.glScalef(0.75F, 0.75F, 0.75F); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.antenna_top, 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); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, true); - 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((HFRWavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderAnvil.java b/src/main/java/com/hbm/render/block/RenderAnvil.java index 6945f51a3..ab4bce899 100644 --- a/src/main/java/com/hbm/render/block/RenderAnvil.java +++ b/src/main/java/com/hbm/render/block/RenderAnvil.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.machine.NTMAnvil; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -11,7 +12,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderAnvil implements ISimpleBlockRenderingHandler { @@ -24,12 +24,12 @@ public class RenderAnvil implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.5, 0); GL11.glRotated(180, 0, 1, 0); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", block.getIcon(1, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Bottom", block.getIcon(0, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Front", block.getIcon(0, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Back", block.getIcon(0, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Left", block.getIcon(0, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Right", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Top", block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Bottom", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Front", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Back", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Left", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Right", block.getIcon(0, 0), tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -55,12 +55,12 @@ public class RenderAnvil implements ISimpleBlockRenderingHandler { rotation = 180F / 180F * (float)Math.PI; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", block.getIcon(1, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Bottom", block.getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Front", block.getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Back", block.getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Left", block.getIcon(0, 0), tessellator, rotation, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Right", block.getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Top", block.getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Bottom", block.getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Front", block.getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Back", block.getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Left", block.getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.anvil, "Right", block.getIcon(0, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/block/RenderBarbedWire.java b/src/main/java/com/hbm/render/block/RenderBarbedWire.java index 81bcf0bd9..4ec364269 100644 --- a/src/main/java/com/hbm/render/block/RenderBarbedWire.java +++ b/src/main/java/com/hbm/render/block/RenderBarbedWire.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BarbedWire; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderBarbedWire implements ISimpleBlockRenderingHandler { @@ -20,46 +20,44 @@ public class RenderBarbedWire 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(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.barbed_wire, iicon, tessellator, 0, false); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.barbed_wire, 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; - } - - float rotation = (float) -Math.PI; - - if(world.getBlockMetadata(x, y, z) < 4) - rotation = -90F / 180F * (float)Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.barbed_wire, iicon, tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + float rotation = (float) -Math.PI; + + if(world.getBlockMetadata(x, y, z) < 4) + rotation = -90F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.barbed_wire, iicon, tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderBarrel.java b/src/main/java/com/hbm/render/block/RenderBarrel.java index 96894ec2b..06d0b7b70 100644 --- a/src/main/java/com/hbm/render/block/RenderBarrel.java +++ b/src/main/java/com/hbm/render/block/RenderBarrel.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.machine.BlockFluidBarrel; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderBarrel implements ISimpleBlockRenderingHandler { @@ -30,7 +30,7 @@ public class RenderBarrel implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.5, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.barrel, iicon, tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.barrel, iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -50,7 +50,7 @@ public class RenderBarrel implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.barrel, iicon, tessellator, 0, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.barrel, iicon, tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/block/RenderBattery.java b/src/main/java/com/hbm/render/block/RenderBattery.java index cb5360c66..fb4abbfc3 100644 --- a/src/main/java/com/hbm/render/block/RenderBattery.java +++ b/src/main/java/com/hbm/render/block/RenderBattery.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.HEVBattery; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderBattery implements ISimpleBlockRenderingHandler { @@ -31,7 +31,7 @@ public class RenderBattery implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.625, 0); GL11.glScaled(3.0D, 3.0D, 3.0D); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.hev_battery, iicon, tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.hev_battery, iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -51,7 +51,7 @@ public class RenderBattery implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.hev_battery, iicon, tessellator, 0, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.hev_battery, iicon, tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java b/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java index d0441fa3a..bde332508 100644 --- a/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java +++ b/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java @@ -2,6 +2,7 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -11,7 +12,6 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.model.IModelCustom; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler { @@ -38,7 +38,7 @@ public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, 0.1D, 0); GL11.glScaled(1.2D, 1.2D, 1.2D); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) model, iicon, tessellator, 0, false); tessellator.draw(); @@ -74,7 +74,7 @@ public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) model, iicon, tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); return false; diff --git a/src/main/java/com/hbm/render/block/RenderBlockRotated.java b/src/main/java/com/hbm/render/block/RenderBlockRotated.java index d4f6ec222..3c7310978 100644 --- a/src/main/java/com/hbm/render/block/RenderBlockRotated.java +++ b/src/main/java/com/hbm/render/block/RenderBlockRotated.java @@ -2,6 +2,7 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -11,7 +12,6 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.model.IModelCustom; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderBlockRotated implements ISimpleBlockRenderingHandler { @@ -39,7 +39,7 @@ public class RenderBlockRotated implements ISimpleBlockRenderingHandler { GL11.glRotated(-90, 0, 0, 1); GL11.glTranslated(0, 0.375, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) model, iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -80,7 +80,7 @@ public class RenderBlockRotated implements ISimpleBlockRenderingHandler { flip = (float)Math.PI * 0.5F; tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, rotation, flip, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) model, iicon, tessellator, rotation, flip, true); tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/block/RenderCRT.java b/src/main/java/com/hbm/render/block/RenderCRT.java index a048efafc..48322d915 100644 --- a/src/main/java/com/hbm/render/block/RenderCRT.java +++ b/src/main/java/com/hbm/render/block/RenderCRT.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockDecoCRT; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderCRT implements ISimpleBlockRenderingHandler { @@ -30,7 +30,7 @@ public class RenderCRT implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.5, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crt, iicon, tessellator, (float) Math.PI * -0.5F, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.crt, iicon, tessellator, (float) Math.PI * -0.5F, false); tessellator.draw(); GL11.glPopMatrix(); @@ -62,9 +62,9 @@ public class RenderCRT implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Monitor", iicon, tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crt, "Monitor", iicon, tessellator, rotation, true); if(metaOrig >= 8) tessellator.setBrightness(240); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Screen", iicon, tessellator, rotation, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crt, "Screen", iicon, tessellator, rotation, true); tessellator.setBrightness(brightness); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderCable.java b/src/main/java/com/hbm/render/block/RenderCable.java index 7f69aa02e..b0f9fd956 100644 --- a/src/main/java/com/hbm/render/block/RenderCable.java +++ b/src/main/java/com/hbm/render/block/RenderCable.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.network.BlockCable; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -13,7 +14,6 @@ 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 RenderCable implements ISimpleBlockRenderingHandler { @@ -32,11 +32,11 @@ public class RenderCable implements ISimpleBlockRenderingHandler { GL11.glRotated(180, 0, 1, 0); GL11.glScaled(1.25D, 1.25D, 1.25D); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -66,20 +66,20 @@ public class RenderCable implements ISimpleBlockRenderingHandler { tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); if(pX && nX && !pY && !nY && !pZ && !nZ) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true); else if(!pX && !nX && pY && nY && !pZ && !nZ) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true); else if(!pX && !nX && !pY && !nY && pZ && nZ) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true); else { - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, true); - if(pX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, true); - if(nX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, true); - if(pY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posY", iicon, tessellator, 0, true); - if(nY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iicon, tessellator, 0, true); - if(nZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, true); - if(pZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, true); + if(pX) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, true); + if(nX) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, true); + if(pY) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posY", iicon, tessellator, 0, true); + if(nY) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negY", iicon, tessellator, 0, true); + if(nZ) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, true); + if(pZ) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, true); } tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderCapacitor.java b/src/main/java/com/hbm/render/block/RenderCapacitor.java index 227bf140c..3ea81e257 100644 --- a/src/main/java/com/hbm/render/block/RenderCapacitor.java +++ b/src/main/java/com/hbm/render/block/RenderCapacitor.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.machine.MachineCapacitor; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -11,7 +12,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderCapacitor implements ISimpleBlockRenderingHandler { @@ -25,11 +25,11 @@ public class RenderCapacitor implements ISimpleBlockRenderingHandler { MachineCapacitor capacitor = (MachineCapacitor) block; tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -66,11 +66,11 @@ public class RenderCapacitor implements ISimpleBlockRenderingHandler { tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, rotation, flip, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, rotation, flip, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, rotation, flip, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, rotation, flip, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, rotation, flip, true); tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderConserve.java b/src/main/java/com/hbm/render/block/RenderConserve.java index 4f99cebe9..094812d9f 100644 --- a/src/main/java/com/hbm/render/block/RenderConserve.java +++ b/src/main/java/com/hbm/render/block/RenderConserve.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockCanCrate; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderConserve implements ISimpleBlockRenderingHandler { @@ -20,41 +20,39 @@ public class RenderConserve 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; - } + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } - GL11.glTranslated(0, -0.5, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.conservecrate, iicon, tessellator, 0, false); + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.conservecrate, 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); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.conservecrate, iicon, tessellator, 0, true); - 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((HFRWavefrontObject) ResourceManager.conservecrate, iicon, tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderDetCord.java b/src/main/java/com/hbm/render/block/RenderDetCord.java index 7b77738ae..65234b6d4 100644 --- a/src/main/java/com/hbm/render/block/RenderDetCord.java +++ b/src/main/java/com/hbm/render/block/RenderDetCord.java @@ -6,6 +6,7 @@ import com.hbm.blocks.bomb.DetCord; import com.hbm.blocks.bomb.IDetConnectible; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -14,7 +15,6 @@ 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 RenderDetCord implements ISimpleBlockRenderingHandler { @@ -33,7 +33,7 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler { GL11.glRotated(180, 0, 1, 0); GL11.glScaled(1.25D, 1.25D, 1.25D); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -65,20 +65,20 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler { tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); if(mask == 0b110000 || mask == 0b100000 || mask == 0b010000) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true); else if(mask == 0b001100 || mask == 0b001000 || mask == 0b000100) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true); else if(mask == 0b000011 || mask == 0b000010 || mask == 0b000001) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true); else { - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, true); - if(pX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, true); - if(nX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, true); - if(pY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posY", iicon, tessellator, 0, true); - if(nY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iicon, tessellator, 0, true); - if(nZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, true); - if(pZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "Core", iicon, tessellator, 0, true); + if(pX) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posX", iicon, tessellator, 0, true); + if(nX) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negX", iicon, tessellator, 0, true); + if(pY) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posY", iicon, tessellator, 0, true); + if(nY) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negY", iicon, tessellator, 0, true); + if(nZ) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posZ", iicon, tessellator, 0, true); + if(pZ) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negZ", iicon, tessellator, 0, true); } tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderDiFurnaceExtension.java b/src/main/java/com/hbm/render/block/RenderDiFurnaceExtension.java index 8c40257b6..0708ca48a 100644 --- a/src/main/java/com/hbm/render/block/RenderDiFurnaceExtension.java +++ b/src/main/java/com/hbm/render/block/RenderDiFurnaceExtension.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineDiFurnaceExtension; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderDiFurnaceExtension implements ISimpleBlockRenderingHandler { @@ -25,9 +25,9 @@ public class RenderDiFurnaceExtension implements ISimpleBlockRenderingHandler { GL11.glTranslatef(0F, -0.5F, 0F); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.difurnace_extension, "Top", ModBlocks.machine_difurnace_extension.getIcon(1, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.difurnace_extension, "Bottom", ModBlocks.machine_difurnace_extension.getIcon(0, 0), tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.difurnace_extension, "Side", ModBlocks.machine_difurnace_extension.getIcon(3, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.difurnace_extension, "Top", ModBlocks.machine_difurnace_extension.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.difurnace_extension, "Bottom", ModBlocks.machine_difurnace_extension.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.difurnace_extension, "Side", ModBlocks.machine_difurnace_extension.getIcon(3, 0), tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -43,9 +43,9 @@ public class RenderDiFurnaceExtension implements ISimpleBlockRenderingHandler { tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.difurnace_extension, "Top", ModBlocks.machine_difurnace_extension.getIcon(1, 0), tessellator, 0, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.difurnace_extension, "Bottom", ModBlocks.machine_difurnace_extension.getIcon(0, 0), tessellator, 0, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.difurnace_extension, "Side", ModBlocks.machine_difurnace_extension.getIcon(3, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.difurnace_extension, "Top", ModBlocks.machine_difurnace_extension.getIcon(1, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.difurnace_extension, "Bottom", ModBlocks.machine_difurnace_extension.getIcon(0, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.difurnace_extension, "Side", ModBlocks.machine_difurnace_extension.getIcon(3, 0), tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderDiode.java b/src/main/java/com/hbm/render/block/RenderDiode.java index fb68b8dc4..d3c5e2c54 100644 --- a/src/main/java/com/hbm/render/block/RenderDiode.java +++ b/src/main/java/com/hbm/render/block/RenderDiode.java @@ -6,6 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.network.CableDiode; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -14,7 +15,6 @@ 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 RenderDiode implements ISimpleBlockRenderingHandler { @@ -73,11 +73,11 @@ public class RenderDiode implements ISimpleBlockRenderingHandler { GL11.glRotated(180, 0, 1, 0); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iconCable, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iconCable, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iconCable, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iconCable, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iconCable, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posX", iconCable, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negX", iconCable, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negY", iconCable, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posZ", iconCable, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negZ", iconCable, tessellator, 0, false); tessellator.draw(); renderer.clearOverrideBlockTexture(); @@ -132,12 +132,12 @@ public class RenderDiode implements ISimpleBlockRenderingHandler { tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); //ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iconCable, tessellator, 0, true); - if(pX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iconCable, tessellator, 0, true); - if(nX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iconCable, tessellator, 0, true); - if(pY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posY", iconCable, tessellator, 0, true); - if(nY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iconCable, tessellator, 0, true); - if(nZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iconCable, tessellator, 0, true); - if(pZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iconCable, tessellator, 0, true); + if(pX) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posX", iconCable, tessellator, 0, true); + if(nX) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negX", iconCable, tessellator, 0, true); + if(pY) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posY", iconCable, tessellator, 0, true); + if(nY) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negY", iconCable, tessellator, 0, true); + if(nZ) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "posZ", iconCable, tessellator, 0, true); + if(pZ) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.cable_neo, "negZ", iconCable, tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderMirror.java b/src/main/java/com/hbm/render/block/RenderMirror.java index 1b0b4de33..0e1bca971 100644 --- a/src/main/java/com/hbm/render/block/RenderMirror.java +++ b/src/main/java/com/hbm/render/block/RenderMirror.java @@ -2,6 +2,9 @@ package com.hbm.render.block; import com.hbm.blocks.machine.SolarMirror; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.loader.S_Face; +import com.hbm.render.loader.S_GroupObject; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.machine.TileEntitySolarMirror; @@ -13,11 +16,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.Face; -import net.minecraftforge.client.model.obj.GroupObject; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderMirror implements ISimpleBlockRenderingHandler { @@ -49,10 +49,10 @@ public class RenderMirror implements ISimpleBlockRenderingHandler { int dz = mirror.tZ - mirror.zCoord; tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.solar_mirror, "Base", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.solar_mirror, "Base", iicon, tessellator, 0, true); if(mirror.tY <= mirror.yCoord) - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.solar_mirror, "Mirror", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.solar_mirror, "Mirror", iicon, tessellator, 0, true); else printMirror(iicon, dx, dy, dz); @@ -63,9 +63,9 @@ public class RenderMirror implements ISimpleBlockRenderingHandler { private void printMirror(IIcon icon, int dx, int dy, int dz) { - GroupObject go = null; + S_GroupObject go = null; - for(GroupObject obj : ((WavefrontObject)ResourceManager.solar_mirror).groupObjects) { + for(S_GroupObject obj : ((HFRWavefrontObject) ResourceManager.solar_mirror).groupObjects) { if(obj.name.equals("Mirror")) go = obj; } @@ -77,7 +77,7 @@ public class RenderMirror implements ISimpleBlockRenderingHandler { double pitch = -Math.asin(dy / dist) + Math.PI / 2D; double yaw = -Math.atan2(dz, dx) - Math.PI / 2D; - for(Face f : go.faces) { + for(S_Face f : go.faces) { Vertex n = f.faceNormal; diff --git a/src/main/java/com/hbm/render/block/RenderPartitioner.java b/src/main/java/com/hbm/render/block/RenderPartitioner.java index f70b68577..eace9e439 100644 --- a/src/main/java/com/hbm/render/block/RenderPartitioner.java +++ b/src/main/java/com/hbm/render/block/RenderPartitioner.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.network.CranePartitioner; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -11,7 +12,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderPartitioner implements ISimpleBlockRenderingHandler { @@ -60,12 +60,12 @@ public class RenderPartitioner implements ISimpleBlockRenderingHandler { private static void drawPartitioner(Tessellator tessellator, Block block, float rotation, boolean shadeNormals) { CranePartitioner partitioner = (CranePartitioner) block; - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Side", partitioner.getIcon(0, 0), tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Back", partitioner.iconBack, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Top_Top.001", partitioner.iconTop, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Inner", partitioner.iconInner, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "InnerSide", partitioner.iconInnerSide, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Belt", partitioner.iconBelt, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crane_buffer, "Side", partitioner.getIcon(0, 0), tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crane_buffer, "Back", partitioner.iconBack, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crane_buffer, "Top_Top.001", partitioner.iconTop, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crane_buffer, "Inner", partitioner.iconInner, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crane_buffer, "InnerSide", partitioner.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.crane_buffer, "Belt", partitioner.iconBelt, tessellator, rotation, shadeNormals); } @Override diff --git a/src/main/java/com/hbm/render/block/RenderPipe.java b/src/main/java/com/hbm/render/block/RenderPipe.java index e89157d4f..0b72b7d2c 100644 --- a/src/main/java/com/hbm/render/block/RenderPipe.java +++ b/src/main/java/com/hbm/render/block/RenderPipe.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockPipe; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 { @@ -33,25 +33,25 @@ public class RenderPipe implements ISimpleBlockRenderingHandler { 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); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) 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); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) 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); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, 0, false); } if(pipe.rType == 3) { - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, 0, false); } tessellator.draw(); @@ -90,25 +90,25 @@ public class RenderPipe implements ISimpleBlockRenderingHandler { } 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); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) 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); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) 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); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, rot, pitch, true); } if(pipe.rType == 3) { - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, rot, pitch, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, rot, pitch, true); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, rot, pitch, true); } tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); diff --git a/src/main/java/com/hbm/render/block/RenderPribris.java b/src/main/java/com/hbm/render/block/RenderPribris.java index 27a5cdc63..2082d303b 100644 --- a/src/main/java/com/hbm/render/block/RenderPribris.java +++ b/src/main/java/com/hbm/render/block/RenderPribris.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.machine.rbmk.RBMKDebris; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderPribris implements ISimpleBlockRenderingHandler { @@ -30,7 +30,7 @@ public class RenderPribris implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.5, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rbmk_debris, iicon, tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rbmk_debris, iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -50,7 +50,7 @@ public class RenderPribris implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rbmk_debris, iicon, tessellator, 0, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rbmk_debris, iicon, tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/block/RenderRBMKControl.java b/src/main/java/com/hbm/render/block/RenderRBMKControl.java index f2acc8f8f..dc2c103fb 100644 --- a/src/main/java/com/hbm/render/block/RenderRBMKControl.java +++ b/src/main/java/com/hbm/render/block/RenderRBMKControl.java @@ -2,6 +2,7 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.main.ResourceManager; @@ -13,7 +14,7 @@ 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; +import net.minecraftforge.common.util.ForgeDirection; public class RenderRBMKControl implements ISimpleBlockRenderingHandler { @@ -34,16 +35,46 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler { for(int i = 0; i < 4; i++) { tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Column", iicon, tessellator, 0, false); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0)); + tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.DOWN.ordinal(), 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.NORTH.ordinal(), 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.SOUTH.ordinal(), 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0)); tessellator.draw(); - - if(i < 3) - GL11.glTranslated(0, 1, 0); + if(i < 3) GL11.glTranslated(0, 1, 0); } - if(block != ModBlocks.rbmk_boiler) { + tessellator.startDrawingQuads(); + renderer.setRenderBounds(0.0625, 0, 0.0625, 0.4375, 0.125, 0.4375); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.NORTH.ordinal(), 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.SOUTH.ordinal(), 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0)); + renderer.setRenderBounds(0.0625, 0, 0.5625, 0.4375, 0.125, 0.9375); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.NORTH.ordinal(), 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.SOUTH.ordinal(), 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0)); + renderer.setRenderBounds(0.5625, 0, 0.5625, 0.9375, 0.125, 0.9375); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.NORTH.ordinal(), 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.SOUTH.ordinal(), 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0)); + renderer.setRenderBounds(0.5625, 0, 0.0625, 0.9375, 0.125, 0.4375); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.NORTH.ordinal(), 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.SOUTH.ordinal(), 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0)); + tessellator.draw(); + + if(block != ModBlocks.rbmk_boiler && block != ModBlocks.rbmk_heater) { tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Lid", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon(ResourceManager.rbmk_rods, "Lid", iicon, tessellator, 0, true); tessellator.draw(); } @@ -54,19 +85,47 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler { 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)); + int meta = 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); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Column", iicon, tessellator, 0, true); + renderer.renderStandardBlock(block, x, y, z); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta >= 6 && meta < 12) { + + boolean hasLid = false; + if(block == ModBlocks.rbmk_boiler || block == ModBlocks.rbmk_heater) { + + int[] pos = ((BlockDummyable) block).findCore(world, x, y, z); + if(pos != null) { + int coreMeta = world.getBlockMetadata(pos[0], pos[1], pos[2]); + + if(coreMeta - 10 == RBMKBase.DIR_NORMAL_LID.ordinal()) { + tessellator.addTranslation(0, 1, 0); + renderer.setRenderBounds(0, 0, 0, 1, 0.25, 1); + RBMKBase.renderLid = true; + renderer.renderStandardBlock(block, x, y, z); + RBMKBase.renderLid = false; + tessellator.addTranslation(0, -1, 0); + hasLid = true; + } + } + } + + if(!hasLid) { + tessellator.addTranslation(0, 1, 0); + renderer.setRenderBounds(0.0625, 0, 0.0625, 0.4375, 0.125, 0.4375); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0625, 0, 0.5625, 0.4375, 0.125, 0.9375); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.5625, 0, 0.5625, 0.9375, 0.125, 0.9375); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.5625, 0, 0.0625, 0.9375, 0.125, 0.4375); + renderer.renderStandardBlock(block, x, y, z); + tessellator.addTranslation(0, -1, 0); + } + } else { + } return true; } diff --git a/src/main/java/com/hbm/render/block/RenderRBMKReflector.java b/src/main/java/com/hbm/render/block/RenderRBMKReflector.java index feac19f73..61429fef3 100644 --- a/src/main/java/com/hbm/render/block/RenderRBMKReflector.java +++ b/src/main/java/com/hbm/render/block/RenderRBMKReflector.java @@ -2,17 +2,15 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.machine.rbmk.RBMKBase; -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; +import net.minecraftforge.common.util.ForgeDirection; public class RenderRBMKReflector implements ISimpleBlockRenderingHandler { @@ -21,19 +19,19 @@ public class RenderRBMKReflector implements ISimpleBlockRenderingHandler { GL11.glPushMatrix(); 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.675, 0); GL11.glScalef(0.35F, 0.35F, 0.35F); for(int i = 0; i < 4; i++) { tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_reflector, "Column", iicon, tessellator, 0, false); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0)); + tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.DOWN.ordinal(), 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.NORTH.ordinal(), 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.SOUTH.ordinal(), 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 0, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0)); tessellator.draw(); GL11.glTranslated(0, 1, 0); } @@ -45,19 +43,29 @@ public class RenderRBMKReflector implements ISimpleBlockRenderingHandler { 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.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_reflector, "Column", iicon, tessellator, 0, true); + int meta = world.getBlockMetadata(x, y, z); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + renderer.setRenderBounds(0, 0, 0, 1, 1, 1); + renderer.renderStandardBlock(block, x, y, z); + + if(meta >= 6 && meta < 12) { + int[] pos = ((BlockDummyable) block).findCore(world, x, y, z); + if(pos != null) { + int coreMeta = world.getBlockMetadata(pos[0], pos[1], pos[2]); + + if(coreMeta - 10 == RBMKBase.DIR_NORMAL_LID.ordinal()) { + tessellator.addTranslation(0, 1, 0); + renderer.setRenderBounds(0, 0, 0, 1, 0.25, 1); + RBMKBase.renderLid = true; + renderer.renderStandardBlock(block, x, y, z); + RBMKBase.renderLid = false; + tessellator.addTranslation(0, -1, 0); + } + } + } return true; } diff --git a/src/main/java/com/hbm/render/block/RenderRBMKRod.java b/src/main/java/com/hbm/render/block/RenderRBMKRod.java index d85c837ee..f694cfd36 100644 --- a/src/main/java/com/hbm/render/block/RenderRBMKRod.java +++ b/src/main/java/com/hbm/render/block/RenderRBMKRod.java @@ -2,8 +2,11 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.blocks.machine.rbmk.RBMKRod; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +15,6 @@ 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 RenderRBMKRod implements ISimpleBlockRenderingHandler { @@ -20,8 +22,10 @@ public class RenderRBMKRod implements ISimpleBlockRenderingHandler { public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); + RBMKRod rod = (RBMKRod) block; Tessellator tessellator = Tessellator.instance; IIcon iicon = block.getIcon(0, 0); + IIcon sideIcon = block.getIcon(2, 0); tessellator.setColorOpaque_F(1, 1, 1); if(renderer.hasOverrideBlockTexture()) { @@ -33,8 +37,13 @@ public class RenderRBMKRod implements ISimpleBlockRenderingHandler { for(int i = 0; i < 4; i++) { tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Column", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Rods", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Inner", rod.inner, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Cap", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element_rods, "Rods", rod.fuel, tessellator, 0, false); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 0, -0.5, sideIcon); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 0, -0.5, sideIcon); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 0, -0.5, sideIcon); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 0, -0.5, sideIcon); tessellator.draw(); GL11.glTranslated(0, 1, 0); } @@ -45,8 +54,10 @@ public class RenderRBMKRod implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + RBMKRod rod = (RBMKRod) block; Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + int meta = world.getBlockMetadata(x, y, z); + IIcon iicon = block.getIcon(0, meta); tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); @@ -54,11 +65,33 @@ public class RenderRBMKRod implements ISimpleBlockRenderingHandler { if(renderer.hasOverrideBlockTexture()) { iicon = renderer.overrideBlockTexture; } - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Column", iicon, tessellator, 0, true); + renderer.setRenderBounds(0, 0, 0, 1, 1, 1); + rod.overrideOnlyRenderSides = true; + renderer.renderStandardBlock(block, x, y, z); + rod.overrideOnlyRenderSides = false; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Cap", iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Inner", rod.inner, tessellator, 0, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + if(meta >= 6 && meta < 12) { + int[] pos = ((BlockDummyable) block).findCore(world, x, y, z); + if(pos != null) { + int coreMeta = world.getBlockMetadata(pos[0], pos[1], pos[2]); + + if(coreMeta - 10 == RBMKBase.DIR_NORMAL_LID.ordinal()) { + tessellator.addTranslation(0, 1, 0); + renderer.setRenderBounds(0, 0, 0, 1, 0.25, 1); + RBMKBase.renderLid = true; + renderer.renderStandardBlock(block, x, y, z); + RBMKBase.renderLid = false; + tessellator.addTranslation(0, -1, 0); + } + } + } return true; } diff --git a/src/main/java/com/hbm/render/block/RenderRTGBlock.java b/src/main/java/com/hbm/render/block/RenderRTGBlock.java index 1fa3d9673..45747edc6 100644 --- a/src/main/java/com/hbm/render/block/RenderRTGBlock.java +++ b/src/main/java/com/hbm/render/block/RenderRTGBlock.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.machine.MachineRTG; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderRTGBlock implements ISimpleBlockRenderingHandler { @@ -20,21 +20,20 @@ public class RenderRTGBlock 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(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rtg, "Gen", iicon, tessellator, 0, false); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rtg, "Gen", iicon, tessellator, 0, false); tessellator.draw(); - - GL11.glPopMatrix(); + + GL11.glPopMatrix(); } @Override diff --git a/src/main/java/com/hbm/render/block/RenderRTTY.java b/src/main/java/com/hbm/render/block/RenderRTTY.java index ba32ac59a..652fa03ea 100644 --- a/src/main/java/com/hbm/render/block/RenderRTTY.java +++ b/src/main/java/com/hbm/render/block/RenderRTTY.java @@ -3,6 +3,7 @@ package com.hbm.render.block; import com.hbm.blocks.network.RadioTorchBase; import com.hbm.interfaces.NotableComments; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.network.TileEntityRadioTorchBase; import com.hbm.tileentity.network.TileEntityRadioTorchLogic; @@ -14,7 +15,6 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; @NotableComments public class RenderRTTY implements ISimpleBlockRenderingHandler { @@ -72,7 +72,7 @@ public class RenderRTTY implements ISimpleBlockRenderingHandler { //using OBJ here because vanilla's block renderer is so broken it's not even funny anymore //mojang genuinely doesn't know how on earth UVs work tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rtty, icon, tessellator, rotation, flip, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.rtty, icon, tessellator, rotation, flip, false); tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java b/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java index 0298b24ad..286be14f6 100644 --- a/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java +++ b/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockScaffold; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderScaffoldBlock implements ISimpleBlockRenderingHandler { @@ -30,7 +30,7 @@ public class RenderScaffoldBlock implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.5, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.scaffold, iicon, tessellator, 0, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.scaffold, iicon, tessellator, 0, false); tessellator.draw(); GL11.glPopMatrix(); @@ -72,7 +72,7 @@ public class RenderScaffoldBlock implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(ox, oy, oz); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.scaffold, iicon, tessellator, rotation, pitch, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.scaffold, iicon, tessellator, rotation, pitch, true); tessellator.addTranslation(-ox, -oy, -oz); return true; diff --git a/src/main/java/com/hbm/render/block/RenderSpikeBlock.java b/src/main/java/com/hbm/render/block/RenderSpikeBlock.java index 4dfcb950e..52c2abdd8 100644 --- a/src/main/java/com/hbm/render/block/RenderSpikeBlock.java +++ b/src/main/java/com/hbm/render/block/RenderSpikeBlock.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.Spikes; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderSpikeBlock implements ISimpleBlockRenderingHandler { @@ -20,41 +20,39 @@ public class RenderSpikeBlock 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(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.spikes, iicon, tessellator, 0, false); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.spikes, 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); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.spikes, iicon, tessellator, 0, true); - 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((HFRWavefrontObject) ResourceManager.spikes, iicon, tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderSplitter.java b/src/main/java/com/hbm/render/block/RenderSplitter.java index 9ec29dfe4..08373e4cb 100644 --- a/src/main/java/com/hbm/render/block/RenderSplitter.java +++ b/src/main/java/com/hbm/render/block/RenderSplitter.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.network.CraneSplitter; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -11,7 +12,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderSplitter implements ISimpleBlockRenderingHandler { @@ -60,17 +60,17 @@ public class RenderSplitter implements ISimpleBlockRenderingHandler { private static void drawSplitter(Tessellator tessellator, Block block, boolean isLeft, float rotation, boolean shadeNormals) { CraneSplitter splitter = (CraneSplitter) block; - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Top", isLeft ? splitter.iconTopLeft : splitter.iconTopRight, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Bottom", isLeft ? splitter.iconTopRight : splitter.iconTopLeft , tessellator, rotation, shadeNormals); - if(isLeft) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Left", splitter.iconLeft, tessellator, rotation, shadeNormals); - if(!isLeft) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Right", splitter.iconRight, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Back", isLeft ? splitter.iconBackLeft : splitter.iconBackRight, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Front", isLeft ? splitter.iconFrontLeft : splitter.iconFrontRight, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "Inner", splitter.iconInner, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerLeft", splitter.iconInnerSide, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerRight", splitter.iconInnerSide, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerTop", splitter.iconInnerSide, tessellator, rotation, shadeNormals); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.splitter, "InnerBottom", splitter.iconBelt, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Top", isLeft ? splitter.iconTopLeft : splitter.iconTopRight, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Bottom", isLeft ? splitter.iconTopRight : splitter.iconTopLeft , tessellator, rotation, shadeNormals); + if(isLeft) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Left", splitter.iconLeft, tessellator, rotation, shadeNormals); + if(!isLeft) ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Right", splitter.iconRight, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Back", isLeft ? splitter.iconBackLeft : splitter.iconBackRight, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Front", isLeft ? splitter.iconFrontLeft : splitter.iconFrontRight, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "Inner", splitter.iconInner, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "InnerLeft", splitter.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "InnerRight", splitter.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "InnerTop", splitter.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.splitter, "InnerBottom", splitter.iconBelt, tessellator, rotation, shadeNormals); } @Override diff --git a/src/main/java/com/hbm/render/block/RenderSteelBeam.java b/src/main/java/com/hbm/render/block/RenderSteelBeam.java index 3c79afe9d..444149cf2 100644 --- a/src/main/java/com/hbm/render/block/RenderSteelBeam.java +++ b/src/main/java/com/hbm/render/block/RenderSteelBeam.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.DecoBlock; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderSteelBeam implements ISimpleBlockRenderingHandler { @@ -20,41 +20,39 @@ public class RenderSteelBeam 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(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.beam, iicon, tessellator, 0, false); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.beam, 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); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.beam, iicon, tessellator, 0, true); - 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((HFRWavefrontObject) ResourceManager.beam, iicon, tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + return true; } diff --git a/src/main/java/com/hbm/render/block/RenderTapeBlock.java b/src/main/java/com/hbm/render/block/RenderTapeBlock.java index f77a41f74..fb9078efd 100644 --- a/src/main/java/com/hbm/render/block/RenderTapeBlock.java +++ b/src/main/java/com/hbm/render/block/RenderTapeBlock.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.DecoTapeRecorder; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -13,7 +14,6 @@ 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 RenderTapeBlock implements ISimpleBlockRenderingHandler { @@ -21,58 +21,56 @@ public class RenderTapeBlock 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(block == ModBlocks.tape_recorder) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.taperecorder, iicon, tessellator, 0, false); - if(block == ModBlocks.steel_poles) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.pole, iicon, tessellator, 0, false); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + if(block == ModBlocks.tape_recorder) + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.taperecorder, iicon, tessellator, 0, false); + if(block == ModBlocks.steel_poles) + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.pole, 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; - } - - float rotation = 0; + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + float rotation = 0; + + if(world.getBlockMetadata(x, y, z) == 2) + rotation = 90F / 180F * (float) Math.PI; + + if(world.getBlockMetadata(x, y, z) == 3) + rotation = 270F / 180F * (float) Math.PI; + + if(world.getBlockMetadata(x, y, z) == 4) + rotation = 180F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + if(block == ModBlocks.tape_recorder) + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.taperecorder, iicon, tessellator, rotation, true); + if(block == ModBlocks.steel_poles) + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.pole, iicon, tessellator, rotation - 90F / 180F * (float) Math.PI, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - if(world.getBlockMetadata(x, y, z) == 2) - rotation = 90F / 180F * (float)Math.PI; - - if(world.getBlockMetadata(x, y, z) == 3) - rotation = 270F / 180F * (float)Math.PI; - - if(world.getBlockMetadata(x, y, z) == 4) - rotation = 180F / 180F * (float)Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - if(block == ModBlocks.tape_recorder) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.taperecorder, iicon, tessellator, rotation, true); - if(block == ModBlocks.steel_poles) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.pole, iicon, tessellator, rotation - 90F / 180F * (float)Math.PI, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - return true; } diff --git a/src/main/java/com/hbm/render/block/RenderTestPipe.java b/src/main/java/com/hbm/render/block/RenderTestPipe.java index e535eccc5..bb3ecd6c0 100644 --- a/src/main/java/com/hbm/render/block/RenderTestPipe.java +++ b/src/main/java/com/hbm/render/block/RenderTestPipe.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.network.TileEntityPipeBaseNT; @@ -17,7 +18,6 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderTestPipe implements ISimpleBlockRenderingHandler { @@ -37,17 +37,17 @@ public class RenderTestPipe implements ISimpleBlockRenderingHandler { GL11.glRotated(180, 0, 1, 0); GL11.glScaled(1.25D, 1.25D, 1.25D); tessellator.startDrawingQuads(); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pX", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nX", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pZ", iicon, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nZ", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "pX", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "nX", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "pZ", iicon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "nZ", iicon, tessellator, 0, false); tessellator.draw(); tessellator.startDrawingQuads(); ObjUtil.setColor(Fluids.NONE.getColor()); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pX", overlay, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nX", overlay, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pZ", overlay, tessellator, 0, false); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nZ", overlay, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "pX", overlay, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "nX", overlay, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "pZ", overlay, tessellator, 0, false); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, "nZ", overlay, tessellator, 0, false); ObjUtil.clearColor(); tessellator.draw(); @@ -133,9 +133,9 @@ public class RenderTestPipe implements ISimpleBlockRenderingHandler { } private void renderDuct(IIcon iicon, IIcon overlay, int color, Tessellator tessellator, String part) { - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, part, iicon, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, part, iicon, tessellator, 0, true); ObjUtil.setColor(color); - ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, part, overlay, tessellator, 0, true); + ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.pipe_neo, part, overlay, tessellator, 0, true); ObjUtil.clearColor(); } diff --git a/src/main/java/com/hbm/render/block/RenderToaster.java b/src/main/java/com/hbm/render/block/RenderToaster.java index a5938e20c..0758e1932 100644 --- a/src/main/java/com/hbm/render/block/RenderToaster.java +++ b/src/main/java/com/hbm/render/block/RenderToaster.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockDecoToaster; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; @@ -12,7 +13,6 @@ 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 RenderToaster implements ISimpleBlockRenderingHandler { @@ -30,7 +30,7 @@ public class RenderToaster implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, -0.25, 0); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, (float) Math.PI * -0.5F, false); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.toaster, iicon, tessellator, (float) Math.PI * -0.5F, false); tessellator.draw(); GL11.glPopMatrix(); @@ -62,7 +62,7 @@ public class RenderToaster implements ISimpleBlockRenderingHandler { } tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, rotation, true); + ObjUtil.renderWithIcon((HFRWavefrontObject) ResourceManager.toaster, iicon, tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); return true; diff --git a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java index 0e640244f..ea2ef9323 100644 --- a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java +++ b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java @@ -55,7 +55,11 @@ public class HFRWavefrontObject implements IModelCustomNamed { private boolean allowMixedMode = false; public HFRWavefrontObject(String name) throws ModelFormatException { - this(new ResourceLocation(RefStrings.MODID, name)); + this(new ResourceLocation(RefStrings.MODID, name), false); + } + + public HFRWavefrontObject(String name, boolean mixedMode) throws ModelFormatException { + this(new ResourceLocation(RefStrings.MODID, name), mixedMode); } public HFRWavefrontObject noSmooth() { @@ -65,12 +69,15 @@ public class HFRWavefrontObject implements IModelCustomNamed { /** Provides a way for a model to have both tris and quads, however this means it can't be rendered directly. * Useful for ISBRHs which access vertices manually, allowing the quad to tri trick without forcing the entire model to be redundant tris. */ - public HFRWavefrontObject mixedMode() { - this.allowMixedMode = true; - return this; - } + public void mixedMode() { this.allowMixedMode = true; } public HFRWavefrontObject(ResourceLocation resource) throws ModelFormatException { + this(resource, false); + } + + public HFRWavefrontObject(ResourceLocation resource, boolean mixedMode) throws ModelFormatException { + if(mixedMode) this.mixedMode(); + this.resource = resource; this.fileName = resource.toString(); @@ -84,11 +91,6 @@ public class HFRWavefrontObject implements IModelCustomNamed { this.allModels.add(this); } - public HFRWavefrontObject(ResourceLocation resource, boolean smoothing) throws ModelFormatException { - this(resource); - this.smoothing = smoothing; - } - public void destroy() { vertices.clear(); vertexNormals.clear(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java index 2c19afce5..63c81f7e3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java @@ -2,11 +2,11 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControl; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; @@ -20,7 +20,7 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer { GL11.glPushMatrix(); - TileEntityRBMKControl control = (TileEntityRBMKControl)te; + TileEntityRBMKControl control = (TileEntityRBMKControl) te; int offset = 1; @@ -37,13 +37,13 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - - if(control.getBlockType() instanceof RBMKBase) { - bindTexture(((RBMKBase)control.getBlockType()).coverTexture); - } else { - bindTexture(texture); - } + int brightness = control.getWorldObj().getLightBrightnessForSkyBlocks(control.xCoord, control.yCoord + offset + 1, control.zCoord, 0); + int lX = brightness % 65536; + int lY = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); + + bindTexture(texture); double level = control.lastLevel + (control.level - control.lastLevel) * i; diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java index 12d439a7f..a3ac690b2 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java @@ -2,12 +2,8 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; -import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBoiler; -import com.hbm.tileentity.machine.rbmk.TileEntityRBMKHeater; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod; import net.minecraft.client.renderer.Tessellator; @@ -17,26 +13,18 @@ import net.minecraft.util.ResourceLocation; public class RenderRBMKLid extends TileEntitySpecialRenderer { - private ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank.png"); - private ResourceLocation texture_glass = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_glass.png"); - private static final ResourceLocation texture_rods = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element.png"); + private static final ResourceLocation texture_rods = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element_fuel.png"); @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) { - TileEntityRBMKBase control = (TileEntityRBMKBase)te; boolean hasRod = false; boolean cherenkov = false; if(te instanceof TileEntityRBMKRod) { - TileEntityRBMKRod rod = (TileEntityRBMKRod) te; - - if(rod.hasRod) - hasRod = true; - - if(rod.fluxQuantity > 5) - cherenkov = true; + if(rod.hasRod) hasRod = true; + if(rod.fluxQuantity > 5) cherenkov = true; } GL11.glPushMatrix(); @@ -48,11 +36,8 @@ public class RenderRBMKLid extends TileEntitySpecialRenderer { if(te.getWorldObj().getBlock(te.xCoord, te.yCoord + o, te.zCoord) == te.getBlockType()) { offset = o; - int meta = te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord + o, te.zCoord); - - if(meta > 5 && meta < 12) - break; + if(meta > 5 && meta < 12) break; } else { break; @@ -62,39 +47,12 @@ public class RenderRBMKLid extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - if(control.hasLid()) { - GL11.glPushMatrix(); - GL11.glTranslated(0, offset, 0); - - int meta = control.getBlockMetadata() - RBMKBase.offset; - - if(meta == RBMKBase.DIR_GLASS_LID.ordinal()) { - bindTexture(texture_glass); - } else { - if(control.getBlockType() instanceof RBMKBase) { - bindTexture(((RBMKBase)control.getBlockType()).coverTexture); - } else { - bindTexture(texture); - } - - cherenkov = false; - } - - if((control instanceof TileEntityRBMKBoiler || control instanceof TileEntityRBMKHeater) && meta != RBMKBase.DIR_GLASS_LID.ordinal()) { - ResourceManager.rbmk_rods_vbo.renderPart("Lid"); - } else { - ResourceManager.rbmk_element_vbo.renderPart("Lid"); - } - - GL11.glPopMatrix(); - } - if(hasRod) { GL11.glPushMatrix(); bindTexture(texture_rods); for(int j = 0; j <= offset; j++) { - ResourceManager.rbmk_element_vbo.renderPart("Rods"); + ResourceManager.rbmk_element_rods_vbo.renderPart("Rods"); GL11.glTranslated(0, 1, 0); } diff --git a/src/main/java/com/hbm/render/util/ObjUtil.java b/src/main/java/com/hbm/render/util/ObjUtil.java index 69bb79457..0d9a0eb07 100644 --- a/src/main/java/com/hbm/render/util/ObjUtil.java +++ b/src/main/java/com/hbm/render/util/ObjUtil.java @@ -1,29 +1,30 @@ package com.hbm.render.util; +import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.loader.S_Face; +import com.hbm.render.loader.S_GroupObject; + import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; import net.minecraft.util.Vec3; -import net.minecraftforge.client.model.obj.Face; -import net.minecraftforge.client.model.obj.GroupObject; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; -import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; public class ObjUtil { - public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, boolean shadow) { + public static void renderWithIcon(HFRWavefrontObject model, IIcon icon, Tessellator tes, float rot, boolean shadow) { renderWithIcon(model, icon, tes, rot, 0, 0, shadow); } - public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { + public static void renderWithIcon(HFRWavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { renderWithIcon(model, icon, tes, rot, pitch, 0, shadow); } - public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { - for(GroupObject go : model.groupObjects) { + public static void renderWithIcon(HFRWavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { + for(S_GroupObject go : model.groupObjects) { - for(Face f : go.faces) { + for(S_Face f : go.faces) { Vertex n = f.faceNormal; @@ -66,19 +67,19 @@ public class ObjUtil { } } - public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, boolean shadow) { + public static void renderPartWithIcon(HFRWavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, boolean shadow) { renderPartWithIcon(model, name, icon, tes, rot, 0, 0, shadow); } - public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { + public static void renderPartWithIcon(HFRWavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { renderPartWithIcon(model, name, icon, tes, rot, pitch, 0, shadow); } - public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { + public static void renderPartWithIcon(HFRWavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { - GroupObject go = null; + S_GroupObject go = null; - for(GroupObject obj : model.groupObjects) { + for(S_GroupObject obj : model.groupObjects) { if(obj.name.equals(name)) go = obj; } @@ -86,7 +87,7 @@ public class ObjUtil { if(go == null) return; - for(Face f : go.faces) { + for(S_Face f : go.faces) { Vertex n = f.faceNormal; diff --git a/src/main/resources/assets/hbm/models/rbmk/rbmk_element.obj b/src/main/resources/assets/hbm/models/rbmk/rbmk_element.obj index ce941b579..9536e81c9 100644 --- a/src/main/resources/assets/hbm/models/rbmk/rbmk_element.obj +++ b/src/main/resources/assets/hbm/models/rbmk/rbmk_element.obj @@ -1,103 +1,239 @@ # Blender v2.79 (sub 0) OBJ File: 'rbmk_element.blend' # www.blender.org -o Lid -v -0.500000 1.125000 0.500000 -v -0.500000 1.250000 0.500000 -v -0.500000 1.125000 -0.500000 -v -0.500000 1.250000 -0.500000 -v 0.500000 1.125000 0.500000 -v 0.500000 1.250000 0.500000 -v 0.500000 1.125000 -0.500000 -v 0.500000 1.250000 -0.500000 -v -0.375000 1.125000 -0.375000 -v -0.375000 1.125000 0.375000 -v 0.375000 1.125000 -0.375000 -v 0.375000 1.125000 0.375000 -v -0.375000 1.000000 -0.375000 -v -0.375000 1.000000 0.375000 -v 0.375000 1.000000 -0.375000 -v 0.375000 1.000000 0.375000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 +o Inner +v -0.437400 1.000000 0.312500 +v -0.437400 1.000000 0.187500 +v -0.312400 1.000000 0.437500 +v -0.312400 1.000000 0.062500 +v -0.187400 1.000000 0.437500 +v -0.187400 1.000000 0.062500 +v -0.062400 1.000000 0.312500 +v -0.062400 1.000000 0.187500 +v -0.437400 0.000000 -0.187500 +v -0.437400 0.000000 -0.312500 +v -0.312400 0.000000 -0.062500 +v -0.312400 0.000000 -0.437500 +v -0.187400 0.000000 -0.062500 +v -0.187400 0.000000 -0.437500 +v -0.062400 0.000000 -0.187500 +v -0.062400 0.000000 -0.312500 +v -0.062400 1.000000 -0.312500 +v -0.062400 1.000000 -0.187500 +v -0.187400 1.000000 -0.437500 +v -0.187400 1.000000 -0.062500 +v -0.312400 1.000000 -0.437500 +v -0.312400 1.000000 -0.062500 +v -0.437400 1.000000 -0.312500 +v -0.437400 1.000000 -0.187500 +v -0.062400 0.000000 0.187500 +v -0.062400 0.000000 0.312500 +v -0.187400 0.000000 0.062500 +v -0.187400 0.000000 0.437500 +v -0.312400 0.000000 0.062500 +v -0.312400 0.000000 0.437500 +v -0.437400 0.000000 0.187500 +v -0.437400 0.000000 0.312500 +v 0.062600 1.000000 0.312500 +v 0.062600 1.000000 0.187500 +v 0.187600 1.000000 0.437500 +v 0.187600 1.000000 0.062500 +v 0.312600 1.000000 0.437500 +v 0.312600 1.000000 0.062500 +v 0.437600 1.000000 0.312500 +v 0.437600 1.000000 0.187500 +v 0.062600 0.000000 -0.187500 +v 0.062600 0.000000 -0.312500 +v 0.187600 0.000000 -0.062500 +v 0.187600 0.000000 -0.437500 +v 0.312600 0.000000 -0.062500 +v 0.312600 0.000000 -0.437500 +v 0.437600 0.000000 -0.187500 +v 0.437600 0.000000 -0.312500 +v 0.437600 1.000000 -0.312500 +v 0.437600 1.000000 -0.187500 +v 0.312600 1.000000 -0.437500 +v 0.312600 1.000000 -0.062500 +v 0.187600 1.000000 -0.437500 +v 0.187600 1.000000 -0.062500 +v 0.062600 1.000000 -0.312500 +v 0.062600 1.000000 -0.187500 +v 0.437600 0.000000 0.187500 +v 0.437600 0.000000 0.312500 +v 0.312600 0.000000 0.062500 +v 0.312600 0.000000 0.437500 +v 0.187600 0.000000 0.062500 +v 0.187600 0.000000 0.437500 +v 0.062600 0.000000 0.187500 +v 0.062600 0.000000 0.312500 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.437500 0.937500 -vt 0.500000 1.000000 -vt 0.000100 0.999900 -vt 0.500000 0.500000 -vt 0.500000 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.437500 0.562500 -vt 0.500000 0.500000 -vt 0.000000 0.500000 -vt 0.062500 0.937500 -vt 0.062500 0.562500 -vt 0.437500 0.562500 -vt 0.062500 0.937500 -vt 0.062500 0.562500 -vt 0.500000 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.000000 0.500000 -vt 0.562500 0.500000 -vt 0.437500 0.937500 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vn -0.7071 0.0000 0.7071 vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 s off -f 2/1/1 3/2/1 1/3/1 -f 4/4/2 7/5/2 3/6/2 -f 8/7/3 5/8/3 7/9/3 -f 6/10/4 1/11/4 5/12/4 -f 7/13/5 9/14/5 3/15/5 -f 4/16/6 6/17/6 8/7/6 -f 10/18/4 16/19/4 12/20/4 -f 3/15/5 10/21/5 1/22/5 -f 5/23/5 11/24/5 7/13/5 -f 1/22/5 12/25/5 5/23/5 -f 15/26/5 14/27/5 13/28/5 -f 11/29/2 13/30/2 9/31/2 -f 12/32/3 15/33/3 11/34/3 -f 9/35/1 14/36/1 10/37/1 -f 2/1/1 4/38/1 3/2/1 -f 4/4/2 8/39/2 7/5/2 -f 8/7/3 6/17/3 5/8/3 -f 6/10/4 2/40/4 1/11/4 -f 7/13/5 11/24/5 9/14/5 -f 4/16/6 2/41/6 6/17/6 -f 10/18/4 14/42/4 16/19/4 -f 3/15/5 9/14/5 10/21/5 -f 5/23/5 12/25/5 11/24/5 -f 1/22/5 10/21/5 12/25/5 -f 15/26/5 16/43/5 14/27/5 -f 11/29/2 15/44/2 13/30/2 -f 12/32/3 16/45/3 15/33/3 -f 9/35/1 13/46/1 14/36/1 +f 8/1/1 6/2/1 27/3/1 25/4/1 +f 6/5/2 4/6/2 29/7/2 27/8/2 +f 2/9/3 1/10/3 32/11/3 31/12/3 +f 4/13/4 2/14/4 31/15/4 29/16/4 +f 8/17/5 25/18/5 26/19/5 7/20/5 +f 7/21/6 26/22/6 28/23/6 5/24/6 +f 5/25/7 28/26/7 30/27/7 3/28/7 +f 3/29/8 30/30/8 32/31/8 1/32/8 +f 21/33/4 23/34/4 10/35/4 12/36/4 +f 23/37/3 24/38/3 9/39/3 10/40/3 +f 19/41/2 21/42/2 12/43/2 14/44/2 +f 17/45/1 19/46/1 14/47/1 16/48/1 +f 17/49/5 16/50/5 15/51/5 18/52/5 +f 18/53/6 15/54/6 13/55/6 20/56/6 +f 20/57/7 13/58/7 11/59/7 22/60/7 +f 22/61/8 11/62/8 9/63/8 24/64/8 +f 36/65/4 34/66/4 63/67/4 61/68/4 +f 34/69/3 33/70/3 64/71/3 63/72/3 +f 38/73/2 36/74/2 61/75/2 59/76/2 +f 40/77/1 38/78/1 59/79/1 57/80/1 +f 40/81/5 57/82/5 58/83/5 39/84/5 +f 39/85/6 58/86/6 60/87/6 37/88/6 +f 37/89/7 60/90/7 62/91/7 35/92/7 +f 35/93/8 62/94/8 64/95/8 33/96/8 +f 53/97/4 55/98/4 42/99/4 44/100/4 +f 55/101/3 56/102/3 41/103/3 42/104/3 +f 51/105/2 53/106/2 44/107/2 46/108/2 +f 49/109/1 51/110/1 46/111/1 48/112/1 +f 49/113/5 48/114/5 47/115/5 50/116/5 +f 50/117/6 47/118/6 45/119/6 52/120/6 +f 52/121/7 45/122/7 43/123/7 54/124/7 +f 54/125/8 43/126/8 41/127/8 56/128/8 o Rods v -0.374900 0.000000 0.312500 v -0.374900 0.000000 0.187500 @@ -334,119 +470,119 @@ vn 0.7071 0.0000 0.7071 vn 0.0000 0.0000 -1.0000 vn -0.7071 0.0000 -0.7071 s off -f 20/47/7 24/48/7 21/49/7 -f 32/50/8 28/51/8 25/52/8 -f 19/53/9 25/54/9 17/55/9 -f 22/56/10 32/57/10 24/58/10 -f 24/59/11 31/60/11 23/61/11 -f 21/62/12 26/63/12 19/53/12 -f 17/64/13 27/65/13 18/66/13 -f 23/61/14 29/67/14 21/68/14 -f 20/69/15 30/70/15 22/56/15 -f 18/66/16 28/71/16 20/72/16 -f 36/73/7 40/74/7 37/75/7 -f 48/76/8 44/77/8 41/78/8 -f 35/79/9 41/80/9 33/81/9 -f 38/82/10 48/83/10 40/84/10 -f 40/85/11 47/86/11 39/87/11 -f 37/88/12 42/89/12 35/79/12 -f 33/90/13 43/91/13 34/92/13 -f 39/87/14 45/93/14 37/94/14 -f 36/95/15 46/96/15 38/82/15 -f 34/92/16 44/97/16 36/98/16 -f 52/99/7 56/100/7 53/101/7 -f 64/102/8 60/103/8 57/104/8 -f 51/105/9 57/106/9 49/107/9 -f 54/108/10 64/109/10 56/110/10 -f 56/111/11 63/112/11 55/113/11 -f 53/114/12 58/115/12 51/105/12 -f 49/116/13 59/117/13 50/118/13 -f 55/113/14 61/119/14 53/120/14 -f 52/121/15 62/122/15 54/108/15 -f 50/118/16 60/123/16 52/124/16 -f 68/125/7 72/126/7 69/127/7 -f 80/128/8 76/129/8 73/130/8 -f 67/131/9 73/132/9 65/133/9 -f 70/134/10 80/135/10 72/136/10 -f 72/137/11 79/138/11 71/139/11 -f 69/140/12 74/141/12 67/131/12 -f 65/142/13 75/143/13 66/144/13 -f 71/139/14 77/145/14 69/146/14 -f 68/147/15 78/148/15 70/134/15 -f 66/144/16 76/149/16 68/150/16 -f 21/49/7 19/151/7 17/152/7 -f 17/152/7 18/153/7 20/47/7 -f 20/47/7 22/154/7 24/48/7 -f 24/48/7 23/155/7 21/49/7 -f 21/49/7 17/152/7 20/47/7 -f 25/52/8 26/156/8 29/157/8 -f 29/157/8 31/158/8 32/50/8 -f 32/50/8 30/159/8 28/51/8 -f 28/51/8 27/160/8 25/52/8 -f 25/52/8 29/157/8 32/50/8 -f 19/53/9 26/63/9 25/54/9 -f 22/56/10 30/70/10 32/57/10 -f 24/59/11 32/161/11 31/60/11 -f 21/62/12 29/162/12 26/63/12 -f 17/64/13 25/163/13 27/65/13 -f 23/61/14 31/60/14 29/67/14 -f 20/69/15 28/164/15 30/70/15 -f 18/66/16 27/65/16 28/71/16 -f 37/75/7 35/165/7 33/166/7 -f 33/166/7 34/167/7 36/73/7 -f 36/73/7 38/168/7 40/74/7 -f 40/74/7 39/169/7 37/75/7 -f 37/75/7 33/166/7 36/73/7 -f 41/78/8 42/170/8 45/171/8 -f 45/171/8 47/172/8 48/76/8 -f 48/76/8 46/173/8 44/77/8 -f 44/77/8 43/174/8 41/78/8 -f 41/78/8 45/171/8 48/76/8 -f 35/79/9 42/89/9 41/80/9 -f 38/82/10 46/96/10 48/83/10 -f 40/85/11 48/175/11 47/86/11 -f 37/88/12 45/176/12 42/89/12 -f 33/90/13 41/177/13 43/91/13 -f 39/87/14 47/86/14 45/93/14 -f 36/95/15 44/178/15 46/96/15 -f 34/92/16 43/91/16 44/97/16 -f 53/101/7 51/179/7 49/180/7 -f 49/180/7 50/181/7 52/99/7 -f 52/99/7 54/182/7 56/100/7 -f 56/100/7 55/183/7 53/101/7 -f 53/101/7 49/180/7 52/99/7 -f 57/104/8 58/184/8 61/185/8 -f 61/185/8 63/186/8 64/102/8 -f 64/102/8 62/187/8 60/103/8 -f 60/103/8 59/188/8 57/104/8 -f 57/104/8 61/185/8 64/102/8 -f 51/105/9 58/115/9 57/106/9 -f 54/108/10 62/122/10 64/109/10 -f 56/111/11 64/189/11 63/112/11 -f 53/114/12 61/190/12 58/115/12 -f 49/116/13 57/191/13 59/117/13 -f 55/113/14 63/112/14 61/119/14 -f 52/121/15 60/192/15 62/122/15 -f 50/118/16 59/117/16 60/123/16 -f 69/127/7 67/193/7 65/194/7 -f 65/194/7 66/195/7 68/125/7 -f 68/125/7 70/196/7 72/126/7 -f 72/126/7 71/197/7 69/127/7 -f 69/127/7 65/194/7 68/125/7 -f 73/130/8 74/198/8 77/199/8 -f 77/199/8 79/200/8 80/128/8 -f 80/128/8 78/201/8 76/129/8 -f 76/129/8 75/202/8 73/130/8 -f 73/130/8 77/199/8 80/128/8 -f 67/131/9 74/141/9 73/132/9 -f 70/134/10 78/148/10 80/135/10 -f 72/137/11 80/203/11 79/138/11 -f 69/140/12 77/204/12 74/141/12 -f 65/142/13 73/205/13 75/143/13 -f 71/139/14 79/138/14 77/145/14 -f 68/147/15 76/206/15 78/148/15 -f 66/144/16 75/143/16 76/149/16 -o Column +f 68/129/9 72/130/9 69/131/9 +f 80/132/10 76/133/10 73/134/10 +f 67/135/11 73/136/11 65/137/11 +f 70/138/12 80/139/12 72/140/12 +f 72/141/13 79/142/13 71/143/13 +f 69/144/14 74/145/14 67/135/14 +f 65/146/15 75/147/15 66/148/15 +f 71/143/16 77/149/16 69/150/16 +f 68/151/17 78/152/17 70/138/17 +f 66/148/18 76/153/18 68/154/18 +f 84/155/9 88/156/9 85/157/9 +f 96/158/10 92/159/10 89/160/10 +f 83/161/11 89/162/11 81/163/11 +f 86/164/12 96/165/12 88/166/12 +f 88/167/13 95/168/13 87/169/13 +f 85/170/14 90/171/14 83/161/14 +f 81/172/15 91/173/15 82/174/15 +f 87/169/16 93/175/16 85/176/16 +f 84/177/17 94/178/17 86/164/17 +f 82/174/18 92/179/18 84/180/18 +f 100/181/9 104/182/9 101/183/9 +f 112/184/10 108/185/10 105/186/10 +f 99/187/11 105/188/11 97/189/11 +f 102/190/12 112/191/12 104/192/12 +f 104/193/13 111/194/13 103/195/13 +f 101/196/14 106/197/14 99/187/14 +f 97/198/15 107/199/15 98/200/15 +f 103/195/16 109/201/16 101/202/16 +f 100/203/17 110/204/17 102/190/17 +f 98/200/18 108/205/18 100/206/18 +f 116/207/9 120/208/9 117/209/9 +f 128/210/10 124/211/10 121/212/10 +f 115/213/11 121/214/11 113/215/11 +f 118/216/12 128/217/12 120/218/12 +f 120/219/13 127/220/13 119/221/13 +f 117/222/14 122/223/14 115/213/14 +f 113/224/15 123/225/15 114/226/15 +f 119/221/16 125/227/16 117/228/16 +f 116/229/17 126/230/17 118/216/17 +f 114/226/18 124/231/18 116/232/18 +f 69/131/9 67/233/9 65/234/9 +f 65/234/9 66/235/9 68/129/9 +f 68/129/9 70/236/9 72/130/9 +f 72/130/9 71/237/9 69/131/9 +f 69/131/9 65/234/9 68/129/9 +f 73/134/10 74/238/10 77/239/10 +f 77/239/10 79/240/10 80/132/10 +f 80/132/10 78/241/10 76/133/10 +f 76/133/10 75/242/10 73/134/10 +f 73/134/10 77/239/10 80/132/10 +f 67/135/11 74/145/11 73/136/11 +f 70/138/12 78/152/12 80/139/12 +f 72/141/13 80/243/13 79/142/13 +f 69/144/14 77/244/14 74/145/14 +f 65/146/15 73/245/15 75/147/15 +f 71/143/16 79/142/16 77/149/16 +f 68/151/17 76/246/17 78/152/17 +f 66/148/18 75/147/18 76/153/18 +f 85/157/9 83/247/9 81/248/9 +f 81/248/9 82/249/9 84/155/9 +f 84/155/9 86/250/9 88/156/9 +f 88/156/9 87/251/9 85/157/9 +f 85/157/9 81/248/9 84/155/9 +f 89/160/10 90/252/10 93/253/10 +f 93/253/10 95/254/10 96/158/10 +f 96/158/10 94/255/10 92/159/10 +f 92/159/10 91/256/10 89/160/10 +f 89/160/10 93/253/10 96/158/10 +f 83/161/11 90/171/11 89/162/11 +f 86/164/12 94/178/12 96/165/12 +f 88/167/13 96/257/13 95/168/13 +f 85/170/14 93/258/14 90/171/14 +f 81/172/15 89/259/15 91/173/15 +f 87/169/16 95/168/16 93/175/16 +f 84/177/17 92/260/17 94/178/17 +f 82/174/18 91/173/18 92/179/18 +f 101/183/9 99/261/9 97/262/9 +f 97/262/9 98/263/9 100/181/9 +f 100/181/9 102/264/9 104/182/9 +f 104/182/9 103/265/9 101/183/9 +f 101/183/9 97/262/9 100/181/9 +f 105/186/10 106/266/10 109/267/10 +f 109/267/10 111/268/10 112/184/10 +f 112/184/10 110/269/10 108/185/10 +f 108/185/10 107/270/10 105/186/10 +f 105/186/10 109/267/10 112/184/10 +f 99/187/11 106/197/11 105/188/11 +f 102/190/12 110/204/12 112/191/12 +f 104/193/13 112/271/13 111/194/13 +f 101/196/14 109/272/14 106/197/14 +f 97/198/15 105/273/15 107/199/15 +f 103/195/16 111/194/16 109/201/16 +f 100/203/17 108/274/17 110/204/17 +f 98/200/18 107/199/18 108/205/18 +f 117/209/9 115/275/9 113/276/9 +f 113/276/9 114/277/9 116/207/9 +f 116/207/9 118/278/9 120/208/9 +f 120/208/9 119/279/9 117/209/9 +f 117/209/9 113/276/9 116/207/9 +f 121/212/10 122/280/10 125/281/10 +f 125/281/10 127/282/10 128/210/10 +f 128/210/10 126/283/10 124/211/10 +f 124/211/10 123/284/10 121/212/10 +f 121/212/10 125/281/10 128/210/10 +f 115/213/11 122/223/11 121/214/11 +f 118/216/12 126/230/12 128/217/12 +f 120/219/13 128/285/13 127/220/13 +f 117/222/14 125/286/14 122/223/14 +f 113/224/15 121/287/15 123/225/15 +f 119/221/16 127/220/16 125/227/16 +f 116/229/17 124/288/17 126/230/17 +f 114/226/18 123/225/18 124/231/18 +o Cap v -0.500000 0.000000 0.500000 v -0.500000 1.000000 0.500000 v -0.500000 0.000000 -0.500000 @@ -519,384 +655,132 @@ v 0.187600 0.000000 0.062500 v 0.187600 0.000000 0.437500 v 0.062600 0.000000 0.187500 v 0.062600 0.000000 0.312500 -vt 0.000000 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.000000 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.000000 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.000000 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.562500 0.500000 -vt 0.562500 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.562500 1.000000 -vt 0.500000 1.000000 -vt 0.218750 0.593750 -vt 0.281250 0.656250 -vt 0.218750 0.656250 -vt 0.218750 0.843750 -vt 0.281250 0.906250 -vt 0.218750 0.906250 -vt 0.406250 0.781250 -vt 0.343750 0.718750 -vt 0.406250 0.718750 -vt 0.156250 0.781250 -vt 0.093750 0.718750 -vt 0.156250 0.718750 -vt 0.343750 0.781250 -vt 0.156250 0.968750 -vt 0.343750 0.968750 -vt 0.031250 0.656250 -vt 0.031250 0.843750 -vt 0.343750 0.531250 -vt 0.156250 0.531250 -vt 0.031250 0.593750 -vt 0.093750 0.531250 -vt 0.468750 0.843750 -vt 0.468750 0.656250 -vt 0.406250 0.531250 -vt 0.468750 0.593750 -vt 0.406250 0.968750 -vt 0.468750 0.906250 -vt 0.500000 1.000000 -vt 0.031250 0.906250 -vt 0.093750 0.968750 +vt 0.437500 0.312500 +vt 0.437500 0.187500 +vt 0.562500 0.187500 +vt 0.562500 0.312500 +vt 0.437500 0.812500 +vt 0.437500 0.687500 +vt 0.562500 0.687500 +vt 0.562500 0.812500 +vt 0.812500 0.437500 +vt 0.812500 0.562500 +vt 0.687500 0.562500 +vt 0.687500 0.437500 +vt 0.312500 0.437500 +vt 0.312500 0.562500 +vt 0.187500 0.562500 +vt 0.187500 0.437500 +vt 1.000000 1.000000 +vt 0.687500 0.937500 +vt 0.812500 0.937500 vt 0.000000 1.000000 -vt 0.156250 0.718750 -vt 0.093750 0.781250 -vt 0.093750 0.718750 -vt 0.218750 0.656250 -vt 0.281250 0.593750 -vt 0.281250 0.656250 -vt 0.218750 0.906250 -vt 0.281250 0.843750 -vt 0.281250 0.906250 -vt 0.406250 0.718750 -vt 0.343750 0.781250 -vt 0.343750 0.718750 -vt 0.156250 0.781250 -vt 0.343750 0.531250 -vt 0.218750 0.593750 -vt 0.156250 0.531250 -vt 0.000000 0.500000 -vt 0.031250 0.656250 -vt 0.031250 0.843750 -vt 0.156250 0.968750 -vt 0.343750 0.968750 -vt 0.468750 0.843750 -vt 0.468750 0.656250 -vt 0.500000 0.500000 -vt 0.468750 0.906250 -vt 0.500000 1.000000 -vt 0.406250 0.968750 -vt 0.468750 0.593750 -vt 0.406250 0.531250 -vt 0.093750 0.531250 -vt 0.031250 0.593750 -vt 0.093750 0.968750 +vt 0.000000 0.000000 +vt 0.062500 0.312500 +vt 0.062500 0.687500 +vt 1.000000 0.000000 +vt 0.812500 0.062500 +vt 0.687500 0.062500 +vt 0.062500 0.187500 +vt 0.187500 0.062500 +vt 0.937500 0.812500 +vt 0.937500 0.687500 +vt 0.937500 0.187500 +vt 0.062500 0.812500 +vt 0.187500 0.937500 +vt 0.187500 0.437500 +vt 0.312500 0.437500 +vt 0.312500 0.562500 +vt 0.187500 0.562500 +vt 0.562500 0.312500 +vt 0.437500 0.312500 +vt 0.437500 0.187500 +vt 0.562500 0.187500 +vt 0.562500 0.812500 +vt 0.437500 0.812500 +vt 0.437500 0.687500 +vt 0.562500 0.687500 +vt 0.687500 0.437500 +vt 0.812500 0.437500 +vt 0.812500 0.562500 +vt 0.687500 0.562500 +vt 0.000000 0.000000 +vt 0.312500 0.062500 +vt 0.187500 0.062500 vt 0.000000 1.000000 -vt 0.031250 0.906250 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.562500 0.500000 -vt 0.281250 0.593750 -vt 0.281250 0.843750 -vt 0.093750 0.781250 -vt 0.218750 0.843750 -vt 0.406250 0.781250 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 -0.7071 +vt 0.062500 0.687500 +vt 0.062500 0.812500 +vt 0.312500 0.937500 +vt 0.687500 0.937500 +vt 1.000000 1.000000 +vt 0.937500 0.812500 +vt 0.937500 0.687500 +vt 0.812500 0.937500 +vt 0.937500 0.312500 +vt 1.000000 0.000000 +vt 0.062500 0.187500 +vt 0.187500 0.937500 +vt 0.687500 0.062500 +vt 0.812500 0.062500 +vt 0.937500 0.187500 +vt 0.062500 0.312500 +vt 0.312500 0.062500 +vt 0.312500 0.937500 +vt 0.937500 0.312500 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 s off -f 84/207/17 81/208/17 82/209/17 -f 88/210/18 83/211/18 84/212/18 -f 86/213/19 87/214/19 88/215/19 -f 82/216/20 85/217/20 86/218/20 -f 90/219/21 117/220/21 92/221/21 -f 89/222/19 119/223/19 90/224/19 -f 92/225/20 115/226/20 94/227/20 -f 94/228/22 113/229/22 96/230/22 -f 113/231/17 95/232/17 96/233/17 -f 114/234/23 93/235/23 95/236/23 -f 116/237/18 91/238/18 93/239/18 -f 118/240/24 89/241/24 91/242/24 -f 111/243/21 100/244/21 109/245/21 -f 112/246/19 98/247/19 111/248/19 -f 109/249/20 102/250/20 107/251/20 -f 107/252/22 104/253/22 105/254/22 -f 104/255/17 106/256/17 105/257/17 -f 103/258/23 108/259/23 106/260/23 -f 101/261/18 110/262/18 108/263/18 -f 99/264/24 112/265/24 110/266/24 -f 122/267/21 149/268/21 124/269/21 -f 121/270/19 151/271/19 122/272/19 -f 124/273/20 147/274/20 126/275/20 -f 126/276/22 145/277/22 128/278/22 -f 145/279/17 127/280/17 128/281/17 -f 146/282/23 125/283/23 127/284/23 -f 148/285/18 123/286/18 125/287/18 -f 150/288/24 121/289/24 123/290/24 -f 143/291/21 132/292/21 141/293/21 -f 144/294/19 130/295/19 143/296/19 -f 141/297/20 134/298/20 139/299/20 -f 139/300/22 136/301/22 137/302/22 -f 136/303/17 138/304/17 137/305/17 -f 135/306/23 140/307/23 138/308/23 -f 133/309/18 142/310/18 140/311/18 -f 131/312/24 144/313/24 142/314/24 -f 95/315/25 122/316/25 96/317/25 -f 106/318/25 143/319/25 105/320/25 -f 140/321/25 124/322/25 126/323/25 -f 108/324/25 92/325/25 94/326/25 -f 142/327/25 106/318/25 94/326/25 -f 107/328/25 143/319/25 141/329/25 -f 82/216/25 90/330/25 112/331/25 -f 123/332/25 95/315/25 93/333/25 -f 89/334/25 82/216/25 91/335/25 -f 138/336/25 128/337/25 86/218/25 -f 125/338/25 86/218/25 127/339/25 -f 139/340/25 137/341/25 88/342/25 -f 111/343/25 109/344/25 84/345/25 -f 149/346/26 133/347/26 147/348/26 -f 151/349/26 114/350/26 113/351/26 -f 130/352/26 103/353/26 104/354/26 -f 117/355/26 101/356/26 115/357/26 -f 103/353/26 131/358/26 151/349/26 -f 116/359/26 152/360/26 150/361/26 -f 85/362/26 145/363/26 135/364/26 -f 132/365/26 104/354/26 102/366/26 -f 97/367/26 119/368/26 81/369/26 -f 98/370/26 83/371/26 100/372/26 -f 120/373/26 118/374/26 81/369/26 -f 148/375/26 146/376/26 85/362/26 -f 134/377/26 87/378/26 136/379/26 -f 84/207/17 83/380/17 81/208/17 -f 88/210/18 87/381/18 83/211/18 -f 86/213/19 85/382/19 87/214/19 -f 82/216/20 81/383/20 85/217/20 -f 90/219/21 119/384/21 117/220/21 -f 89/222/19 120/385/19 119/223/19 -f 92/225/20 117/386/20 115/226/20 -f 94/228/22 115/387/22 113/229/22 -f 113/231/17 114/388/17 95/232/17 -f 114/234/23 116/389/23 93/235/23 -f 116/237/18 118/390/18 91/238/18 -f 118/240/24 120/391/24 89/241/24 -f 111/243/21 98/392/21 100/244/21 -f 112/246/19 97/393/19 98/247/19 -f 109/249/20 100/394/20 102/250/20 -f 107/252/22 102/395/22 104/253/22 -f 104/255/17 103/396/17 106/256/17 -f 103/258/23 101/397/23 108/259/23 -f 101/261/18 99/398/18 110/262/18 -f 99/264/24 97/399/24 112/265/24 -f 122/267/21 151/400/21 149/268/21 -f 121/270/19 152/401/19 151/271/19 -f 124/273/20 149/402/20 147/274/20 -f 126/276/22 147/403/22 145/277/22 -f 145/279/17 146/404/17 127/280/17 -f 146/282/23 148/405/23 125/283/23 -f 148/285/18 150/406/18 123/286/18 -f 150/288/24 152/407/24 121/289/24 -f 143/291/21 130/408/21 132/292/21 -f 144/294/19 129/409/19 130/295/19 -f 141/297/20 132/410/20 134/298/20 -f 139/300/22 134/411/22 136/301/22 -f 136/303/17 135/412/17 138/304/17 -f 135/306/23 133/413/23 140/307/23 -f 133/309/18 131/414/18 142/310/18 -f 131/312/24 129/415/24 144/313/24 -f 95/315/25 121/416/25 122/316/25 -f 106/318/25 144/417/25 143/319/25 -f 140/321/25 142/327/25 124/322/25 -f 108/324/25 110/418/25 92/325/25 -f 94/326/25 96/317/25 122/316/25 -f 122/316/25 124/322/25 142/327/25 -f 142/327/25 144/417/25 106/318/25 -f 106/318/25 108/324/25 94/326/25 -f 94/326/25 122/316/25 142/327/25 -f 139/340/25 88/342/25 141/329/25 -f 88/342/25 84/345/25 107/328/25 -f 141/329/25 88/342/25 107/328/25 -f 84/345/25 109/344/25 107/328/25 -f 107/328/25 105/320/25 143/319/25 -f 111/343/25 84/345/25 112/331/25 -f 84/345/25 82/216/25 112/331/25 -f 82/216/25 89/334/25 90/330/25 -f 90/330/25 92/325/25 110/418/25 -f 90/330/25 110/418/25 112/331/25 -f 82/216/25 86/218/25 93/333/25 -f 86/218/25 125/338/25 123/332/25 -f 123/332/25 121/416/25 95/315/25 -f 86/218/25 123/332/25 93/333/25 -f 93/333/25 91/335/25 82/216/25 -f 86/218/25 88/342/25 138/336/25 -f 88/342/25 137/341/25 138/336/25 -f 138/336/25 140/321/25 126/323/25 -f 128/337/25 127/339/25 86/218/25 -f 138/336/25 126/323/25 128/337/25 -f 149/346/26 131/358/26 133/347/26 -f 151/349/26 152/360/26 114/350/26 -f 130/352/26 129/419/26 103/353/26 -f 117/355/26 99/420/26 101/356/26 -f 151/349/26 113/351/26 115/357/26 -f 115/357/26 101/356/26 103/353/26 -f 103/353/26 129/419/26 131/358/26 -f 131/358/26 149/346/26 151/349/26 -f 151/349/26 115/357/26 103/353/26 -f 148/375/26 85/362/26 150/361/26 -f 85/362/26 81/369/26 116/359/26 -f 150/361/26 85/362/26 116/359/26 -f 81/369/26 118/374/26 116/359/26 -f 116/359/26 114/350/26 152/360/26 -f 136/379/26 87/378/26 135/364/26 -f 87/378/26 85/362/26 135/364/26 -f 85/362/26 146/376/26 145/363/26 -f 145/363/26 147/348/26 133/347/26 -f 145/363/26 133/347/26 135/364/26 -f 83/371/26 87/378/26 102/366/26 -f 87/378/26 134/377/26 132/365/26 -f 132/365/26 130/352/26 104/354/26 -f 87/378/26 132/365/26 102/366/26 -f 102/366/26 100/372/26 83/371/26 -f 81/369/26 83/371/26 97/367/26 -f 83/371/26 98/370/26 97/367/26 -f 97/367/26 99/420/26 117/355/26 -f 119/368/26 120/373/26 81/369/26 -f 97/367/26 117/355/26 119/368/26 +f 144/289/19 143/290/19 169/291/19 170/292/19 +f 153/293/19 154/294/19 192/295/19 191/296/19 +f 174/297/19 188/298/19 190/299/19 172/300/19 +f 142/301/19 156/302/19 158/303/19 140/304/19 +f 144/289/19 170/292/19 172/300/19 190/299/19 +f 136/305/19 189/306/19 187/307/19 +f 132/308/19 130/309/19 138/310/19 160/311/19 +f 134/312/19 173/313/19 171/314/19 +f 137/315/19 130/309/19 139/316/19 +f 136/305/19 185/317/19 186/318/19 +f 173/313/19 134/312/19 175/319/19 +f 187/307/19 185/317/19 136/305/19 +f 159/320/19 157/321/19 132/308/19 +f 195/322/20 197/323/20 179/324/20 181/325/20 +f 161/326/20 199/327/20 200/328/20 162/329/20 +f 152/330/20 178/331/20 177/332/20 151/333/20 +f 163/334/20 165/335/20 147/336/20 149/337/20 +f 161/326/20 163/334/20 149/337/20 199/327/20 +f 133/338/20 198/339/20 196/340/20 +f 135/341/20 183/342/20 184/343/20 +f 135/341/20 180/344/20 150/345/20 131/346/20 +f 131/346/20 146/347/20 145/348/20 +f 146/347/20 131/346/20 148/349/20 +f 167/350/20 129/351/20 131/346/20 145/348/20 +f 196/340/20 194/352/20 133/338/20 +f 182/353/20 135/341/20 184/343/20 +f 190/299/19 192/295/19 142/301/19 144/289/19 +f 142/301/19 192/295/19 154/294/19 156/302/19 +f 199/327/20 149/337/20 151/333/20 197/323/20 +f 197/323/20 151/333/20 177/332/20 179/324/20 +f 198/339/20 164/354/20 162/329/20 200/328/20 +f 133/338/20 129/351/20 164/354/20 198/339/20 +f 145/348/20 147/336/20 165/335/20 167/350/20 +f 166/355/20 129/351/20 168/356/20 +f 164/354/20 129/351/20 166/355/20 +f 183/342/20 193/357/20 195/322/20 181/325/20 +f 193/357/20 183/342/20 135/341/20 133/338/20 +f 133/338/20 194/352/20 193/357/20 +f 131/346/20 150/345/20 148/349/20 +f 150/345/20 180/344/20 178/331/20 152/330/20 +f 180/344/20 135/341/20 182/353/20 +f 171/314/19 169/291/19 143/290/19 141/358/19 +f 141/358/19 139/316/19 130/309/19 +f 130/309/19 134/312/19 171/314/19 141/358/19 +f 189/306/19 136/305/19 132/308/19 155/359/19 +f 155/359/19 132/308/19 157/321/19 +f 155/359/19 153/293/19 191/296/19 189/306/19 +f 186/318/19 188/298/19 174/297/19 176/360/19 +f 176/360/19 175/319/19 134/312/19 +f 134/312/19 136/305/19 186/318/19 176/360/19 +f 160/311/19 138/310/19 140/304/19 158/303/19 +f 160/311/19 159/320/19 132/308/19 +f 138/310/19 130/309/19 137/315/19 +f 168/356/20 129/351/20 167/350/20 diff --git a/src/main/resources/assets/hbm/models/rbmk/rbmk_element_rods.obj b/src/main/resources/assets/hbm/models/rbmk/rbmk_element_rods.obj new file mode 100644 index 000000000..e5768e0bb --- /dev/null +++ b/src/main/resources/assets/hbm/models/rbmk/rbmk_element_rods.obj @@ -0,0 +1,350 @@ +# Blender v2.79 (sub 0) OBJ File: 'rbmk_element.blend' +# www.blender.org +o Rods +v -0.374900 0.000000 0.312500 +v -0.374900 0.000000 0.187500 +v -0.312400 0.000000 0.375000 +v -0.312400 0.000000 0.125000 +v -0.187400 0.000000 0.375000 +v -0.187400 0.000000 0.125000 +v -0.124900 0.000000 0.312500 +v -0.124900 0.000000 0.187500 +v -0.374900 1.000000 0.312500 +v -0.312400 1.000000 0.375000 +v -0.374900 1.000000 0.187500 +v -0.312400 1.000000 0.125000 +v -0.187400 1.000000 0.375000 +v -0.187400 1.000000 0.125000 +v -0.124900 1.000000 0.312500 +v -0.124900 1.000000 0.187500 +v -0.374900 0.000000 -0.187500 +v -0.374900 0.000000 -0.312500 +v -0.312400 0.000000 -0.125000 +v -0.312400 0.000000 -0.375000 +v -0.187400 0.000000 -0.125000 +v -0.187400 0.000000 -0.375000 +v -0.124900 0.000000 -0.187500 +v -0.124900 0.000000 -0.312500 +v -0.374900 1.000000 -0.187500 +v -0.312400 1.000000 -0.125000 +v -0.374900 1.000000 -0.312500 +v -0.312400 1.000000 -0.375000 +v -0.187400 1.000000 -0.125000 +v -0.187400 1.000000 -0.375000 +v -0.124900 1.000000 -0.187500 +v -0.124900 1.000000 -0.312500 +v 0.125100 0.000000 -0.187500 +v 0.125100 0.000000 -0.312500 +v 0.187600 0.000000 -0.125000 +v 0.187600 0.000000 -0.375000 +v 0.312600 0.000000 -0.125000 +v 0.312600 0.000000 -0.375000 +v 0.375100 0.000000 -0.187500 +v 0.375100 0.000000 -0.312500 +v 0.125100 1.000000 -0.187500 +v 0.187600 1.000000 -0.125000 +v 0.125100 1.000000 -0.312500 +v 0.187600 1.000000 -0.375000 +v 0.312600 1.000000 -0.125000 +v 0.312600 1.000000 -0.375000 +v 0.375100 1.000000 -0.187500 +v 0.375100 1.000000 -0.312500 +v 0.125100 0.000000 0.312500 +v 0.125100 0.000000 0.187500 +v 0.187600 0.000000 0.375000 +v 0.187600 0.000000 0.125000 +v 0.312600 0.000000 0.375000 +v 0.312600 0.000000 0.125000 +v 0.375100 0.000000 0.312500 +v 0.375100 0.000000 0.187500 +v 0.125100 1.000000 0.312500 +v 0.187600 1.000000 0.375000 +v 0.125100 1.000000 0.187500 +v 0.187600 1.000000 0.125000 +v 0.312600 1.000000 0.375000 +v 0.312600 1.000000 0.125000 +v 0.375100 1.000000 0.312500 +v 0.375100 1.000000 0.187500 +vt 0.656250 0.968750 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 0.875000 +vt 0.781250 0.968750 +vt 0.687500 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.968750 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 0.875000 +vt 0.781250 0.968750 +vt 0.687500 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.968750 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 0.875000 +vt 0.781250 0.968750 +vt 0.687500 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.968750 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 0.875000 +vt 0.781250 0.968750 +vt 0.687500 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.656250 0.500000 +vt 0.593750 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.781250 0.968750 +vt 0.750000 1.000000 +vt 0.687500 1.000000 +vt 0.656250 0.906250 +vt 0.750000 0.875000 +vt 0.656250 0.968750 +vt 0.656250 0.906250 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.781250 0.968750 +vt 0.750000 1.000000 +vt 0.687500 1.000000 +vt 0.656250 0.906250 +vt 0.750000 0.875000 +vt 0.656250 0.968750 +vt 0.656250 0.906250 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.781250 0.968750 +vt 0.750000 1.000000 +vt 0.687500 1.000000 +vt 0.656250 0.906250 +vt 0.750000 0.875000 +vt 0.656250 0.968750 +vt 0.656250 0.906250 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.781250 0.968750 +vt 0.750000 1.000000 +vt 0.687500 1.000000 +vt 0.656250 0.906250 +vt 0.750000 0.875000 +vt 0.656250 0.968750 +vt 0.656250 0.906250 +vt 0.687500 0.875000 +vt 0.781250 0.906250 +vt 0.750000 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vt 0.656250 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 0.0000 -0.7071 +s off +f 4/1/1 8/2/1 5/3/1 +f 16/4/2 12/5/2 9/6/2 +f 3/7/3 9/8/3 1/9/3 +f 6/10/4 16/11/4 8/12/4 +f 8/13/5 15/14/5 7/15/5 +f 5/16/6 10/17/6 3/7/6 +f 1/18/7 11/19/7 2/20/7 +f 7/15/8 13/21/8 5/22/8 +f 4/23/9 14/24/9 6/10/9 +f 2/20/10 12/25/10 4/26/10 +f 20/27/1 24/28/1 21/29/1 +f 32/30/2 28/31/2 25/32/2 +f 19/33/3 25/34/3 17/35/3 +f 22/36/4 32/37/4 24/38/4 +f 24/39/5 31/40/5 23/41/5 +f 21/42/6 26/43/6 19/33/6 +f 17/44/7 27/45/7 18/46/7 +f 23/41/8 29/47/8 21/48/8 +f 20/49/9 30/50/9 22/36/9 +f 18/46/10 28/51/10 20/52/10 +f 36/53/1 40/54/1 37/55/1 +f 48/56/2 44/57/2 41/58/2 +f 35/59/3 41/60/3 33/61/3 +f 38/62/4 48/63/4 40/64/4 +f 40/65/5 47/66/5 39/67/5 +f 37/68/6 42/69/6 35/59/6 +f 33/70/7 43/71/7 34/72/7 +f 39/67/8 45/73/8 37/74/8 +f 36/75/9 46/76/9 38/62/9 +f 34/72/10 44/77/10 36/78/10 +f 52/79/1 56/80/1 53/81/1 +f 64/82/2 60/83/2 57/84/2 +f 51/85/3 57/86/3 49/87/3 +f 54/88/4 64/89/4 56/90/4 +f 56/91/5 63/92/5 55/93/5 +f 53/94/6 58/95/6 51/85/6 +f 49/96/7 59/97/7 50/98/7 +f 55/93/8 61/99/8 53/100/8 +f 52/101/9 62/102/9 54/88/9 +f 50/98/10 60/103/10 52/104/10 +f 5/3/1 3/105/1 1/106/1 +f 1/106/1 2/107/1 4/1/1 +f 4/1/1 6/108/1 8/2/1 +f 8/2/1 7/109/1 5/3/1 +f 5/3/1 1/106/1 4/1/1 +f 9/6/2 10/110/2 13/111/2 +f 13/111/2 15/112/2 16/4/2 +f 16/4/2 14/113/2 12/5/2 +f 12/5/2 11/114/2 9/6/2 +f 9/6/2 13/111/2 16/4/2 +f 3/7/3 10/17/3 9/8/3 +f 6/10/4 14/24/4 16/11/4 +f 8/13/5 16/115/5 15/14/5 +f 5/16/6 13/116/6 10/17/6 +f 1/18/7 9/117/7 11/19/7 +f 7/15/8 15/14/8 13/21/8 +f 4/23/9 12/118/9 14/24/9 +f 2/20/10 11/19/10 12/25/10 +f 21/29/1 19/119/1 17/120/1 +f 17/120/1 18/121/1 20/27/1 +f 20/27/1 22/122/1 24/28/1 +f 24/28/1 23/123/1 21/29/1 +f 21/29/1 17/120/1 20/27/1 +f 25/32/2 26/124/2 29/125/2 +f 29/125/2 31/126/2 32/30/2 +f 32/30/2 30/127/2 28/31/2 +f 28/31/2 27/128/2 25/32/2 +f 25/32/2 29/125/2 32/30/2 +f 19/33/3 26/43/3 25/34/3 +f 22/36/4 30/50/4 32/37/4 +f 24/39/5 32/129/5 31/40/5 +f 21/42/6 29/130/6 26/43/6 +f 17/44/7 25/131/7 27/45/7 +f 23/41/8 31/40/8 29/47/8 +f 20/49/9 28/132/9 30/50/9 +f 18/46/10 27/45/10 28/51/10 +f 37/55/1 35/133/1 33/134/1 +f 33/134/1 34/135/1 36/53/1 +f 36/53/1 38/136/1 40/54/1 +f 40/54/1 39/137/1 37/55/1 +f 37/55/1 33/134/1 36/53/1 +f 41/58/2 42/138/2 45/139/2 +f 45/139/2 47/140/2 48/56/2 +f 48/56/2 46/141/2 44/57/2 +f 44/57/2 43/142/2 41/58/2 +f 41/58/2 45/139/2 48/56/2 +f 35/59/3 42/69/3 41/60/3 +f 38/62/4 46/76/4 48/63/4 +f 40/65/5 48/143/5 47/66/5 +f 37/68/6 45/144/6 42/69/6 +f 33/70/7 41/145/7 43/71/7 +f 39/67/8 47/66/8 45/73/8 +f 36/75/9 44/146/9 46/76/9 +f 34/72/10 43/71/10 44/77/10 +f 53/81/1 51/147/1 49/148/1 +f 49/148/1 50/149/1 52/79/1 +f 52/79/1 54/150/1 56/80/1 +f 56/80/1 55/151/1 53/81/1 +f 53/81/1 49/148/1 52/79/1 +f 57/84/2 58/152/2 61/153/2 +f 61/153/2 63/154/2 64/82/2 +f 64/82/2 62/155/2 60/83/2 +f 60/83/2 59/156/2 57/84/2 +f 57/84/2 61/153/2 64/82/2 +f 51/85/3 58/95/3 57/86/3 +f 54/88/4 62/102/4 64/89/4 +f 56/91/5 64/157/5 63/92/5 +f 53/94/6 61/158/6 58/95/6 +f 49/96/7 57/159/7 59/97/7 +f 55/93/8 63/92/8 61/99/8 +f 52/101/9 60/160/9 62/102/9 +f 50/98/10 59/97/10 60/103/10 diff --git a/src/main/resources/assets/hbm/models/rbmk/rbmk_reflector.obj b/src/main/resources/assets/hbm/models/rbmk/rbmk_reflector.obj deleted file mode 100644 index 9c9514541..000000000 --- a/src/main/resources/assets/hbm/models/rbmk/rbmk_reflector.obj +++ /dev/null @@ -1,234 +0,0 @@ -# Blender v2.79 (sub 0) OBJ File: 'rbmk_reflector.blend' -# www.blender.org -o Column -v -0.500000 0.000000 0.500000 -v -0.500000 1.000000 0.500000 -v -0.500000 0.000000 -0.500000 -v -0.500000 1.000000 -0.500000 -v 0.500000 0.000000 0.500000 -v 0.500000 1.000000 0.500000 -v 0.500000 0.000000 -0.500000 -v 0.500000 1.000000 -0.500000 -v 0.312500 1.000000 -0.500000 -v 0.312500 0.000000 -0.500000 -v -0.312500 1.000000 -0.500000 -v -0.312500 0.000000 -0.500000 -v -0.500000 1.000000 -0.312500 -v -0.500000 0.000000 -0.312500 -v -0.500000 1.000000 0.312500 -v -0.500000 0.000000 0.312500 -v -0.312500 1.000000 0.500000 -v -0.312500 0.000000 0.500000 -v 0.312500 1.000000 0.500000 -v 0.312500 0.000000 0.500000 -v 0.500000 1.000000 0.312500 -v 0.500000 0.000000 0.312500 -v 0.500000 1.000000 -0.312500 -v 0.500000 0.000000 -0.312500 -v -0.437500 1.000000 0.312500 -v -0.437500 1.000000 -0.312500 -v 0.312500 1.000000 -0.437500 -v -0.312500 1.000000 -0.437500 -v -0.312500 1.000000 0.437500 -v 0.312500 1.000000 0.437500 -v 0.437500 1.000000 0.312500 -v 0.437500 1.000000 -0.312500 -v -0.437500 0.000000 0.312500 -v -0.437500 0.000000 -0.312500 -v -0.312500 0.000000 0.437500 -v 0.312500 0.000000 0.437500 -v 0.437500 0.000000 0.312500 -v 0.437500 0.000000 -0.312500 -v -0.312500 0.000000 -0.437500 -v 0.312500 0.000000 -0.437500 -vt 0.406250 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.406250 0.531250 -vt 0.468750 0.593750 -vt 0.093750 0.968750 -vt 0.000000 1.000000 -vt 0.031250 0.906250 -vt 0.531250 1.000000 -vt 0.500000 0.500000 -vt 0.531250 0.500000 -vt 0.000000 0.500000 -vt 0.093750 0.000000 -vt 0.093750 0.500000 -vt 0.406250 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.843750 0.500000 -vt 0.000000 0.500000 -vt 0.093750 0.000000 -vt 0.093750 0.500000 -vt 0.406250 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.031250 0.593750 -vt 0.000000 0.593750 -vt 0.000000 0.500000 -vt 0.531250 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.406250 0.531250 -vt 0.406250 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.531250 1.000000 -vt 0.500000 1.000000 -vt 0.843750 0.500000 -vt 0.531250 0.500000 -vt 0.468750 0.906250 -vt 0.500000 0.906250 -vt 0.500000 1.000000 -vt 0.093750 0.968750 -vt 0.093750 1.000000 -vt 0.000000 1.000000 -vt 0.031250 0.593750 -vt 0.000000 0.593750 -vt 0.000000 0.500000 -vt 0.531250 1.000000 -vt 0.500000 0.500000 -vt 0.531250 0.500000 -vt 0.093750 0.000000 -vt 0.093750 0.500000 -vt 0.531250 1.000000 -vt 0.500000 0.500000 -vt 0.531250 0.500000 -vt 0.000000 0.500000 -vt 0.093750 0.000000 -vt 0.093750 0.500000 -vt 0.406250 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.468750 0.906250 -vt 0.500000 0.906250 -vt 0.500000 1.000000 -vt 0.843750 1.000000 -vt 0.531250 1.000000 -vt 0.500000 0.500000 -vt 0.531250 0.500000 -vt 0.093750 0.531250 -vt 0.531250 1.000000 -vt 0.500000 0.500000 -vt 0.531250 0.500000 -vt 0.843750 0.500000 -vt 0.531250 1.000000 -vt 0.500000 0.500000 -vt 0.531250 0.500000 -vt 0.406250 0.000000 -vt 0.500000 0.593750 -vt 0.093750 1.000000 -vt 0.000000 0.906250 -vt 0.500000 1.000000 -vt 0.000000 0.000000 -vt 0.406250 0.000000 -vt 0.843750 1.000000 -vt 0.000000 0.000000 -vt 0.406250 0.000000 -vt 0.093750 0.500000 -vt 0.093750 0.531250 -vt 0.531250 1.000000 -vt 0.500000 0.593750 -vt 0.468750 0.593750 -vt 0.843750 1.000000 -vt 0.406250 1.000000 -vt 0.406250 0.968750 -vt 0.000000 0.906250 -vt 0.031250 0.906250 -vt 0.500000 1.000000 -vt 0.000000 0.000000 -vt 0.500000 1.000000 -vt 0.000000 0.000000 -vt 0.406250 0.000000 -vt 0.406250 1.000000 -vt 0.406250 0.968750 -vt 0.843750 0.500000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.843750 1.000000 -vt 0.500000 1.000000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -s off -f 19/1/1 5/2/1 6/3/1 -f 30/4/2 6/3/2 31/5/2 -f 40/6/3 7/7/3 38/8/3 -f 26/9/1 14/10/1 34/11/1 -f 8/12/4 10/13/4 9/14/4 -f 11/15/4 3/16/4 4/17/4 -f 33/18/5 26/9/5 34/11/5 -f 4/19/5 14/20/5 13/21/5 -f 15/22/5 1/23/5 2/24/5 -f 37/25/3 22/26/3 5/27/3 -f 16/28/4 25/29/4 33/30/4 -f 35/31/3 18/32/3 1/33/3 -f 10/34/5 27/35/5 9/36/5 -f 39/37/4 27/35/4 40/38/4 -f 32/39/2 23/40/2 8/41/2 -f 28/42/2 11/43/2 4/44/2 -f 25/45/2 15/46/2 2/47/2 -f 11/48/6 39/49/6 12/50/6 -f 2/47/1 18/51/1 17/52/1 -f 31/53/4 22/54/4 37/55/4 -f 6/56/6 22/57/6 21/58/6 -f 23/59/6 7/60/6 8/61/6 -f 34/62/3 14/63/3 3/64/3 -f 37/55/6 32/65/6 31/53/6 -f 23/66/1 38/67/1 24/68/1 -f 25/45/2 29/69/2 30/4/2 -f 29/70/6 18/71/6 35/72/6 -f 36/73/1 29/70/1 35/72/1 -f 37/25/3 35/31/3 34/62/3 -f 19/74/5 36/75/5 20/76/5 -f 19/1/1 20/77/1 5/2/1 -f 19/1/2 6/3/2 30/4/2 -f 6/3/2 21/78/2 31/5/2 -f 10/79/3 7/7/3 40/6/3 -f 7/7/3 24/80/3 38/8/3 -f 26/9/1 13/81/1 14/10/1 -f 8/12/4 7/82/4 10/13/4 -f 11/15/4 12/83/4 3/16/4 -f 33/18/5 25/84/5 26/9/5 -f 4/19/5 3/85/5 14/20/5 -f 15/22/5 16/86/5 1/23/5 -f 5/27/3 20/87/3 36/88/3 -f 36/88/3 37/25/3 5/27/3 -f 16/28/4 15/89/4 25/29/4 -f 1/33/3 16/90/3 33/91/3 -f 33/91/3 35/31/3 1/33/3 -f 10/34/5 40/38/5 27/35/5 -f 39/37/4 28/92/4 27/35/4 -f 9/93/2 27/94/2 8/41/2 -f 27/94/2 32/39/2 8/41/2 -f 4/44/2 13/95/2 26/96/2 -f 26/96/2 28/42/2 4/44/2 -f 2/47/2 17/52/2 29/69/2 -f 29/69/2 25/45/2 2/47/2 -f 11/48/6 28/97/6 39/49/6 -f 2/47/1 1/98/1 18/51/1 -f 31/53/4 21/99/4 22/54/4 -f 6/56/6 5/100/6 22/57/6 -f 23/59/6 24/101/6 7/60/6 -f 3/64/3 12/102/3 39/103/3 -f 39/103/3 34/62/3 3/64/3 -f 37/55/6 38/104/6 32/65/6 -f 23/66/1 32/105/1 38/67/1 -f 30/4/2 31/5/2 28/42/2 -f 31/5/2 32/39/2 28/42/2 -f 32/39/2 27/94/2 28/42/2 -f 28/42/2 26/96/2 30/4/2 -f 26/96/2 25/45/2 30/4/2 -f 29/70/6 17/106/6 18/71/6 -f 36/73/1 30/107/1 29/70/1 -f 40/6/3 38/8/3 37/25/3 -f 37/25/3 36/88/3 35/31/3 -f 35/31/3 33/91/3 34/62/3 -f 34/62/3 39/103/3 40/6/3 -f 40/6/3 37/25/3 34/62/3 -f 19/74/5 30/108/5 36/75/5 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber.png deleted file mode 100644 index ec2d38d72b06f33389de8a900f7c173dad8b41a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1027 zcmV+e1pNDnP)r|LPP)nec!`-ZvaIEIcKDl00320 z;lI!$rUYR|&KWspIOmW>kQCfU0Eh@VXNZV_AR^0Lvv7FwHx=C4CG3LXh zr-+miilP9Kx4%VX27Ce_#)zUQY=E@H|Ni)i5CXp4Hr68jQ~=Bj8ImiCa%cyEIU$4q z5kXZ|9|OoaBZM%N^R09t1js-`W`=XlHqy$B+o%1{B4AFomWXWqQ2<3zSOv!A{&w5g zCMqiLGa({4B4iO{5jc9w-Z^K7pBhBdfvT#k|IRtfn&@qcz4w#fyRJi7mdL}bIOi~M z!3KK#{i6U>UbVbRJ7t4%e;n_1AZMkq!119PMNv%3{$UGr2$cx{5JH$O9&11xluhSF zgl#a#nd`x)0FVMux{Na%e*&=S4Nj)D1=+_o)JItUoEzHK%Dgh8pr&=C4!Fm0X=LCXusc|1^HV5 z02oKrnx&Mm-EK{6L7PbHY002ovPDHLkV1mbj(zgHr diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_glass.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_glass.png deleted file mode 100644 index 31b150f0b40e953534b776109267e01bc19c66b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)s-bG2#-J5Ttul70Ii#G3>3xM*j_`3gr*t6K$>RO;?Uii0D{0NLf;Lzu-SY9(6;S)3_QNPoBQSKkD=UOpxf=vV?b+ta=8%6peKla`}y(q zd~&mtIYH?Dl7lh;{RPaJMdX4p&TUR8Wo|um*p^b}!wd+KSc@MQR@-WK1GX196p!O6 z0CinE8;GE<;i}pa$5X0m`=`OZxKbtI#VAqocsw4D$MaA50xY0v`YWP=RR91007*qo IM6N<$g3V5$MF0Q* diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_side.png new file mode 100644 index 0000000000000000000000000000000000000000..84881006800ab95cb03c0d4666bb481af6e27279 GIT binary patch literal 459 zcmV;+0W|)JP)EvU}g-7kWTR4IgSG}`ve$c;O-p9fi7e- zJO5Gu$P6+9fKm$Ox-aKrVrGpqORa8n@YUf&jHP_d|>AbstDW2>Lz}?xljUgdvwZvuOVwdebhdi#{{cy0X33raf`b46002ovPDHLkV1f!T B%>n=b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_absorber_top.png new file mode 100644 index 0000000000000000000000000000000000000000..b58ae8a8a79b1562c4e7224e00040653f48a3f4d GIT binary patch literal 424 zcmV;Z0ayNsP)J8m2?42C~Zn%O-_+VnYh;A5nB$`q-L1Y>U&*cpiuT^OWS zP7{QHFd9An7nL5qK3J`l|EbIMLaDX#e0e74OiBrW-a9EJdhY<_oawzIB8)M}Ib&vQ z+eYyN0AmaQQc5xRug_H#RShx$Ff)$hh($9C5D^K0loF@Y2@wfWxtFY}6Qing0Hu^E165^RS8lf(t+h#=h(tc+qfh^L77w@g9#0000DNtR_GB7_j&y_X|l2Yf%g z_lPmd9q`_-#?2CN&cPUil#={H2ojM}N{)!1>@b9YuIpCeW(lN}&~=@pQz<2BG{#7T zN-0StN0?H==jZ2Y+#~^GjAWpnHl>vG2CcR1>l+abDq<~eK%giJNPn zC)|_~6X5ddN6~)*klWvNoe=1+FX3i05MxB!wg4b!*tYF}l-3$4rBP>d&Pm^2!p#zR zdwY`?KaEvjJd*3W#>>mguW)Z45^JvEZ#uoL!`};e}vYgce*BSx;`@rRL zk=dT-xo89cGS{uOu-4+^bG>Pr(Of?sk5Ec&LSj)5uubWKEsUo0 z0Dr7csH&<(l7Auqe9dZ>X5M?8&u6LK7$bJO9e6KK&MjbUI`Ac}xI{N0P?qID53r0rolekN<8rxRx7+LAi`~Jsz`H6DzEt5X!acYtIiCg*q6WO-qGEewiJZ<;>uIKre?#!*e zw?a#a$-zZI$%Tbsm6uC_4ExN^RY9RWh8YZL-{vbjgG7w7;6Pgg&ebxsLQ0LZ~XApigX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_cover_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_cover_top.png new file mode 100644 index 0000000000000000000000000000000000000000..c19f58b8b356cda092c296e17512bbd7b9c6c0f4 GIT binary patch literal 396 zcmV;70dxL|P)18423_-PG;W!QA(exETjwzli0GkckjLPKjZQDLF>Kq`S_&PN+|_^IVYtQ=9~c3TA6bqBA6MqR@|NAIB0PJz{~(B zrQ|xku~t=7HH!&=yK`MvZn}Glh)4>QQn=l2h)5Qd@0L|{si>;dS~0U_MuZdqXss;_ zRF!?-c|MVMLBlEUxhzPBkCZ~CZnK}@y~A0fJn@!9tjC7Ac@LO#mfvy{F!0bSi`7x< zTm433L0bJzgU|Bw_fIxCdsA`BHPd5Ta?G?>t@2W_7CBJ&UsFo&^y1rZ?QZ1VSAEQ& z6DRK^WVnn~!T0ii#*A5;xqTOF@I_=VXP)xZ@P;q%rj zyXJl4?s_DU^RH@yTI`_~zl`j4mlZm&)JrPA&8ymn`LGdF&V<`EEu bfKql3t1x}58LGv=@L}+D^>bP0l+XkK47z_4 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_side.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_blank_top.png new file mode 100644 index 0000000000000000000000000000000000000000..c19f58b8b356cda092c296e17512bbd7b9c6c0f4 GIT binary patch literal 396 zcmV;70dxL|P)18423_-PG;W!QA(exETjwzli0GkckjLPKjZQDLF>Kq`S_&PN+|_^IVYtQ=9~c3TA6bqBA6MqR@|NAIB0PJz{~(B zrQ|xku~t=7HH!&=yK`MvZn}Glh)4>QQn=l2h)5Qd@0L|{si>;dS~0U_MuZdqXss;_ zRF!?-c|MVMLBlEUxhzPB^Vjzx$z)+SvK!ChNwsyS_;;nne`xJSJ zJ7n*erPVW;vXcKKHmvplf&q%+`SI}ZoX=uB9y@B5Bni80KA&%l z-Q3)WogeIB5y08m8QpFdrBrxft!1%TV68!kNKVZ-3uXzSfQkG?ifVKABeA!z-k|a3i!Vasd;`a8IySqCklL-K)r>9(AUhWimj70#( z7~(iaN{O|WG)?)(-qU;iPEYjd|LXIVPx!f2RkfA_5v;-+MG?+9oO5JZM(_1ISO5M8 zz_%}-(ONf-s#O8bIhM;M#u$VUD*>V(CcXW5MLSKJrbJN$&`8*$1w>I4A^?zO8U0^< zzJ2-3+mF|kfS;N?&x3%rEYyKcr-QW?V+>iA@s&?#tG??Z_5Jm=!#qVbW>g*L2_g#IP~ESJlT$@LmgmSrmfq!-|?mv`jrz5fM5 z_Ai&q)&xY};bO4>R%h!QQC*Z$3g=v-BDN;r`T02vd{kcBNW8kq^?|k>d}JT;z;rrg zFc|zX9+0rA16pf3olbZ>BLIO1k|ZHX5?)?jTIqyAfRvIv&$sfxd_Ldcf%Efogb?kt zV|bqjylvxwHf$>ocxQD%MN#}c9x%qBwPrXR0;>q6X^Nj)=Yi|%YnP@eS(Y`PtE;QM zm~AT$IOjMyISEcY8ErfB_uyr30kheR*=!aD>$M=y^AH&zv}1oocfrd+0tSOYg9ki* zPbL$TQfU1fM%H;?7rY!KV4Vkwq9DsMV09fwqfrpH&I7yP6l#LM`*o}H zz%F>%*FrnC)*_`Oj$`6D-ulPGJ2u9IcKq=0usVib4}iC~w}Wy(&gXN=vgGmcaf1hv zB-zRXPft&+@qieQ$8IDm|Y71Dy6IQM0QK!@xO z4qXH%JKQXmVEoxiI!MxJD45^reh~7*J)Doj<=hi32-XP|@%<%>#hX?&9)LOmo;R-? zo6@`gP)2CG{i>V)Rv-x0$!PRkucTE4Ja684a)5sNkl#$M>n4_EA%wWOY}>vO91fqF z6Ubv(7B4@a=f}Bw-kKCvd;p+ob3F%hEx0+IK;~aop0$ zn`~I6E09lanuFQ`eYm#aC^}=B1ET2sP+$|u6$*typ-=$S9xSHQ*988K=XAiy&l!&6 s;`__&4rIrE;pemp_p`wxLrxm=3*yywgZ}j+(EtDd07*qoM6N<$f>PwLR{#J2 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_pipe_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_boiler_pipe_side.png new file mode 100644 index 0000000000000000000000000000000000000000..439f5fc38c349a2e664978b821ac646ed73a0579 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfb~>3FS$-g^eA z0P?WAXC%!v?(;DQNd5!>fQUF2BO;xcSvnwzQp%yQ0>E`$Ac?hB<|+B56wEo(ffP$k zy05k7f$O@k*2?*QIU-Pv>L?0H4n%B?^)v%1FY@jxQaMOfZ6XzjSYJ{o4+xwRW^KfGno~ z?>vCtMpCpfM#8(7^FKbRK#xR`6hW8NSbLgB8RwkYwtBwGQyk=c&Uq;L2Fw8X;dK~4fO6o$WPab^;Y3ldVo%DCemUch(=mn^-8*I;Y71$*|a zFak|zV1Pnf7dXWr#e}XV{ic83d*90jAA?}6<(gxbhK9A4JkL1|F-wDU4gl3sXSvpz z27tAe=Z71r@rY_R!RR^t&_yYQ_ddzXvOEL;RO1o1FK+-0drzRcc<&KHBsqYH0kcUg zuUf4D*zfm9DU%#HR$%m;Veg4*wL;G|JVKu5tk-Mq@9xj?7+{u$e(1)sc!ceCO9%le zWs=7kSZh&AA*IAQhY$kqeYCLK?P#~#c<%`zAcP=1pEL=$T4RV zJHZAW@)8N;kcUagLAeCKgdagzmLaDEjI7nHrR|yRt{i52{%A)VY1ReH&UE!ueO*=G zHzQAed7^O{>9hPa=iX=c*yMll#gCn}Uw{5ddNuG%V`r(n}9a6h!LhQrXWD1u8OJ- zO56b;BB&~YR0*K@UtNn``4m(XG1Z0;sw!A(2UWpAbqa}s8to0DQEPx26phWPLkM*h zj4{IipnzHRQGe+q=m1e|z_fr4?SBm*hKRM6liyEJRVL3S6{wUrC~CACQiaL$$=az! zWLOL4f6wb_e(>c3051Qz1RyK|b8Y+&zkXQx|84x%+U)@Be!jbr=l`bzDfv)y#jIfQ zet}rw-O;;>=g%j^GB!H!et{U_^v_d7q@xp14Wcn-5Pv1BAvBd1OkYlGs&&kOIAQw3 zw7ND@>qLx^7^?~mVS#~FK-1NL&XgO$Sko|NwFg$rX#MVLl@dBr0l0yJ#+gQlu9=8n zj2S+J=|WW@t^iz%BhpHK4Wu!qZo%LR#4;jL)?P+!aH7JS-`-R@@NCinnWTJ(b#!3= zn|+|m^M8&Ge6_9vZIDAuUj6k-i=yatUd%7p+udW6|M2i|xCj6)|Cn=eae;_18jY~l zQkErGS66uN8IQ-DpP$zhv(^%0#CuO!mfPe8Ry54A4CfpoQV*1KuG!QYH0KU#FBYhVgj3)xh;xN4gT9t+i{amVad#B0>nE-t)--r1G{wwAa!{M>_d( zx%^~RZ~)%>&WS<@c<z$X9k@$s#b^#aI0<~7gL7p{n~TrMfg zl7I1dOrGbcD$co@e%^cL^Lc;JJ5baCb^ookIOnj|QWQlkG$~-49qE~N-;?#NZ3JM9 z!5DKRwUSP>l`mBb?$-0`R(+6&kY!m7B!ti_v#A29J)M)Rs&rR{G(d+|F~+q7?f1R+ zzSEvq!ST>BP47 YAMNuqDL@e1_5c6?07*qoM6N<$g2A8N@&Et; delta 853 zcmV-b1FHPo2mA(*G=DQmL_t(og{@c1PUAojta-&d+QY7}1d4>BAUN_l{0rL01?}(f zNgN`OY;g$6&1-uedtkd6$2N%#C0Vh@R!?>JbazGE-rhzeu-0M>RaN!YzI^-MdA|Gk zLyQ_2fChl`^K)cb2Bj3g@ZO`YYk2RWl!8(ULI{Kq;Jrr(0e@v#^7lea+P6y}%Q9qH z1}P=K2q6Ff>bizfiV21g5MzXM4ge5i958!4BmhV$5o6>{X^lK5?}ZRB#z1S$9((WM zy`N1)1K_ZxDIm~BZQCM*0AmbdjPTyWT8qEQ=4k|vCSa{ajFCMgGC()H6dkSgD9Jg{ z0N|X1F$Pjfcz^HVoa2?Ulky;iPJy+E1}xDd{yU0)KP}sS*I7X`0^0)CIlwXxo;F zODSg`LP-RuyiyO-U-H&Dho)(m0Buh1r-D0SUDp7>xv%TGLrN)y7$e%Y<*rCbt7aB~ z=jUf$cyAm7!y_4(Ka_ekRaMnN5-I-t{x!b|;0Qgi-ENWR`9VD}7ZP~w14U6_u~_g$ z8UX<70e@>PthIP~d6^WYg9N0MSg+TEdZ4PRo*uZkxPTDiQ%FeQt?b@ANa^XPUho-^ zLwbNVO9_=_`61;qhEY9G6a~)C&H%hdXt`X1zD@PO&CN{&UI!Yj0l@wJ{ZZ91ss~O_ zPubvRvjH&PBOV?eI?q>ES4Vlz1a`X}cDo%frhm<5yor$7Thp64As zK=OOD*+40UqA0LjE=To1&*%hF+y|_++>FYyx-IZpb3N;J(oVQ6iXEZwAf zV6|FtPdKCpfN4432ajV?KgJjsV+LnCZS0)mam=3l5BtJgX=)&qH-^Z!5^L;yNEf%L%1$qDEA^767{kV^IX`g*Wq?T_=G9!QMRSe3U^V00000NkvXXu0mjff)0)* diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto.png index 124161c6c6988246df9c0696b5ad57709f030090..abd7e532ecd30a62ebe9ae910ec7faaf08175bec 100644 GIT binary patch delta 962 zcmV;z13mn>2j~ZoG=HB-L_t(og{_u5ZyQGxg}*y9%SF@#2m~V!Hvt4yX-wKp${=l! zMvYVHPXvjb2a?!ukmRqp3f$yB7_w!+g⪚02hkL&7rdD-$d%&Pg98A* zAB}J!Fmn~-`GS9Da}@B~;UNOtzjdp@V~AX2Jj&?-`~+1Bf^8x z2ql6G0b6$^B>Vb=0#G7^wW2CHkpM=7Oev&()-~>&!#UTRh@md*lBDb5LTCtfi? zX>p}gKLP=olYjZO0%?Srj1QsRp`P<^2vpvaY0aajPpN=!hC@;cRR}D-=h49d9{6rJ zY{nH&Eh4>$n3w;aGItJuFLrkUcr~2@V3$i?5*mE3#{W+6ceUP(z^5O5aH-D!&j(J~ za0KJ|g4fd-nNs}m{5cx9HymQUZ+zhObcPY(_rpUB@P9+%6R^67N~vB-FtCzbt`rY$ z-$seFfJm>WEw2_$B8t*;UTFSEAq&85$jfD2n1j9N_r)xV65svvZZ&D*`t^yvdF28=YYEfy?ltqoXSq>m*Rj zihoAuu68^Tp{gp%vLw%QilQKdfH9_#pS6~0?TF`+UPGb=Xy&iA#u$Uvn&ooY7)?x= zsw4g;oqLR~wMz*orBF&;D6Qxdsq@8d!S!ao9tu`1&$6r`;+*TW+1P(K`;^NCI4Kij}YN;MT3{r~^~07*qoM6N<$g7~@LqW}N^ delta 914 zcmV;D18w~12e=22G=FbNL_t(og{_x8ZsSH2$A6p|ikc=tR)7rwh9Cn5_6ErTwoJ2y zi@i!dnv^+3F5p8f_7o{x2sR+Wg$xx5WRf$S6xMr7N|a;K`v8IDka+L^zW>Vp`uH)? z54rfK;8^Ji6*WhdF~0w{`tq9`!N=!>Rl04U26Ypnuonue4TAp`(YN7-NVr5<<|Fh+*+Agh10YS_5(}4h#ZN z*EP;LQcC)h+=_AuwOj>&r0q=rQc6@+MF>F^N%);}8ksE1GzIN~eRB$&a~c8YhE+VY z*6Mfr5@Xa(8U&yy3Pz)m=3fkpVgY2W?c8slo_g!#B!2)hUM0K|PU!~e{kF(E1D(1V z904gp=>&kPst!JuDHvmr@nJcg-LGKYaP32QRH-cwWhUUknED_xtw;hu-_+0JhuC z^Pj)}Hh+8wu#3RO#f7e05lO>(y=F3*^zwn#YV{V|z^(|3qF}jPG8&EaCmaD#KH$B_ zd(Y$JVz{A5s=dj)H o>-G9j$=*udH}HR)qAmXcG$3r5R|m4D01E&B07*qoM6N<$g38>!=Kufz diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_pipe_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_pipe_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ff22fe3bf5943bf494cc8b8d41d2b2e87f2c46d9 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-vL%GMdR&L2iP#^qqw~nBKZC{POQhfS{bs6NVF(^BI(yc86!CMe7Gn z3EFjb)vc?>^OHVzP4zEti<;l?ZvBF{Yin$c|JiK%{Ql$f2f~&+7(|aao;OqATn)5| N!PC{xWt~$(69DveJ5T@s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_side.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_auto_top.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png index ad90114809954e13a43379cdd7f1599d18c5c896..6e6e3ad0f385997501716833d6fe8f7e80d3a7b1 100644 GIT binary patch delta 981 zcmV;`11kKY2m1$*G=H*5L_t(og{_v~Y8*Ed#(ziB>|#?wX-tyFTd4nBwZ3bgp)I}k z1DLv@f8LtnQ#LhgN4@-i;QNx=?;QrqjXS!=bDdZE$mj6L3X*Euk-t52iz>F9i) zMn3=Y&lux`uDC4!=7R^HF$>?>dDt5J?blzVbMh@=oIAyh|9?YC!SSo-0IaS*gBS?m z3g=F7_Fq7F^UsTff4WP=6T(%!kjPwlrvw0$6o@JqZ2UY$Busy*J|c?2`j3bRF$SpM z7~?{TTLcgVMAE9Nf>b?801;h{g)|}w_ud1bwO*(Si9ifQKty#;iZLJ+!5Dq2Ko#Em zx(Z5lzyD4G5r2@h&nii{WqM3l40Q!y@$;V&h!aFKM~8nvjI6GGNAqMOo){(^y?PEr zR@c5yB$)16L>4=O(d8k*TL2zD{tAGr(J=tQj~EeaeC5eE0N4hu^~d)k@ZiHQX6pQ1 zK9G|y8pgR(##e6xU0p_N&uX2gl>_*Mq8~-yg?|n^hdwV-V>W#@{ zdTZ|O?cGToW;h&ja&poMT5DNeUZyO|TXBGcgM-%i=H}*Iawh_Vrvo0XJn96q56r^% z_kZ{AoUD^Td0Eyv&tJGA!elbRIY+{M zEdj8#wbkiVqtU2MU^pC7mSv~bvk%PjiLL~h#9iWl$?7Lqe&G;<00000NkvXXu0mjf DtGwa4 delta 891 zcmV->1BCqh2cid%G=Eu1L_t(og{_yrP9sSW#(&e@svr?MuI zOY~Wmk>@$iIgL1kKnUSzAP&&9rX>&)M^#nPG!1#46JsQVfcKvN6X$6L_Xgm-C&s7| z3K&>VuVlwLw|^DnF=ha*r<9_uYaSjRH0sf4q|w!N&2qV1`;9S1131(itkUb8BgUxD za5z*a!{JctET6I`W&0F>7^6ld2TA&!a~NX?A&_O6mLR>bpDuxOZtZ3pV|aXg)D9Sp zM%s$$BPLl%LG5eG1D#HX5Q1jm_V$(#0>&8b?(Tq9x_{*^SZgWE68EQ7$47O6(5s|Z zvLM|cy`S30PD!7mG9Z^Q&vT7pxm<3%EG!s8psFeb{+TW?0-&yIO=ZgW@+r|u8wvn% zF8ha?GT~ye09Lh?L6m~B))Hf+sw(9Nv9xQB0`T_srVGCs$Iw2K;rOAn!K-Ci?gWwA zfB*b_JbwwWhaQ;CW^}vVoqFI{GqB=;$z(#O)6pj-8zCX@J>GlX-`@|)(oO)z7zTqu zs~#xJazhVXTwIW4*>3@1;Ah+Y>LR7LU%23Rm}%1k;w%L;olZZce72c`)r=PwlzA|j zOgK9`16CR8^?Jy=P1EQ&zPY)Huo`Hx2JrOsw0~E3Y}Es&r>A=0csvHSbHwxW^V;{T ztE;`DR{-<*ocVmNiz(R*1_R9u{FG$UqHPlG5OV7rKYg^k2R{lu!K)>HtPS~Xf;INv1G#$sH zesuCYC(rZN*)ERjy4G>5k^D&ep?AWRWl2?4yu7?@=mGD2s~&iLecb?Xtf?O8cDwq2 zpbR2lO(%#RI5|1dI$vI1t{o_?dVPJ}%2*%A`Gy`y4*{6XW;+l0xOd2m_zo{zX=GX@ R`R@P#002ovPDHLkV1l_EunPbH diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_pipe_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_pipe_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ff22fe3bf5943bf494cc8b8d41d2b2e87f2c46d9 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-vL%GMdR&L2iP#^qqw~nBKZC{POQhfS{bs6NVF(^BI(yc86!CMe7Gn z3EFjb)vc?>^OHVzP4zEti<;l?ZvBF{Yin$c|JiK%{Ql$f2f~&+7(|aao;OqATn)5| N!PC{xWt~$(69DveJ5T@s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_side.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod_top.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_pipe_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_pipe_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ff22fe3bf5943bf494cc8b8d41d2b2e87f2c46d9 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-vL%GMdR&L2iP#^qqw~nBKZC{POQhfS{bs6NVF(^BI(yc86!CMe7Gn z3EFjb)vc?>^OHVzP4zEti<;l?ZvBF{Yin$c|JiK%{Ql$f2f~&+7(|aao;OqATn)5| N!PC{xWt~$(69DveJ5T@s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_side.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_top.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler.png deleted file mode 100644 index 8f0b3814cb745ee32f731663cb1c51bef7f35abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 zcmV;U16=%xP);=C~!RXoAJz>w=B-FA9@;rz49?m(s%zM8#%5X<7 z0IfB=_h9U!KF-h2_X7B8)><&eaDRWlci-9BSwDbqNJ!DxTV7sXqG=kc0c$Nd=c9gM ze=h)I45XCMTK^~m#uz%#IftfcMr)vHnqdImd)n}m3@D}OO}+Pce}C`Y8yBvWau|S= zk~WNGpsFgQX-fZd&VN(`*Vos>0Max?k|e0AYBU2E7Z>21LkNMYs-ToYnx>awZgS8e-(-43#7shJf^z?KXK)4V9gb*}{thH3_LI`;8VT^$>hSrTSsOx&P z1_Iz-052~uw6Kp(f$vXJmL;B^o^W$>v)6C4*$e~tdchco*zWG`zRmdG*r*I z`J6Z*^nPry9+(6`C_<$a&GtSK8FRqUbo;IGs;Xd&!FIc)s6&KWYvO$X)S}PN&yxWl zJ&Nhxu;T*v@Kgp?9xS+d=3KMDY> zRx46UxH~{65Mu-&rNrTI_$p8o1&_xA5qS!@J9S-?=Q*3rW>|b@e>R(;s)P^#2mq>z zhzz#AaWFGtjN=FZS(YIp?DzYx5thp(Aq1MHc?y`>ATq_EZCgZSh%hh!sOx%?LC>m( z7+#m|_xsyl`^UY@k!$GA*IS!nuwJiG)u-TpTT=`|2)O&0fry~0WLY*afH8;H7-lwb z3(%FLSAX~TbyO8I8#l3cVP=yI7K;VIxJd3!+qSs-B!i}D$n$)-f>gW8&zCbXMvlkh k*BV2|qAW{PmFxA&A3y-C*(%TJ;s5{u07*qoM6N<$f-4`TRsaA1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_cooler_top.png new file mode 100644 index 0000000000000000000000000000000000000000..cff49dba4e58b9cafe77ae92c3f753075c53b179 GIT binary patch literal 384 zcmV-`0e}99P)*=+(r5JcY`fXHJ5AdCGa8)6_Gi$F+#1dye*kfqVi(d`ek zy^CxCa{o+gj_RtKa;J}z=A8LY-M(+coHJjyFG2`7=KyG};hdwj20#db)*9Y>M1&9m zs>(17#OVTnhydW6vwm8qzSc^u)rLg?RVC-l<#Msh+wJy&Zc54euIupL&j1r;faCG_ zRQKUz1{70PXPeD_mom*fThm!`TX?pe!n+E4M0_ayY6=w0FNdv>m3G5 z))8R6UQ=rYUVD&Ivgrnpb7r&IkWzZdpznLU_m3VdQ}>PsB4WN-4yH8reGkk*S_Wtd zFiEy=ETzzO9Wh2!6%j#1jIQ_I0{07G+Ei6)t*llnN+|}`S~I}b8sj+5zi|D$G7Q5@ e-G9|Mj{E>fl*Q}t*|7xx0000+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000ZNp2fG5QRUIJ%C#aHXy(dfUn=b>Y6Pq zDJG0H0Q~s>hdFj;25^6WPg#~Y=k$vZ0!`BpLclqPa}Hw+F-AfN#2Bfnird>;x~{`o z3qZ2zu%}Z1%Ce*^OFaZ2#t1;uG&tuJV2qKJ5`EtTP!xrpBvGfBFwu}W55@vmYe^}o zQ(2S9C3<5Fd7hJH8OE5=zM&awG!s&WlNpe-{&^6fj=HWR#z>y$q?8CDjQV95_0MlV zPkS8#@ZOVB(g+0%KuWt5N_Mg=8y(R1{rm6j-=%yHfE<$NIo4W22zqFYQ5{Qv^nFi^ zQF}l>V}GYR9`SSvK-YC-Sw>1ppAZ6{{`*9Vi7y|&5JJ%PVH3(k0F$zi!F#IPwx#cT zEk#O6qjJs>LckcKB@m~>GNqWNWgyEk%>eAu{rSUZb?BVaeM6H8nrg}eMNw$|joC$Q ztyMtIxzYQ&uF3O!R08Y~PsacVy-Ipz>|`2b_J=l{6l?9S98*gmO(>H9(6;T~W?{h) z0$tZBaIq;(Xa#_d(;&j(E1=!qwygpfeLpn=F-DrE0npkvO)~=JoFk<~*LBK@L-12A z19*9P(S=jjG3;N-avj43Jn*N3b0CKH^z`)CynhtHDLwG|`pRrJJE{jRH4E=Nu-R-V zib5aJ2!QGV?>*jo-rnB+DNAPoSZi4>mk0GgUDtbh;Njr`W6V`RSlEr-DM}r7zi`1d z%pTGM;%o@0s;aXfCjkI-j^$$M`=0fBtz;8pWImrGd*$Z5h8@)dcXxN{WVKoW=Q(0B zfbDiWB9tN7ESF1FO0bh;GNM-jFq_RrdO+m&YPG^S$7Zu(KA#`d1DBfefcIX>sH!R@ zC2K8<#X{w{=mQziOHIQW>Vd^#u@f0*^uSdBT%rdqHCxv;UDvT*ulMwT_x_+Bcz%Aq z8UWP;v)N4l2g*eRjC6wNft#C~>+--*55Rcd4~^P2nosN(WhaH2E1Xw000000NkvXX Hu0mjfR5Fez diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_cover_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_cover_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a7b8fc502215eaf57653ce9bc723aae541d4da75 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfh#LuSu^MYi**Sy75=zUL2JH84{Dpu2j3-G>h!7%up}Upe=AWp-X_ za!v1_&qvFWBgKC0TYjx-X_@RyPnQL&W=O6zbzu=?JaAWYsRF~y&Q*(6U5P3zS9-MC z*Ck_Zp$xmAV_Mv=UF&8@rhPNMcvrHmv2tF%{tj#TKWstXhoj<(fKFoYboFyt=akR{ E0Ln>C-~a#s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_cover_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_cover_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6629480e9b9bd589ced740d3c22134168607725d GIT binary patch literal 452 zcmV;#0XzPQP)+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000K@aGrWg(`^<4@{8;}}(z(2G)9b&x?eE`mUhrmD+YXM3 zp4+QWKQf5=+PRRasCTXd_rm)dRGR`C9|}HE&Pl9b@tmXrMD~gIv_Ht1Ev*GQjlt8^ K&t;ucLK6TuIZz@1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_glass.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_glass.png deleted file mode 100644 index a89a900b55a6a63295e0b2567a91459788e70ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmV-h0i^zkP)ZrE6ht2jRJcL7PUi!pjv~23@{Lex%V*#smgvX{d;mJv zwvZyb0(MgnA}fiL>|eXvS0a68_U|wRb-gnPsj4kavnR`-EXzRhjtF46d=w2A#o8NGhoBva0H<5`}-J}J68H&HxLA(9=nYJSCr&CzHCe99ME8_qF002ovPDHLkV1m@ek{SR2 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_inner.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..6feee3f5105f2471e0399cc081971e78457103a9 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfGqR3yh|h_7$JL#%gY|L8EeGTD{Hr%QZXpyq|5U{=72kS!pc84lkkO zg$ci()-!~P-tEl}6RplyiF_8-z1RG1?#g%dZ0j^T->E6-sCITdXs&Ah(8IwH^L5>W mS;cZ&1&OF6otRKRhH3eAR+-nFwV;vl0|k+-l2P!MM7R+c6o|n z-XaU*fZbUnc+riJrK*~RsT(Q&o3?$xU?jQjxqnB;=I-t;(n6l+Y(rU=YuBEip8=Q^ zGrcC65JSX>0pQm^zs$BX9l+(~CH;OMYpve!-cwZ--g~UISZguH5JJFvPY8kee9rm# zIdxt0Q+@&vC2o$ii$K5Mr{C`*B6=f)06 zi~xuTF-8rVuBFUV_Qn``y&ldvj4_?(+Aw0Y5~&S4E0D_i^&mh4)pbn>fnKjij1ljB zXI|P_|Ni&)?x<}7d7cwv)C?0DfEYhZn5yHP>m1ND&Fc5^|4RN9k`95-Ry0k+{r$aW z{rLE(^U*X7%jHsk(=^TMyMS?KZ^_px0ITvk=ZG=tXFMMB?eA~I5cx6wf%jfZ-yXuW z5x_xJaIh+M$||)Y#<wxFLUka^GQ9U%g`1ljy!VI*x3{+dSZj3_thJP7iHLMsfNY7hjX;vu zRNl09X&ch+x6$5|Hi3g%kcP0=>uH9|<#O%eq=Mdi>bh3q35N`!Bmzy-XeMpFZ%=ue z{^fG11UmN*tw0EYs;U5V;;X9akh0biW2CNY)rU6uL*W44-rn@WuGcZFzmgY=#p=sn zN9e%U0Q*R^@$&Mr8iJQUirXcy%MZN2zf%;&RzGko1XemQo6X3wOh3sZ0O|+wJSWd{ zK0ZGFs7iYYhzO(6Xrmt}%W};RTwPsZj5!GjfzP$uC8_P{Pg-ya$Ro~3GNeC20(eVSxeorP7thLN$GX{gfMn7;YR0r}rS23E;=PF7f!f-fLJ1!!f6+IT3 zPTLO*hr>^kvBwXbgupR=;8;jmmeh64bUI!019_fr^aHQ2uO}m*exN7{{U4ZKL_o(U tBtLL=c6M4FX!`-^?)#=yJH_xN{0DI$jQdP(Dr^7%002ovPDHLkV1m0~w4VR~ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_fuel.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_fuel.png new file mode 100644 index 0000000000000000000000000000000000000000..404fd2f863e5987ce799481761c7a3e76bc180d0 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK^7}nq977^n z-%d8K@aGrWg(`^<4@{8;}}(z(2G)9b&x?eE`mUhrmD+YXM3 zp4+QWKQf5=+PRRasCTXd_rm)dRGR`C9|}HE&Pl9b@tmXrMD~gIv_Ht1Ev*GQjlt8^ K&t;ucLK6TuIZz@1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_inner.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..7f389b266a5e5a475702c31e5a8fad2d706bd253 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfGqR3yiWC>T}QOMvLFMaA47sqqF{gwDJG^@YBBhXLIH}&zyO^l<|R< zr_Axjx6}VKhJ==wuZs+Qvv*?3%xv9n_e!=e-SuB`$1;^&vpY6SQBi8*f5m&qSc#$F o>h7lObCz#AR&~iF|Bz+2U%yp7{D?wM0?-Kzp00i_>zopr07XGen*aa+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_side.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6629480e9b9bd589ced740d3c22134168607725d GIT binary patch literal 452 zcmV;#0XzPQP)+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000IP)Z%W4}*6o$X5>I=1XV}rm5c`>WJQz8?ad`yhYd(RZSnPvdC>Hh2ECw1tY(|u!;2|Cx52a2N5 z`Ws_3YHO_ma?VZOH%&vH=aUj(4|qBRK@N! z?Q9kn3?b0>y#g0IrwOe9&~X|?IDQ4R`@61F0F&>}%|MKiwrzoJ$G2@e0p*+{r9|KN z%8Fy~=UN8v^75h!$F5`8y^`fRh6{M$cL%3HjP2>^>5qB;Ab?|f;Pv&Ds;Um^flJN8 zI}fbaYl@=KM>GPUdcb>+_nx=6xBr!;lK`x>EEbEsdZ1~V9X;^y@PIMqDj+Ou$L<)V zj=NvD;2LK4=>c&z22|JeNswm&0CbM!Vi|^k)oP_=6JumHn<0DU=Dda-)B|^Scj{!h zTmq*#;%oq$&1OOb3H zs|TK+pRWc$^*~is`ae)EB4DBuL=W8D++3Fj#(Dsz^S*D?uF-sA{{nmtgdk4~$1(r_ N002ovPDHLkV1nY|o3;P| diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_fuel.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_fuel.png new file mode 100644 index 0000000000000000000000000000000000000000..404fd2f863e5987ce799481761c7a3e76bc180d0 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK^7}nq977^n z-%d8K@aGrWg(`^<4@{8;}}(z(2G)9b&x?eE`mUhrmD+YXM3 zp4+QWKQf5=+PRRasCTXd_rm)dRGR`C9|}HE&Pl9b@tmXrMD~gIv_Ht1Ev*GQjlt8^ K&t;ucLK6TuIZz@1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_inner.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..6feee3f5105f2471e0399cc081971e78457103a9 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfGqR3yh|h_7$JL#%gY|L8EeGTD{Hr%QZXpyq|5U{=72kS!pc84lkkO zg$ci()-!~P-tEl}6RplyiF_8-z1RG1?#g%dZ0j^T->E6-sCITdXs&Ah(8IwH^L5>W mS;cZziQ)36vlruBg?3|5Rrf(7^m3czSI_5xJZ#U?-5vBq`5DU zr?}jA*dm2-z}^%IE_M;J=Fb*ljz_j*-`GANFe7QscfL92(`R*me;-JqC<;D`s;aiu zo}Qinn3r=|)43-2fYJ(pU;qA6AMKd|Twh<)@Aomr$PMQlbzS3}!x)1x2Bj3LBG?3_we7mSuzx zPn$4K1aK4!8MIW#s^U?E5YP&81;!Yhb10?c2x8Lon1T=BcVyWU8rpN+?Ci(KN4|W$ z^fKaF%!QUJ#sL8l3Oy`EIKTCKJojw|ixQG|-3pePF7 z-`_vQ(m?=PYeu8dPCrmp)s`Q)xw%0pbrujB)?=6I`evlvAGP2dp?CR#m@EafSS${L zJPH8p_5-uoOvJ`}&tNbhKAZZ1Q{zKFaCLPhNv6{&a9AUb2C!T%*MdSC1RaG=i!)!L&@&iRt?DPXKFE3{UAby}MOZgudKSV&s uCqzGRadB~89Z3BEbmx87sGXzvV*CMvM}@UgRl?c;0000K@aGrWg(`^<4@{8;}}(z(2G)9b&x?eE`mUhrmD+YXM3 zp4+QWKQf5=+PRRasCTXd_rm)dRGR`C9|}HE&Pl9b@tmXrMD~gIv_Ht1Ev*GQjlt8^ K&t;ucLK6TuIZz@1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_inner.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..7f389b266a5e5a475702c31e5a8fad2d706bd253 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfGqR3yiWC>T}QOMvLFMaA47sqqF{gwDJG^@YBBhXLIH}&zyO^l<|R< zr_Axjx6}VKhJ==wuZs+Qvv*?3%xv9n_e!=e-SuB`$1;^&vpY6SQBi8*f5m&qSc#$F o>h7lObCz#AR&~iF|Bz+2U%yp7{D?wM0?-Kzp00i_>zopr07XGen*aa+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_side.png new file mode 100644 index 0000000000000000000000000000000000000000..498a1c7135393b3041b8639b42ba1384d73b9b4d GIT binary patch literal 417 zcmV;S0bc%zP)+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6629480e9b9bd589ced740d3c22134168607725d GIT binary patch literal 452 zcmV;#0XzPQP)+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6629480e9b9bd589ced740d3c22134168607725d GIT binary patch literal 452 zcmV;#0XzPQP)+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000+slOCL*yYD@?DgaT0IfC53^PMSc637sOw)vjU}oR>pG_h{ zjImSp7={56q1M`aI)KyLf^2iO*3JxIUDy7d093Uj`hcqb`gh=3>-SBr*DL4q`Ke5* z%HePz=ltJ#djI>*+wtvbgZtoBJ>`$wb*{AnAR?^mN-2eDn#eh0W~7w5e5%Urc6;2w z_m44>QX>?BNW2y$-OI zrM0$e@Em}dp{o1!{2=~rN00000 LNkvXXu0mjfJUPOQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6629480e9b9bd589ced740d3c22134168607725d GIT binary patch literal 452 zcmV;#0XzPQP)+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000F`$`rXEEf!MtOlbjSvoZk4h}k%F4^veE}aTp zJA1o5W5@mlfo_F^E`?_3c0&i#a)B0n3HPd@b+F~*j4kO^2SxAMPI8GG-2*Q|uk=38 z_kDhTMZe!KSQ6j&xlLxX*|oi+qa$(afqRGpu(Pv+=Xofl?1wzhna}6sd5%&Fr4&L4 zj4|YSjxmNfjvr$C9RSbs@H~%4fBgtR&pWgy|&V_2=K(kBh~E#bSY!5&)$X zhm&8?lp%UwzT8)&@B0)*L2z|zV+_Z~$DEv;FdPm6*xue|e}A7m&q*eU^+X-w0AyKa z6&FQ8x7+2bd_XgKMNZv$TN1i%8VH3!l(1+a?4Fr=Bh;^4cV0eJcBDO&55P}K!M z0yYFt#yt$f6*o^O30iA}5CpA&W-GvPoLT@lK&fo;F3ZC(BzPO}^4Zg}8YT()jV6jB zlE2G$&-3a7;CUX&Kc!-&6k!4nrl9!DD00<#)90wr;yVE`-+4z3G+NhN{Q>bxUP#3 z*ORz1oMoBi1E;5_Wf+=G0H)LFMmZp7vl(fca&~rRZ(SMkec$$dD9LMtg@_ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater_pipe_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_heater_pipe_side.png new file mode 100644 index 0000000000000000000000000000000000000000..439f5fc38c349a2e664978b821ac646ed73a0579 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfb~>3FS$-g^eA z0P?WAXC%!v?(;DQNd5!>fQUF2BO;xcSvnwzQp%yQ0>E`$Ac?hB<|+B56wEo(ffP$k zy05k7f$O@k*2?*QIU-Pv>L?0H4n%B?^)v%1FY@jxQaMOfZ6XzjSYJ{o4+xwRW^KfGno~ z?>vCtMpCpfM#8(7^FKbRK#xR`6hW8NSbLgB8RwkYwtBwGQyk=c&Uq;L2Fw8X;dK~4fO6o$WPab^;Y3ldVo%DCemUch(=mn^-8*I;Y71$*|a zFak|zV1Pnf7dXWr#e}XV{ic83d*90jAA?}6<(gxbhK9A4JkL1|F-wDU4gl3sXSvpz z27tAe=Z71r@rY_R!RR^t&_yYQ_ddzXvOEL;RO1o1FK+-0drzRcc<&KHBsqYH0kcUg zuUf4D*zfm9DU%#HR$%m;Veg4*wL;G|JVKu5tk-Mq@9xj?7+{u$e(1)sc!ceCO9%le zWs=7kSZh&AA*IAQhY$kqeYCLK?P#~#c<%`zAcP=Kn4=du2g|HTO!CqJZRY8pqq6$JN zP5hYqaW#WW%k70^q^Ona*k{IPj!)Ii%?%+7=N!I^uIu*3+P1~h(-XY+2qA!o(Dyxt zVL%80F-90;5M#vs{k{77egOdI=jW)Z3dR`uA;yTl?_~jF43ttxDIvy)loFbz!RhHK z9v&X>@$rGK>yT2CXBY-}?@<)R&f0qbs;WX&RnS_?4=E)8K;QQ;#t6Wa5{L*P1OPx; zmUw%6!~6R?w%e_|2S6&Il-gN)4}jJhM1+)*Ow?LS=A6A!3f5Yw0?*rQHrQ^rvW8L$ zM4u-cV}$qqdjP!Pp)x7;_t?DmNGZWu3nD^{QTTFsdHG))czJo*2jH9o5lM!5c6k80dq0i?Ap}@!p|wVgQ8M9$xYRs1r6e2(A&ln$qa-4EVvM-EyF&;8S65ev zG0J#O!WiRt4iJ%?86O1^Nm=;}l~Qs9oGB5F;{cy4S0FF<_4T!EXpE70d1$T2bD*j! zlw~RBuapwhT5ADhjM@3#bsem=<2b3JR}BH5hBz4zmF;Q9Gk2L5#& z1N&EU+qUC5@O6V@Ao94qz1_Rxe-cOi!0YQP>bm~c4~z{B{MCW=dX2IyUDn z4$e7jHk%(+=_mlLH5QA-4uRMYuoUNh;Ns!}N~uXeXy8*=a^ifAoc*i?Q-nU`2Y9m_ zP}4L=LH-H=0J&Oov01HF(mE+6%w{w2TvoX$;#)s(c6KJ4ESF0F$2H>D0NS=i+qN>8 zi_K!O5T^uuS~70YNdVM!z2gVielM3x7-O(ruQ8j=4*G$yAv)lk6ESLbJ2ujeqa&+WBkC_&|TNTdymy>C0TQZ&NUtP)qw@jv)yTyCoAb7CAZ)7@$Jdq9Bym$HcA8# zo&gw!!TkUm&gV~HK?mj}NixQ9{G*iD1Qv1NJG9nxU3d2ZAyOv?f_p!!s`}LnDU1Je z0Hy@~%z;O7azM($c<8n*oqIrt)Oh*4u$&w)P2hHU7_I@g9tdEn;kMO;;hMJ94-HOK!q25QaZL!U-xC73+vwRvZNN4i(2j5s4EKzs6l42T(Uj zN1DaV$p6@%e|7n}ln?>{=kGHyMp884;mIy@65+tu?#dj-2yf zfv)SA=b2IpB7#ziQpzG!550zcE!wtS#Xu>AG3F^CB518wGpGv|0q;G=nAHrXX)3gxZQ4>7`Vydy=NT92ZKsx)eKTfi=k{)7LnBqYW?PeEez^279Tk0aL)b92fs(J)#*p8h>rjO002ov JPDHLkV1nPImGA%n literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_moderator_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6629480e9b9bd589ced740d3c22134168607725d GIT binary patch literal 452 zcmV;#0XzPQP)+^lcCyy4&fB)FdM(g24cqOO-EK$D8Dq@qyVhE! zX=1)`>HD6(?-3Dl&Z~<}(^TCUgNXbTNGV~hWgJIJUcL+vV?LinEZ{zybtK*5~@Yb~nE zG)){1hhGdlaxzU*U1Tj_j9K{{W31gDqv&NkxZ7B48OL$Od5OZwFbpiqvL3H2q|8-3 ue*~#;l5-}6KnP*YfphMu*M);uocsgVk_RhiaxYl`0000ZO>P=N5QV?~nL)j?jBJU-Lih$gim%}la0X5gd6`?}2-)Qd z2umO@Y|SDH8u~8_tBV1Hkv)`zKur(*s_ND2hnh~OnNB$8I2P;m`rTU7G+bOfx4A5H37bztG+P1|QBLGuM`iF?mh%?tg;qBYfa9X zl#+nZT1)07d!-arRY?`fzLXO8_xB$HI2N{KTS~njO1-tsdrwM?aUkc+X0suLAg#zb!@u9~_ZP-| zBgTkQN?K4VlXLFJ0eI_csQ_%t{p05!to@EsV2qJ{-6(DAtpjykOaGNp7-NVrqO}%4 z#+aSY>-Czds;KMw>l`R0D&;L>SEixNemC}Y0O-eoLc%f$0GrL`-R7c#F-E-i0=zc| zy!TX9B_;0aeR(fx8A8B&F91p)!kRI`I7bd~#!n z{gO6KgLAGQ2lfv*1)>{|kB{%}_)i1)$Pc`{yf7RNkNSbWq2Wyjmdhn|UCXO@1VH?N za}MVmudlD4s?tdST5Begi4d!-6|vd(1Gl%gD5cH;Ay4UZ1blG3D;2fb3`GIm+ z7tm_8ItlVi0AOn>x?;0fEJSQlN{mJ$%HDEwo+FO>f$QsQIb=Sc1E)3O%K)0Dp=laf z?264~GLb76wwA1n=ve>^hr=B|Q0(`7KF1ita=BzQ8XfcleM5A>IVWPYTCGHswAPHr zW2&mcS}XpbjA-AGbh>_EJRXZCobm%_0no<}^bNgUukqfqSS%##lA&`>bRUoreR_I2 z8vyYG!{Jc=2bPNn*zpO)4_sbeo>vFDegJmo{m`hLgM20a16C4k=Td8b_5c6?07*qo IM6N<$f-!5BXaE2J diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_glass.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_glass.png deleted file mode 100644 index ee5ad4d26bf7ad4c8b41fdf567088bb4a06bc1d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmV-Z0j&OsP)EK!z5W$D6#*jPGtV~fNeA?6C@ha$XXqZ=RK zEi)(*YML$X5LzJ+0lxr~&luaV!Z5s#fjr+B+cc77CKiXo6F?iMPJ8+6I#+Yh-v6PQb;O7gzSDn8k$&9*|cOd9G^rDZey-+F>i$l*2 zK%2nBI`9m9NrcDSQmL$02YlO2CfSyq25b{J7LVfy=(h&~XxDIAR>W~cSynd<{)uZ{ lFqyoG4LBSQhr{7;`~rz@SlsY~B(VSh002ovPDHLkV1gspha><1 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b41a818797d69d650353f762c4845ba59191f8fa GIT binary patch literal 318 zcmV-E0m1%>P)NklbhoG7DVI(m>KK30?>8cBLKiThjZ=(#268g+nlLditC;C9#uU707dah za~wG5*tYEiBwDV67~_3}WEAoo0C$NgavfZ|E&xIZ?E4PnIY`wHz`CwfRh8}FYmFj8 zj1kClpsM$mSe7NKn(aVUza^%F90$O?12bda_kTIKZDHHC<3r^*FtY>j2hxFoVuUd9 QWdHyG07*qoM6N<$g6`mfk^lez literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_outgasser_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2fa483d8f0cf95963615e46048cb7dd86f67925b GIT binary patch literal 428 zcmV;d0aN~oP)OKu`T5JX>nnm!2}f+KMWnDtzQB^r5Q-@r@G(X!NTuq^7E zUZ5=89z2#NH&x0iMMgx1dHC}nF-HEUPH!iCjFH#VE6zELF#wcOFvd_y0l+y&DFtgS zwN{*ShzR32;`IYStrY-cOuOr;_nb31=Qhj&hzKEs))bKjVy$fe#u)m($6DKl`p=XV zeH_QTnx|=Exm@C$Ys|bpdheUA{eFKJV7*==A~@$rDct}*>jXF+kKY0)W0mGrGu+JF z?REfcw_A9B=GX5h0ES^`zRXP2Qd+IvpW*Fs*7E+Udgj4mv6!vqa5&7)uO8^X1`uPU z@B7B!UmmFTnFpFWYc10>vDs|y0-Vq1MqhnvIdIO=bsekKYNoN)iueAnbmp9|Otg_w z;&QnF*R6<13z$w5kp`jwO@h+OIn#9=DWw*!QVO+JYORz~2qE0IFuV-kM)#)*A@Bh? Wx&7lV3$#Z70000fzD!eUGl|;AJocp8Gxf&o&b=P(H{{BYSb@1LJgdm%6Z78J> zMG@jSmZJzE%tp@RDU0}AqbQOy=X4iEf!EhpD5apamUW{Dh_1r}#u({)cBqsB5sjiI zB5Bd4X+T8Fc!24Z)5~qg-N3y+w5#)gwN|3!^mko%wwP6dGzstm*u4CZ*O0MgAQ4Oe5 zJunC26u`^N%h?_OFE*qGq9sqEr2fn_(W{>Kh01y#2n~f9} z&oSAY>Vb!c2Pmbk0z$gLIXAj~Pial<_L{3!utTEMc>}ut_DE<8Kr58wr!!cmWv30d}^%`LV&dvx3{;~ m<$<9d0LJ}3)oRx$KDJ*v5;dSO{0*7_00001pw7=@opwoIl$&^u)54YCP*03E_N5M8vG+`xy>0Swyy z8{`1mJc<-gnL4P0aYzbHqhAdjs&CSw|2-a$R}mc|m^e4U`w`pi3yd)p>qw3Pt-Gjo z7eff_8&5fgydMDoN-3`XwE?0--0fbIqLi|MwU%vQwLG-$lEs0!2Sgui1Lp+x`?qBA z&E^>Z(6(*90S?FGJAhy8z*j;D(HQe>DVGFtI&jl~QtHQerEJjm{bLLeQ6+@9*$wB0 zzv}=nC-ATi+)LIDI5#AJx*V+R9gwnNi!Wq#AT@zY@w#3E$lHMxFwgKbolw_nOw;ME skBhkXBdoO$La)Wux2lkJoB#j-07*qoM6N<$f>peavH$=8 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_side.png new file mode 100644 index 0000000000000000000000000000000000000000..7a63bfb1543f15aaa877e8f182f2444fc9929f88 GIT binary patch literal 334 zcmV-U0kQsxP)GDBc(ujL$= z&1Nse=%VX4PjaWvQ@MU!F*ArfFX8?RLv_I^}Y?pojh8BgBCB9uZ-)*|1uz zUhegJO(})8Z4m%f1)ymf&gb*LJA^<=31AS!81dd$3Fh-Ts!9mqDabkFoU0b7Dy5V` z(1sROMOCW=%jJ@k5-Fvpz|1hSYC+B!5g7#c#~l%2GMQ920EPzr)Czj_ub|5vW>zg& zEEbp{Y%K8JztzCZaL$cC@m)bFWe}87=(_H$1|z}k g`-ZAkU*T_qA1|j>E%5XgO#lD@07*qoM6N<$f>(ZxbN~PV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_top.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_reflector_top.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec88285d5050e34ec2243c16629857ad0a2bd82 GIT binary patch literal 416 zcmV;R0bl-!P)+lt&U42D0;PIkzP&GSy#+j*g-kYy-LV#`)9inQbHO{u`d z@!>zo>HWvM)mr(Vdi;7&YOQ=eKFK+gQUaj&PD+X1I{-Ondhdt`V+?Z6m>K)NQ~UtH z7z2QmQq2A9b5%uEgG>O-jPpEW(aZuwL;@hC#M|2&A`+zXDp^%0MpY%}%ot-DZXo~w zN-0wYs>-^qJfBZmYm+(=iG0d;pZ@PG9&YbFWP6}f2Crc*%L2gdcH@4(PiwD1PZj`L zYrz1pZ5!LR{W&N?N{Ld+1XKXlb&b}TS!`afS6XW!-^`*zUII{S4T&Do7=v0X>$=9C zh)g2@JS5-n@Gh4N$8k&-T>jKX_q;3%B0?!8TIHU1A!8fZ7$Ly^$a~ikJ5W|TL>xGw9w+6 zYwKseMbSh~?EHMq+gZ|BZ$>k3Mm#<~5)v3=Fom{l57wHd!OhLhS$0oPPhx*B1AzPc zdlW?hr4(;?@6mM~y!TK_K`8|x1VRY#-Xny7x~_3|cZbz#b(Y;2G5{!w0!2|kO3541 zpzAs)rI=s{0Yn7n8~`BCbL4q`mfa))DJ6&qudlDXu^-Yj{Ok1^-g`vb5CW5zQnKgK zdm#k0*3$%HSOMVW#KXe_hzQ<$CP_pG=Y;ruZfh+<2-5_NF(4u~0D!8hj*>{> zoEzlEKA{-;EX&3T#GmXl{QUepI6RxpV2nZE_nZUHIY=qty@zuSM1&9mUmTw%o*yM( ztwok)M@uP%wU&SAy+_~oAR>O67zrT+y!X65Nq~sZ_x)Ly1Ax|=JtQLh{QPjT#qeiY z#*q<19Djl=%O(%(qitIhMZw=vO3t4cZXpC~ic;$6|5*p}JReoMF~m}9+ZI}D6h*!?mqIw=BptZ(&y=Gqwb%wnkc!QI zUtg_O5JFsqgamftF;%Mo2HAhCxm-*jod@C@$IDVebzPq%`CkNpU9V0>W4qmQ?S>FA zpU)A`rt`pGF_7Ze(}@VP*^DpQY&HN+Ys7yOXqpC1)9_*{8q4L9Wf<6vR5 zjsO52qc@uklv1dw3iJ8=qPgK*unrhwSd8krW>Jz-VzF32Yt2(mTB3giyA#JIAp{nS z1#7}sUr**i1=Yg^; z5BfTQ!JH8L`t9xQb#)+}2Y_L{kCoark}u*P+fa?KDxi9X00000NkvXXu0mjfqmQY` diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_storage_side.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0dc2f302877434e10d3b563d86ae689077ed65 GIT binary patch literal 370 zcmV-&0ge8NP)b~>3FS$-g^eA z0P?WAXC%!v?(;DQNd5!>fQUF2BO;xcSvnwzQp%yQ0>E`$Ac?hB<|+B56wEo(ffP$k zy05k7f$O@k*2?*QIU-Pv>L?0H4n%B?^)v%1FY@jxQaMOfZ6XzjSYJ{o4+xwRW^KfGno~ z?>vCtMpCpfM#8(7^FKbRK#xR`6hW8NSbLgB8RwkYwtBwGQyk=c&Uq;L2Fw8X;d-HF365QIOim(PF zaPy)?KeMx=amTM?jWO~cT)(e`7$cYK1@Ar1IRI1@=NzgEfcG9%MMNm2;Jv5T$~@16 zb^)N20)TVQ>bABz=SOV literal 0 HcmV?d00001