Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
/.pydevproject
/.gradle
/eclipse
/build
/build
/lib
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +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 '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.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.2-10.12.1.1065"
def forge = "1.7.10-10.13.0.1180"

minecraft {
version = "${forge}"
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/schmoller/tubes/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/schmoller/tubes/CommonProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/schmoller/tubes/asm/TubesContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -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]");
}
}
2 changes: 1 addition & 1 deletion src/main/java/schmoller/tubes/asm/TubesPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -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"};
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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()
Expand All @@ -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");
}
}
5 changes: 5 additions & 0 deletions src/main/java/schmoller/tubes/items/ItemDiagnosticTool.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
{
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/schmoller/tubes/network/MCDInputBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
{
Expand Down
233 changes: 233 additions & 0 deletions src/main/java/schmoller/tubes/render/AdvancedExtractionTubeRender.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
Loading