sensitive cables
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user