From 7b8edd397e601ce0636dc20a7129f4d6169e5558 Mon Sep 17 00:00:00 2001 From: Techokami Date: Thu, 19 Jun 2014 17:48:44 -0400 Subject: [PATCH 1/7] Making things less "half-baked" -Diagnostic Tool has an icon. Doesn't seem to work but at least it's better than a missing texture. -Fleshed out some missing localization stuff (en_US only!) -Added crafting recipes for the new tube types. --- src/main/java/schmoller/tubes/CommonProxy.java | 4 +++- .../schmoller/tubes/items/ItemDiagnosticTool.java | 5 +++++ src/main/resources/assets/tubes/lang/en_US.lang | 12 ++++++++++++ .../tubes/textures/items/diagnosticTool.png | Bin 0 -> 616 bytes 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/tubes/textures/items/diagnosticTool.png diff --git a/src/main/java/schmoller/tubes/CommonProxy.java b/src/main/java/schmoller/tubes/CommonProxy.java index babfcdd..15a03b1 100644 --- a/src/main/java/schmoller/tubes/CommonProxy.java +++ b/src/main/java/schmoller/tubes/CommonProxy.java @@ -203,7 +203,9 @@ private void registerRecipes() TubesAPI.instance.registerShapedRecipe(TubesAPI.instance.createTubeForType("tank", 1), " g ", "gtg", " g ", 'g', net.minecraft.init.Blocks.glass, 't', TubesAPI.instance.createTubeForType("basic")); TubesAPI.instance.registerShapedRecipe(TubesAPI.instance.createTubeForType("buffer", 1), "t", "c", "t", 't', TubesAPI.instance.createTubeForType("basic"), 'c', net.minecraft.init.Blocks.chest); - TubesAPI.instance.registerShapedRecipe(TubesAPI.instance.createTubeForType("roundrobin",1), "iti", "ttt", "iti", 'i', net.minecraft.init.Items.iron_ingot, 't', TubesAPI.instance.createTubeForType("basic")); + TubesAPI.instance.registerShapedRecipe(TubesAPI.instance.createTubeForType("roundrobin", 1), "iti", "ttt", "iti", 'i', net.minecraft.init.Items.iron_ingot, 't', TubesAPI.instance.createTubeForType("basic")); + TubesAPI.instance.registerShapedRecipe(TubesAPI.instance.createTubeForType("advancedExtraction", 1), " c ", "cec", " c ", 'c', Items.RedstoneCircuit.getItem(), 'e', TubesAPI.instance.createTubeForType("extraction")); + TubesAPI.instance.registerShapedRecipe(TubesAPI.instance.createTubeForType("management", 1), "ici", "crc", "ici", 'i', net.minecraft.init.Items.iron_ingot, 'r', TubesAPI.instance.createTubeForType("requesting"), 'c', Items.RedstoneCircuit.getItem()); } public void registerOreRecipes() diff --git a/src/main/java/schmoller/tubes/items/ItemDiagnosticTool.java b/src/main/java/schmoller/tubes/items/ItemDiagnosticTool.java index 94e4cac..4fc8038 100644 --- a/src/main/java/schmoller/tubes/items/ItemDiagnosticTool.java +++ b/src/main/java/schmoller/tubes/items/ItemDiagnosticTool.java @@ -10,6 +10,11 @@ public class ItemDiagnosticTool extends Item { + public ItemDiagnosticTool() { + super(); + setTextureName("tubes:diagnosticTool"); + } + @Override public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) { diff --git a/src/main/resources/assets/tubes/lang/en_US.lang b/src/main/resources/assets/tubes/lang/en_US.lang index 0e3096b..7bb6055 100644 --- a/src/main/resources/assets/tubes/lang/en_US.lang +++ b/src/main/resources/assets/tubes/lang/en_US.lang @@ -16,6 +16,7 @@ tubes.tank.name=Tank Tube tubes.buffer.name=Buffer Tube tubes.roundrobin.name=Round Robin Tube tubes.management.name=Management Tube +tubes.advancedExtraction.name=Advanced Extraction Tube fluid.plastic=Plastic @@ -72,3 +73,14 @@ gui.managementtube.mode.PassiveFill=Passive Fill gui.managementtube.priority=Priority gui.overflow.name=Overflow Contents + +gui.redstonemode.High=High redstone signal +gui.redstonemode.Low=Low redstone signal +gui.redstonemode.Ignore=Ignore redstone signal +gui.redstonemode.Pulse=Pulse redstone signal + +gui.pullmode.NormalAllow=Pull any listed items +gui.pullmode.NormalDeny=Pull any unlisted items +gui.pullmode.Random=Pull a listed item at random +gui.pullmode.Sequence=Pull listed items in sequence +gui.pullmode.Overflow=Pull overflowing items \ No newline at end of file diff --git a/src/main/resources/assets/tubes/textures/items/diagnosticTool.png b/src/main/resources/assets/tubes/textures/items/diagnosticTool.png new file mode 100644 index 0000000000000000000000000000000000000000..5feb955395fdcd6996c28fddd7a4f1da9fd66334 GIT binary patch literal 616 zcmV-u0+;=XP)j7ejkA6=VxpP z0f6y%99pdw&N<53-(iely7(*0ARmO45=xP6Udgs4zzky!S^A_WM1{ z<&yp0bLd4_Tcgp4D{{#>89`MsCL+)GM3E&)8q{hr^?FRLW-83l2<4-+SFa}|iTh1D zq_uU7`7^?iKxs!r@ZNKN{sZSOu(po1HO|h?FeXAZ;JvSK{}d1rE-rrZ`ROqRLhz^_ z&gfjT!u)p!4-dbHqUhubW&dOcrCMokx7z{m{{GH%I;GWW(QdZ^Xfzsl?~fcrtJSI^ ziwMKv5D{TAnb7TanM@`}^>T#OYIP9EvW&%IK~WTh5a{)Ks4AUKhrwV#r_(`I>GgVq z5Gaa*#bQC0We0)HX2WPSLRFd1=K#cUOq!u#v8#A3wvDVUTHu(bSj(6_A^81AV0000 Date: Fri, 20 Jun 2014 19:32:24 -0400 Subject: [PATCH 2/7] Fixed Management Tubes! Wasn't always connecting to sides properly, like on the Advanced Crafting Table MKII from TubeStuff. --- src/main/java/schmoller/tubes/types/ManagementTube.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/schmoller/tubes/types/ManagementTube.java b/src/main/java/schmoller/tubes/types/ManagementTube.java index 202a6b7..9d5d989 100644 --- a/src/main/java/schmoller/tubes/types/ManagementTube.java +++ b/src/main/java/schmoller/tubes/types/ManagementTube.java @@ -495,7 +495,7 @@ protected boolean onItemJunction( TubeItem item ) Payload add = item.item.copy(); add.setSize(toAdd); - remaining = handler.insert(add, getFacing(), true); + remaining = handler.insert(add, getFacing() ^ 1, true); if(toAdd != item.item.size()) { From c5c55588445b9cb06ab7fc46aec13f2dbf9e501d Mon Sep 17 00:00:00 2001 From: Techokami Date: Tue, 1 Jul 2014 18:22:04 -0400 Subject: [PATCH 3/7] Manual Merge HE LIVES --- .gitignore | 3 +- .../java/schmoller/tubes/ClientProxy.java | 3 +- .../TypeAdvancedExtractionTube.java | 12 + .../render/AdvancedExtractionTubeRender.java | 233 ++++++++++++++++++ .../tubes/types/AdvancedExtractionTube.java | 105 +++++++- .../schmoller/tubes/types/ManagementTube.java | 2 +- .../resources/assets/tubes/lang/en_US.lang | 18 +- .../blocks/tube-advancedextraction-closed.png | Bin 0 -> 2869 bytes .../blocks/tube-advancedextraction-open.png | Bin 0 -> 2839 bytes .../blocks/tube-advancedextraction.png | Bin 0 -> 3097 bytes .../models/tube-advancedextraction-pump.png | Bin 0 -> 2994 bytes 11 files changed, 363 insertions(+), 13 deletions(-) create mode 100644 src/main/java/schmoller/tubes/render/AdvancedExtractionTubeRender.java create mode 100644 src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction-closed.png create mode 100644 src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction-open.png create mode 100644 src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction.png create mode 100644 src/main/resources/assets/tubes/textures/models/tube-advancedextraction-pump.png diff --git a/.gitignore b/.gitignore index 6cf9f7a..72e2e8f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ /.pydevproject /.gradle /eclipse -/build \ No newline at end of file +/build +/lib \ No newline at end of file diff --git a/src/main/java/schmoller/tubes/ClientProxy.java b/src/main/java/schmoller/tubes/ClientProxy.java index d73f202..aa746f3 100644 --- a/src/main/java/schmoller/tubes/ClientProxy.java +++ b/src/main/java/schmoller/tubes/ClientProxy.java @@ -18,6 +18,7 @@ import schmoller.tubes.gui.OverflowGui; import schmoller.tubes.gui.RequestingTubeGui; import schmoller.tubes.gui.RoutingTubeGui; +import schmoller.tubes.render.AdvancedExtractionTubeRender; import schmoller.tubes.render.BufferTubeRender; import schmoller.tubes.render.ColoringTubeRender; import schmoller.tubes.render.CompressorTubeRender; @@ -80,7 +81,7 @@ private void registerRenderers() TubeRegistry.registerRenderer("buffer", new BufferTubeRender()); TubeRegistry.registerRenderer("roundrobin", new RoundRobinTubeRender()); TubeRegistry.registerRenderer("management", new ManagementTubeRender()); - TubeRegistry.registerRenderer("advancedExtraction", new EjectionTubeRender()); + TubeRegistry.registerRenderer("advancedExtraction", new AdvancedExtractionTubeRender()); PayloadRegistry.registerPayloadRenderer("item", new ItemPayloadRender()); PayloadRegistry.registerPayloadRenderer("fluid", new FluidPayloadRender()); diff --git a/src/main/java/schmoller/tubes/definitions/TypeAdvancedExtractionTube.java b/src/main/java/schmoller/tubes/definitions/TypeAdvancedExtractionTube.java index 4a6289e..d2e8244 100644 --- a/src/main/java/schmoller/tubes/definitions/TypeAdvancedExtractionTube.java +++ b/src/main/java/schmoller/tubes/definitions/TypeAdvancedExtractionTube.java @@ -1,5 +1,6 @@ package schmoller.tubes.definitions; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; import codechicken.multipart.TMultiPart; @@ -9,6 +10,10 @@ public class TypeAdvancedExtractionTube extends TubeDefinition { public static ResourceLocation gui = new ResourceLocation("tubes", "textures/gui/advExtractionTube.png"); + public static ResourceLocation pump = new ResourceLocation("tubes", "textures/models/tube-advancedextraction-pump.png"); + public static IIcon main; + public static IIcon backOpen; + public static IIcon backClosed; @Override public IIcon getCenterIcon() @@ -28,4 +33,11 @@ public TMultiPart createTube() return new AdvancedExtractionTube(); } + @Override + public void registerIcons( IIconRegister register ) + { + main = register.registerIcon("tubes:tube-advancedextraction"); + backOpen = register.registerIcon("tubes:tube-advancedextraction-open"); + backClosed = register.registerIcon("tubes:tube-advancedextraction-closed"); + } } diff --git a/src/main/java/schmoller/tubes/render/AdvancedExtractionTubeRender.java b/src/main/java/schmoller/tubes/render/AdvancedExtractionTubeRender.java new file mode 100644 index 0000000..afc0e41 --- /dev/null +++ b/src/main/java/schmoller/tubes/render/AdvancedExtractionTubeRender.java @@ -0,0 +1,233 @@ +package schmoller.tubes.render; + +import cpw.mods.fml.client.FMLClientHandler; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import schmoller.tubes.AdvRender.FaceMode; +import schmoller.tubes.api.TubeDefinition; +import schmoller.tubes.api.helpers.TubeHelper; +import schmoller.tubes.api.interfaces.IDirectionalTube; +import schmoller.tubes.api.interfaces.ITube; +import schmoller.tubes.definitions.TypeAdvancedExtractionTube; +import schmoller.tubes.definitions.TypeEjectionTube; +import schmoller.tubes.types.AdvancedExtractionTube; + +import org.lwjgl.opengl.GL11; + +public class AdvancedExtractionTubeRender extends NormalTubeRender +{ + private int mDirection; + @Override + public void renderStatic( TubeDefinition type, ITube tube, World world, int x, int y, int z ) + { + int connections = tube.getConnections(); + mDirection = ((IDirectionalTube)tube).getFacing(); + + mRender.resetTransform(); + mRender.enableNormals = false; + mRender.setLightingFromBlock(world, x, y, z); + mRender.resetTextureFlip(); + mRender.resetTextureRotation(); + mRender.faceMode = FaceMode.Both; + + mRender.setLocalLights(0.5f, 1.0f, 0.8f, 0.8f, 0.6f, 0.6f); + + mRender.translate(x, y, z); + + int col = tube.getColor(); + + int invCons = 0; + + for(int i = 0; i < 6; ++i) + { + if((connections & (1 << i)) != 0) + { + if(TubeHelper.renderAsInventoryConnection(world, x, y, z, i)) + invCons |= (1 << i); + } + } + + int tubeCons = connections - invCons; + + renderCore(connections | (1 << mDirection), type, col); + renderConnections(tubeCons, type); + + renderInventoryConnections(invCons, type); + } + + private void renderBody(int direction) + { + mRender.setIcon(TypeAdvancedExtractionTube.main); + IIcon back = TypeAdvancedExtractionTube.backClosed; + // TODO: If open, render open icon + //back = TypeAdvancedExtractionTube.backOpen; + + switch(direction) + { + case 0: + mRender.setTextureRotation(0, 0, 2, 2, 2, 2); + mRender.drawBox(60, 0.25f, 0f, 0.25f, 0.75f, 0.3125f, 0.75f); + mRender.setIcon(TypeAdvancedExtractionTube.backOpen, back, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.25f, 0.1875f, 0.8125f, 0.8125f, 0.8125f); // Body + mRender.setIcon(TypeEjectionTube.endIcon, TypeEjectionTube.endIcon, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.0f, 0.1875f, 0.8125f, 0.0625f, 0.8125f); // Ring + break; + case 1: + mRender.setTextureRotation(0, 0, 0, 0, 0, 0); + mRender.drawBox(60, 0.25f, 0.6875f, 0.25f, 0.75f, 1.0f, 0.75f); + mRender.setIcon(back, TypeAdvancedExtractionTube.backOpen, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.1875f, 0.8125f, 0.75f, 0.8125f); // Body + mRender.setIcon(TypeEjectionTube.endIcon, TypeEjectionTube.endIcon, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.9375f, 0.1875f, 0.8125f, 1.0f, 0.8125f); // Ring + break; + case 2: + mRender.setTextureRotation(2, 0, 0, 0, 3, 1); + mRender.drawBox(51, 0.25f, 0.25f, 0f, 0.75f, 0.75f, 0.3125f); + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.backOpen, back, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.25f, 0.8125f, 0.8125f, 0.8125f); // Body + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeEjectionTube.endIcon, TypeEjectionTube.endIcon, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.0f, 0.8125f, 0.8125f, 0.0625f); // Ring + break; + case 3: + mRender.setTextureRotation(0, 2, 0, 0, 1, 3); + mRender.drawBox(51, 0.25f, 0.25f, 0.6875f, 0.75f, 0.75f, 1.0f); + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, back, TypeAdvancedExtractionTube.backOpen, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.1875f, 0.8125f, 0.8125f, 0.75f); // Body + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeEjectionTube.endIcon, TypeEjectionTube.endIcon, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.9375f, 0.8125f, 0.8125f, 1.0f); // Ring + break; + case 4: + mRender.setTextureRotation(3, 3, 1, 3, 0, 0); + mRender.drawBox(15, 0f, 0.25f, 0.25f, 0.3125f, 0.75f, 0.75f); + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.backOpen, back); + mRender.drawBox(63, 0.25f, 0.1875f, 0.1875f, 0.8125f, 0.8125f, 0.8125f); // Body + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeEjectionTube.endIcon, TypeEjectionTube.endIcon); + mRender.drawBox(63, 0f, 0.1875f, 0.1875f, 0.0625f, 0.8125f, 0.8125f); // Ring + break; + case 5: + mRender.setTextureRotation(1, 1, 3, 1, 0, 0); + mRender.drawBox(15, 0.6875f, 0.25f, 0.25f, 1.0f, 0.75f, 0.75f); + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, back, TypeAdvancedExtractionTube.backOpen); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.1875f, 0.75f, 0.8125f, 0.8125f); // Body + mRender.setIcon(TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeAdvancedExtractionTube.main, TypeEjectionTube.endIcon, TypeEjectionTube.endIcon); + mRender.drawBox(63, 0.9375f, 0.1875f, 0.1875f, 1.0f, 0.8125f, 0.8125f); // Ring + break; + } + + mRender.resetTextureRotation(); + } + + @Override + protected void renderCore( int connections, TubeDefinition def, int col ) + { + renderBody(mDirection); + } + + private void renderPump(int side, float animTime) + { + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TypeAdvancedExtractionTube.pump); + + mRender.setTextureIndex(0); + mRender.setTextureSize(1, 1); + + Tessellator tes = Tessellator.instance; + tes.setColorOpaque_F(1, 1, 1); + + tes.startDrawingQuads(); + + float amount = ((float)Math.cos(animTime * Math.PI * 2) / 2f + 0.5f) * 0.0625f * 2; + + mRender.resetTransform(); + switch(side) + { + case 0: + mRender.translate(0, amount, 0); + mRender.drawBox(63, 0.1875f, 0.0625f, 0.1875f, 0.8125f, 0.125f, 0.8125f); + break; + case 1: + mRender.translate(0, -amount, 0); + mRender.drawBox(63, 0.1875f, 0.875f, 0.1875f, 0.8125f, 0.9375f, 0.8125f); + break; + case 2: + mRender.translate(0, 0, amount); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.0625f, 0.8125f, 0.8125f, 0.125f); + break; + case 3: + mRender.translate(0, 0, -amount); + mRender.drawBox(63, 0.1875f, 0.1875f, 0.875f, 0.8125f, 0.8125f, 0.9375f); + break; + case 4: + mRender.translate(amount, 0, 0); + mRender.drawBox(63, 0.0625f, 0.1875f, 0.1875f, 0.125f, 0.8125f, 0.8125f); + break; + case 5: + mRender.translate(-amount, 0, 0); + mRender.drawBox(63, 0.875f, 0.1875f, 0.1875f, 0.9375f, 0.8125f, 0.8125f); + break; + } + + tes.draw(); + } + + @Override + public void renderItem( TubeDefinition type, ItemStack item ) + { + mRender.resetTransform(); + mRender.enableNormals = true; + mRender.resetTextureFlip(); + mRender.resetTextureRotation(); + mRender.resetLighting(15728880); + mRender.faceMode = FaceMode.Normal; + + mRender.setLocalLights(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f); + + Tessellator tes = Tessellator.instance; + + GL11.glDisable(GL11.GL_CULL_FACE); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TextureMap.locationBlocksTexture); + tes.startDrawingQuads(); + + mRender.setIcon(type.getCenterIcon()); + mRender.drawBox(55, 0.25f, 0.25f, 0.25f, 0.75f, 0.75f, 0.75f); + + renderBody(3); + + tes.draw(); + + GL11.glEnable(GL11.GL_CULL_FACE); + + renderPump(3, ((System.currentTimeMillis() % 1000) / 1000.0f)); + } + + + @Override + public void renderDynamic( TubeDefinition type, ITube tube, World world, int x, int y, int z, float frameTime ) + { + int direction = ((IDirectionalTube)tube).getFacing(); + + mRender.resetTransform(); + mRender.enableNormals = false; + mRender.setLightingFromBlock(world, x, y, z); + mRender.resetTextureFlip(); + mRender.resetTextureRotation(); + mRender.faceMode = FaceMode.Both; + + GL11.glDisable(GL11.GL_LIGHTING); + + GL11.glPushMatrix(); + GL11.glTranslatef(x, y, z); + + mRender.setLocalLights(0.5f, 1.0f, 0.8f, 0.8f, 0.6f, 0.6f); + + renderPump(direction, ((AdvancedExtractionTube)tube).animTime + 0.05f * frameTime); + + GL11.glPopMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + + super.renderDynamic(type, tube, world, x, y, z, frameTime); + } +} diff --git a/src/main/java/schmoller/tubes/types/AdvancedExtractionTube.java b/src/main/java/schmoller/tubes/types/AdvancedExtractionTube.java index 077c26e..3ef56c6 100644 --- a/src/main/java/schmoller/tubes/types/AdvancedExtractionTube.java +++ b/src/main/java/schmoller/tubes/types/AdvancedExtractionTube.java @@ -5,12 +5,17 @@ import java.util.Random; import codechicken.lib.data.MCDataInput; +import codechicken.lib.data.MCDataOutput; +import codechicken.lib.vec.Cuboid6; import codechicken.multipart.IRedstonePart; import codechicken.multipart.RedstoneInteractions; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.util.MovingObjectPosition; +import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.ForgeDirection; import schmoller.tubes.AnyFilter; import schmoller.tubes.ModTubes; @@ -107,12 +112,35 @@ public void setProperty( int prop, T value ) mColor = ((Number)value).intValue(); break; } + + tile().markDirty(); + } + + @Override + public Cuboid6 getBounds() + { + switch(getFacing()) + { + default: + case 0: + return new Cuboid6(0.1875f, 0.0f, 0.1875f, 0.8125f, 0.8125f, 0.8125f); + case 1: + return new Cuboid6(0.1875f, 0.1875f, 0.1875f, 0.8125f, 1.0f, 0.8125f); + case 2: + return new Cuboid6(0.1875f, 0.1875f, 0.0f, 0.8125f, 0.8125f, 0.8125f); + case 3: + return new Cuboid6(0.1875f, 0.1875f, 0.1875f, 0.8125f, 0.8125f, 1.0f); + case 4: + return new Cuboid6(0.0f, 0.1875f, 0.1875f, 0.8125f, 0.8125f, 0.8125f); + case 5: + return new Cuboid6(0.1875f, 0.1875f, 0.1875f, 1.0f, 0.8125f, 0.8125f); + } } @Override protected int getConnectableSides() { - return ~(1 << getFacing()); + return (1 << (getFacing() ^ 1)); } @Override @@ -142,6 +170,7 @@ public IFilter getFilter(int index) public void setFilter(int index, IFilter filter) { mFilters[index] = filter; + tile().markDirty(); } public PullMode getMode() @@ -571,4 +600,78 @@ public boolean activate( EntityPlayer player, MovingObjectPosition part, ItemSta @Override public int weakPowerLevel( int side ) { return 0; } + + @Override + public void save( NBTTagCompound root ) + { + super.save(root); + + NBTTagList items = new NBTTagList(); + for(int i = 0; i < mFilters.length; ++i) + { + if(mFilters[i] != null) + { + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("Slot", i); + FilterRegistry.getInstance().writeFilter(mFilters[i],tag); + items.appendTag(tag); + } + } + + root.setTag("Filters", items); + + root.setInteger("Mode", mMode.ordinal()); + root.setInteger("RSMode", mRSMode.ordinal()); + root.setInteger("Size", mSize.ordinal()); + mOverflow.save(root); + + root.setShort("Color", (short)mColor); + } + + @Override + public void load( NBTTagCompound root ) + { + super.load(root); + + NBTTagList filters = root.getTagList("Filters", Constants.NBT.TAG_COMPOUND); + for(int i = 0; i < filters.tagCount(); ++i) + { + NBTTagCompound tag = filters.getCompoundTagAt(i); + int slot = tag.getInteger("Slot"); + mFilters[slot] = FilterRegistry.getInstance().readFilter(tag); + } + + mMode = PullMode.values()[root.getInteger("Mode")]; + mRSMode = RedstoneMode.values()[root.getInteger("RSMode")]; + mSize = SizeMode.values()[root.getInteger("Size")]; + + mColor = root.getShort("Color"); + } + + @Override + public void writeDesc( MCDataOutput output ) + { + super.writeDesc(output); + + output.writeByte(mMode.ordinal()); + output.writeByte(mRSMode.ordinal()); + output.writeByte(mSize.ordinal()); + output.writeShort(mColor); + + output.writeBoolean(mIsPowered); + } + + @Override + public void readDesc( MCDataInput input ) + { + super.readDesc(input); + + mMode = PullMode.values()[input.readByte()]; + mRSMode = RedstoneMode.values()[input.readByte()]; + mSize = SizeMode.values()[input.readByte()]; + mColor = input.readShort(); + + mIsPowered = input.readBoolean(); + } + } diff --git a/src/main/java/schmoller/tubes/types/ManagementTube.java b/src/main/java/schmoller/tubes/types/ManagementTube.java index 9d5d989..202a6b7 100644 --- a/src/main/java/schmoller/tubes/types/ManagementTube.java +++ b/src/main/java/schmoller/tubes/types/ManagementTube.java @@ -495,7 +495,7 @@ protected boolean onItemJunction( TubeItem item ) Payload add = item.item.copy(); add.setSize(toAdd); - remaining = handler.insert(add, getFacing() ^ 1, true); + remaining = handler.insert(add, getFacing(), true); if(toAdd != item.item.size()) { diff --git a/src/main/resources/assets/tubes/lang/en_US.lang b/src/main/resources/assets/tubes/lang/en_US.lang index 7bb6055..9212a04 100644 --- a/src/main/resources/assets/tubes/lang/en_US.lang +++ b/src/main/resources/assets/tubes/lang/en_US.lang @@ -74,13 +74,13 @@ gui.managementtube.priority=Priority gui.overflow.name=Overflow Contents -gui.redstonemode.High=High redstone signal -gui.redstonemode.Low=Low redstone signal -gui.redstonemode.Ignore=Ignore redstone signal -gui.redstonemode.Pulse=Pulse redstone signal +gui.pullmode.NormalAllow=Pull matching +gui.pullmode.NormalDeny=Pull non-matching +gui.pullmode.Random=Pull random +gui.pullmode.Sequence=Pull sequence +gui.pullmode.Overflow=Pull overflow -gui.pullmode.NormalAllow=Pull any listed items -gui.pullmode.NormalDeny=Pull any unlisted items -gui.pullmode.Random=Pull a listed item at random -gui.pullmode.Sequence=Pull listed items in sequence -gui.pullmode.Overflow=Pull overflowing items \ No newline at end of file +gui.redstonemode.High=Pull with redstone signal +gui.redstonemode.Low=Pull without redstone signal +gui.redstonemode.Ignore=Always pull +gui.redstonemode.Pulse=Pull once per redstone pulse \ No newline at end of file diff --git a/src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction-closed.png b/src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..31e8891a1c98a6a6f7c825e1997336f6e9132d06 GIT binary patch literal 2869 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 TS3g(^00000NkvXXu0mjfGb&af literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction-open.png b/src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction-open.png new file mode 100644 index 0000000000000000000000000000000000000000..ef1639c5be919bd24b90618881c4b9635748ad9e GIT binary patch literal 2839 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction.png b/src/main/resources/assets/tubes/textures/blocks/tube-advancedextraction.png new file mode 100644 index 0000000000000000000000000000000000000000..91358fc730b9dc7e3fadabf75077ddab14dd4586 GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/tubes/textures/models/tube-advancedextraction-pump.png b/src/main/resources/assets/tubes/textures/models/tube-advancedextraction-pump.png new file mode 100644 index 0000000000000000000000000000000000000000..258f171412b2576f57e4055893ec18eabf3c1b53 GIT binary patch literal 2994 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 literal 0 HcmV?d00001 From 8a2e8d8b8b421819248d9e7feeb06b441a2a5787 Mon Sep 17 00:00:00 2001 From: Techokami Date: Tue, 1 Jul 2014 18:22:30 -0400 Subject: [PATCH 4/7] Sync? From ebf3054c9a69d32f5f941e290cdea2334f4377fb Mon Sep 17 00:00:00 2001 From: Techokami Date: Sat, 5 Jul 2014 14:53:45 -0400 Subject: [PATCH 5/7] Re-applied a lost fix Whoopsies! ACT2s will work again. --- build.gradle | 11 ++++++----- src/main/java/schmoller/tubes/asm/TubesContainer.java | 2 +- src/main/java/schmoller/tubes/asm/TubesPlugin.java | 2 +- .../java/schmoller/tubes/network/MCDInputBridge.java | 3 ++- .../java/schmoller/tubes/types/ManagementTube.java | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 37fc83b..5cdfbe3 100644 --- a/build.gradle +++ b/build.gradle @@ -26,17 +26,18 @@ repositories { dependencies { compile 'com.mod-buildcraft:buildcraft:5.0.5:dev' - compile 'codechicken:ForgeMultipart:1.7.2-1.1.0.275:dev' - compile 'codechicken:CodeChickenLib:1.7.2-1.1.0.77:dev' - compile 'codechicken:CodeChickenCore:1.7.2-1.0.0:dev' - compile 'codechicken:NotEnoughItems:1.7.2-1.0.1:dev' + // compile 'codechicken:ForgeMultipart:1.7.2-1.1.0.275:dev' + compile files("lib/ForgeMultipart-1.7.10-1.1.0.null-dev.jar") + compile 'codechicken:CodeChickenLib:1.7.10-1.1.1.93:dev' + compile 'codechicken:CodeChickenCore:1.7.10-1.0.1.8:dev' + compile 'codechicken:NotEnoughItems:1.7.10-1.0.2.15:dev' } version = "2.0.3" group= "au.com.addstar" archivesBaseName = "Tubes" -def forge = "1.7.2-10.12.1.1065" +def forge = "1.7.10-10.13.0.1160" minecraft { version = "${forge}" diff --git a/src/main/java/schmoller/tubes/asm/TubesContainer.java b/src/main/java/schmoller/tubes/asm/TubesContainer.java index 3ad84bd..6c64bab 100644 --- a/src/main/java/schmoller/tubes/asm/TubesContainer.java +++ b/src/main/java/schmoller/tubes/asm/TubesContainer.java @@ -25,6 +25,6 @@ public boolean registerBus( EventBus bus, LoadController controller ) @Override public VersionRange acceptableMinecraftVersionRange() { - return VersionParser.parseRange("[1.7.2]"); + return VersionParser.parseRange("[1.7.10]"); } } diff --git a/src/main/java/schmoller/tubes/asm/TubesPlugin.java b/src/main/java/schmoller/tubes/asm/TubesPlugin.java index bd2df78..5d4cfcc 100644 --- a/src/main/java/schmoller/tubes/asm/TubesPlugin.java +++ b/src/main/java/schmoller/tubes/asm/TubesPlugin.java @@ -41,7 +41,7 @@ public TubesPlugin() @Override public String[] getASMTransformerClass() { - versionCheck("[1.7.2]", "Tubes"); + versionCheck("[1.7.10]", "Tubes"); return new String[] {"schmoller.tubes.asm.MinecraftTransformer"}; } diff --git a/src/main/java/schmoller/tubes/network/MCDInputBridge.java b/src/main/java/schmoller/tubes/network/MCDInputBridge.java index a4bfc2c..dbd6237 100644 --- a/src/main/java/schmoller/tubes/network/MCDInputBridge.java +++ b/src/main/java/schmoller/tubes/network/MCDInputBridge.java @@ -7,6 +7,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTSizeTracker; import net.minecraftforge.fluids.FluidStack; import codechicken.lib.data.MCDataInput; @@ -125,7 +126,7 @@ public NBTTagCompound readNBTTagCompound() try { - return CompressedStreamTools.decompress(data); + return CompressedStreamTools.func_152457_a(data, NBTSizeTracker.field_152451_a); } catch(IOException e) { diff --git a/src/main/java/schmoller/tubes/types/ManagementTube.java b/src/main/java/schmoller/tubes/types/ManagementTube.java index 202a6b7..9d5d989 100644 --- a/src/main/java/schmoller/tubes/types/ManagementTube.java +++ b/src/main/java/schmoller/tubes/types/ManagementTube.java @@ -495,7 +495,7 @@ protected boolean onItemJunction( TubeItem item ) Payload add = item.item.copy(); add.setSize(toAdd); - remaining = handler.insert(add, getFacing(), true); + remaining = handler.insert(add, getFacing() ^ 1, true); if(toAdd != item.item.size()) { From c5f038198f38b74b6bbf6143982eabd7c3452c1d Mon Sep 17 00:00:00 2001 From: Techokami Date: Sat, 5 Jul 2014 15:06:09 -0400 Subject: [PATCH 6/7] Making the deps available --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fd68c50..790eaad 100644 --- a/README.md +++ b/README.md @@ -14,5 +14,7 @@ Please remember to use **UTF-8** encoding on language files. ### Building Make sure you have python installed and available on the system PATH. +[Download this and put the contents in a folder named "lib".](http://files.holenet.info/lib.zip) + Run "gradlew build" from a terminal/command prompt. The output will be in build/libs \ No newline at end of file From 759e336b0b8f91577e36cf75d3cd281755b3e3bb Mon Sep 17 00:00:00 2001 From: Techokami Date: Sat, 19 Jul 2014 12:06:17 -0400 Subject: [PATCH 7/7] Updated build.gradle --- build.gradle | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 5cdfbe3..db59c23 100644 --- a/build.gradle +++ b/build.gradle @@ -26,18 +26,17 @@ repositories { dependencies { compile 'com.mod-buildcraft:buildcraft:5.0.5:dev' - // compile 'codechicken:ForgeMultipart:1.7.2-1.1.0.275:dev' - compile files("lib/ForgeMultipart-1.7.10-1.1.0.null-dev.jar") - compile 'codechicken:CodeChickenLib:1.7.10-1.1.1.93:dev' - compile 'codechicken:CodeChickenCore:1.7.10-1.0.1.8:dev' - compile 'codechicken:NotEnoughItems:1.7.10-1.0.2.15:dev' + compile 'codechicken:ForgeMultipart:1.7.10-1.1.0.297:dev' + compile 'codechicken:CodeChickenLib:1.7.10-1.1.1.95:dev' + compile 'codechicken:CodeChickenCore:1.7.10-1.0.2.11:dev' + compile 'codechicken:NotEnoughItems:1.7.10-1.0.2.30:dev' } version = "2.0.3" group= "au.com.addstar" archivesBaseName = "Tubes" -def forge = "1.7.10-10.13.0.1160" +def forge = "1.7.10-10.13.0.1180" minecraft { version = "${forge}"