From 3eb7d90c8981b2a0dfbf711ce8b338c55e5323fe Mon Sep 17 00:00:00 2001 From: Cricket Date: Tue, 23 Dec 2014 20:16:31 -0500 Subject: [PATCH] Just pushing my work so far --- .../java/com/cricketcraft/chisel/Chisel.java | 27 ++-- .../chisel/block/BlockPresent.java | 140 ++++++++---------- .../block/tileentity/TileEntityPresent.java | 15 +- .../render/item/ItemPresentRenderer.java | 17 ++- .../client/render/tile/RenderPresent.java | 32 +--- .../cricketcraft/chisel/init/ModBlocks.java | 6 +- .../cricketcraft/chisel/item/ItemChisel.java | 18 +-- .../chisel/proxy/ClientProxy.java | 23 +-- 8 files changed, 117 insertions(+), 161 deletions(-) diff --git a/src/main/java/com/cricketcraft/chisel/Chisel.java b/src/main/java/com/cricketcraft/chisel/Chisel.java index a7337a28..57e9dd99 100644 --- a/src/main/java/com/cricketcraft/chisel/Chisel.java +++ b/src/main/java/com/cricketcraft/chisel/Chisel.java @@ -1,15 +1,5 @@ package com.cricketcraft.chisel; -import java.io.File; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.config.Configuration; - import com.cricketcraft.chisel.block.BlockCarvable; import com.cricketcraft.chisel.block.tileentity.TileEntityAutoChisel; import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; @@ -30,7 +20,6 @@ import com.cricketcraft.chisel.proxy.CommonProxy; import com.cricketcraft.chisel.utils.General; import com.cricketcraft.chisel.world.GeneratorLimestone; import com.cricketcraft.chisel.world.GeneratorMarble; - import cpw.mods.fml.client.event.ConfigChangedEvent; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; @@ -38,12 +27,8 @@ import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLInterModComms; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent; +import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; @@ -51,6 +36,15 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry.Type; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.config.Configuration; + +import java.io.File; @Mod(modid = Chisel.MOD_ID, name = Chisel.MOD_NAME, version = Chisel.VERSION, guiFactory = "com.cricketcraft.chisel.client.gui.GuiFactory", dependencies = "after:ForgeMultipart;") @@ -183,7 +177,6 @@ public class Chisel proxy.init(); MinecraftForge.EVENT_BUS.register(this); - MinecraftForge.EVENT_BUS.register(new ChiselLeftClick()); FMLCommonHandler.instance().bus().register(instance); FMLInterModComms.sendMessage("Waila", "register", "com.cricketcraft.chisel.Waila.register"); diff --git a/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java b/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java index b51caff4..6ccc3022 100644 --- a/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java +++ b/src/main/java/com/cricketcraft/chisel/block/BlockPresent.java @@ -1,12 +1,16 @@ package com.cricketcraft.chisel.block; -import java.util.Calendar; -import java.util.Iterator; -import java.util.Random; - +import com.cricketcraft.chisel.Chisel; +import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; +import com.cricketcraft.chisel.carving.CarvableHelper; +import com.cricketcraft.chisel.carving.CarvableVariation; +import com.cricketcraft.chisel.init.ModTabs; +import com.cricketcraft.chisel.inventory.InventoryLargePresent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; +import net.minecraft.block.BlockChest; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -20,38 +24,72 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import com.cricketcraft.chisel.Chisel; -import com.cricketcraft.chisel.api.ICarvable; -import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; -import com.cricketcraft.chisel.carving.CarvableHelper; -import com.cricketcraft.chisel.carving.CarvableVariation; -import com.cricketcraft.chisel.init.ModTabs; -import com.cricketcraft.chisel.inventory.InventoryLargePresent; +import java.util.Calendar; +import java.util.Iterator; +import java.util.Random; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockPresent extends BlockContainer implements ICarvable { +public class BlockPresent extends BlockChest implements ICarvable { private final Random random = new Random(); - private String textureLocation; + private int type; public CarvableHelper carverHelper; - private boolean isChristmas = true; + public boolean isChristmas; - public BlockPresent() { - super(Material.wood); + public BlockPresent(int type) { + super(1); + this.type = type; carverHelper = new CarvableHelper(); setCreativeTab(ModTabs.tabChiselBlocks); setBlockBounds(0.0625F, 0.0F, 0.0625F, 0.9375F, 0875F, 0.9365F); Calendar calendar = Calendar.getInstance(); - if (calendar.get(2) + 1 == 12 && calendar.get(5) >= 25 && calendar.get(5) <= 26) { - isChristmas = true;//<--- this would have been false before and it lasts for two days :) + if (calendar.get(2) + 1 == 12 || calendar.get(2) + 1 == 1) { + isChristmas = true;//The Christmas Season lasts for december and january + } else { + isChristmas = false; + } + } + + public String getKindOfChest(int type){ + switch (type){ + case 0: + return isChristmas? "textures/blocks/present/presentChest0" : "textures/blocks/present/chest0"; + case 1: + return isChristmas? "textures/blocks/present/presentChest1" : "textures/blocks/present/chest1"; + case 2: + return isChristmas? "textures/blocks/present/presentChest2" : "textures/blocks/present/chest2"; + case 3: + return isChristmas? "textures/blocks/present/presentChest3" : "textures/blocks/present/chest3"; + case 4: + return isChristmas? "textures/blocks/present/presentChest4" : "textures/blocks/present/chest4"; + case 5: + return isChristmas? "textures/blocks/present/presentChest5" : "textures/blocks/present/chest5"; + case 6: + return isChristmas? "textures/blocks/present/presentChest6" : "textures/blocks/present/chest6"; + case 7: + return isChristmas? "textures/blocks/present/presentChest7" : "textures/blocks/present/chest7"; + case 8: + return isChristmas? "textures/blocks/present/presentChest8" : "textures/blocks/present/chest8"; + case 9: + return isChristmas? "textures/blocks/present/presentChest9" : "textures/blocks/present/chest9"; + case 10: + return isChristmas? "textures/blocks/present/presentChest10" : "textures/blocks/present/chest10"; + case 11: + return isChristmas? "textures/blocks/present/presentChest11" : "textures/blocks/present/chest11"; + case 12: + return isChristmas? "textures/blocks/present/presentChest12" : "textures/blocks/present/chest12"; + case 13: + return isChristmas? "textures/blocks/present/presentChest13" : "textures/blocks/present/chest13"; + case 14: + return isChristmas? "textures/blocks/present/presentChest14" : "textures/blocks/present/chest14"; + case 15: + return isChristmas? "textures/blocks/present/presentChest15" : "textures/blocks/present/chest15"; + default: + return null; } } @@ -71,58 +109,6 @@ public class BlockPresent extends BlockContainer implements ICarvable { return true; } - public ResourceLocation getResourceSingle(int metadata) { - if (isChristmas) { - switch (metadata) { - case 0: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxBlack.png"); - case 1: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxBlue.png"); - case 2: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxCyan.png"); - case 3: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxGreen.png"); - case 4: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxOrange.png"); - case 5: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxPink.png"); - case 6: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxPurple.png"); - case 7: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/giftboxYellow.png"); - case 8: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/red.png"); - default: - return null; - } - } else { - switch (metadata) { - case 1: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/present/crate.png"); - default: - return null; - } - } - } - - public ResourceLocation getResourceDouble(int metadata) { - if (isChristmas) { - switch (metadata) { - case 1: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/presentDouble/red.png"); - default: - return null; - } - } else { - switch (metadata) { - case 1: - return new ResourceLocation(Chisel.MOD_ID, "textures/blocks/presentDouble/crate.png"); - default: - return null; - } - } - } - @Override public boolean isOpaqueCube() { return false; @@ -380,7 +366,7 @@ public class BlockPresent extends BlockContainer implements ICarvable { @Override public TileEntity createNewTileEntity(World world, int par2) { - return new TileEntityPresent(); + return new TileEntityPresent(type); } @Override diff --git a/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityPresent.java b/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityPresent.java index 34e52b7a..9ad6750c 100644 --- a/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityPresent.java +++ b/src/main/java/com/cricketcraft/chisel/block/tileentity/TileEntityPresent.java @@ -1,22 +1,23 @@ package com.cricketcraft.chisel.block.tileentity; -import java.util.Iterator; -import java.util.List; - +import com.cricketcraft.chisel.block.BlockPresent; +import com.cricketcraft.chisel.inventory.ContainerPresent; +import com.cricketcraft.chisel.inventory.InventoryLargePresent; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.AxisAlignedBB; -import com.cricketcraft.chisel.block.BlockPresent; -import com.cricketcraft.chisel.inventory.ContainerPresent; -import com.cricketcraft.chisel.inventory.InventoryLargePresent; +import java.util.Iterator; +import java.util.List; public class TileEntityPresent extends TileEntityChest { - public TileEntityPresent() { + public int type; + public TileEntityPresent(int type) { + this.type = type; } @Override diff --git a/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java b/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java index 220a3223..cb1660ca 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/item/ItemPresentRenderer.java @@ -1,21 +1,22 @@ package com.cricketcraft.chisel.client.render.item; +import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.block.BlockPresent; -import net.minecraft.block.Block; +import cpw.mods.fml.client.FMLClientHandler; import net.minecraft.client.model.ModelChest; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; - import org.lwjgl.opengl.GL11; -import com.cricketcraft.chisel.Chisel; - -import cpw.mods.fml.client.FMLClientHandler; - public class ItemPresentRenderer implements IItemRenderer { private final ModelChest model = new ModelChest(); - private final BlockPresent present = new BlockPresent(); + BlockPresent present; + private int meta; + public ItemPresentRenderer(int type){ + present = new BlockPresent(type); + this.meta = type; + } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return type != ItemRenderType.FIRST_PERSON_MAP; @@ -28,7 +29,7 @@ public class ItemPresentRenderer implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - FMLClientHandler.instance().getClient().renderEngine.bindTexture(present.getResourceSingle(item.getItemDamage())); + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation(Chisel.MOD_ID, present.getKindOfChest(meta) + ".png")); switch (type) { case ENTITY: renderBlock(0.0F, 0.0F, 0.0F); diff --git a/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java b/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java index b82043e2..bff58038 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/tile/RenderPresent.java @@ -1,29 +1,21 @@ package com.cricketcraft.chisel.client.render.tile; +import com.cricketcraft.chisel.Chisel; +import com.cricketcraft.chisel.block.BlockPresent; +import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; +import cpw.mods.fml.common.FMLLog; import net.minecraft.block.Block; -import net.minecraft.block.BlockChest; import net.minecraft.client.model.ModelChest; -import net.minecraft.client.model.ModelLargeChest; import net.minecraft.client.renderer.tileentity.TileEntityChestRenderer; import net.minecraft.tileentity.TileEntity; - +import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -import com.cricketcraft.chisel.block.BlockPresent; -import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; - -import cpw.mods.fml.common.FMLLog; - public class RenderPresent extends TileEntityChestRenderer { private ModelChest chest = new ModelChest(); - private ModelChest doubleChest = new ModelLargeChest(); - - //TODO: this will be changed so it actually checks after I have crate textures :) - //private boolean isChristmas = true; public RenderPresent() { - } public void renderTileEntityAt(TileEntityPresent present, double x, double y, double z, float partialTicks) { @@ -49,15 +41,7 @@ public class RenderPresent extends TileEntityChestRenderer { if (present.adjacentChestZNeg == null && present.adjacentChestXNeg == null) { BlockPresent blockPresent = (BlockPresent) present.getWorldObj().getBlock(present.xCoord, present.yCoord, present.zCoord); - ModelChest modelchest; - - if (present.adjacentChestXPos == null && present.adjacentChestZPos == null) { - modelchest = this.chest; - this.bindTexture(blockPresent.getResourceSingle(present.getBlockMetadata())); - } else { - modelchest = this.doubleChest; - this.bindTexture(blockPresent.getResourceDouble(present.getBlockMetadata())); - } + this.bindTexture(new ResourceLocation(Chisel.MOD_ID, blockPresent.getKindOfChest(present.type) + ".png")); GL11.glPushMatrix(); GL11.glEnable(GL12.GL_RESCALE_NORMAL); @@ -114,8 +98,8 @@ public class RenderPresent extends TileEntityChestRenderer { f1 = 1.0F - f1; f1 = 1.0F - f1 * f1 * f1; - modelchest.chestLid.rotateAngleX = -(f1 * (float) Math.PI / 2.0F); - modelchest.renderAll(); + this.chest.chestLid.rotateAngleX = -(f1 * (float) Math.PI / 2.0F); + this.chest.renderAll(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java b/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java index 1ae9b690..1b59cc90 100644 --- a/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java +++ b/src/main/java/com/cricketcraft/chisel/init/ModBlocks.java @@ -6,7 +6,6 @@ import com.cricketcraft.chisel.block.*; import com.cricketcraft.chisel.carving.CarvableHelper; import com.cricketcraft.chisel.carving.CarvableVariation; import com.cricketcraft.chisel.carving.Carving; -import com.cricketcraft.chisel.client.render.item.ItemPresentRenderer; import com.cricketcraft.chisel.item.ItemCarvable; import com.cricketcraft.chisel.item.ItemMarbleSlab; import cpw.mods.fml.common.registry.GameRegistry; @@ -1339,6 +1338,11 @@ public class ModBlocks { } if (Configurations.featureEnabled("chest")) { + for(int x = 0; x < 16; x++){ + present[x] = (BlockPresent) new BlockPresent(x).setHardness(2.0F).setResistance(10.0F).setBlockName("present"); + GameRegistry.registerBlock(present[x], "chest" + x); + Carving.chisel.addVariation("present", present[x], 0, (x + 1)); + } Carving.chisel.addVariation("chest", Blocks.chest, 0, 0); Carving.chisel.registerOre("chest", "chest"); } diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java b/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java index b67ead98..0f21ca4b 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java @@ -1,20 +1,16 @@ package com.cricketcraft.chisel.item; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; - import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ChiselMode; import com.cricketcraft.chisel.api.IChiselMode; -import com.cricketcraft.chisel.carving.CarvableHelper; import com.cricketcraft.chisel.carving.Carving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +import java.util.List; public class ItemChisel extends Item implements IChiselMode { public static Carving carving = Carving.chisel; diff --git a/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java b/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java index 229bf41a..003178f5 100644 --- a/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java +++ b/src/main/java/com/cricketcraft/chisel/proxy/ClientProxy.java @@ -1,21 +1,8 @@ package com.cricketcraft.chisel.proxy; -import net.minecraft.client.renderer.entity.RenderSnowball; -import net.minecraft.item.Item; -import net.minecraftforge.client.MinecraftForgeClient; - import com.cricketcraft.chisel.block.tileentity.TileEntityAutoChisel; import com.cricketcraft.chisel.block.tileentity.TileEntityPresent; -import com.cricketcraft.chisel.client.render.BlockAdvancedMarbleRenderer; -import com.cricketcraft.chisel.client.render.BlockCarpetRenderer; -import com.cricketcraft.chisel.client.render.BlockEldritchRenderer; -import com.cricketcraft.chisel.client.render.BlockMarblePaneRenderer; -import com.cricketcraft.chisel.client.render.BlockMarblePillarRenderer; -import com.cricketcraft.chisel.client.render.BlockMarbleStairsRenderer; -import com.cricketcraft.chisel.client.render.BlockNoCTMRenderer; -import com.cricketcraft.chisel.client.render.BlockRoadLineRenderer; -import com.cricketcraft.chisel.client.render.BlockSnakeStoneRenderer; -import com.cricketcraft.chisel.client.render.BlockTexturedOreRenderer; +import com.cricketcraft.chisel.client.render.*; import com.cricketcraft.chisel.client.render.item.ItemAutoChiselRenderer; import com.cricketcraft.chisel.client.render.item.ItemChiselRenderer; import com.cricketcraft.chisel.client.render.item.ItemPresentRenderer; @@ -26,9 +13,11 @@ import com.cricketcraft.chisel.entity.EntityCloudInABottle; import com.cricketcraft.chisel.entity.EntitySmashingRock; import com.cricketcraft.chisel.init.ModBlocks; import com.cricketcraft.chisel.init.ModItems; - import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.client.renderer.entity.RenderSnowball; +import net.minecraft.item.Item; +import net.minecraftforge.client.MinecraftForgeClient; public class ClientProxy extends CommonProxy { @@ -58,7 +47,9 @@ public class ClientProxy extends CommonProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPresent.class, new RenderPresent()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.autoChisel), new ItemAutoChiselRenderer()); - //MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.present), new ItemPresentRenderer()); + for(int x = 0; x < 16; x++){ + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.present[x]), new ItemPresentRenderer(x)); + } RenderingRegistry.registerEntityRenderingHandler(EntityCloudInABottle.class, new RenderSnowball(ModItems.itemCloudInABottle)); RenderingRegistry.registerEntityRenderingHandler(EntityBallOMoss.class, new RenderSnowball(ModItems.itemBallOMoss));