From 1e24d1f116c525f7827160580fd2c5b0ba97712c Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 5 Mar 2016 18:10:36 +0000 Subject: [PATCH] Texture Rendering for cables --- .../render/parts/ClientPartModelBakery.java | 12 ++++++++++- .../client/render/parts/RenderCablePart.java | 4 ++-- .../java/techreborn/parts/CableMultipart.java | 2 +- .../java/techreborn/parts/EnumCableType.java | 20 +++++++++---------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/techreborn/client/render/parts/ClientPartModelBakery.java b/src/main/java/techreborn/client/render/parts/ClientPartModelBakery.java index cd48e6d64..ce0d566f3 100644 --- a/src/main/java/techreborn/client/render/parts/ClientPartModelBakery.java +++ b/src/main/java/techreborn/client/render/parts/ClientPartModelBakery.java @@ -1,7 +1,9 @@ package techreborn.client.render.parts; import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.ModelBakeEvent; +import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; @@ -20,7 +22,15 @@ public class ClientPartModelBakery { for(EnumCableType type : EnumCableType.values()){ event.modelRegistry.putObject(new ModelResourceLocation("techreborn:cable#type=" + type.getName().toLowerCase()), new RenderCablePart(type)); } - } + @SubscribeEvent + public void textureStichEvent(TextureStitchEvent event){ + for(EnumCableType type : EnumCableType.values()){ + event.map.registerSprite(new ResourceLocation(type.textureName)); + } + } + + + } diff --git a/src/main/java/techreborn/client/render/parts/RenderCablePart.java b/src/main/java/techreborn/client/render/parts/RenderCablePart.java index 217a93fdc..9332b28a7 100644 --- a/src/main/java/techreborn/client/render/parts/RenderCablePart.java +++ b/src/main/java/techreborn/client/render/parts/RenderCablePart.java @@ -63,8 +63,8 @@ public class RenderCablePart implements ISmartMultipartModel { ArrayList list = new ArrayList(); BlockFaceUV uv = new BlockFaceUV(new float[]{0.0F, 0.0F, 16.0F, 16.0F}, 0); BlockPartFace face = new BlockPartFace(null, 0, "", uv); - int thickness = 16 - (int) type.cableThickness * 2; - int lastThickness = 16 - thickness; + double thickness = type.cableThickness; + double lastThickness = 16 - thickness; addCubeToList(new Vecs3dCube(thickness, thickness, thickness, lastThickness, lastThickness, lastThickness), list, face, ModelRotation.X0_Y0, texture); if (state != null) { if (state.getValue(CableMultipart.UP)) { diff --git a/src/main/java/techreborn/parts/CableMultipart.java b/src/main/java/techreborn/parts/CableMultipart.java index 01781c2bb..3c17e80c6 100644 --- a/src/main/java/techreborn/parts/CableMultipart.java +++ b/src/main/java/techreborn/parts/CableMultipart.java @@ -57,7 +57,7 @@ public abstract class CableMultipart extends Multipart implements IOccludingPart public void refreshBounding() { float centerFirst = center - offset; - double w = getCableType().cableThickness / 16; + double w = (getCableType().cableThickness / 16) - 0.5; boundingBoxes[6] = new Vecs3dCube(centerFirst - w - 0.03, centerFirst - w - 0.08, centerFirst - w - 0.03, centerFirst + w + 0.08, centerFirst + w + 0.04, centerFirst + w + 0.08); diff --git a/src/main/java/techreborn/parts/EnumCableType.java b/src/main/java/techreborn/parts/EnumCableType.java index 4aaf85bf1..df6c727f5 100644 --- a/src/main/java/techreborn/parts/EnumCableType.java +++ b/src/main/java/techreborn/parts/EnumCableType.java @@ -4,23 +4,23 @@ import net.minecraft.util.IStringSerializable; import techreborn.parts.types.*; public enum EnumCableType implements IStringSerializable { - COPPER("copper", "minecraft:blocks/iron_block", 128, 4.0F, true, CopperCable.class), - TIN("tin", "minecraft:blocks/iron_block", 32, 4.0F, true, TinCable.class), - GOLD("gold", "minecraft:blocks/iron_block", 512, 3.0F, true, GoldCable.class), - HV("hv", "minecraft:blocks/iron_block", 2048, 6.0F, true, HVCable.class), - GLASSFIBER("glassfiber", "minecraft:blocks/iron_block", 8192, 4.0F, false, GlassFiberCable.class), - ICOPPER("insulatedcopper", "minecraft:blocks/iron_block", 128, 6.0F, false, InsulatedCopperCable.class), - IGOLD("insulatedgold", "minecraft:blocks/iron_block", 512, 6.0F, false, InsulatedGoldCable.class), - IHV("insulatedhv", "minecraft:blocks/iron_block", 2048, 10.0F, false, InsulatedHVCable.class); + COPPER("copper", "techreborn:blocks/cables/copper_cable", 128, 12.0, true, CopperCable.class), + TIN("tin", "minecraft:blocks/iron_block", 32, 4.0, true, TinCable.class), + GOLD("gold", "minecraft:blocks/iron_block", 512, 3.0, true, GoldCable.class), + HV("hv", "minecraft:blocks/iron_block", 2048, 6.0, true, HVCable.class), + GLASSFIBER("glassfiber", "minecraft:blocks/iron_block", 8192, 4.0, false, GlassFiberCable.class), + ICOPPER("insulatedcopper", "techreborn:blocks/cables/copper_insulated_cable", 128, 10.0, false, InsulatedCopperCable.class), + IGOLD("insulatedgold", "minecraft:blocks/iron_block", 512, 6.0, false, InsulatedGoldCable.class), + IHV("insulatedhv", "minecraft:blocks/iron_block", 2048, 10.0, false, InsulatedHVCable.class); private String friendlyName; public String textureName = "minecraft:blocks/iron_block"; public int transferRate= 128; - public float cableThickness = 3.0F; + public double cableThickness = 3.0; public boolean canKill = false; public Class cableClass; - EnumCableType(String friendlyName, String textureName, int transferRate, float cableThickness, boolean canKill, Class cableClass) { + EnumCableType(String friendlyName, String textureName, int transferRate, double cableThickness, boolean canKill, Class cableClass) { this.friendlyName = friendlyName; this.textureName = textureName; this.transferRate = transferRate;