From 56c75b56dd37f2d389b8ccd0bc36172c6fb6d44b Mon Sep 17 00:00:00 2001 From: Calclavia Date: Mon, 3 Mar 2014 20:52:34 +0800 Subject: [PATCH] Added sorter, not working yet --- .../electrical/armbot/RenderArmbot.java | 21 ++------ .../electrical/generator/RenderGenerator.java | 24 +++------ .../mechanical/Mechanical.java | 5 +- .../mechanical/belt/RenderConveyorBelt.java | 22 ++------ .../mechanical/logistic/belt/TileSorter.java | 50 ++++++++++++++++++ .../process/purifier/RenderMixer.java | 2 +- .../languages/en_US.properties | 1 + .../resonantinduction/models/sorter.png | Bin 0 -> 3582 bytes .../resonantinduction/models/sorter.tcn | Bin 0 -> 4369 bytes 9 files changed, 70 insertions(+), 55 deletions(-) create mode 100644 mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java create mode 100644 src/main/resources/assets/resonantinduction/models/sorter.png create mode 100644 src/main/resources/assets/resonantinduction/models/sorter.tcn diff --git a/electrical/src/main/java/resonantinduction/electrical/armbot/RenderArmbot.java b/electrical/src/main/java/resonantinduction/electrical/armbot/RenderArmbot.java index e94253181..6f1695ef1 100644 --- a/electrical/src/main/java/resonantinduction/electrical/armbot/RenderArmbot.java +++ b/electrical/src/main/java/resonantinduction/electrical/armbot/RenderArmbot.java @@ -1,8 +1,6 @@ package resonantinduction.electrical.armbot; -import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.texture.TextureManager; @@ -13,20 +11,19 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.IBlockAccess; import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; import universalelectricity.api.vector.Vector3; import calclavia.lib.render.RenderUtility; -import calclavia.lib.render.block.ICustomBlockRenderer; +import calclavia.lib.render.item.ISimpleItemRenderer; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class RenderArmbot extends TileEntitySpecialRenderer implements ICustomBlockRenderer +public class RenderArmbot extends TileEntitySpecialRenderer implements ISimpleItemRenderer { public static final ModelArmbot MODEL = new ModelArmbot(); public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "armbot.png"); @@ -86,19 +83,7 @@ public class RenderArmbot extends TileEntitySpecialRenderer implements ICustomBl } @Override - public void renderInventory(Block block, int metadata, int modelID, RenderBlocks renderer) - { - - } - - @Override - public boolean renderStatic(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) - { - return false; - } - - @Override - public void renderDynamic(TileEntity tile, Block block, int metadata, int modelID, RenderBlocks renderer) + public void renderInventoryItem(ItemStack itemStack) { GL11.glPushMatrix(); FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderArmbot.TEXTURE); diff --git a/electrical/src/main/java/resonantinduction/electrical/generator/RenderGenerator.java b/electrical/src/main/java/resonantinduction/electrical/generator/RenderGenerator.java index d97376269..1d1a52b46 100644 --- a/electrical/src/main/java/resonantinduction/electrical/generator/RenderGenerator.java +++ b/electrical/src/main/java/resonantinduction/electrical/generator/RenderGenerator.java @@ -3,6 +3,7 @@ package resonantinduction.electrical.generator; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; @@ -14,13 +15,13 @@ import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; import calclavia.lib.render.RenderUtility; -import calclavia.lib.render.block.ICustomBlockRenderer; +import calclavia.lib.render.item.ISimpleItemRenderer; /** * @author Calclavia * */ -public class RenderGenerator extends TileEntitySpecialRenderer implements ICustomBlockRenderer +public class RenderGenerator extends TileEntitySpecialRenderer implements ISimpleItemRenderer { public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "generator.tcn"); public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "generator.png"); @@ -28,10 +29,10 @@ public class RenderGenerator extends TileEntitySpecialRenderer implements ICusto @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) { - doRender(t, t.getBlockMetadata(), x, y, z, f); + doRender(t.getBlockMetadata(), x, y, z, f); } - private void doRender(TileEntity t, int facingDirection, double x, double y, double z, float f) + private void doRender(int facingDirection, double x, double y, double z, float f) { GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5f, (float) y + 0.5f, (float) z + 0.5f); @@ -43,19 +44,8 @@ public class RenderGenerator extends TileEntitySpecialRenderer implements ICusto } @Override - public void renderInventory(Block block, int metadata, int modelID, RenderBlocks renderer) + public void renderInventoryItem(ItemStack itemStack) { - } - - @Override - public boolean renderStatic(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) - { - return false; - } - - @Override - public void renderDynamic(TileEntity tile, Block block, int metadata, int modelID, RenderBlocks renderer) - { - doRender(tile, 2, 0, 0, 0, 0); + doRender(2, 0, 0, 0, 0); } } diff --git a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java index b5f304940..0a7acf69d 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java @@ -31,6 +31,7 @@ import resonantinduction.mechanical.logistic.belt.BlockRejector; import resonantinduction.mechanical.logistic.belt.TileDetector; import resonantinduction.mechanical.logistic.belt.TileManipulator; import resonantinduction.mechanical.logistic.belt.TileRejector; +import resonantinduction.mechanical.logistic.belt.TileSorter; import resonantinduction.mechanical.process.crusher.BlockMechanicalPiston; import resonantinduction.mechanical.process.crusher.TileMechanicalPiston; import resonantinduction.mechanical.process.grinder.BlockGrindingWheel; @@ -90,6 +91,7 @@ public class Mechanical public static Block blockManipulator; public static Block blockDetector; public static Block blockRejector; + public static Block blockSorter; // Fluids public static Block blockReleaseValve; @@ -120,7 +122,8 @@ public class Mechanical blockConveyorBelt = contentRegistry.createTile(BlockConveyorBelt.class, TileConveyorBelt.class); blockManipulator = contentRegistry.createTile(BlockManipulator.class, TileManipulator.class); blockDetector = contentRegistry.createTile(BlockDetector.class, TileDetector.class); - blockRejector = contentRegistry.createTile(BlockRejector.class, TileRejector.class); + //blockRejector = contentRegistry.createTile(BlockRejector.class, TileRejector.class); + blockRejector = contentRegistry.newBlock(TileSorter.class); blockPump = contentRegistry.createTile(BlockPump.class, TilePump.class); diff --git a/mechanical/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java b/mechanical/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java index dd40b9e22..585ce39bf 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java @@ -1,23 +1,21 @@ package resonantinduction.mechanical.belt; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.IBlockAccess; import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; import resonantinduction.mechanical.belt.TileConveyorBelt.SlantType; -import calclavia.lib.render.block.ICustomBlockRenderer; +import calclavia.lib.render.item.ISimpleItemRenderer; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ICustomBlockRenderer +public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ISimpleItemRenderer { public static final ModelConveyorBelt MODEL = new ModelConveyorBelt(); public static final ModelAngledBelt MODEL2 = new ModelAngledBelt(); @@ -134,19 +132,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ICu } @Override - public void renderInventory(Block block, int metadata, int modelID, RenderBlocks renderer) - { - - } - - @Override - public boolean renderStatic(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) - { - return false; - } - - @Override - public void renderDynamic(TileEntity tile, Block block, int metadata, int modelID, RenderBlocks renderer) + public void renderInventoryItem(ItemStack itemStack) { GL11.glPushMatrix(); GL11.glTranslatef(0.5f, 1.7F, 0.5f); diff --git a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java new file mode 100644 index 000000000..de0e115fa --- /dev/null +++ b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java @@ -0,0 +1,50 @@ +package resonantinduction.mechanical.logistic.belt; + +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +import org.lwjgl.opengl.GL11; + +import resonantinduction.core.Reference; +import universalelectricity.api.UniversalElectricity; +import universalelectricity.api.vector.Vector3; +import calclavia.lib.content.module.TileBase; +import calclavia.lib.content.module.TileRender; +import calclavia.lib.render.RenderUtility; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TileSorter extends TileBase +{ + public TileSorter() + { + super(UniversalElectricity.machine); + textureName = "material_metal_side"; + normalRender = false; + isOpaqueCube = false; + } + + @SideOnly(Side.CLIENT) + protected TileRender renderer() + {System.out.println("TEST"); + return new TileRender() + { + final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "sorter.tcn"); + final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "sorter.png"); + + @Override + public void renderDynamic(Vector3 position, float frame) + { + GL11.glPushMatrix(); + RenderUtility.enableBlending(); + GL11.glTranslated(position.x + 0.5, position.y + 0.5, position.z + 0.5); + RenderUtility.bind(TEXTURE); + MODEL.renderAll(); + RenderUtility.disableBlending(); + GL11.glPopMatrix(); + } + + }; + } +} diff --git a/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/RenderMixer.java b/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/RenderMixer.java index e9515118a..bee507737 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/RenderMixer.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/RenderMixer.java @@ -52,7 +52,7 @@ public class RenderMixer extends TileEntitySpecialRenderer implements ISimpleIte { glPushMatrix(); GL11.glScalef(0.5f, 0.5f, 0.5f); - glTranslatef(0.5F, 0.5f, 1.5F); + glTranslatef(0.5F, 0.5f, 0.5f); RenderUtility.bind(TEXTURE); MODEL.renderAll(); glPopMatrix(); diff --git a/src/main/resources/assets/resonantinduction/languages/en_US.properties b/src/main/resources/assets/resonantinduction/languages/en_US.properties index 3b72d9cb8..b7ab4a75f 100644 --- a/src/main/resources/assets/resonantinduction/languages/en_US.properties +++ b/src/main/resources/assets/resonantinduction/languages/en_US.properties @@ -98,6 +98,7 @@ tile.resonantinduction\:detector.name=Detector tile.resonantinduction\:detector.tooltip=Outputs a Redstone signal upon item detection. Configure to invert imprint filter. tile.resonantinduction\:manipulator.name=Manipulator tile.resonantinduction\:rejector.name=Rejector +tile.resonantinduction\:sorter.name=Sorter # Fluid pipes item.resonantinduction\:pipeGauge.name=Pipe Gauge diff --git a/src/main/resources/assets/resonantinduction/models/sorter.png b/src/main/resources/assets/resonantinduction/models/sorter.png new file mode 100644 index 0000000000000000000000000000000000000000..64aaa58e7f83f78fac6b6084edc193c5acb4ab18 GIT binary patch literal 3582 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/sorter.tcn b/src/main/resources/assets/resonantinduction/models/sorter.tcn new file mode 100644 index 0000000000000000000000000000000000000000..aeb2904897d754dbd1010471607db6199c2f2718 GIT binary patch literal 4369 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 Ksyz9>uYUmyX+4Sn literal 0 HcmV?d00001