sensitive cables

This commit is contained in:
Raoul Van den Berge
2015-12-19 13:56:27 +01:00
parent fd787c0d0f
commit 54e4885020
12 changed files with 126 additions and 42 deletions

View File

@@ -1,31 +1,20 @@
package storagecraft.render;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import storagecraft.render.model.CableModel;
import storagecraft.tile.TileCable;
public class BlockCableRenderer extends TileEntitySpecialRenderer {
public static final CableModel CABLE_MODEL = new CableModel();
public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png");
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float scale) {
GL11.glPushMatrix();
GL11.glTranslatef((float) x, (float) y, (float) z);
{
GL11.glPushMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
CABLE_MODEL.render((TileCable) tile, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix();
}
CABLE_MODEL.render((TileCable) tile, 0.0625F);
GL11.glPopMatrix();
}

View File

@@ -2,9 +2,11 @@ package storagecraft.render;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import storagecraft.render.model.CableModel;
public class ItemCableRenderer implements IItemRenderer {
public static final BlockCableRenderer CABLE_RENDERER = new BlockCableRenderer();
public static final CableModel CABLE_MODEL = new CableModel();
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
@@ -18,6 +20,10 @@ public class ItemCableRenderer implements IItemRenderer {
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
CABLE_RENDERER.renderTileEntityAt(null, 0, 0, 0, 0);
GL11.glPushMatrix();
CABLE_MODEL.render(item, 0.0625F);
GL11.glPopMatrix();
}
}

View File

@@ -1,11 +1,18 @@
package storagecraft.render.model;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.util.ForgeDirection;
import storagecraft.tile.TileCable;
public class CableModel extends ModelBase {
public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png");
public static final ResourceLocation CABLE_UNPOWERED_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cableUnpowered.png");
public static final ResourceLocation CABLE_POWERED_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cablePowered.png");
private ModelRenderer core;
private ModelRenderer up;
private ModelRenderer down;
@@ -44,36 +51,62 @@ public class CableModel extends ModelBase {
west.setTextureSize(16, 16);
}
public void render(TileCable cable, float f, float f1, float f2, float f3, float f4, float f5) {
core.render(f5);
public void render(ItemStack cable, float x) {
if (cable.getItemDamage() == 1) {
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_UNPOWERED_RESOURCE);
} else {
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
}
if (cable != null) {
if (cable.hasConnection(ForgeDirection.UP)) {
up.render(f5);
}
core.render(x);
if (cable.hasConnection(ForgeDirection.DOWN)) {
down.render(f5);
}
if (cable.getItemDamage() == 1) {
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
}
if (cable.hasConnection(ForgeDirection.NORTH)) {
north.render(f5);
}
north.render(x);
south.render(x);
}
if (cable.hasConnection(ForgeDirection.EAST)) {
east.render(f5);
}
if (cable.hasConnection(ForgeDirection.SOUTH)) {
south.render(f5);
}
if (cable.hasConnection(ForgeDirection.WEST)) {
west.render(f5);
public void render(TileCable cable, float x) {
if (cable.isSensitiveCable()) {
if (cable.isPowered()) {
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_POWERED_RESOURCE);
} else {
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_UNPOWERED_RESOURCE);
}
} else {
north.render(f5);
south.render(f5);
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
}
core.render(x);
if (cable.isSensitiveCable()) {
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
}
if (cable.hasConnection(ForgeDirection.UP)) {
up.render(x);
}
if (cable.hasConnection(ForgeDirection.DOWN)) {
down.render(x);
}
if (cable.hasConnection(ForgeDirection.NORTH)) {
north.render(x);
}
if (cable.hasConnection(ForgeDirection.EAST)) {
east.render(x);
}
if (cable.hasConnection(ForgeDirection.SOUTH)) {
south.render(x);
}
if (cable.hasConnection(ForgeDirection.WEST)) {
west.render(x);
}
}
}