diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 71aec5e9d..903e0cacc 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -149,8 +149,16 @@ public class ToolRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_tools), new Object[] { Items.book, Items.gold_nugget, KEY_GREEN }); //Carts + CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.WOOD, EnumMinecart.EMPTY), new Object[] { "P P", "WPW", 'P',KEY_SLAB, 'W', KEY_PLANKS }); CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY) }); + CraftingManager.addShapelessAuto(ItemModMinecart.createCartItem(EnumCartBase.PAINTED, EnumMinecart.EMPTY), new Object[] { ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), KEY_RED }); + + for(EnumCartBase base : EnumCartBase.values()) { + + if(EnumMinecart.DESTROYER.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + if(EnumMinecart.POWDER.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.POWDER), new Object[] { "PPP", "PCP", "PPP", 'P', Items.gunpowder, 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + if(EnumMinecart.SEMTEX.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.SEMTEX), new Object[] { "S", "C", 'S', ModBlocks.semtex, 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + } net.minecraft.item.crafting.CraftingManager.getInstance().addRecipe(DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE), new Object[] { "C", "S", 'C', ModBlocks.crate_steel, 'S', Items.minecart }).func_92100_c(); //Configged diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java b/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java index 226d28bf3..941b82c5b 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java @@ -1,6 +1,7 @@ package com.hbm.entity.cart; -import net.minecraft.entity.item.EntityMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -14,16 +15,16 @@ import net.minecraft.world.World; * @author hbm * */ -public abstract class EntityMinecartContainerBase extends EntityMinecart implements IInventory { +public abstract class EntityMinecartContainerBase extends EntityMinecartNTM implements IInventory { protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; - public EntityMinecartContainerBase(World p_i1712_1_) { - super(p_i1712_1_); + public EntityMinecartContainerBase(World world) { + super(world); } - public EntityMinecartContainerBase(World world, double x, double y, double z) { - super(world, x, y, z); + public EntityMinecartContainerBase(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override @@ -102,11 +103,6 @@ public abstract class EntityMinecartContainerBase extends EntityMinecart impleme public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } - - @Override - public int getMinecartType() { - return -1; - } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java index baa4cced9..8eaaff942 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java @@ -21,8 +21,8 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { super(world); } - public EntityMinecartCrate(World world, double x, double y, double z, ItemStack stack) { - super(world, x, y, z); + public EntityMinecartCrate(World world, double x, double y, double z, EnumCartBase type, ItemStack stack) { + super(world, x, y, z, type); if(stack.hasTagCompound()) { for(int i = 0; i < getSizeInventory(); i++) { setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java index dedf4673d..49b43e6ff 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java @@ -8,8 +8,12 @@ import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; @@ -25,8 +29,8 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { super(p_i1712_1_); } - public EntityMinecartDestroyer(World world, double x, double y, double z) { - super(world, x, y, z); + public EntityMinecartDestroyer(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override @@ -122,19 +126,14 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { } @Override - public void killMinecart(DamageSource p_94095_1_) { - this.setDead(); - ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER); - - if(this.func_95999_t() != null) { - itemstack.setStackDisplayName(this.func_95999_t()); - } - - this.entityDropItem(itemstack, 0.0F); + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.DESTROYER); } @Override - public ItemStack getCartItem() { - return ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER); + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_destroyer_tex); + ResourceManager.cart_destroyer.renderAll(); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java b/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java new file mode 100644 index 000000000..8071538bd --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java @@ -0,0 +1,89 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public abstract class EntityMinecartNTM extends EntityMinecart { + + public static final int cart_base_id = 23; + + public EntityMinecartNTM(World p_i1712_1_) { + super(p_i1712_1_); + } + + public EntityMinecartNTM(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z); + this.setBase(type); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(cart_base_id, new Integer(0)); //EnumCartBase + } + + public void setBase(EnumCartBase type) { + this.dataWatcher.updateObject(cart_base_id, type.ordinal()); + } + + public EnumCartBase getBase() { + return EnumCartBase.values()[this.dataWatcher.getWatchableObjectInt(cart_base_id)]; + } + + @Override + public int getMinecartType() { + return -1; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + + @Override + public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } + + @Override + public void killMinecart(DamageSource p_94095_1_) { + this.setDead(); + ItemStack itemstack = getCartItem(); + + if(this.func_95999_t() != null) { + itemstack.setStackDisplayName(this.func_95999_t()); + } + + this.entityDropItem(itemstack, 0.0F); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("base", this.dataWatcher.getWatchableObjectInt(cart_base_id)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(23, nbt.getInteger("base")); + } + + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java index d9dcc0ec0..c48734f4f 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java @@ -4,57 +4,21 @@ import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; import net.minecraft.world.World; -public class EntityMinecartOre extends EntityMinecart { +public class EntityMinecartOre extends EntityMinecartNTM { public EntityMinecartOre(World p_i1712_1_) { super(p_i1712_1_); } - public EntityMinecartOre(World world, double x, double y, double z) { - super(world, x, y, z); - } - - @Override - public int getMinecartType() { - return -1; - } - - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public AxisAlignedBB getCollisionBox(Entity entity) { - return entity.boundingBox; - } - - @Override - public AxisAlignedBB getBoundingBox() { - return this.boundingBox; - } - - @Override - public void killMinecart(DamageSource p_94095_1_) { - this.setDead(); - ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY); - - if(this.func_95999_t() != null) { - itemstack.setStackDisplayName(this.func_95999_t()); - } - - this.entityDropItem(itemstack, 0.0F); + public EntityMinecartOre(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override public ItemStack getCartItem() { - return ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY); + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.EMPTY); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java b/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java new file mode 100644 index 000000000..3657640d7 --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java @@ -0,0 +1,35 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.items.tool.ItemModMinecart.EnumMinecart; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMinecartPowder extends EntityMinecartNTM { + + public EntityMinecartPowder(World world) { + super(world); + } + + public EntityMinecartPowder(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); + } + + @Override + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.POWDER); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_powder_tex); + ResourceManager.cart_powder.renderPart("Powder"); + } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java b/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java new file mode 100644 index 000000000..74a45ad23 --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java @@ -0,0 +1,37 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.items.tool.ItemModMinecart.EnumMinecart; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMinecartSemtex extends EntityMinecartNTM { + + public EntityMinecartSemtex(World world) { + super(world); + } + + public EntityMinecartSemtex(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); + } + + @Override + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.SEMTEX); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_semtex_top); + ResourceManager.cart_powder.renderPart("SemtexTop"); + renderer.bindTexture(ResourceManager.cart_semtex_side); + ResourceManager.cart_powder.renderPart("SemtexSide"); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemModMinecart.java b/src/main/java/com/hbm/items/tool/ItemModMinecart.java index ce68ad1cd..c065c189f 100644 --- a/src/main/java/com/hbm/items/tool/ItemModMinecart.java +++ b/src/main/java/com/hbm/items/tool/ItemModMinecart.java @@ -43,10 +43,11 @@ public class ItemModMinecart extends Item { } public static enum EnumMinecart { - EMPTY (EnumCartBase.STEEL), + EMPTY (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED), CRATE (EnumCartBase.VANILLA), - DESTROYER (EnumCartBase.STEEL), - POWDER (EnumCartBase.WOOD); + DESTROYER (EnumCartBase.STEEL, EnumCartBase.PAINTED), + POWDER (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED), + SEMTEX (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED); public int types; @@ -217,7 +218,7 @@ public class ItemModMinecart extends Item { if(BlockRailBase.func_150051_a(world.getBlock(x, y, z))) { if(!world.isRemote) { - EntityMinecart entityminecart = createMinecart(world, x + 0.5D, y + 0.5D, z + 0.5D, stack); + EntityMinecart entityminecart = createMinecart(world, x + fx, y + fy, z + fz, stack); if(stack.hasDisplayName()) { entityminecart.setMinecartName(stack.getDisplayName()); @@ -235,10 +236,13 @@ public class ItemModMinecart extends Item { public static EntityMinecart createMinecart(World world, double x, double y, double z, ItemStack stack) { EnumMinecart type = (EnumMinecart) EnumMinecart.values()[stack.getItemDamage()]; + EnumCartBase base = getBaseType(stack); switch(type) { - case CRATE: return new EntityMinecartCrate(world, x, y, z, stack); - case DESTROYER: return new EntityMinecartDestroyer(world, x, y, z); - case EMPTY: return new EntityMinecartOre(world, x, y, z); + case CRATE: return new EntityMinecartCrate(world, x, y, z, base, stack); + case DESTROYER: return new EntityMinecartDestroyer(world, x, y, z, base); + case EMPTY: return new EntityMinecartOre(world, x, y, z, base); + case POWDER: return new EntityMinecartPowder(world, x, y, z, base); + case SEMTEX: return new EntityMinecartSemtex(world, x, y, z, base); default: return new EntityMinecartEmpty(world, x, y, z); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5d975631f..3ada8dd13 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -627,8 +627,7 @@ public class ClientProxy extends ServerProxy { //minecarts RenderingRegistry.registerEntityRenderingHandler(EntityMinecartTest.class, new RenderMinecartTest()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); - RenderingRegistry.registerEntityRenderingHandler(EntityMinecartDestroyer.class, new RenderNeoCart()); - RenderingRegistry.registerEntityRenderingHandler(EntityMinecartOre.class, new RenderNeoCart()); + RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5f40bd98c..536808999 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -495,6 +495,8 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityMinecartOre.class, "entity_ntm_cart_ore", 172, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMinecartBogie.class, "entity_ntm_cart_bogie", 173, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMagnusCartus.class, "entity_ntm_cart_chungoid", 174, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 175, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 176, this, 250, 1, false); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 038518f9e..fd7babbe2 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -916,6 +916,7 @@ public class ResourceManager { //Carts public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj")); public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); + public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); ////Texture Entities @@ -1184,6 +1185,9 @@ public class ResourceManager { public static final ResourceLocation cart_blank = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_metal_naked.png"); public static final ResourceLocation cart_wood = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_wood.png"); public static final ResourceLocation cart_destroyer_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_destroyer.png"); + public static final ResourceLocation cart_powder_tex = new ResourceLocation(RefStrings.MODID, "textures/blocks/block_gunpowder.png"); + public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); + public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java b/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java index 08ab17790..8f368870f 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java +++ b/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java @@ -2,12 +2,11 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; -import com.hbm.entity.cart.EntityMinecartDestroyer; +import com.hbm.entity.cart.EntityMinecartNTM; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -15,11 +14,12 @@ import net.minecraft.util.Vec3; public class RenderNeoCart extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - this.doRender((EntityMinecart) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + public void doRender(Entity entity, double x, double y, double z, float rot, float interp) { + this.doRender((EntityMinecartNTM) entity, x, y, z, rot, interp); } - public void doRender(EntityMinecart cart, double x, double y, double z, float rot, float interp) { + public void doRender(EntityMinecartNTM cart, double x, double y, double z, float rot, float interp) { + GL11.glPushMatrix(); this.bindEntityTexture(cart); long rand = (long) cart.getEntityId() * 493286711L; @@ -80,17 +80,33 @@ public class RenderNeoCart extends Render { } ResourceManager.cart.renderPart("Bucket"); - - if(cart instanceof EntityMinecartDestroyer) { - bindTexture(ResourceManager.cart_destroyer_tex); - ResourceManager.cart_destroyer.renderAll(); - } + cart.renderSpecialContent(this); GL11.glPopMatrix(); } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.cart_blank; + protected ResourceLocation getEntityTexture(Entity entity) { + return getEntityTexture((EntityMinecartNTM) entity); + } + + protected ResourceLocation getEntityTexture(EntityMinecartNTM entity) { + switch(entity.getBase()) { + case PAINTED: return ResourceManager.cart_metal; + default: + case STEEL: return ResourceManager.cart_blank; + case WOOD: return ResourceManager.cart_wood; + } + } + + //"NoT vIsIbLe" how about you kiss my fucking ass + @Override + public void bindEntityTexture(Entity entity) { + this.bindTexture(this.getEntityTexture(entity)); + } + + @Override + public void bindTexture(ResourceLocation loc) { + this.renderManager.renderEngine.bindTexture(loc); } } diff --git a/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj b/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj new file mode 100644 index 000000000..412f4d25d --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj @@ -0,0 +1,266 @@ +# Blender v2.79 (sub 0) OBJ File: 'cart_powder.blend' +# www.blender.org +o Powder +v -0.500000 0.812500 0.562500 +v 0.500000 0.812500 0.562500 +v -0.500000 0.812500 -0.562500 +v 0.500000 0.812500 -0.562500 +v -0.250000 0.812500 0.562500 +v 0.000000 0.875000 0.562500 +v 0.250000 0.875000 0.562500 +v 0.250000 0.875000 -0.562500 +v 0.000000 0.937500 -0.562500 +v -0.250000 0.875000 -0.562500 +v -0.500000 0.812500 -0.281250 +v -0.500000 0.812500 0.000000 +v -0.500000 0.812500 0.281250 +v 0.500000 0.812500 0.281250 +v 0.500000 0.812500 0.000000 +v 0.500000 0.812500 -0.281250 +v -0.250000 0.875000 0.281250 +v -0.250000 0.937500 0.000000 +v -0.250000 0.875000 -0.281250 +v 0.000000 0.937500 0.281250 +v 0.000000 1.000000 0.000000 +v 0.000000 0.937500 -0.281250 +v 0.250000 0.875000 0.281250 +v 0.250000 0.937500 0.000000 +v 0.250000 0.875000 -0.281250 +vt 0.250000 0.250000 +vt 0.000000 0.250000 +vt 0.250000 -0.000000 +vt 1.000000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 0.500000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.250000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.750000 +vt 0.750000 0.500000 +vt 1.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.000000 -0.000000 +vn 0.2425 0.9701 0.0000 +vn -0.2425 0.9701 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.2371 0.9484 0.2107 +vn 0.2371 0.9484 -0.2107 +vn -0.2371 0.9484 0.2107 +vn -0.2371 0.9484 -0.2107 +vn 0.4386 0.8773 -0.1949 +vn -0.4386 0.8773 0.1949 +vn -0.4386 0.8773 -0.1949 +vn 0.4386 0.8773 0.1949 +s off +f 25/1/1 16/2/1 8/3/1 +f 11/4/2 10/5/2 3/6/2 +f 19/7/2 22/8/2 9/9/2 +f 22/8/1 25/1/1 9/9/1 +f 6/10/3 7/11/3 23/12/3 +f 20/13/4 23/12/4 24/14/4 +f 21/15/5 24/14/5 22/8/5 +f 5/16/6 6/10/6 17/17/6 +f 17/17/6 20/13/6 18/18/6 +f 18/18/7 21/15/7 22/8/7 +f 1/19/3 5/16/3 13/20/3 +f 13/20/2 17/17/2 12/21/2 +f 12/21/2 19/7/2 11/4/2 +f 7/11/1 2/22/1 14/23/1 +f 23/12/1 14/23/1 15/24/1 +f 24/14/8 15/24/8 25/1/8 +f 18/18/6 20/13/6 21/15/6 +f 24/14/4 21/15/4 20/13/4 +f 22/8/7 19/7/7 18/18/7 +f 22/8/5 24/14/5 25/1/5 +f 12/21/9 17/17/9 18/18/9 +f 25/1/1 15/24/1 16/2/1 +f 19/7/10 12/21/10 18/18/10 +f 9/9/2 10/5/2 19/7/2 +f 9/9/1 25/1/1 8/3/1 +f 17/17/6 6/10/6 20/13/6 +f 15/24/11 24/14/11 23/12/11 +f 23/12/4 20/13/4 6/10/4 +f 14/23/1 23/12/1 7/11/1 +f 13/20/6 5/16/6 17/17/6 +f 10/5/2 11/4/2 19/7/2 +f 8/3/1 16/2/1 4/25/1 +o SemtexTop +v -0.531250 1.250000 0.531250 +v -0.531250 1.250000 0.031250 +v -0.031250 1.250000 0.531250 +v -0.031250 1.250000 0.031250 +v -0.531250 1.250000 -0.031250 +v -0.531250 1.250000 -0.531250 +v -0.031250 1.250000 -0.031250 +v -0.031250 1.250000 -0.531250 +v 0.031250 1.250000 0.531250 +v 0.031250 1.250000 0.031250 +v 0.531250 1.250000 0.531250 +v 0.531250 1.250000 0.031250 +v 0.031250 1.250000 -0.031250 +v 0.031250 1.250000 -0.531250 +v 0.531250 1.250000 -0.031250 +v 0.531250 1.250000 -0.531250 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 1.000000 0.000000 +vt 0.500000 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.500000 -0.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vn 0.0000 1.0000 0.0000 +s off +f 27/26/12 28/27/12 29/28/12 +f 31/29/12 32/30/12 33/31/12 +f 35/32/12 36/33/12 37/34/12 +f 39/35/12 40/36/12 41/37/12 +f 27/26/12 26/38/12 28/27/12 +f 31/29/12 30/39/12 32/30/12 +f 35/32/12 34/40/12 36/33/12 +f 39/35/12 38/41/12 40/36/12 +o SemtexSide +v -0.531250 0.875000 0.531250 +v -0.531250 1.250000 0.531250 +v -0.531250 0.875000 0.031250 +v -0.531250 1.250000 0.031250 +v -0.031250 0.312500 0.531250 +v -0.031250 1.250000 0.531250 +v -0.031250 0.312500 0.031250 +v -0.031250 1.250000 0.031250 +v -0.531250 0.875000 -0.031250 +v -0.531250 1.250000 -0.031250 +v -0.531250 0.875000 -0.531250 +v -0.531250 1.250000 -0.531250 +v -0.031250 0.312500 -0.031250 +v -0.031250 1.250000 -0.031250 +v -0.031250 0.312500 -0.531250 +v -0.031250 1.250000 -0.531250 +v 0.031250 0.312500 0.531250 +v 0.031250 1.250000 0.531250 +v 0.031250 0.312500 0.031250 +v 0.031250 1.250000 0.031250 +v 0.531250 0.875000 0.531250 +v 0.531250 1.250000 0.531250 +v 0.531250 0.875000 0.031250 +v 0.531250 1.250000 0.031250 +v 0.031250 0.312500 -0.031250 +v 0.031250 1.250000 -0.031250 +v 0.031250 0.312500 -0.531250 +v 0.031250 1.250000 -0.531250 +v 0.531250 0.875000 -0.031250 +v 0.531250 1.250000 -0.031250 +v 0.531250 0.875000 -0.531250 +v 0.531250 1.250000 -0.531250 +vt 1.000000 1.000000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 1.000000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 0.062500 +vt 0.500000 1.000000 +vt -0.000000 0.625000 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.062500 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt -0.000000 0.625000 +vt 0.500000 0.062500 +vt 1.000000 1.000000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 43/42/13 44/43/13 42/44/13 +f 44/45/14 49/46/14 48/47/14 +f 49/46/15 46/48/15 48/47/15 +f 47/49/16 42/50/16 46/51/16 +f 51/52/13 52/53/13 50/54/13 +f 52/55/14 57/56/14 56/57/14 +f 57/58/15 54/59/15 56/60/15 +f 55/61/16 50/62/16 54/59/16 +f 59/63/13 60/64/13 58/65/13 +f 61/66/14 64/67/14 60/64/14 +f 65/68/15 62/69/15 64/70/15 +f 62/71/16 59/72/16 58/73/16 +f 67/74/13 68/75/13 66/76/13 +f 69/77/14 72/78/14 68/79/14 +f 73/80/15 70/81/15 72/82/15 +f 70/83/16 67/74/16 66/76/16 +f 43/42/13 45/84/13 44/43/13 +f 44/45/14 45/85/14 49/46/14 +f 49/46/15 47/86/15 46/48/15 +f 47/49/16 43/87/16 42/50/16 +f 51/52/13 53/88/13 52/53/13 +f 52/55/14 53/89/14 57/56/14 +f 57/58/15 55/61/15 54/59/15 +f 55/61/16 51/90/16 50/62/16 +f 59/63/13 61/66/13 60/64/13 +f 61/66/14 65/91/14 64/67/14 +f 65/68/15 63/92/15 62/69/15 +f 62/71/16 63/93/16 59/72/16 +f 67/74/13 69/94/13 68/75/13 +f 69/77/14 73/95/14 72/78/14 +f 73/80/15 71/96/15 70/81/15 +f 70/83/16 71/97/16 67/74/16 diff --git a/src/main/resources/assets/hbm/textures/items/cart.wood.png b/src/main/resources/assets/hbm/textures/items/cart.wood.png index 170b3718b..83504bdec 100644 Binary files a/src/main/resources/assets/hbm/textures/items/cart.wood.png and b/src/main/resources/assets/hbm/textures/items/cart.wood.png differ diff --git a/src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png b/src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png new file mode 100644 index 000000000..bf1a1364d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png differ