diff --git a/build.gradle b/build.gradle index 7f20ac7a7..ab61651e8 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { apply plugin: 'forge' -version = "1.8-0.0.1" +version = "1.7.10-0.0.1" group = "ellpeck.someprettyrandomstuff" archivesBaseName = "SomePrettyRandomStuff" diff --git a/src/main/java/ellpeck/someprettyrandomstuff/SomePrettyRandomStuff.java b/src/main/java/ellpeck/someprettyrandomstuff/SomePrettyRandomStuff.java index 5a58c6b30..63abdb1ed 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/SomePrettyRandomStuff.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/SomePrettyRandomStuff.java @@ -7,16 +7,17 @@ import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import ellpeck.someprettyrandomstuff.achievement.AchievementEvent; import ellpeck.someprettyrandomstuff.achievement.InitAchievements; import ellpeck.someprettyrandomstuff.blocks.InitBlocks; import ellpeck.someprettyrandomstuff.config.ConfigurationHandler; import ellpeck.someprettyrandomstuff.crafting.InitCrafting; +import ellpeck.someprettyrandomstuff.event.InitEvents; import ellpeck.someprettyrandomstuff.gen.OreGen; import ellpeck.someprettyrandomstuff.inventory.GuiHandler; import ellpeck.someprettyrandomstuff.items.InitItems; import ellpeck.someprettyrandomstuff.material.InitItemMaterials; import ellpeck.someprettyrandomstuff.network.PacketHandler; +import ellpeck.someprettyrandomstuff.oredict.OreDictRegistry; import ellpeck.someprettyrandomstuff.proxy.IProxy; import ellpeck.someprettyrandomstuff.tile.TileEntityBase; import ellpeck.someprettyrandomstuff.util.Util; @@ -30,7 +31,6 @@ public class SomePrettyRandomStuff{ @SidedProxy(clientSide = "ellpeck.someprettyrandomstuff.proxy.ClientProxy", serverSide = "ellpeck.someprettyrandomstuff.proxy.ServerProxy") public static IProxy proxy; - @SuppressWarnings("unused") @EventHandler() public void preInit(FMLPreInitializationEvent event){ Util.logInfo("Starting PreInitialization Phase..."); @@ -40,6 +40,7 @@ public class SomePrettyRandomStuff{ InitItemMaterials.init(); InitBlocks.init(); InitItems.init(); + OreDictRegistry.init(); proxy.preInit(); Util.logInfo("PreInitialization Finished."); @@ -51,11 +52,11 @@ public class SomePrettyRandomStuff{ Util.logInfo("Starting Initialization Phase..."); InitAchievements.init(); - InitCrafting.init(); GuiHandler.init(); OreGen.init(); TileEntityBase.init(); - AchievementEvent.init(); + InitEvents.init(); + InitCrafting.init(); proxy.init(); Util.logInfo("Initialization Finished."); diff --git a/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementEvent.java b/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementEvent.java deleted file mode 100644 index 8406db280..000000000 --- a/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementEvent.java +++ /dev/null @@ -1,83 +0,0 @@ -package ellpeck.someprettyrandomstuff.achievement; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.PlayerEvent; -import ellpeck.someprettyrandomstuff.blocks.InitBlocks; -import ellpeck.someprettyrandomstuff.items.InitItems; -import ellpeck.someprettyrandomstuff.items.metalists.TheFoods; -import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; -import ellpeck.someprettyrandomstuff.util.Util; -import net.minecraft.item.Item; - -public class AchievementEvent{ - - public static class SmeltEvent{ - @SubscribeEvent - public void onSmeltedEvent(PlayerEvent.ItemSmeltedEvent event){ - if(event.smelting.getItem() == InitItems.itemFoods && event.smelting.getItemDamage() == TheFoods.BAGUETTE.ordinal()){ - event.player.addStat(InitAchievements.achievementSmeltBaguette, 1); - } - } - } - - public static class CraftEvent{ - @SubscribeEvent - public void onCraftedEvent(PlayerEvent.ItemCraftedEvent event){ - if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.DOUGH.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftDough, 1); - } - if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.MASHED_FOOD.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftMashedFood, 1); - } - if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.KNIFE_BLADE.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftKnifeBlade, 1); - } - if(event.crafting.getItem() == InitItems.itemKnife){ - event.player.addStat(InitAchievements.achievementCraftKnife, 1); - } - if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.SUBMARINE_SANDWICH.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftSubSandwich, 1); - } - if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.PAPER_CONE.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftPaperCone, 1); - } - if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.FRENCH_FRY.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftFrenchFry, 1); - } - if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.FRENCH_FRIES.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftFrenchFries, 1); - } - if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.FISH_N_CHIPS.ordinal()){ - event.player.addStat(InitAchievements.achievementCraftFishNChips, 1); - } - if(event.crafting.getItem()== Item.getItemFromBlock(InitBlocks.blockCompost)){ - event.player.addStat(InitAchievements.achievementCraftCompost, 1); - } - } - } - - public static class PickupEvent{ - @SubscribeEvent - public void onItemPickupEvent(PlayerEvent.ItemPickupEvent event){ - - } - } - - public static class LoginEvent{ - @SubscribeEvent - public void onPlayerLoggingInEvent(PlayerEvent.PlayerLoggedInEvent event){ - - } - } - - public static void init(){ - Util.logInfo("Initializing Events..."); - - FMLCommonHandler.instance().bus().register(new SmeltEvent()); - FMLCommonHandler.instance().bus().register(new CraftEvent()); - FMLCommonHandler.instance().bus().register(new PickupEvent()); - FMLCommonHandler.instance().bus().register(new LoginEvent()); - } - -} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementSPRS.java index a73161caa..457a11d09 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementSPRS.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/achievement/AchievementSPRS.java @@ -7,7 +7,7 @@ import net.minecraft.stats.Achievement; public class AchievementSPRS extends Achievement{ public AchievementSPRS(String name, int x, int y, ItemStack displayStack, Achievement hasToHaveBefore){ - super("achievement." + Util.MOD_ID_LOWER + "." + name, name, x, y, displayStack, hasToHaveBefore); + super("achievement." + Util.MOD_ID_LOWER +"." + Util.MOD_ID_LOWER + "." + name, Util.MOD_ID_LOWER + "." + name, x, y, displayStack, hasToHaveBefore); InitAchievements.achievementList.add(this); if(hasToHaveBefore == null) this.initIndependentStat(); this.registerStat(); diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockCompost.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockCompost.java index 9d2302a50..d41e8b54a 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockCompost.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockCompost.java @@ -1,6 +1,8 @@ package ellpeck.someprettyrandomstuff.blocks; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import ellpeck.someprettyrandomstuff.achievement.InitAchievements; import ellpeck.someprettyrandomstuff.creative.CreativeTab; import ellpeck.someprettyrandomstuff.items.ItemFertilizer; @@ -11,11 +13,17 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; import java.util.List; @@ -25,7 +33,7 @@ public class BlockCompost extends BlockContainerBase implements IName{ public BlockCompost(){ super(Material.wood); this.setCreativeTab(CreativeTab.instance); - this.setBlockName(Util.getNamePrefix() + this.getName()); + this.setBlockName(Util.setUnlocalizedName(this)); this.setHarvestLevel("axe", 0); this.setHardness(1.0F); this.setStepSound(soundTypeWood); @@ -69,9 +77,21 @@ public class BlockCompost extends BlockContainerBase implements IName{ this.setBlockBoundsForItemRender(); } + @Override + public IIcon getIcon(int side, int metadata){ + return this.blockIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconReg){ + this.blockIcon = Blocks.planks.getIcon(0, 0); + } + @Override public void setBlockBoundsForItemRender(){ - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + float f = 1.0F/16.0F; + this.setBlockBounds(f, 0.0F, f, 1.0F-f, 1.0F, 1.0F-f); } @Override @@ -104,4 +124,43 @@ public class BlockCompost extends BlockContainerBase implements IName{ public String getName(){ return "blockCompost"; } + + public static class TheItemBlock extends ItemBlock{ + + private Block theBlock; + + public TheItemBlock(Block block){ + super(block); + this.theBlock = block; + this.setHasSubtypes(false); + this.setMaxDamage(0); + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.uncommon; + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName(); + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { + if(Util.isShiftPressed()){ + list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)theBlock).getName() + ".desc.1")); + //TODO Remove second info + list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)theBlock).getName() + ".desc.2")); + } + else list.add(Util.shiftForInfo()); + } + + @Override + public int getMetadata(int damage){ + return damage; + } + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFeeder.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFeeder.java index 95f8e6b74..6926ad3fc 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFeeder.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFeeder.java @@ -6,23 +6,30 @@ import ellpeck.someprettyrandomstuff.SomePrettyRandomStuff; import ellpeck.someprettyrandomstuff.creative.CreativeTab; import ellpeck.someprettyrandomstuff.inventory.GuiHandler; import ellpeck.someprettyrandomstuff.tile.TileEntityFeeder; +import ellpeck.someprettyrandomstuff.util.IInformation; import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; -public class BlockFeeder extends BlockContainerBase implements IName{ +import java.util.List; + +public class BlockFeeder extends BlockContainerBase implements IName, IInformation{ private IIcon topIcon; public BlockFeeder(){ super(Material.wood); - this.setBlockName(Util.getNamePrefix() + this.getName()); + this.setBlockName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); this.setHarvestLevel("axe", 0); this.setHardness(1.0F); @@ -66,4 +73,44 @@ public class BlockFeeder extends BlockContainerBase implements IName{ public String getName(){ return "blockFeeder"; } + + @Override + public String[] getInformationString(){ + return new String[]{"This is a thing and it is a test and bla bla bla"}; + } + + public static class TheItemBlock extends ItemBlock{ + + private Block theBlock; + + public TheItemBlock(Block block){ + super(block); + this.theBlock = block; + this.setHasSubtypes(false); + this.setMaxDamage(0); + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.rare; + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName(); + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { + if(Util.isShiftPressed()) list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)theBlock).getName() + ".desc")); + else list.add(Util.shiftForInfo()); + } + + @Override + public int getMetadata(int damage){ + return damage; + } + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFurnaceDouble.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFurnaceDouble.java new file mode 100644 index 000000000..4570b3379 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockFurnaceDouble.java @@ -0,0 +1,192 @@ +package ellpeck.someprettyrandomstuff.blocks; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.SomePrettyRandomStuff; +import ellpeck.someprettyrandomstuff.creative.CreativeTab; +import ellpeck.someprettyrandomstuff.inventory.GuiHandler; +import ellpeck.someprettyrandomstuff.tile.TileEntityFurnaceDouble; +import ellpeck.someprettyrandomstuff.util.IName; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import java.util.List; +import java.util.Random; + +public class BlockFurnaceDouble extends BlockContainerBase implements IName{ + + private IIcon topIcon; + private IIcon onIcon; + private IIcon frontIcon; + + public BlockFurnaceDouble(){ + super(Material.wood); + this.setBlockName(Util.setUnlocalizedName(this)); + this.setCreativeTab(CreativeTab.instance); + this.setHarvestLevel("pickaxe", 0); + this.setHardness(1.0F); + this.setStepSound(soundTypeStone); + this.setTickRandomly(true); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z){ + super.onBlockAdded(world, x, y, z); + + if (!world.isRemote){ + Block block1 = world.getBlock(x, y, z-1); + Block block2 = world.getBlock(x, y, z+1); + Block block3 = world.getBlock(x-1, y, z); + Block block4 = world.getBlock(x+1, y, z); + + int metaToSet = 1; + if (block1.func_149730_j() && !block2.func_149730_j()) metaToSet = 0; + if (block2.func_149730_j() && !block1.func_149730_j()) metaToSet = 1; + if (block3.func_149730_j() && !block4.func_149730_j()) metaToSet = 2; + if (block4.func_149730_j() && !block3.func_149730_j()) metaToSet = 3; + + world.setBlockMetadataWithNotify(x, y, z, metaToSet, 2); + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack){ + int rotation = MathHelper.floor_double((double)(player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + + if (rotation == 0) world.setBlockMetadataWithNotify(x, y, z, 0, 2); + if (rotation == 1) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if (rotation == 2) world.setBlockMetadataWithNotify(x, y, z, 1, 2); + if (rotation == 3) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + + @Override + public TileEntity createNewTileEntity(World world, int par2){ + return new TileEntityFurnaceDouble(); + } + + @Override + public int getLightValue(IBlockAccess world, int x, int y, int z){ + return world.getBlockMetadata(x, y, z) > 3 ? 12 : 0; + } + + @Override + public IIcon getIcon(int side, int meta){ + if(side == 1) return this.topIcon; + if(side == meta+2 && meta <= 3) return this.frontIcon; + else if(side == meta-2 && meta > 3) return this.onIcon; + return this.blockIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconReg){ + this.blockIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName()); + this.topIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName() + "Top"); + this.onIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName() + "On"); + this.frontIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName() + "Front"); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){ + if(!world.isRemote){ + TileEntityFurnaceDouble furnace = (TileEntityFurnaceDouble)world.getTileEntity(x, y, z); + if (furnace != null) player.openGui(SomePrettyRandomStuff.instance, GuiHandler.FURNACE_DOUBLE_ID, world, x, y, z); + return true; + } + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand){ + int meta = world.getBlockMetadata(x, y, z); + + if (meta > 3){ + float f = (float)x + 0.5F; + float f1 = (float)y + 0.0F + rand.nextFloat() * 6.0F / 16.0F; + float f2 = (float)z + 0.5F; + float f3 = 0.52F; + float f4 = rand.nextFloat() * 0.6F - 0.3F; + + if(meta == 6){ + world.spawnParticle("smoke", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D); + } + if(meta == 7){ + world.spawnParticle("smoke", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D); + } + if(meta == 4){ + world.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D); + } + if(meta == 5){ + world.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D); + } + + for(int i = 0; i < 5; i++){ + world.spawnParticle("smoke", (double)x+0.5F, (double)y + 1.0F, (double)z+0.5F, 0.0D, 0.0D, 0.0D); + } + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int par6){ + this.dropInventory(world, x, y, z); + super.breakBlock(world, x, y, z, block, par6); + } + + @Override + public String getName(){ + return "blockFurnaceDouble"; + } + + public static class TheItemBlock extends ItemBlock{ + + private Block theBlock; + + public TheItemBlock(Block block){ + super(block); + this.theBlock = block; + this.setHasSubtypes(false); + this.setMaxDamage(0); + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.rare; + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName(); + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { + if(Util.isShiftPressed()) list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)theBlock).getName() + ".desc")); + else list.add(Util.shiftForInfo()); + } + + @Override + public int getMetadata(int damage){ + return damage; + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGiantChest.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGiantChest.java index 8ecd9f79a..db6879e77 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGiantChest.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGiantChest.java @@ -12,17 +12,23 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import java.util.List; + public class BlockGiantChest extends BlockContainerBase implements IName{ private IIcon topIcon; public BlockGiantChest(){ super(Material.wood); - this.setBlockName(Util.getNamePrefix() + this.getName()); + this.setBlockName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); this.setHarvestLevel("axe", 0); this.setHardness(1.0F); @@ -66,4 +72,41 @@ public class BlockGiantChest extends BlockContainerBase implements IName{ public String getName(){ return "blockGiantChest"; } + + public static class TheItemBlock extends ItemBlock{ + + private Block theBlock; + + public TheItemBlock(Block block){ + super(block); + this.theBlock = block; + this.setHasSubtypes(false); + this.setMaxDamage(0); + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.uncommon; + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName(); + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { + if(Util.isShiftPressed()) list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)theBlock).getName() + ".desc")); + else list.add(Util.shiftForInfo()); + } + + @Override + public int getMetadata(int damage){ + return damage; + } + } + + } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGrinder.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGrinder.java new file mode 100644 index 000000000..5bfb0411e --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockGrinder.java @@ -0,0 +1,147 @@ +package ellpeck.someprettyrandomstuff.blocks; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.SomePrettyRandomStuff; +import ellpeck.someprettyrandomstuff.creative.CreativeTab; +import ellpeck.someprettyrandomstuff.inventory.GuiHandler; +import ellpeck.someprettyrandomstuff.tile.TileEntityGrinder; +import ellpeck.someprettyrandomstuff.util.IName; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import java.util.List; +import java.util.Random; + +public class BlockGrinder extends BlockContainerBase implements IName{ + + private IIcon topIcon; + private IIcon onIcon; + private IIcon bottomIcon; + + private boolean isDouble; + + public BlockGrinder(boolean isDouble){ + super(Material.wood); + this.isDouble = isDouble; + this.setBlockName(Util.setUnlocalizedName(this)); + this.setCreativeTab(CreativeTab.instance); + this.setHarvestLevel("pickaxe", 0); + this.setHardness(1.0F); + this.setStepSound(soundTypeStone); + this.setTickRandomly(true); + } + + @Override + public TileEntity createNewTileEntity(World world, int par2){ + return new TileEntityGrinder(this.isDouble); + } + + @Override + public int getLightValue(IBlockAccess world, int x, int y, int z){ + return world.getBlockMetadata(x, y, z) == 1 ? 12 : 0; + } + + @Override + public IIcon getIcon(int side, int meta){ + if(side == 1 && meta != 1) return this.topIcon; + if(side == 1) return this.onIcon; + if(side == 0) return this.bottomIcon; + return this.blockIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand){ + int meta = world.getBlockMetadata(x, y, z); + + if (meta == 1){ + for(int i = 0; i < 5; i++){ + double xRand = new Random().nextDouble()/0.75D - 0.5D; + double zRand = new Random().nextDouble()/0.75D - 0.5D; + world.spawnParticle("crit", (double)x+0.4F, (double)y + 0.8F, (double)z+0.4F, xRand, 0.5D, zRand); + } + world.spawnParticle("smoke", (double)x+0.5F, (double)y + 1.0F, (double)z+0.5F, 0.0D, 0.0D, 0.0D); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconReg){ + this.blockIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName()); + this.topIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":blockGrinderTop"); + this.onIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":blockGrinderOn"); + this.bottomIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":blockGrinderBottom"); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){ + if(!world.isRemote){ + TileEntityGrinder grinder = (TileEntityGrinder)world.getTileEntity(x, y, z); + if (grinder != null) player.openGui(SomePrettyRandomStuff.instance, this.isDouble ? GuiHandler.GRINDER_DOUBLE_ID : GuiHandler.GRINDER_ID, world, x, y, z); + return true; + } + return true; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int par6){ + this.dropInventory(world, x, y, z); + super.breakBlock(world, x, y, z, block, par6); + } + + @Override + public String getName(){ + return isDouble ? "blockGrinderDouble" : "blockGrinder"; + } + + public static class TheItemBlock extends ItemBlock{ + + private Block theBlock; + + public TheItemBlock(Block block){ + super(block); + this.theBlock = block; + this.setHasSubtypes(false); + this.setMaxDamage(0); + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return ((BlockGrinder)theBlock).isDouble ? EnumRarity.epic : EnumRarity.rare; + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName(); + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { + if(Util.isShiftPressed()){ + for(int i = 0; i < (((BlockGrinder)theBlock).isDouble ? 3 : 4); i++){ + list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)theBlock).getName() + ".desc." + (i+1))); + } + } + else list.add(Util.shiftForInfo()); + } + + @Override + public int getMetadata(int damage){ + return damage; + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockMisc.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockMisc.java index c6347062a..2843c45ad 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockMisc.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/BlockMisc.java @@ -13,6 +13,7 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -29,7 +30,7 @@ public class BlockMisc extends Block implements IName{ public BlockMisc(){ super(Material.rock); - this.setBlockName(Util.getNamePrefix() + this.getName()); + this.setBlockName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -74,17 +75,22 @@ public class BlockMisc extends Block implements IName{ return "blockMisc"; } - public static class ItemBlockMisc extends ItemBlock{ + public static class TheItemBlock extends ItemBlock{ private Block theBlock; - public ItemBlockMisc(Block block){ + public TheItemBlock(Block block){ super(block); this.theBlock = block; this.setHasSubtypes(true); this.setMaxDamage(0); } + @Override + public EnumRarity getRarity(ItemStack stack){ + return allMiscBlocks[stack.getItemDamage()].rarity; + } + @Override public String getUnlocalizedName(ItemStack stack){ return this.getUnlocalizedName() + allMiscBlocks[stack.getItemDamage()].getName(); diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/InitBlocks.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/InitBlocks.java index 54d718cce..3d8f43b95 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/InitBlocks.java @@ -1,8 +1,5 @@ package ellpeck.someprettyrandomstuff.blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.block.Block; @@ -13,19 +10,32 @@ public class InitBlocks{ public static Block blockFeeder; public static Block blockGiantChest; + public static Block blockGrinder; + public static Block blockGrinderDouble; + public static Block blockFurnaceDouble; + public static void init(){ Util.logInfo("Initializing Blocks..."); blockCompost = new BlockCompost(); - GameRegistry.registerBlock(blockCompost, DefaultItemBlock.class, ((IName)blockCompost).getName()); + Util.register(blockCompost, BlockCompost.TheItemBlock.class); blockMisc = new BlockMisc(); - GameRegistry.registerBlock(blockMisc, BlockMisc.ItemBlockMisc.class, ((IName)blockMisc).getName()); + Util.register(blockMisc, BlockMisc.TheItemBlock.class); blockFeeder = new BlockFeeder(); - GameRegistry.registerBlock(blockFeeder, DefaultItemBlock.class, ((IName)blockFeeder).getName()); + Util.register(blockFeeder, BlockFeeder.TheItemBlock.class); blockGiantChest = new BlockGiantChest(); - GameRegistry.registerBlock(blockGiantChest, DefaultItemBlock.class, ((IName)blockGiantChest).getName()); + Util.register(blockGiantChest, BlockGiantChest.TheItemBlock.class); + + blockGrinder = new BlockGrinder(false); + Util.register(blockGrinder, BlockGrinder.TheItemBlock.class); + + blockGrinderDouble = new BlockGrinder(true); + Util.register(blockGrinderDouble, BlockGrinder.TheItemBlock.class); + + blockFurnaceDouble = new BlockFurnaceDouble(); + Util.register(blockFurnaceDouble, BlockFurnaceDouble.TheItemBlock.class); } } \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/metalists/TheMiscBlocks.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/metalists/TheMiscBlocks.java index 933ec360d..ec7591d08 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/blocks/metalists/TheMiscBlocks.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/metalists/TheMiscBlocks.java @@ -1,18 +1,21 @@ package ellpeck.someprettyrandomstuff.blocks.metalists; import ellpeck.someprettyrandomstuff.util.IName; +import net.minecraft.item.EnumRarity; public enum TheMiscBlocks implements IName{ - QUARTZ_PILLAR("BlackQuartzPillar"), - QUARTZ_CHISELED("BlackQuartzChiseled"), - QUARTZ("BlackQuartz"), - ORE_QUARTZ("OreBlackQuartz"); + QUARTZ_PILLAR("BlackQuartzPillar", EnumRarity.rare), + QUARTZ_CHISELED("BlackQuartzChiseled", EnumRarity.rare), + QUARTZ("BlackQuartz", EnumRarity.rare), + ORE_QUARTZ("OreBlackQuartz", EnumRarity.epic); public final String name; + public final EnumRarity rarity; - private TheMiscBlocks(String name){ + private TheMiscBlocks(String name, EnumRarity rarity){ this.name = name; + this.rarity = rarity; } @Override diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/ModelBaseSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/ModelBaseSPRS.java new file mode 100644 index 000000000..1704b444e --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/ModelBaseSPRS.java @@ -0,0 +1,14 @@ +package ellpeck.someprettyrandomstuff.blocks.render; + +import net.minecraft.client.model.ModelBase; + +public class ModelBaseSPRS extends ModelBase{ + + public void render(float f){ + + } + + public String getName(){ + return null; + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/ModelCompost.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/ModelCompost.java new file mode 100644 index 000000000..4152cf357 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/ModelCompost.java @@ -0,0 +1,46 @@ +package ellpeck.someprettyrandomstuff.blocks.render; + +import net.minecraft.client.model.ModelRenderer; + +public class ModelCompost extends ModelBaseSPRS{ + + public ModelRenderer floor; + public ModelRenderer wallOne; + public ModelRenderer wallTwo; + public ModelRenderer wallThree; + public ModelRenderer wallFour; + + public ModelCompost(){ + this.textureWidth = 64; + this.textureHeight = 64; + this.wallThree = new ModelRenderer(this, 0, 0); + this.wallThree.setRotationPoint(-6.0F, 8.0F, 6.0F); + this.wallThree.addBox(0.0F, 0.0F, 0.0F, 12, 15, 1, 0.0F); + this.wallFour = new ModelRenderer(this, 0, 0); + this.wallFour.setRotationPoint(-6.0F, 8.0F, -7.0F); + this.wallFour.addBox(0.0F, 0.0F, 0.0F, 12, 15, 1, 0.0F); + this.wallOne = new ModelRenderer(this, 0, 0); + this.wallOne.setRotationPoint(-7.0F, 8.0F, -7.0F); + this.wallOne.addBox(0.0F, 0.0F, 0.0F, 1, 15, 14, 0.0F); + this.wallTwo = new ModelRenderer(this, 0, 0); + this.wallTwo.setRotationPoint(6.0F, 8.0F, -7.0F); + this.wallTwo.addBox(0.0F, 0.0F, 0.0F, 1, 15, 14, 0.0F); + this.floor = new ModelRenderer(this, 0, 0); + this.floor.setRotationPoint(-7.0F, 23.0F, -7.0F); + this.floor.addBox(0.0F, 0.0F, 0.0F, 14, 1, 14, 0.0F); + } + + @Override + public void render(float f){ + this.wallThree.render(f); + this.wallFour.render(f); + this.wallOne.render(f); + this.wallTwo.render(f); + this.floor.render(f); + } + + @Override + public String getName(){ + return "modelCompost"; + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/RenderItems.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/RenderItems.java new file mode 100644 index 000000000..40fa7e57f --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/RenderItems.java @@ -0,0 +1,74 @@ +package ellpeck.someprettyrandomstuff.blocks.render; + +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; + +public class RenderItems implements IItemRenderer{ + + ModelBaseSPRS theModel; + ResourceLocation theTexture; + + public RenderItems(ModelBaseSPRS model){ + this.theModel = model; + this.theTexture = new ResourceLocation(Util.MOD_ID_LOWER, "textures/blocks/models/" + this.theModel.getName() + ".png"); + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type){ + return true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper){ + return true; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data){ + switch(type){ + case INVENTORY: + GL11.glPushMatrix(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.5F, -1.27F, 0.5F); + Minecraft.getMinecraft().renderEngine.bindTexture(theTexture); + theModel.render(0.0625F); + GL11.glPopMatrix(); + break; + + case EQUIPPED: + GL11.glPushMatrix(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.6F, -1.2F, -0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(theTexture); + theModel.render(0.0625F); + GL11.glPopMatrix(); + break; + + case EQUIPPED_FIRST_PERSON: + GL11.glPushMatrix(); + GL11.glScalef(1.2F, 1.2F, 1.2F); + GL11.glRotatef(180, 2F, -0F, 0.1F); + GL11.glTranslatef(1.5F, -1.2F, -0.3F); + Minecraft.getMinecraft().renderEngine.bindTexture(theTexture); + theModel.render(0.0625F); + GL11.glPopMatrix(); + break; + + default: + GL11.glPushMatrix(); + GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, -1.27F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(theTexture); + theModel.render(0.0625F); + GL11.glPopMatrix(); + break; + } + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/RenderTileEntity.java b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/RenderTileEntity.java new file mode 100644 index 000000000..a6cf9c312 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/blocks/render/RenderTileEntity.java @@ -0,0 +1,28 @@ +package ellpeck.someprettyrandomstuff.blocks.render; + +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +public class RenderTileEntity extends TileEntitySpecialRenderer{ + + ModelBaseSPRS theModel; + + public RenderTileEntity(ModelBaseSPRS model){ + this.theModel = model; + } + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5){ + GL11.glPushMatrix(); + GL11.glTranslatef((float)x+0.5F, (float)y-0.5F, (float)z+0.5F); + GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, -2.0F, 0.0F); + this.bindTexture(new ResourceLocation(Util.MOD_ID_LOWER, "textures/blocks/models/" + this.theModel.getName() + ".png")); + theModel.render(0.0625F); + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigValues.java b/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigValues.java index 0664203d3..fa8dbc600 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigValues.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigValues.java @@ -10,6 +10,12 @@ public class ConfigValues{ public static boolean[] enabledMiscRecipes = new boolean[TheMiscItems.values().length]; public static boolean enableCompostRecipe; public static boolean enableKnifeRecipe; + public static boolean enableCrusherRecipe; + public static boolean enableCrusherDoubleRecipe; + public static boolean enableFurnaceDoubleRecipe; + public static boolean enableGiantChestRecipe; + public static boolean enableFeederRecipe; + public static boolean enableCrafterRecipe; public static int tileEntityCompostAmountNeededToConvert; public static int tileEntityCompostConversionTimeNeeded; @@ -25,46 +31,79 @@ public class ConfigValues{ public static float toolEmeraldEfficiency; public static float toolEmeraldDamage; public static int toolEmeraldEnchantability; + public static boolean enableToolEmeraldRecipe; public static int toolObsidianHarvestLevel; public static int toolObsidianMaxUses; public static float toolObsidianEfficiency; public static float toolObsidianDamage; public static int toolObsidianEnchantability; + public static boolean enableToolObsidianRecipe; + public static int furnaceDoubleSmeltTime; + public static int grinderDoubleCrushTime; + public static int grinderCrushTime; + + public static boolean enableExperienceDrop; + public static boolean enableBloodDrop; + public static boolean enableHeartDrop; + public static boolean enableSubstanceDrop; + public static boolean enablePearlShardDrop; + public static boolean enableEmeraldShardDrop; public static void defineConfigValues(Configuration config){ for(int i = 0; i < enabledFoodRecipes.length; i++){ - enabledFoodRecipes[i] = config.getBoolean("isItemFood" + TheFoods.values()[i].name + "CraftingRecipeEnabled", ConfigurationHandler.CATEGORY_FOOD_CRAFTING, true, "If the Crafting Recipe for " + TheFoods.values()[i].name + " is Enabled"); + enabledFoodRecipes[i] = config.getBoolean(TheFoods.values()[i].name, ConfigurationHandler.CATEGORY_FOOD_CRAFTING, true, "If the Crafting Recipe for " + TheFoods.values()[i].name + " is Enabled"); } for(int i = 0; i < enabledMiscRecipes.length; i++){ - enabledMiscRecipes[i] = config.getBoolean("isItemMisc" + TheMiscItems.values()[i].name + "CraftingRecipeEnabled", ConfigurationHandler.CATEGORY_MISC_CRAFTING, true, "If the Crafting Recipe for " + TheMiscItems.values()[i].name + " is Enabled"); + if(i != TheMiscItems.QUARTZ.ordinal()){ + enabledMiscRecipes[i] = config.getBoolean(TheMiscItems.values()[i].name, ConfigurationHandler.CATEGORY_MISC_CRAFTING, true, "If the Crafting Recipe for " + TheMiscItems.values()[i].name + " is Enabled"); + } } - enableCompostRecipe = config.getBoolean("isCompostCraftingRecipeEnabled", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Compost is Enabled"); - enableKnifeRecipe = config.getBoolean("isKnifeCraftingRecipeEnabled", ConfigurationHandler.CATEGORY_ITEMS_CRAFTING, true, "If the Crafting Recipe for the Knife is Enabled"); + //TODO CHANGE TO BE TRUE BY DEFAULT + enableExperienceDrop = config.getBoolean("Solidified Experience", ConfigurationHandler.CATEGORY_MOB_DROPS, false, "If the Solidified Experience drops from Mobs"); + enableBloodDrop = config.getBoolean("Blood Fragments", ConfigurationHandler.CATEGORY_MOB_DROPS, false, "If the Blood Fragments drop from Mobs"); + enableHeartDrop = config.getBoolean("Heart Parts", ConfigurationHandler.CATEGORY_MOB_DROPS, false, "If the Heart Parts drop from Mobs"); + enableSubstanceDrop = config.getBoolean("Unknown Substance", ConfigurationHandler.CATEGORY_MOB_DROPS, false, "If the Unknown Substance drops from Mobs"); + enablePearlShardDrop = config.getBoolean("Ender Pearl Shard", ConfigurationHandler.CATEGORY_MOB_DROPS, false, "If the Ender Pearl Shard drops from Mobs"); + enableEmeraldShardDrop = config.getBoolean("Emerald Shard", ConfigurationHandler.CATEGORY_MOB_DROPS, false, "If the Emerald Shard drops from Mobs"); - tileEntityCompostAmountNeededToConvert = config.getInt("tileEntityCompostAmountNeededToConvert", ConfigurationHandler.CATEGORY_COMPOST_VALUES, 10, 1, 64, "How many items are needed in the Compost to convert to Fertilizer"); - tileEntityCompostConversionTimeNeeded = config.getInt("tileEntityCompostConversionTimeNeeded", ConfigurationHandler.CATEGORY_COMPOST_VALUES, 1000, 30, 10000, "How long the Compost needs to convert to Fertilizer"); + enableCompostRecipe = config.getBoolean("Compost", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Compost is Enabled"); + enableKnifeRecipe = config.getBoolean("Knife", ConfigurationHandler.CATEGORY_ITEMS_CRAFTING, true, "If the Crafting Recipe for the Knife is Enabled"); + enableCrusherDoubleRecipe = config.getBoolean("Double Crusher", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Double Crusher is Enabled"); + enableCrusherRecipe = config.getBoolean("Crusher", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Crusher is Enabled"); + enableFurnaceDoubleRecipe = config.getBoolean("Double Furnace", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Double Furnace is Enabled"); + enableGiantChestRecipe = config.getBoolean("Giant Chest", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Giant Chest is Enabled"); + enableFeederRecipe = config.getBoolean("Feeder", ConfigurationHandler.CATEGORY_BLOCKS_CRAFTING, true, "If the Crafting Recipe for the Feeder is Enabled"); + enableCrafterRecipe = config.getBoolean("Crafting Table On A Stick", ConfigurationHandler.CATEGORY_ITEMS_CRAFTING, true, "If the Crafting Recipe for the Crafting Table On A Stick is Enabled"); - tileEntityFeederReach = config.getInt("tileEntityFeederReach", ConfigurationHandler.CATEGORY_FEEDER_VALUES, 5, 1, 20, "The Radius of Action of the Feeder"); - tileEntityFeederTimeNeeded = config.getInt("tileEntityFeederTimeNeeded", ConfigurationHandler.CATEGORY_FEEDER_VALUES, 100, 50, 5000, "The time spent between feeding animals with the Feeder"); - tileEntityFeederThreshold = config.getInt("tileEntityFeederThreshold", ConfigurationHandler.CATEGORY_FEEDER_VALUES, 30, 3, 500, "How many animals need to be in the area for the Feeder to stop"); + tileEntityCompostAmountNeededToConvert = config.getInt("Compost: Amount Needed To Convert", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 10, 1, 64, "How many items are needed in the Compost to convert to Fertilizer"); + tileEntityCompostConversionTimeNeeded = config.getInt("Compost: Conversion Time Needed", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 1000, 30, 10000, "How long the Compost needs to convert to Fertilizer"); - itemKnifeMaxDamage = config.getInt("itemKnifeMaxDamage", ConfigurationHandler.CATEGORY_ITEM_DAMAGE_VALUES, 100, 5, 5000, "How often the Knife can be crafted with"); + tileEntityFeederReach = config.getInt("Feeder: Reach", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 5, 1, 20, "The Radius of Action of the Feeder"); + tileEntityFeederTimeNeeded = config.getInt("Feeder: Time Needed", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 100, 50, 5000, "The time spent between feeding animals with the Feeder"); + tileEntityFeederThreshold = config.getInt("Feeder: Threshold", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 30, 3, 500, "How many animals need to be in the area for the Feeder to stop"); + + itemKnifeMaxDamage = config.getInt("Knife: Max Uses", ConfigurationHandler.CATEGORY_TOOL_VALUES, 100, 5, 5000, "How often the Knife can be crafted with"); - toolEmeraldHarvestLevel = config.getInt("toolEmeraldHarvestLevel", ConfigurationHandler.CATEGORY_TOOL_VALUES, 3, 0, 3, "What Harvest Level Emerald Tools have (0 = Wood, 1 = Stone, 2 = Iron, 3 = Diamond)"); - toolEmeraldMaxUses = config.getInt("toolEmeraldMaxUses", ConfigurationHandler.CATEGORY_TOOL_VALUES, 2000, 50, 10000, "How often Emerald Tools can be used"); - toolEmeraldEfficiency = config.getFloat("toolEmeraldEfficiency", ConfigurationHandler.CATEGORY_TOOL_VALUES, 9.0F, 1.0F, 20.0F, "How fast Emerald Tools are"); - toolEmeraldDamage = config.getFloat("toolEmeraldDamage", ConfigurationHandler.CATEGORY_TOOL_VALUES, 5.0F, 0.1F, 50.0F, "How much damage an Emerald Tool deals"); - toolEmeraldEnchantability = config.getInt("toolEmeraldEnchantability", ConfigurationHandler.CATEGORY_TOOL_VALUES, 15, 1, 30, "How enchantable an Emerald Tool is"); + toolEmeraldHarvestLevel = config.getInt("Emerald: Harvest Level", ConfigurationHandler.CATEGORY_TOOL_VALUES, 3, 0, 3, "What Harvest Level Emerald Tools have (0 = Wood, 1 = Stone, 2 = Iron, 3 = Diamond)"); + toolEmeraldMaxUses = config.getInt("Emerald: Max Uses", ConfigurationHandler.CATEGORY_TOOL_VALUES, 2000, 50, 10000, "How often Emerald Tools can be used"); + toolEmeraldEfficiency = config.getFloat("Emerald: Efficiency", ConfigurationHandler.CATEGORY_TOOL_VALUES, 9.0F, 1.0F, 20.0F, "How fast Emerald Tools are"); + toolEmeraldDamage = config.getFloat("Emerald: Damage", ConfigurationHandler.CATEGORY_TOOL_VALUES, 5.0F, 0.1F, 50.0F, "How much damage an Emerald Tool deals"); + toolEmeraldEnchantability = config.getInt("Emerald: Enchantability", ConfigurationHandler.CATEGORY_TOOL_VALUES, 15, 1, 30, "How enchantable an Emerald Tool is"); + enableToolEmeraldRecipe = config.getBoolean("Emerald Tools", ConfigurationHandler.CATEGORY_ITEMS_CRAFTING, true, "If the Crafting Recipe for Emerald Tools is Enabled"); - toolObsidianHarvestLevel = config.getInt("toolObsidianHarvestLevel", ConfigurationHandler.CATEGORY_TOOL_VALUES, 3, 0, 3, "What Harvest Level Obsidian Tools have (0 = Wood, 1 = Stone, 2 = Iron, 3 = Diamond)"); - toolObsidianMaxUses = config.getInt("toolObsidianMaxUses", ConfigurationHandler.CATEGORY_TOOL_VALUES, 8000, 50, 20000, "How often Obsidian Tools can be used"); - toolObsidianEfficiency = config.getFloat("toolObsidianEfficiency", ConfigurationHandler.CATEGORY_TOOL_VALUES, 4.0F, 1.0F, 20.0F, "How fast Obsidian Tools are"); - toolObsidianDamage = config.getFloat("toolObsidianDamage", ConfigurationHandler.CATEGORY_TOOL_VALUES, 2.0F, 0.1F, 50.0F, "How much damage an Obsidian Tool deals"); - toolObsidianEnchantability = config.getInt("toolObsidianEnchantability", ConfigurationHandler.CATEGORY_TOOL_VALUES, 15, 1, 30, "How enchantable an Obsidian Tool is"); + toolObsidianHarvestLevel = config.getInt("Obsidian: Harvest Level", ConfigurationHandler.CATEGORY_TOOL_VALUES, 3, 0, 3, "What Harvest Level Obsidian Tools have (0 = Wood, 1 = Stone, 2 = Iron, 3 = Diamond)"); + toolObsidianMaxUses = config.getInt("Obsidian: Max Uses", ConfigurationHandler.CATEGORY_TOOL_VALUES, 8000, 50, 20000, "How often Obsidian Tools can be used"); + toolObsidianEfficiency = config.getFloat("Obsidian: Efficiency", ConfigurationHandler.CATEGORY_TOOL_VALUES, 4.0F, 1.0F, 20.0F, "How fast Obsidian Tools are"); + toolObsidianDamage = config.getFloat("Obsidian: Damage", ConfigurationHandler.CATEGORY_TOOL_VALUES, 2.0F, 0.1F, 50.0F, "How much damage an Obsidian Tool deals"); + toolObsidianEnchantability = config.getInt("Obsidian: Enchantability", ConfigurationHandler.CATEGORY_TOOL_VALUES, 15, 1, 30, "How enchantable an Obsidian Tool is"); + enableToolObsidianRecipe = config.getBoolean("Obsidian Tools", ConfigurationHandler.CATEGORY_ITEMS_CRAFTING, true, "If the Crafting Recipe for Obsidian Tools is Enabled"); + grinderCrushTime = config.getInt("Crusher: Crush Time", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 200, 10, 1000, "How long the Crusher takes to crush an item"); + grinderDoubleCrushTime = config.getInt("Double Crusher: Crush Time", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 300, 10, 1000, "How long the Double Crusher takes to crush an item"); + furnaceDoubleSmeltTime = config.getInt("Double Furnace: Smelt Time", ConfigurationHandler.CATEGORY_MACHINE_VALUES, 300, 10, 1000, "How long the Double Furnace takes to crush an item"); } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigurationHandler.java b/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigurationHandler.java index d9ed016b9..4db277db2 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigurationHandler.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/config/ConfigurationHandler.java @@ -9,14 +9,12 @@ public class ConfigurationHandler{ public static final String CATEGORY_FOOD_CRAFTING = "food crafting"; public static final String CATEGORY_MISC_CRAFTING = "misc crafting"; - public static final String CATEGORY_COMPOST_VALUES = "compost values"; public static final String CATEGORY_BLOCKS_CRAFTING = "block crafting"; public static final String CATEGORY_ITEMS_CRAFTING = "items crafting"; - public static final String CATEGORY_ITEM_DAMAGE_VALUES = "item damage values"; public static final String CATEGORY_TOOL_VALUES = "tool values"; - public static final String CATEGORY_FEEDER_VALUES = "feeder values"; + public static final String CATEGORY_MACHINE_VALUES = "machine values"; + public static final String CATEGORY_MOB_DROPS = "mob drops"; - public static Configuration config; public static void init(File configFile){ Util.logInfo("Grabbing Configurations..."); diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/BlockCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/BlockCrafting.java new file mode 100644 index 000000000..958e823a8 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/BlockCrafting.java @@ -0,0 +1,65 @@ +package ellpeck.someprettyrandomstuff.crafting; + +import cpw.mods.fml.common.registry.GameRegistry; +import ellpeck.someprettyrandomstuff.blocks.InitBlocks; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class BlockCrafting{ + + public static void init(){ + + //Compost + if(ConfigValues.enableCompostRecipe) + GameRegistry.addRecipe(new ItemStack(InitBlocks.blockCompost), + "W W", "WFW", "WWW", + 'W', new ItemStack(Blocks.planks, 1, Util.WILDCARD), + 'F', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.MASHED_FOOD.ordinal())); + + //Crusher + if(ConfigValues.enableCrusherRecipe) + GameRegistry.addRecipe(new ItemStack(InitBlocks.blockGrinder), + "CFC", "CPC", "CFC", + 'C', new ItemStack(Blocks.cobblestone), + 'P', new ItemStack(Blocks.piston), + 'F', new ItemStack(Items.flint)); + + //Double Crusher + if(ConfigValues.enableCrusherDoubleRecipe) + GameRegistry.addRecipe(new ItemStack(InitBlocks.blockGrinderDouble), + "CCC", "RPR", "CCC", + 'C', new ItemStack(Blocks.cobblestone), + 'R', new ItemStack(InitBlocks.blockGrinder), + 'P', new ItemStack(Blocks.piston)); + + //Double Furnace + if(ConfigValues.enableFurnaceDoubleRecipe) + GameRegistry.addRecipe(new ItemStack(InitBlocks.blockFurnaceDouble), + "CCC", "RPR", "CCC", + 'C', new ItemStack(Blocks.cobblestone), + 'R', new ItemStack(Blocks.furnace), + 'P', new ItemStack(Items.brick)); + + //Feeder + if(ConfigValues.enableFeederRecipe) + GameRegistry.addRecipe(new ItemStack(InitBlocks.blockFeeder), + "WCW", "WHW", "WCW", + 'W', new ItemStack(Blocks.planks, 1, Util.WILDCARD), + 'C', new ItemStack(Items.golden_carrot), + 'H', new ItemStack(Items.wheat)); + + //Giant Chest + if(ConfigValues.enableGiantChestRecipe) + GameRegistry.addRecipe(new ItemStack(InitBlocks.blockGiantChest), + "CWC", "W W", "CWC", + 'C', new ItemStack(Blocks.chest), + 'W', new ItemStack(Blocks.planks, 1, Util.WILDCARD)); + + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/FoodCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/FoodCrafting.java new file mode 100644 index 000000000..29c03e1c2 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/FoodCrafting.java @@ -0,0 +1,132 @@ +package ellpeck.someprettyrandomstuff.crafting; + +import cpw.mods.fml.common.registry.GameRegistry; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheFoods; +import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class FoodCrafting{ + + public static void init(){ + + //Baguette + if(ConfigValues.enabledFoodRecipes[TheFoods.BAGUETTE.ordinal()]) + GameRegistry.addSmelting(new ItemStack(InitItems.itemMisc, 1, + TheMiscItems.DOUGH.ordinal()), new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal()), 1F); + + //Pizza + if(ConfigValues.enabledFoodRecipes[TheFoods.PIZZA.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.PIZZA.ordinal()), + "HKH", "MCF", " D ", + 'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), + 'M', new ItemStack(Blocks.brown_mushroom), + 'C', new ItemStack(Items.carrot), + 'F', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), + 'K', new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD), + 'H', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal())); + + //Hamburger + if(ConfigValues.enabledFoodRecipes[TheFoods.HAMBURGER.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.HAMBURGER.ordinal()), + "KT ", "CB ", " T ", + 'T', new ItemStack(InitItems.itemFoods, 1, TheFoods.TOAST.ordinal()), + 'C', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), + 'K', new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD), + 'B', new ItemStack(Items.cooked_beef)); + + //Big Cookie + if(ConfigValues.enabledFoodRecipes[TheFoods.BIG_COOKIE.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.BIG_COOKIE.ordinal()), + "DCD", "CDC", "DCD", + 'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), + 'C', new ItemStack(Items.dye, 1, 3)); + + //Sub Sandwich + if(ConfigValues.enabledFoodRecipes[TheFoods.SUBMARINE_SANDWICH.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.SUBMARINE_SANDWICH.ordinal()), + "KCP", "FB ", "PCP", + 'P', new ItemStack(Items.paper), + 'C', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), + 'F', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), + 'B', new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal()), + 'K', new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD)); + + //French Fry + if(ConfigValues.enabledFoodRecipes[TheFoods.FRENCH_FRY.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal()), + new ItemStack(Items.baked_potato), + new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD)); + + //French Fries + if(ConfigValues.enabledFoodRecipes[TheFoods.FRENCH_FRIES.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRIES.ordinal()), + "FFF", " P ", + 'P', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), + 'F', new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal())); + + //Fish N Chips + if(ConfigValues.enabledFoodRecipes[TheFoods.FISH_N_CHIPS.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FISH_N_CHIPS.ordinal()), + "FIF", " P ", + 'I', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), + 'P', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), + 'F', new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal())); + + //Cheese + if(ConfigValues.enabledFoodRecipes[TheFoods.CHEESE.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), + new ItemStack(Items.milk_bucket)); + + //Pumpkin Stew + if(ConfigValues.enabledFoodRecipes[TheFoods.PUMPKIN_STEW.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.PUMPKIN_STEW.ordinal()), + "P", "B", + 'P', new ItemStack(Blocks.pumpkin), + 'B', new ItemStack(Items.bowl)); + + //Carrot Juice + if(ConfigValues.enabledFoodRecipes[TheFoods.CARROT_JUICE.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CARROT_JUICE.ordinal()), + new ItemStack(Items.glass_bottle), new ItemStack(Items.carrot), new ItemStack(InitItems.itemKnife)); + + //Spaghetti + if(ConfigValues.enabledFoodRecipes[TheFoods.SPAGHETTI.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.SPAGHETTI.ordinal()), + "NNN", " B ", + 'N', new ItemStack(InitItems.itemFoods, 1, TheFoods.NOODLE.ordinal()), + 'B', new ItemStack(Items.bowl)); + + //Noodle + if(ConfigValues.enabledFoodRecipes[TheFoods.NOODLE.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.NOODLE.ordinal()), + new ItemStack(Items.wheat), new ItemStack(InitItems.itemKnife)); + + //Chocolate + if(ConfigValues.enabledFoodRecipes[TheFoods.CHOCOLATE.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CHOCOLATE.ordinal()), + "C C", "CMC", "C C", + 'C', new ItemStack(Items.dye, 1, 3), + 'M', new ItemStack(Items.milk_bucket)); + + //Chocolate Cake + if(ConfigValues.enabledFoodRecipes[TheFoods.CHOCOLATE_CAKE.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CHOCOLATE_CAKE.ordinal()), + "MMM", "CCC", "EDS", + 'M', new ItemStack(Items.milk_bucket), + 'E', new ItemStack(Items.egg), + 'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), + 'S', new ItemStack(Items.sugar), + 'C', new ItemStack(Items.dye, 1, 3)); + + //Toast + if(ConfigValues.enabledFoodRecipes[TheFoods.TOAST.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 2, TheFoods.TOAST.ordinal()), + new ItemStack(Items.bread)); + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/GrinderCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/GrinderCrafting.java new file mode 100644 index 000000000..439470d9c --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/GrinderCrafting.java @@ -0,0 +1,54 @@ +package ellpeck.someprettyrandomstuff.crafting; + +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheDusts; +import ellpeck.someprettyrandomstuff.recipe.GrinderRecipes; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; +import org.apache.logging.log4j.Level; + +import java.util.ArrayList; + +public class GrinderCrafting{ + + public static void init(){ + + GrinderRecipes.instance().registerRecipe(new ItemStack(Blocks.iron_ore), new ItemStack(InitItems.itemDust, 2, TheDusts.IRON.ordinal()), new ItemStack(InitItems.itemDust, 1, TheDusts.GOLD.ordinal()), 10); + GrinderRecipes.instance().registerRecipe(new ItemStack(Blocks.redstone_ore), new ItemStack(Items.redstone, 10), null, 0); + GrinderRecipes.instance().registerRecipe(new ItemStack(Blocks.lapis_ore), new ItemStack(Items.dye, 15, 4), null, 0); + + registerFinally(); + } + + public static void registerFinally(){ + String[] names = OreDictionary.getOreNames(); + for(String name : names){ + if(name.contains("ore")){ + String nameOfOre = name.substring(3); + ArrayList allDusts = OreDictionary.getOres("dust" + nameOfOre); + if(allDusts != null && allDusts.size() > 0){ + ItemStack output = allDusts.get(0); + output.stackSize = 2; + ArrayList allOresOfName = OreDictionary.getOres(name); + if(allOresOfName != null && allOresOfName.size() > 0){ + for(ItemStack input : allOresOfName){ + if(GrinderRecipes.instance().getOutput(input, false) == null){ + + //Special Second Outputs + if(name.equals("oreNickel")) GrinderRecipes.instance().registerRecipe(input, output, OreDictionary.getOres("dustPlatinum").get(0), 10); + + else GrinderRecipes.instance().registerRecipe(input, output, null, 0); + } + } + } + else Util.SPRS_LOGGER.log(Level.ERROR, "Couldn't register Crusher Recipe! Didn't find Items registered as '" + name + "'! This shouldn't happen as there is something registered as '" + name + "' that doesn't exist!"); + } + else Util.SPRS_LOGGER.log(Level.WARN, "Couldn't register Crusher Recipe! An Item with OreDictionary Registry 'dust" + nameOfOre + "' doesn't exist! This is not an Error, just a bit sad :("); + } + + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/InitCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/InitCrafting.java index 3c5580311..e644b2f0e 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/crafting/InitCrafting.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/InitCrafting.java @@ -1,166 +1,19 @@ package ellpeck.someprettyrandomstuff.crafting; -import cpw.mods.fml.common.registry.GameRegistry; -import ellpeck.someprettyrandomstuff.blocks.InitBlocks; -import ellpeck.someprettyrandomstuff.config.ConfigValues; -import ellpeck.someprettyrandomstuff.items.InitItems; -import ellpeck.someprettyrandomstuff.items.metalists.TheFoods; -import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; import ellpeck.someprettyrandomstuff.util.Util; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; public class InitCrafting { public static void init(){ Util.logInfo("Initializing Crafting Recipes..."); - //Baguette - if(ConfigValues.enabledFoodRecipes[TheFoods.BAGUETTE.ordinal()]) - GameRegistry.addSmelting(new ItemStack(InitItems.itemMisc, 1, - TheMiscItems.DOUGH.ordinal()), new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal()), 1F); + ItemCrafting.init(); + BlockCrafting.init(); + MiscCrafting.init(); + FoodCrafting.init(); + ToolCrafting.init(); + GrinderCrafting.init(); - //Dough - if(ConfigValues.enabledMiscRecipes[TheMiscItems.DOUGH.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 2, TheMiscItems.DOUGH.ordinal()), - new ItemStack(Items.wheat), new ItemStack(Items.wheat)); - - //Pizza - if(ConfigValues.enabledFoodRecipes[TheFoods.PIZZA.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.PIZZA.ordinal()), - "HKH", "MCF", " D ", - 'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), - 'M', new ItemStack(Blocks.brown_mushroom), - 'C', new ItemStack(Items.carrot), - 'F', new ItemStack(Items.fish, 1, Util.WILDCARD), - 'K', new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD), - 'H', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal())); - - //Hamburger - if(ConfigValues.enabledFoodRecipes[TheFoods.HAMBURGER.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.HAMBURGER.ordinal()), - "KT ", "CBS", " T ", - 'T', new ItemStack(InitItems.itemFoods, 1, TheFoods.TOAST.ordinal()), - 'C', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), - 'S', new ItemStack(Blocks.leaves, 1, Util.WILDCARD), - 'K', new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD), - 'B', new ItemStack(Items.cooked_beef)); - - //Big Cookie - if(ConfigValues.enabledFoodRecipes[TheFoods.BIG_COOKIE.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.BIG_COOKIE.ordinal()), - "DCD", "CDC", "DCD", - 'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), - 'C', new ItemStack(Items.dye, 1, 3)); - - //Sub Sandwich - if(ConfigValues.enabledFoodRecipes[TheFoods.SUBMARINE_SANDWICH.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.SUBMARINE_SANDWICH.ordinal()), - "KCP", "FBS", "PCP", - 'P', new ItemStack(Items.paper), - 'C', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), - 'F', new ItemStack(Items.fish, 1, Util.WILDCARD), - 'B', new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal()), - 'K', new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD), - 'S', new ItemStack(Blocks.leaves, 1, Util.WILDCARD)); - - //Paper Cone - if(ConfigValues.enabledMiscRecipes[TheMiscItems.PAPER_CONE.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), - "P P", " P ", - 'P', new ItemStack(Items.paper)); - - //French Fry - if(ConfigValues.enabledFoodRecipes[TheFoods.FRENCH_FRY.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal()), - new ItemStack(Items.baked_potato), - new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD)); - - //Knife Handle - if(ConfigValues.enabledMiscRecipes[TheMiscItems.KNIFE_HANDLE.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_HANDLE.ordinal()), - new ItemStack(Items.stick), - new ItemStack(Items.slime_ball)); - - //Knife Blade - if(ConfigValues.enabledMiscRecipes[TheMiscItems.KNIFE_BLADE.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_BLADE.ordinal()), - new ItemStack(Items.iron_ingot), - new ItemStack(Items.slime_ball)); - - //Knife - if(ConfigValues.enableKnifeRecipe) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemKnife), - new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_BLADE.ordinal()), - new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_HANDLE.ordinal())); - - //French Fries - if(ConfigValues.enabledFoodRecipes[TheFoods.FRENCH_FRIES.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRIES.ordinal()), - "FFF", " P ", - 'P', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), - 'F', new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal())); - - //Fish N Chips - if(ConfigValues.enabledFoodRecipes[TheFoods.FISH_N_CHIPS.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FISH_N_CHIPS.ordinal()), - "FIF", " P ", - 'I', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), - 'P', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), - 'F', new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal())); - - //Compost - if(ConfigValues.enableCompostRecipe) - GameRegistry.addRecipe(new ItemStack(InitBlocks.blockCompost), - "W W", "WFW", "WWW", - 'W', new ItemStack(Blocks.planks, 1, Util.WILDCARD), - 'F', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.MASHED_FOOD.ordinal())); - - //Cheese - if(ConfigValues.enabledFoodRecipes[TheFoods.CHEESE.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), - new ItemStack(Items.milk_bucket)); - - //Pumpkin Stew - if(ConfigValues.enabledFoodRecipes[TheFoods.PUMPKIN_STEW.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.PUMPKIN_STEW.ordinal()), - "P", "B", - 'P', new ItemStack(Blocks.pumpkin), - 'B', new ItemStack(Items.bowl)); - - //Carrot Juice - if(ConfigValues.enabledFoodRecipes[TheFoods.CARROT_JUICE.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CARROT_JUICE.ordinal()), - new ItemStack(Items.glass_bottle), new ItemStack(Items.carrot), new ItemStack(InitItems.itemKnife)); - - //Spaghetti - if(ConfigValues.enabledFoodRecipes[TheFoods.SPAGHETTI.ordinal()]) - GameRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.SPAGHETTI.ordinal()), - "NNN", "B", - 'N', new ItemStack(InitItems.itemFoods, 1, TheFoods.NOODLE.ordinal()), - 'B', new ItemStack(Items.bowl)); - - //Noodle - if(ConfigValues.enabledFoodRecipes[TheFoods.NOODLE.ordinal()]) - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.NOODLE.ordinal()), - new ItemStack(Items.wheat), new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), new ItemStack(InitItems.itemKnife)); - - //Mashed Food - if(ConfigValues.enabledMiscRecipes[TheMiscItems.MASHED_FOOD.ordinal()]) - initMashedFoodRecipes(); - } - - public static void initMashedFoodRecipes(){ - - for(Object nextIterator : Item.itemRegistry){ - if(nextIterator instanceof ItemFood){ - ItemStack ingredient = new ItemStack((Item)nextIterator, 1, Util.WILDCARD); - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 4, TheMiscItems.MASHED_FOOD.ordinal()), ingredient, ingredient, ingredient, ingredient, new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD)); - } - } } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/ItemCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/ItemCrafting.java new file mode 100644 index 000000000..75781897b --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/ItemCrafting.java @@ -0,0 +1,45 @@ +package ellpeck.someprettyrandomstuff.crafting; + +import cpw.mods.fml.common.registry.GameRegistry; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; + +public class ItemCrafting{ + + public static void init(){ + + //Knife + if(ConfigValues.enableKnifeRecipe) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemKnife), + new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_BLADE.ordinal()), + new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_HANDLE.ordinal())); + + //Crafter on a Stick + if(ConfigValues.enableCrafterRecipe) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemCrafterOnAStick), + new ItemStack(Blocks.crafting_table), + new ItemStack(Items.sign), + new ItemStack(Items.slime_ball)); + + //Mashed Food + if(ConfigValues.enabledMiscRecipes[TheMiscItems.MASHED_FOOD.ordinal()]) + initMashedFoodRecipes(); + + } + + public static void initMashedFoodRecipes(){ + for(Object nextIterator : Item.itemRegistry){ + if(nextIterator instanceof ItemFood){ + ItemStack ingredient = new ItemStack((Item)nextIterator, 1, Util.WILDCARD); + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 4, TheMiscItems.MASHED_FOOD.ordinal()), ingredient, ingredient, ingredient, ingredient, new ItemStack(InitItems.itemKnife, 1, Util.WILDCARD)); + } + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/MiscCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/MiscCrafting.java new file mode 100644 index 000000000..662d56ff7 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/MiscCrafting.java @@ -0,0 +1,39 @@ +package ellpeck.someprettyrandomstuff.crafting; + +import cpw.mods.fml.common.registry.GameRegistry; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class MiscCrafting{ + + public static void init(){ + + //Dough + if(ConfigValues.enabledMiscRecipes[TheMiscItems.DOUGH.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 2, TheMiscItems.DOUGH.ordinal()), + new ItemStack(Items.wheat), new ItemStack(Items.wheat)); + + //Paper Cone + if(ConfigValues.enabledMiscRecipes[TheMiscItems.PAPER_CONE.ordinal()]) + GameRegistry.addRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), + "P P", " P ", + 'P', new ItemStack(Items.paper)); + + //Knife Handle + if(ConfigValues.enabledMiscRecipes[TheMiscItems.KNIFE_HANDLE.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_HANDLE.ordinal()), + new ItemStack(Items.stick), + new ItemStack(Items.leather)); + + //Knife Blade + if(ConfigValues.enabledMiscRecipes[TheMiscItems.KNIFE_BLADE.ordinal()]) + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.KNIFE_BLADE.ordinal()), + new ItemStack(Items.iron_ingot), + new ItemStack(Items.flint)); + + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/crafting/ToolCrafting.java b/src/main/java/ellpeck/someprettyrandomstuff/crafting/ToolCrafting.java new file mode 100644 index 000000000..c7e3d047b --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/crafting/ToolCrafting.java @@ -0,0 +1,79 @@ +package ellpeck.someprettyrandomstuff.crafting; + +import cpw.mods.fml.common.registry.GameRegistry; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.items.InitItems; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class ToolCrafting{ + + public static void init(){ + + if(ConfigValues.enableToolEmeraldRecipe){ + //Pickaxe + GameRegistry.addRecipe(new ItemStack(InitItems.itemPickaxeEmerald), + "EEE", " S ", " S ", + 'E', new ItemStack(Items.emerald), + 'S', new ItemStack(Items.stick)); + + //Sword + GameRegistry.addRecipe(new ItemStack(InitItems.itemSwordEmerald), + "E", "E", "S", + 'E', new ItemStack(Items.emerald), + 'S', new ItemStack(Items.stick)); + + //Axe + GameRegistry.addRecipe(new ItemStack(InitItems.itemAxeEmerald), + "EE", "ES", " S", + 'E', new ItemStack(Items.emerald), + 'S', new ItemStack(Items.stick)); + + //Shovel + GameRegistry.addRecipe(new ItemStack(InitItems.itemShovelEmerald), + "E", "S", "S", + 'E', new ItemStack(Items.emerald), + 'S', new ItemStack(Items.stick)); + + //Hoe + GameRegistry.addRecipe(new ItemStack(InitItems.itemHoeEmerald), + "EE", " S", " S", + 'E', new ItemStack(Items.emerald), + 'S', new ItemStack(Items.stick)); + } + + if(ConfigValues.enableToolObsidianRecipe){ + //Pickaxe + GameRegistry.addRecipe(new ItemStack(InitItems.itemPickaxeObsidian), + "EEE", " S ", " S ", + 'E', new ItemStack(Blocks.obsidian), + 'S', new ItemStack(Items.stick)); + + //Sword + GameRegistry.addRecipe(new ItemStack(InitItems.itemSwordObsidian), + "E", "E", "S", + 'E', new ItemStack(Blocks.obsidian), + 'S', new ItemStack(Items.stick)); + + //Axe + GameRegistry.addRecipe(new ItemStack(InitItems.itemAxeObsidian), + "EE", "ES", " S", + 'E', new ItemStack(Blocks.obsidian), + 'S', new ItemStack(Items.stick)); + + //Shovel + GameRegistry.addRecipe(new ItemStack(InitItems.itemShovelObsidian), + "E", "S", "S", + 'E', new ItemStack(Blocks.obsidian), + 'S', new ItemStack(Items.stick)); + + //Hoe + GameRegistry.addRecipe(new ItemStack(InitItems.itemHoeObsidian), + "EE", " S", " S", + 'E', new ItemStack(Blocks.obsidian), + 'S', new ItemStack(Items.stick)); + } + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/event/CraftEvent.java b/src/main/java/ellpeck/someprettyrandomstuff/event/CraftEvent.java new file mode 100644 index 000000000..9c0f5ad9b --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/event/CraftEvent.java @@ -0,0 +1,46 @@ +package ellpeck.someprettyrandomstuff.event; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent; +import ellpeck.someprettyrandomstuff.achievement.InitAchievements; +import ellpeck.someprettyrandomstuff.blocks.InitBlocks; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheFoods; +import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; +import net.minecraft.item.Item; + +public class CraftEvent{ + @SubscribeEvent + public void onCraftedEvent(PlayerEvent.ItemCraftedEvent event){ + if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.DOUGH.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftDough, 1); + } + if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.MASHED_FOOD.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftMashedFood, 1); + } + if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.KNIFE_BLADE.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftKnifeBlade, 1); + } + if(event.crafting.getItem() == InitItems.itemKnife){ + event.player.addStat(InitAchievements.achievementCraftKnife, 1); + } + if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.SUBMARINE_SANDWICH.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftSubSandwich, 1); + } + if(event.crafting.getItem() == InitItems.itemMisc && event.crafting.getItemDamage() == TheMiscItems.PAPER_CONE.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftPaperCone, 1); + } + if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.FRENCH_FRY.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftFrenchFry, 1); + } + if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.FRENCH_FRIES.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftFrenchFries, 1); + } + if(event.crafting.getItem() == InitItems.itemFoods && event.crafting.getItemDamage() == TheFoods.FISH_N_CHIPS.ordinal()){ + event.player.addStat(InitAchievements.achievementCraftFishNChips, 1); + } + if(event.crafting.getItem()== Item.getItemFromBlock(InitBlocks.blockCompost)){ + event.player.addStat(InitAchievements.achievementCraftCompost, 1); + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/event/InitEvents.java b/src/main/java/ellpeck/someprettyrandomstuff/event/InitEvents.java new file mode 100644 index 000000000..fb7ac885c --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/event/InitEvents.java @@ -0,0 +1,15 @@ +package ellpeck.someprettyrandomstuff.event; + +import ellpeck.someprettyrandomstuff.util.Util; + +public class InitEvents{ + + public static void init(){ + Util.logInfo("Initializing Events..."); + + Util.registerEvent(new SmeltEvent()); + Util.registerEvent(new CraftEvent()); + Util.registerEvent(new KilledEvent()); + } + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/event/KilledEvent.java b/src/main/java/ellpeck/someprettyrandomstuff/event/KilledEvent.java new file mode 100644 index 000000000..f282babfc --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/event/KilledEvent.java @@ -0,0 +1,30 @@ +package ellpeck.someprettyrandomstuff.event; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheSpecialDrops; +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.passive.EntityAnimal; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.living.LivingDropsEvent; + +import java.util.Random; + +public class KilledEvent{ + @SubscribeEvent + public void onEntityDropEvent(LivingDropsEvent event){ + if(event.source.getEntity() instanceof EntityPlayer){ + for(int i = 0; i < TheSpecialDrops.values().length; i++){ + TheSpecialDrops theDrop = TheSpecialDrops.values()[i]; + if(theDrop.canDrop && event.entityLiving.getClass() == theDrop.dropFrom || (event.entityLiving instanceof EntityCreature && theDrop.dropFrom == EntityCreature.class) || (event.entityLiving instanceof EntityMob && theDrop.dropFrom == EntityMob.class) || (event.entityLiving instanceof EntityAnimal && theDrop.dropFrom == EntityAnimal.class)){ + if(new Random().nextInt(100) + 1 <= theDrop.chance){ + event.entityLiving.entityDropItem(new ItemStack(InitItems.itemSpecialDrop, new Random().nextInt(theDrop.maxAmount) + 1, theDrop.ordinal()), 0); + } + } + } + } + + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/event/SmeltEvent.java b/src/main/java/ellpeck/someprettyrandomstuff/event/SmeltEvent.java new file mode 100644 index 000000000..65535cf77 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/event/SmeltEvent.java @@ -0,0 +1,16 @@ +package ellpeck.someprettyrandomstuff.event; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent; +import ellpeck.someprettyrandomstuff.achievement.InitAchievements; +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheFoods; + +public class SmeltEvent{ + @SubscribeEvent + public void onSmeltedEvent(PlayerEvent.ItemSmeltedEvent event){ + if(event.smelting.getItem() == InitItems.itemFoods && event.smelting.getItemDamage() == TheFoods.BAGUETTE.ordinal()){ + event.player.addStat(InitAchievements.achievementSmeltBaguette, 1); + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerCrafter.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerCrafter.java new file mode 100644 index 000000000..c104e025f --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerCrafter.java @@ -0,0 +1,95 @@ +package ellpeck.someprettyrandomstuff.inventory; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.*; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.world.World; + +public class ContainerCrafter extends Container{ + + public InventoryCrafting craftMatrix = new InventoryCrafting(this, 3, 3); + public IInventory craftResult = new InventoryCraftResult(); + + public final int x; + public final int y; + public final int z; + public final World world; + + public ContainerCrafter(EntityPlayer player){ + InventoryPlayer inventory = player.inventory; + + this.world = player.worldObj; + this.x = (int)player.posX; + this.y = (int)player.posY; + this.z = (int)player.posZ; + + this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35)); + for (int i = 0; i < 3; i++){ + for (int j = 0; j < 3; j++){ + this.addSlotToContainer(new Slot(this.craftMatrix, j + i*3, 30 + j*18, 17 + i*18)); + } + } + + for (int i = 0; i < 3; i++){ + for (int j = 0; j < 9; j++){ + this.addSlotToContainer(new Slot(inventory, j + i*9 + 9, 8 + j*18, 84 + i*18)); + } + } + for (int i = 0; i < 9; i++){ + this.addSlotToContainer(new Slot(inventory, i, 8 + i*18, 142)); + } + + this.onCraftMatrixChanged(this.craftMatrix); + } + + @Override + public void onCraftMatrixChanged(IInventory p_75130_1_){ + this.craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(this.craftMatrix, this.world)); + } + + @Override + public void onContainerClosed(EntityPlayer player){ + super.onContainerClosed(player); + + if (!this.world.isRemote){ + for (int i = 0; i < 9; ++i){ + ItemStack stack = this.craftMatrix.getStackInSlotOnClosing(i); + if(stack != null) player.dropPlayerItemWithRandomChoice(stack, false); + } + } + } + + @Override + public boolean canInteractWith(EntityPlayer player){ + return true; + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot){ + ItemStack stack = null; + Slot theSlot = (Slot)this.inventorySlots.get(slot); + + if(theSlot != null && theSlot.getHasStack()){ + ItemStack savedStack = theSlot.getStack(); + stack = savedStack.copy(); + + if(slot == 0){ + if(!this.mergeItemStack(savedStack, 10, 46, true)) return null; + theSlot.onSlotChange(savedStack, stack); + } + else if(slot >= 10 && slot < 37 && !this.mergeItemStack(savedStack, 37, 46, false)) return null; + else if(slot >= 37 && slot < 46 && !this.mergeItemStack(savedStack, 10, 37, false)) return null; + else if(!this.mergeItemStack(savedStack, 10, 46, false)) return null; + + if(savedStack.stackSize == 0) theSlot.putStack(null); + else theSlot.onSlotChanged(); + + if(savedStack.stackSize == stack.stackSize) return null; + + theSlot.onPickupFromSlot(player, savedStack); + } + return stack; + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerFurnaceDouble.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerFurnaceDouble.java new file mode 100644 index 000000000..77b007c42 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerFurnaceDouble.java @@ -0,0 +1,89 @@ +package ellpeck.someprettyrandomstuff.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.inventory.slot.SlotOutput; +import ellpeck.someprettyrandomstuff.tile.TileEntityBase; +import ellpeck.someprettyrandomstuff.tile.TileEntityFurnaceDouble; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerFurnaceDouble extends Container{ + + private TileEntityFurnaceDouble tileFurnace; + + private int lastCoalTime; + private int lastCoalTimeLeft; + private int lastFirstCrushTime; + private int lastSecondCrushTime; + + public ContainerFurnaceDouble(InventoryPlayer inventory, TileEntityBase tile){ + this.tileFurnace = (TileEntityFurnaceDouble)tile; + + this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_COAL, 80, 21)); + + this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_INPUT_1, 51, 21)); + this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_INPUT_2, 109, 21)); + this.addSlotToContainer(new SlotOutput(this.tileFurnace, TileEntityFurnaceDouble.SLOT_OUTPUT_1, 51, 69)); + this.addSlotToContainer(new SlotOutput(this.tileFurnace, TileEntityFurnaceDouble.SLOT_OUTPUT_2, 108, 69)); + + for (int i = 0; i < 3; i++){ + for (int j = 0; j < 9; j++){ + this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 97 + i * 18)); + } + } + for (int i = 0; i < 9; i++){ + this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 155)); + } + } + + @Override + public void addCraftingToCrafters(ICrafting iCraft){ + super.addCraftingToCrafters(iCraft); + iCraft.sendProgressBarUpdate(this, 0, this.tileFurnace.coalTime); + iCraft.sendProgressBarUpdate(this, 1, this.tileFurnace.coalTimeLeft); + iCraft.sendProgressBarUpdate(this, 2, this.tileFurnace.firstSmeltTime); + iCraft.sendProgressBarUpdate(this, 3, this.tileFurnace.secondSmeltTime); + } + + @Override + public void detectAndSendChanges(){ + super.detectAndSendChanges(); + for(Object crafter : this.crafters){ + ICrafting iCraft = (ICrafting)crafter; + + if(this.lastCoalTime != this.tileFurnace.coalTime) iCraft.sendProgressBarUpdate(this, 0, this.tileFurnace.coalTime); + if(this.lastCoalTimeLeft != this.tileFurnace.coalTimeLeft) iCraft.sendProgressBarUpdate(this, 1, this.tileFurnace.coalTimeLeft); + if(this.lastFirstCrushTime != this.tileFurnace.firstSmeltTime) iCraft.sendProgressBarUpdate(this, 2, this.tileFurnace.firstSmeltTime); + if(this.lastSecondCrushTime != this.tileFurnace.secondSmeltTime) iCraft.sendProgressBarUpdate(this, 3, this.tileFurnace.secondSmeltTime); + } + + this.lastCoalTime = this.tileFurnace.coalTime; + this.lastCoalTimeLeft = this.tileFurnace.coalTimeLeft; + this.lastFirstCrushTime = this.tileFurnace.firstSmeltTime; + this.lastSecondCrushTime = this.tileFurnace.secondSmeltTime; + } + + @Override + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2){ + if(par1 == 0) this.tileFurnace.coalTime = par2; + if(par1 == 1) this.tileFurnace.coalTimeLeft = par2; + if(par1 == 2) this.tileFurnace.firstSmeltTime = par2; + if(par1 == 3) this.tileFurnace.secondSmeltTime = par2; + } + + @Override + public boolean canInteractWith(EntityPlayer player){ + return this.tileFurnace.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot){ + return null; + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerGrinder.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerGrinder.java new file mode 100644 index 000000000..8b0a0c4dc --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/ContainerGrinder.java @@ -0,0 +1,95 @@ +package ellpeck.someprettyrandomstuff.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.inventory.slot.SlotOutput; +import ellpeck.someprettyrandomstuff.tile.TileEntityBase; +import ellpeck.someprettyrandomstuff.tile.TileEntityGrinder; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerGrinder extends Container{ + + private TileEntityGrinder tileGrinder; + private boolean isDouble; + + private int lastCoalTime; + private int lastCoalTimeLeft; + private int lastFirstCrushTime; + private int lastSecondCrushTime; + + public ContainerGrinder(InventoryPlayer inventory, TileEntityBase tile, boolean isDouble){ + this.tileGrinder = (TileEntityGrinder)tile; + this.isDouble = isDouble; + + this.addSlotToContainer(new Slot(this.tileGrinder, TileEntityGrinder.SLOT_COAL, this.isDouble ? 80 : 51, 21)); + + this.addSlotToContainer(new Slot(this.tileGrinder, TileEntityGrinder.SLOT_INPUT_1, this.isDouble ? 51 : 80, 21)); + this.addSlotToContainer(new SlotOutput(this.tileGrinder, TileEntityGrinder.SLOT_OUTPUT_1_1, this.isDouble ? 37 : 66, 69)); + this.addSlotToContainer(new SlotOutput(this.tileGrinder, TileEntityGrinder.SLOT_OUTPUT_1_2, this.isDouble ? 64 : 92, 69)); + if(this.isDouble){ + this.addSlotToContainer(new Slot(this.tileGrinder, TileEntityGrinder.SLOT_INPUT_2, 109, 21)); + this.addSlotToContainer(new SlotOutput(this.tileGrinder, TileEntityGrinder.SLOT_OUTPUT_2_1, 96, 69)); + this.addSlotToContainer(new SlotOutput(this.tileGrinder, TileEntityGrinder.SLOT_OUTPUT_2_2, 121, 69)); + } + + for (int i = 0; i < 3; i++){ + for (int j = 0; j < 9; j++){ + this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 97 + i * 18)); + } + } + for (int i = 0; i < 9; i++){ + this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 155)); + } + } + + @Override + public void addCraftingToCrafters(ICrafting iCraft){ + super.addCraftingToCrafters(iCraft); + iCraft.sendProgressBarUpdate(this, 0, this.tileGrinder.coalTime); + iCraft.sendProgressBarUpdate(this, 1, this.tileGrinder.coalTimeLeft); + iCraft.sendProgressBarUpdate(this, 2, this.tileGrinder.firstCrushTime); + if(this.isDouble) iCraft.sendProgressBarUpdate(this, 3, this.tileGrinder.secondCrushTime); + } + + @Override + public void detectAndSendChanges(){ + super.detectAndSendChanges(); + for(Object crafter : this.crafters){ + ICrafting iCraft = (ICrafting)crafter; + + if(this.lastCoalTime != this.tileGrinder.coalTime) iCraft.sendProgressBarUpdate(this, 0, this.tileGrinder.coalTime); + if(this.lastCoalTimeLeft != this.tileGrinder.coalTimeLeft) iCraft.sendProgressBarUpdate(this, 1, this.tileGrinder.coalTimeLeft); + if(this.lastFirstCrushTime != this.tileGrinder.firstCrushTime) iCraft.sendProgressBarUpdate(this, 2, this.tileGrinder.firstCrushTime); + if(this.isDouble) if(this.lastSecondCrushTime != this.tileGrinder.secondCrushTime) iCraft.sendProgressBarUpdate(this, 3, this.tileGrinder.secondCrushTime); + } + + this.lastCoalTime = this.tileGrinder.coalTime; + this.lastCoalTimeLeft = this.tileGrinder.coalTimeLeft; + this.lastFirstCrushTime = this.tileGrinder.firstCrushTime; + if(this.isDouble) this.lastSecondCrushTime = this.tileGrinder.secondCrushTime; + } + + @Override + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2){ + if(par1 == 0) this.tileGrinder.coalTime = par2; + if(par1 == 1) this.tileGrinder.coalTimeLeft = par2; + if(par1 == 2) this.tileGrinder.firstCrushTime = par2; + if(this.isDouble && par1 == 3) this.tileGrinder.secondCrushTime = par2; + } + + @Override + public boolean canInteractWith(EntityPlayer player){ + return this.tileGrinder.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot){ + return null; + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiCrafter.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiCrafter.java new file mode 100644 index 000000000..ae9be67c7 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiCrafter.java @@ -0,0 +1,28 @@ +package ellpeck.someprettyrandomstuff.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +@SideOnly(Side.CLIENT) +public class GuiCrafter extends GuiContainer{ + + private static final ResourceLocation resLoc = new ResourceLocation("textures/gui/container/crafting_table.png"); + + public GuiCrafter(EntityPlayer player){ + super(new ContainerCrafter(player)); + + this.xSize = 176; + this.ySize = 166; + } + + @Override + public void drawGuiContainerBackgroundLayer(float f, int x, int y){ + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(resLoc); + this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize); + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFeeder.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFeeder.java index d55141381..3291b275f 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFeeder.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFeeder.java @@ -58,7 +58,7 @@ public class GuiFeeder extends GuiContainer{ public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); if(x >= guiLeft+69 && y >= guiTop+30 && x <= guiLeft+69+10 && y <= guiTop+30+10){ - String[] array = new String[]{(this.tileFeeder.currentAnimalAmount + " " + StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.animal.desc") + (this.tileFeeder.currentAnimalAmount == 1 ? "" : StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.animalsSuffix.desc"))), ((this.tileFeeder.currentAnimalAmount >= 2 && this.tileFeeder.currentAnimalAmount < this.tileFeeder.animalThreshold) ? StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.enoughToBreed.desc") : (this.tileFeeder.currentAnimalAmount >= this.tileFeeder.animalThreshold ? StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.tooMany.desc") : StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.notEnough.desc")))}; + String[] array = new String[]{(this.tileFeeder.currentAnimalAmount + " " + StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.animals.desc")), ((this.tileFeeder.currentAnimalAmount >= 2 && this.tileFeeder.currentAnimalAmount < this.tileFeeder.animalThreshold) ? StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.enoughToBreed.desc") : (this.tileFeeder.currentAnimalAmount >= this.tileFeeder.animalThreshold ? StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.tooMany.desc") : StatCollector.translateToLocal("info." + Util.MOD_ID_LOWER + ".feeder.notEnough.desc")))}; this.func_146283_a(Arrays.asList(array), x, y); } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFurnaceDouble.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFurnaceDouble.java new file mode 100644 index 000000000..f43e8ddac --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiFurnaceDouble.java @@ -0,0 +1,54 @@ +package ellpeck.someprettyrandomstuff.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.tile.TileEntityBase; +import ellpeck.someprettyrandomstuff.tile.TileEntityFurnaceDouble; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +@SideOnly(Side.CLIENT) +public class GuiFurnaceDouble extends GuiContainer{ + + private static final ResourceLocation resLoc = Util.getGuiLocation("guiFurnaceDouble"); + private TileEntityFurnaceDouble tileFurnace; + + public GuiFurnaceDouble(InventoryPlayer inventory, TileEntityBase tile){ + super(new ContainerFurnaceDouble(inventory, tile)); + this.tileFurnace = (TileEntityFurnaceDouble)tile; + this.xSize = 176; + this.ySize = 93+86; + } + + @Override + public void drawGuiContainerBackgroundLayer(float f, int x, int y){ + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + this.mc.getTextureManager().bindTexture(Util.GUI_INVENTORY_LOCATION); + this.drawTexturedModalRect(this.guiLeft, this.guiTop+93, 0, 0, 176, 86); + + this.mc.getTextureManager().bindTexture(resLoc); + this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); + + if(this.tileFurnace.coalTime > 0){ + int i = this.tileFurnace.getCoalTimeToScale(15); + this.drawTexturedModalRect(this.guiLeft+80, this.guiTop+5+14-i, 176, 44+14-i, 14, i); + } + if(this.tileFurnace.firstSmeltTime > 0){ + int i = this.tileFurnace.getFirstTimeToScale(23); + this.drawTexturedModalRect(this.guiLeft+51, this.guiTop+40, 176, 0, 24, i); + } + if(this.tileFurnace.secondSmeltTime > 0){ + int i = this.tileFurnace.getSecondTimeToScale(23); + this.drawTexturedModalRect(this.guiLeft + 101, this.guiTop + 40, 176, 22, 24, i); + } + } + + @Override + public void drawScreen(int x, int y, float f){ + super.drawScreen(x, y, f); + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiGrinder.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiGrinder.java new file mode 100644 index 000000000..e91b37c09 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiGrinder.java @@ -0,0 +1,59 @@ +package ellpeck.someprettyrandomstuff.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.tile.TileEntityBase; +import ellpeck.someprettyrandomstuff.tile.TileEntityGrinder; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +@SideOnly(Side.CLIENT) +public class GuiGrinder extends GuiContainer{ + + private static final ResourceLocation resLoc = Util.getGuiLocation("guiGrinder"); + private static final ResourceLocation resLocDouble = Util.getGuiLocation("guiGrinderDouble"); + private TileEntityGrinder tileGrinder; + private boolean isDouble; + + public GuiGrinder(InventoryPlayer inventory, TileEntityBase tile, boolean isDouble){ + super(new ContainerGrinder(inventory, tile, isDouble)); + this.tileGrinder = (TileEntityGrinder)tile; + this.isDouble = isDouble; + this.xSize = 176; + this.ySize = 93+86; + } + + @Override + public void drawGuiContainerBackgroundLayer(float f, int x, int y){ + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + this.mc.getTextureManager().bindTexture(Util.GUI_INVENTORY_LOCATION); + this.drawTexturedModalRect(this.guiLeft, this.guiTop+93, 0, 0, 176, 86); + + this.mc.getTextureManager().bindTexture(this.isDouble ? resLocDouble : resLoc); + this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); + + if(this.tileGrinder.coalTime > 0){ + int i = this.tileGrinder.getCoalTimeToScale(15); + this.drawTexturedModalRect(this.guiLeft+(isDouble ? 80 : 51), this.guiTop+5+14-i, 176, 44+14-i, 14, i); + } + if(this.tileGrinder.firstCrushTime > 0){ + int i = this.tileGrinder.getFirstTimeToScale(23); + this.drawTexturedModalRect(this.guiLeft+(isDouble ? 51 : 80), this.guiTop+40, 176, 0, 24, i); + } + if(this.isDouble){ + if(this.tileGrinder.secondCrushTime > 0){ + int i = this.tileGrinder.getSecondTimeToScale(23); + this.drawTexturedModalRect(this.guiLeft + 101, this.guiTop + 40, 176, 22, 24, i); + } + } + } + + @Override + public void drawScreen(int x, int y, float f){ + super.drawScreen(x, y, f); + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiHandler.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiHandler.java index 716f1d042..b29cf6f9c 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiHandler.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/GuiHandler.java @@ -4,6 +4,7 @@ import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; import ellpeck.someprettyrandomstuff.SomePrettyRandomStuff; import ellpeck.someprettyrandomstuff.tile.TileEntityBase; +import ellpeck.someprettyrandomstuff.tile.TileEntityGrinder; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; @@ -12,12 +13,24 @@ public class GuiHandler implements IGuiHandler{ @Override public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){ - TileEntityBase tile = (TileEntityBase)world.getTileEntity(x, y, z); switch (id){ case FEEDER_ID: - return new ContainerFeeder(entityPlayer.inventory, tile); + TileEntityBase tileFeeder = (TileEntityBase)world.getTileEntity(x, y, z); + return new ContainerFeeder(entityPlayer.inventory, tileFeeder); case GIANT_CHEST_ID: - return new ContainerGiantChest(entityPlayer.inventory, tile); + TileEntityBase tileChest = (TileEntityBase)world.getTileEntity(x, y, z); + return new ContainerGiantChest(entityPlayer.inventory, tileChest); + case CRAFTER_ID: + return new ContainerCrafter(entityPlayer); + case GRINDER_ID: + TileEntityBase tileGrinder = (TileEntityGrinder)world.getTileEntity(x, y, z); + return new ContainerGrinder(entityPlayer.inventory, tileGrinder, false); + case GRINDER_DOUBLE_ID: + TileEntityBase tileGrinderDouble = (TileEntityGrinder)world.getTileEntity(x, y, z); + return new ContainerGrinder(entityPlayer.inventory, tileGrinderDouble, true); + case FURNACE_DOUBLE_ID: + TileEntityBase tileFurnace = (TileEntityBase)world.getTileEntity(x, y, z); + return new ContainerFurnaceDouble(entityPlayer.inventory, tileFurnace); default: return null; } @@ -25,12 +38,24 @@ public class GuiHandler implements IGuiHandler{ @Override public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){ - TileEntityBase tile = (TileEntityBase)world.getTileEntity(x, y, z); switch (id){ case FEEDER_ID: - return new GuiFeeder(entityPlayer.inventory, tile); + TileEntityBase tileFeeder = (TileEntityBase)world.getTileEntity(x, y, z); + return new GuiFeeder(entityPlayer.inventory, tileFeeder); case GIANT_CHEST_ID: - return new GuiGiantChest(entityPlayer.inventory, tile); + TileEntityBase tileChest = (TileEntityBase)world.getTileEntity(x, y, z); + return new GuiGiantChest(entityPlayer.inventory, tileChest); + case CRAFTER_ID: + return new GuiCrafter(entityPlayer); + case GRINDER_ID: + TileEntityBase tileGrinder = (TileEntityGrinder)world.getTileEntity(x, y, z); + return new GuiGrinder(entityPlayer.inventory, tileGrinder, false); + case GRINDER_DOUBLE_ID: + TileEntityBase tileGrinderDouble = (TileEntityGrinder)world.getTileEntity(x, y, z); + return new GuiGrinder(entityPlayer.inventory, tileGrinderDouble, true); + case FURNACE_DOUBLE_ID: + TileEntityBase tileFurnace = (TileEntityBase)world.getTileEntity(x, y, z); + return new GuiFurnaceDouble(entityPlayer.inventory, tileFurnace); default: return null; } @@ -38,6 +63,10 @@ public class GuiHandler implements IGuiHandler{ public static final int FEEDER_ID = 0; public static final int GIANT_CHEST_ID = 1; + public static final int CRAFTER_ID = 2; + public static final int GRINDER_ID = 3; + public static final int GRINDER_DOUBLE_ID = 4; + public static final int FURNACE_DOUBLE_ID = 5; public static void init(){ Util.logInfo("Initializing GuiHandler..."); diff --git a/src/main/java/ellpeck/someprettyrandomstuff/inventory/slot/SlotOutput.java b/src/main/java/ellpeck/someprettyrandomstuff/inventory/slot/SlotOutput.java new file mode 100644 index 000000000..033b42dd7 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/inventory/slot/SlotOutput.java @@ -0,0 +1,17 @@ +package ellpeck.someprettyrandomstuff.inventory.slot; + +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class SlotOutput extends Slot{ + + public SlotOutput(IInventory inventory, int id, int x, int y){ + super(inventory, id, x, y); + } + + @Override + public boolean isItemValid(ItemStack stack){ + return false; + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/InitItems.java b/src/main/java/ellpeck/someprettyrandomstuff/items/InitItems.java index 66505a8e6..f68c46082 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/InitItems.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/InitItems.java @@ -1,10 +1,9 @@ package ellpeck.someprettyrandomstuff.items; -import cpw.mods.fml.common.registry.GameRegistry; import ellpeck.someprettyrandomstuff.items.tools.*; import ellpeck.someprettyrandomstuff.material.InitItemMaterials; -import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; public class InitItems{ @@ -13,6 +12,9 @@ public class InitItems{ public static Item itemMisc; public static Item itemFoods; public static Item itemKnife; + public static Item itemCrafterOnAStick; + public static Item itemDust; + public static Item itemSpecialDrop; public static Item itemPickaxeEmerald; public static Item itemAxeEmerald; @@ -30,29 +32,38 @@ public class InitItems{ Util.logInfo("Initializing Items..."); itemFertilizer = new ItemFertilizer(); - GameRegistry.registerItem(itemFertilizer, ((IName)itemFertilizer).getName()); + Util.register(itemFertilizer); itemMisc = new ItemMisc(); - GameRegistry.registerItem(itemMisc, ((IName)itemMisc).getName()); + Util.register(itemMisc); itemFoods = new ItemFoods(); - GameRegistry.registerItem(itemFoods, ((IName)itemFoods).getName()); + Util.register(itemFoods); itemKnife = new ItemKnife(); - GameRegistry.registerItem(itemKnife, ((IName)itemKnife).getName()); + Util.register(itemKnife); - itemPickaxeEmerald = new ItemPickaxeSPRS(InitItemMaterials.toolMaterialEmerald, "itemPickaxeEmerald"); - itemAxeEmerald = new ItemAxeSPRS(InitItemMaterials.toolMaterialEmerald, "itemAxeEmerald"); - itemShovelEmerald = new ItemShovelSPRS(InitItemMaterials.toolMaterialEmerald, "itemShovelEmerald"); - itemSwordEmerald = new ItemSwordSPRS(InitItemMaterials.toolMaterialEmerald, "itemSwordEmerald"); - itemHoeEmerald = new ItemHoeSPRS(InitItemMaterials.toolMaterialEmerald, "itemHoeEmerald"); + itemCrafterOnAStick = new ItemCrafterOnAStick(); + Util.register(itemCrafterOnAStick); + + itemDust = new ItemDust(); + Util.register(itemDust); + + itemSpecialDrop = new ItemSpecialDrop(); + Util.register(itemSpecialDrop); + + itemPickaxeEmerald = new ItemPickaxeSPRS(InitItemMaterials.toolMaterialEmerald, "itemPickaxeEmerald", EnumRarity.rare); + itemAxeEmerald = new ItemAxeSPRS(InitItemMaterials.toolMaterialEmerald, "itemAxeEmerald", EnumRarity.rare); + itemShovelEmerald = new ItemShovelSPRS(InitItemMaterials.toolMaterialEmerald, "itemShovelEmerald", EnumRarity.rare); + itemSwordEmerald = new ItemSwordSPRS(InitItemMaterials.toolMaterialEmerald, "itemSwordEmerald", EnumRarity.rare); + itemHoeEmerald = new ItemHoeSPRS(InitItemMaterials.toolMaterialEmerald, "itemHoeEmerald", EnumRarity.rare); Util.registerItems(new Item[]{itemPickaxeEmerald, itemAxeEmerald, itemShovelEmerald, itemSwordEmerald, itemHoeEmerald}); - itemPickaxeObsidian = new ItemPickaxeSPRS(InitItemMaterials.toolMaterialObsidian, "itemPickaxeObsidian"); - itemAxeObsidian = new ItemAxeSPRS(InitItemMaterials.toolMaterialObsidian, "itemAxeObsidian"); - itemShovelObsidian = new ItemShovelSPRS(InitItemMaterials.toolMaterialObsidian, "itemShovelObsidian"); - itemSwordObsidian = new ItemSwordSPRS(InitItemMaterials.toolMaterialObsidian, "itemSwordObsidian"); - itemHoeObsidian = new ItemHoeSPRS(InitItemMaterials.toolMaterialObsidian, "itemHoeObsidian"); + itemPickaxeObsidian = new ItemPickaxeSPRS(InitItemMaterials.toolMaterialObsidian, "itemPickaxeObsidian", EnumRarity.uncommon); + itemAxeObsidian = new ItemAxeSPRS(InitItemMaterials.toolMaterialObsidian, "itemAxeObsidian", EnumRarity.uncommon); + itemShovelObsidian = new ItemShovelSPRS(InitItemMaterials.toolMaterialObsidian, "itemShovelObsidian", EnumRarity.uncommon); + itemSwordObsidian = new ItemSwordSPRS(InitItemMaterials.toolMaterialObsidian, "itemSwordObsidian", EnumRarity.uncommon); + itemHoeObsidian = new ItemHoeSPRS(InitItemMaterials.toolMaterialObsidian, "itemHoeObsidian", EnumRarity.uncommon); Util.registerItems(new Item[]{itemPickaxeObsidian, itemAxeObsidian, itemShovelObsidian, itemSwordObsidian, itemHoeObsidian}); } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemCrafterOnAStick.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemCrafterOnAStick.java new file mode 100644 index 000000000..5cdefc279 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemCrafterOnAStick.java @@ -0,0 +1,61 @@ +package ellpeck.someprettyrandomstuff.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.SomePrettyRandomStuff; +import ellpeck.someprettyrandomstuff.creative.CreativeTab; +import ellpeck.someprettyrandomstuff.inventory.GuiHandler; +import ellpeck.someprettyrandomstuff.util.IName; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import java.util.List; + +public class ItemCrafterOnAStick extends Item implements IName{ + + public ItemCrafterOnAStick(){ + this.setUnlocalizedName(Util.setUnlocalizedName(this)); + this.setCreativeTab(CreativeTab.instance); + this.setMaxStackSize(1); + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { + list.add(Util.addStandardInformation(this)); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass){ + return this.itemIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconReg){ + this.itemIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName()); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player){ + if(!world.isRemote) player.openGui(SomePrettyRandomStuff.instance, GuiHandler.CRAFTER_ID, world, (int)player.posX, (int)player.posY, (int)player.posZ); + return stack; + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.epic; + } + + @Override + public String getName(){ + return "itemCrafterOnAStick"; + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemDust.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemDust.java new file mode 100644 index 000000000..9000780f3 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemDust.java @@ -0,0 +1,82 @@ +package ellpeck.someprettyrandomstuff.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.creative.CreativeTab; +import ellpeck.someprettyrandomstuff.items.metalists.TheDusts; +import ellpeck.someprettyrandomstuff.util.IName; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; + +import java.util.List; + +public class ItemDust extends Item implements IName{ + + public static final TheDusts[] allDusts = TheDusts.values(); + + public ItemDust(){ + this.setUnlocalizedName(Util.setUnlocalizedName(this)); + this.setHasSubtypes(true); + this.setCreativeTab(CreativeTab.instance); + } + + @Override + public String getName(){ + return "itemDust"; + } + + @Override + public int getMetadata(int damage){ + return damage; + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return allDusts[stack.getItemDamage()].rarity; + } + + @SuppressWarnings("all") + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list){ + for(int j = 0; j < allDusts.length; j++){ + list.add(new ItemStack(this, 1, j)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName() + allDusts[stack.getItemDamage()].name; + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ + if(Util.isShiftPressed()) list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + this.getName() + allDusts[stack.getItemDamage()].getName() + ".desc")); + else list.add(Util.shiftForInfo()); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass){ + return this.itemIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass){ + return allDusts[stack.getItemDamage()].color; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconReg){ + this.itemIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName()); + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFertilizer.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFertilizer.java index 62dcd9bab..fdf3651d6 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFertilizer.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFertilizer.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemDye; import net.minecraft.item.ItemStack; @@ -18,7 +19,7 @@ import java.util.List; public class ItemFertilizer extends Item implements IName{ public ItemFertilizer(){ - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -31,6 +32,11 @@ public class ItemFertilizer extends Item implements IName{ return super.onItemUse(stack, player, world, x, y, z, par7, par8, par9, par10); } + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.rare; + } + @Override @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFoods.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFoods.java index b9c1bda4a..aa83156db 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFoods.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemFoods.java @@ -10,10 +10,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; +import net.minecraft.item.*; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; @@ -27,7 +24,7 @@ public class ItemFoods extends ItemFood implements IName{ public ItemFoods(){ super(0, 0.0F, false); - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setHasSubtypes(true); this.setMaxDamage(0); this.setCreativeTab(CreativeTab.instance); @@ -35,6 +32,11 @@ public class ItemFoods extends ItemFood implements IName{ TheFoods.setReturnItems(); } + @Override + public EnumRarity getRarity(ItemStack stack){ + return allFoods[stack.getItemDamage()].rarity; + } + @Override public int func_150905_g(ItemStack stack){ return allFoods[stack.getItemDamage()].healAmount; diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemKnife.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemKnife.java index 3dfcc1f3a..91ef7a4b8 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemKnife.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemKnife.java @@ -4,20 +4,22 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.someprettyrandomstuff.config.ConfigValues; import ellpeck.someprettyrandomstuff.creative.CreativeTab; +import ellpeck.someprettyrandomstuff.util.IInformation; import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import java.util.List; -public class ItemKnife extends Item implements IName{ +public class ItemKnife extends Item implements IName, IInformation{ public ItemKnife(){ - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setMaxDamage(ConfigValues.itemKnifeMaxDamage); this.setCreativeTab(CreativeTab.instance); this.setMaxStackSize(1); @@ -32,6 +34,11 @@ public class ItemKnife extends Item implements IName{ return theStack; } + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.epic; + } + @Override @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) @@ -59,4 +66,9 @@ public class ItemKnife extends Item implements IName{ public String getName(){ return "itemKnife"; } + + @Override + public String[] getInformationString(){ + return new String[]{"This is a test too but it's more cool senn se assa"}; + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemMisc.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemMisc.java index 0fd2b8e74..c34067712 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemMisc.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemMisc.java @@ -9,6 +9,7 @@ import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; @@ -22,7 +23,7 @@ public class ItemMisc extends Item implements IName{ public IIcon[] textures = new IIcon[allMiscItems.length]; public ItemMisc(){ - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setHasSubtypes(true); this.setCreativeTab(CreativeTab.instance); } @@ -32,6 +33,11 @@ public class ItemMisc extends Item implements IName{ return "itemMisc"; } + @Override + public EnumRarity getRarity(ItemStack stack){ + return allMiscItems[stack.getItemDamage()].rarity; + } + @Override public int getMetadata(int damage){ return damage; diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/ItemSpecialDrop.java b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemSpecialDrop.java new file mode 100644 index 000000000..85cedff8f --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/ItemSpecialDrop.java @@ -0,0 +1,79 @@ +package ellpeck.someprettyrandomstuff.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.creative.CreativeTab; +import ellpeck.someprettyrandomstuff.items.metalists.TheSpecialDrops; +import ellpeck.someprettyrandomstuff.util.IName; +import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; + +import java.util.List; + +public class ItemSpecialDrop extends Item implements IName{ + + public static final TheSpecialDrops[] allDrops = TheSpecialDrops.values(); + public IIcon[] textures = new IIcon[allDrops.length]; + + public ItemSpecialDrop(){ + this.setUnlocalizedName(Util.setUnlocalizedName(this)); + this.setHasSubtypes(true); + this.setCreativeTab(CreativeTab.instance); + } + + @Override + public String getName(){ + return "itemSpecial"; + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return allDrops[stack.getItemDamage()].rarity; + } + + @Override + public int getMetadata(int damage){ + return damage; + } + + @SuppressWarnings("all") + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list){ + for(int j = 0; j < allDrops.length; j++){ + list.add(new ItemStack(this, 1, j)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName() + allDrops[stack.getItemDamage()].name; + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ + if(Util.isShiftPressed()) list.add(StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + this.getName() + allDrops[stack.getItemDamage()].getName() + ".desc")); + else list.add(Util.shiftForInfo()); + } + + @Override + public IIcon getIconFromDamage(int par1){ + return textures[par1]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconReg){ + for(int i = 0; i < textures.length; i++){ + textures[i] = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName() + allDrops[i].getName()); + } + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheDusts.java b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheDusts.java new file mode 100644 index 000000000..e2fabed7c --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheDusts.java @@ -0,0 +1,28 @@ +package ellpeck.someprettyrandomstuff.items.metalists; + +import ellpeck.someprettyrandomstuff.util.IName; +import net.minecraft.item.EnumRarity; + +public enum TheDusts implements IName{ + + IRON("Iron", 7826534, EnumRarity.common), + GOLD("Gold", 14335744, EnumRarity.uncommon), + DIAMOND("Diamond", 292003, EnumRarity.rare), + EMERALD("Emerald", 4319527, EnumRarity.epic), + LAPIS("Lapis", 1849791, EnumRarity.uncommon); + + public final String name; + public final int color; + public final EnumRarity rarity; + + private TheDusts(String name, int color, EnumRarity rarity){ + this.name = name; + this.color = color; + this.rarity = rarity; + } + + @Override + public String getName(){ + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheFoods.java b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheFoods.java index 8efe91a7a..6272afd39 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheFoods.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheFoods.java @@ -3,26 +3,27 @@ package ellpeck.someprettyrandomstuff.items.metalists; import ellpeck.someprettyrandomstuff.items.InitItems; import ellpeck.someprettyrandomstuff.util.IName; import net.minecraft.init.Items; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; public enum TheFoods implements IName{ - CHEESE("Cheese", 1, 0.1F, false, 3), - PUMPKIN_STEW("PumpkinStew", 10, 0.4F, true, 30), - CARROT_JUICE("CarrotJuice", 6, 0.2F, true, 20), - FISH_N_CHIPS("FishNChips", 20, 1F, false, 40), - FRENCH_FRIES("FrenchFries", 16, 0.7F, false, 32), - FRENCH_FRY("FrenchFry", 1, 0.01F, false, 3), - SPAGHETTI("Spaghetti", 18, 0.8F, false, 38), - NOODLE("Noodle", 1, 0.01F, false, 3), - CHOCOLATE_CAKE("ChocolateCake", 16, 0.45F, false, 45), - CHOCOLATE("Chocolate", 5, 0.05F, false, 15), - TOAST("Toast", 7, 0.4F, false, 25), - SUBMARINE_SANDWICH("SubmarineSandwich", 10, 0.7F, false, 40), - BIG_COOKIE("BigCookie", 6, 0.1F, false, 20), - HAMBURGER("Hamburger", 14, 0.9F, false, 40), - PIZZA("Pizza", 20, 1F, false, 45), - BAGUETTE("Baguette", 7, 0.2F, false, 25); + CHEESE("Cheese", 1, 0.1F, false, 3, EnumRarity.common), + PUMPKIN_STEW("PumpkinStew", 10, 0.4F, true, 30, EnumRarity.common), + CARROT_JUICE("CarrotJuice", 6, 0.2F, true, 20, EnumRarity.common), + FISH_N_CHIPS("FishNChips", 20, 1F, false, 40, EnumRarity.uncommon), + FRENCH_FRIES("FrenchFries", 16, 0.7F, false, 32, EnumRarity.common), + FRENCH_FRY("FrenchFry", 1, 0.01F, false, 3, EnumRarity.common), + SPAGHETTI("Spaghetti", 18, 0.8F, false, 38, EnumRarity.common), + NOODLE("Noodle", 1, 0.01F, false, 3, EnumRarity.common), + CHOCOLATE_CAKE("ChocolateCake", 16, 0.45F, false, 45, EnumRarity.uncommon), + CHOCOLATE("Chocolate", 5, 0.05F, false, 15, EnumRarity.common), + TOAST("Toast", 7, 0.4F, false, 25, EnumRarity.common), + SUBMARINE_SANDWICH("SubmarineSandwich", 10, 0.7F, false, 40, EnumRarity.uncommon), + BIG_COOKIE("BigCookie", 6, 0.1F, false, 20, EnumRarity.uncommon), + HAMBURGER("Hamburger", 14, 0.9F, false, 40, EnumRarity.common), + PIZZA("Pizza", 20, 1F, false, 45, EnumRarity.uncommon), + BAGUETTE("Baguette", 7, 0.2F, false, 25, EnumRarity.common); public static void setReturnItems(){ SPAGHETTI.returnItem = new ItemStack(Items.bowl); @@ -38,13 +39,15 @@ public enum TheFoods implements IName{ public final boolean getsDrunken; public final int useDuration; public ItemStack returnItem; + public final EnumRarity rarity; - private TheFoods(String name, int healAmount, float saturation, boolean getsDrunken, int useDuration){ + private TheFoods(String name, int healAmount, float saturation, boolean getsDrunken, int useDuration, EnumRarity rarity){ this.name = name; this.getsDrunken = getsDrunken; this.healAmount = healAmount; this.saturation = saturation; this.useDuration = useDuration; + this.rarity = rarity; } @Override diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheMiscItems.java b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheMiscItems.java index b2be3f9f9..7dd0229fe 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheMiscItems.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheMiscItems.java @@ -1,24 +1,23 @@ package ellpeck.someprettyrandomstuff.items.metalists; import ellpeck.someprettyrandomstuff.util.IName; +import net.minecraft.item.EnumRarity; public enum TheMiscItems implements IName{ - PAPER_CONE("PaperCone"), - MASHED_FOOD("MashedFood"), - REFINED_IRON("RefinedIron"), - REFINED_REDSTONE("RefinedRedstone"), - COMPRESSED_IRON("CompressedIron"), - STEEL("Steel"), - KNIFE_BLADE("KnifeBlade"), - KNIFE_HANDLE("KnifeHandle"), - DOUGH("Dough"), - QUARTZ("BlackQuartz"); + PAPER_CONE("PaperCone", EnumRarity.common), + MASHED_FOOD("MashedFood", EnumRarity.uncommon), + KNIFE_BLADE("KnifeBlade", EnumRarity.common), + KNIFE_HANDLE("KnifeHandle", EnumRarity.common), + DOUGH("Dough", EnumRarity.common), + QUARTZ("BlackQuartz", EnumRarity.epic); public final String name; + public final EnumRarity rarity; - private TheMiscItems(String name){ + private TheMiscItems(String name, EnumRarity rarity){ this.name = name; + this.rarity = rarity; } @Override diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheSpecialDrops.java b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheSpecialDrops.java new file mode 100644 index 000000000..0113f5e27 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/metalists/TheSpecialDrops.java @@ -0,0 +1,41 @@ +package ellpeck.someprettyrandomstuff.items.metalists; + +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.util.IName; +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.item.EnumRarity; + +public enum TheSpecialDrops implements IName{ + + SOLIDIFIED_EXPERIENCE("SolidifiedExperience", 70, 3, EntityCreature.class, EnumRarity.uncommon, ConfigValues.enableExperienceDrop), + BLOOD_FRAGMENT("BloodFragment", 30, 1, EntityCreature.class, EnumRarity.uncommon, ConfigValues.enableBloodDrop), + //Change this into a Heart Fragment that is later crafted into a heart used to revive Villagers + HEART_PART("HeartPart", 10, 1, EntityCreature.class, EnumRarity.rare, ConfigValues.enableHeartDrop), + UNKNOWN_SUBSTANCE("UnknownSubstance", 5, 1, EntitySkeleton.class, EnumRarity.epic, ConfigValues.enableSubstanceDrop), + PEARL_SHARD("PearlShard", 20, 3, EntityEnderman.class, EnumRarity.epic, ConfigValues.enablePearlShardDrop), + EMERALD_SHARD("EmeraldShard", 15, 1, EntityCreeper.class, EnumRarity.rare, ConfigValues.enableEmeraldShardDrop); + + public final String name; + public final int chance; + public final int maxAmount; + public final Class dropFrom; + public final boolean canDrop; + public final EnumRarity rarity; + + private TheSpecialDrops(String name, int chance, int maxAmount, Class dropFrom, EnumRarity rarity, boolean canDrop){ + this.name = name; + this.chance = chance; + this.rarity = rarity; + this.maxAmount = maxAmount; + this.dropFrom = dropFrom; + this.canDrop = canDrop; + } + + @Override + public String getName(){ + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemAxeSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemAxeSPRS.java index 005d04b88..c1d3dba87 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemAxeSPRS.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemAxeSPRS.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; @@ -17,11 +18,13 @@ import java.util.List; public class ItemAxeSPRS extends ItemAxe implements IName{ private String name; + private EnumRarity rarity; - public ItemAxeSPRS(ToolMaterial toolMat, String unlocalizedName){ + public ItemAxeSPRS(ToolMaterial toolMat, String unlocalizedName, EnumRarity rarity){ super(toolMat); this.name = unlocalizedName; - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.rarity = rarity; + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -46,6 +49,11 @@ public class ItemAxeSPRS extends ItemAxe implements IName{ this.itemIcon = iconReg.registerIcon(Util.MOD_ID_LOWER + ":" + this.getName()); } + @Override + public EnumRarity getRarity(ItemStack stack){ + return this.rarity; + } + @Override public String getName(){ return name; diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemHoeSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemHoeSPRS.java index e6f323c77..b329bf949 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemHoeSPRS.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemHoeSPRS.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; @@ -17,11 +18,13 @@ import java.util.List; public class ItemHoeSPRS extends ItemHoe implements IName{ private String name; + private EnumRarity rarity; - public ItemHoeSPRS(ToolMaterial toolMat, String unlocalizedName){ + public ItemHoeSPRS(ToolMaterial toolMat, String unlocalizedName, EnumRarity rarity){ super(toolMat); this.name = unlocalizedName; - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.rarity = rarity; + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -35,6 +38,11 @@ public class ItemHoeSPRS extends ItemHoe implements IName{ } } + @Override + public EnumRarity getRarity(ItemStack stack){ + return this.rarity; + } + @Override public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemPickaxeSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemPickaxeSPRS.java index 5bb6ac3ba..a438b771f 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemPickaxeSPRS.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemPickaxeSPRS.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; @@ -17,11 +18,13 @@ import java.util.List; public class ItemPickaxeSPRS extends ItemPickaxe implements IName{ private String name; + private EnumRarity rarity; - public ItemPickaxeSPRS(ToolMaterial toolMat, String unlocalizedName){ + public ItemPickaxeSPRS(ToolMaterial toolMat, String unlocalizedName, EnumRarity rarity){ super(toolMat); this.name = unlocalizedName; - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.rarity = rarity; + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -40,6 +43,11 @@ public class ItemPickaxeSPRS extends ItemPickaxe implements IName{ return this.itemIcon; } + @Override + public EnumRarity getRarity(ItemStack stack){ + return this.rarity; + } + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconReg){ diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemShovelSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemShovelSPRS.java index 6adcf6c29..bb2952209 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemShovelSPRS.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemShovelSPRS.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; @@ -17,11 +18,13 @@ import java.util.List; public class ItemShovelSPRS extends ItemSpade implements IName{ private String name; + private EnumRarity rarity; - public ItemShovelSPRS(ToolMaterial toolMat, String unlocalizedName){ + public ItemShovelSPRS(ToolMaterial toolMat, String unlocalizedName, EnumRarity rarity){ super(toolMat); this.name = unlocalizedName; - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.rarity = rarity; + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -35,6 +38,11 @@ public class ItemShovelSPRS extends ItemSpade implements IName{ } } + @Override + public EnumRarity getRarity(ItemStack stack){ + return this.rarity; + } + @Override public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; diff --git a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemSwordSPRS.java b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemSwordSPRS.java index 529e0c276..50186577d 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemSwordSPRS.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/items/tools/ItemSwordSPRS.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.util.IName; import ellpeck.someprettyrandomstuff.util.Util; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.util.IIcon; @@ -17,11 +18,13 @@ import java.util.List; public class ItemSwordSPRS extends ItemSword implements IName{ private String name; + private EnumRarity rarity; - public ItemSwordSPRS(ToolMaterial toolMat, String unlocalizedName){ + public ItemSwordSPRS(ToolMaterial toolMat, String unlocalizedName, EnumRarity rarity){ super(toolMat); this.name = unlocalizedName; - this.setUnlocalizedName(Util.getNamePrefix() + this.getName()); + this.rarity = rarity; + this.setUnlocalizedName(Util.setUnlocalizedName(this)); this.setCreativeTab(CreativeTab.instance); } @@ -35,6 +38,11 @@ public class ItemSwordSPRS extends ItemSword implements IName{ } } + @Override + public EnumRarity getRarity(ItemStack stack){ + return this.rarity; + } + @Override public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; diff --git a/src/main/java/ellpeck/someprettyrandomstuff/material/InitItemMaterials.java b/src/main/java/ellpeck/someprettyrandomstuff/material/InitItemMaterials.java index 65f20775b..638c9a35d 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/material/InitItemMaterials.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/material/InitItemMaterials.java @@ -2,7 +2,10 @@ package ellpeck.someprettyrandomstuff.material; import ellpeck.someprettyrandomstuff.config.ConfigValues; import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.EnumHelper; public class InitItemMaterials{ @@ -13,8 +16,8 @@ public class InitItemMaterials{ public static void init(){ Util.logInfo("Initializing Materials..."); - toolMaterialEmerald = EnumHelper.addToolMaterial("toolMaterialEmerald", ConfigValues.toolEmeraldHarvestLevel, ConfigValues.toolEmeraldMaxUses, ConfigValues.toolEmeraldEfficiency, ConfigValues.toolEmeraldDamage, ConfigValues.toolEmeraldEnchantability); - toolMaterialObsidian = EnumHelper.addToolMaterial("toolMaterialObsidian", ConfigValues.toolObsidianHarvestLevel, ConfigValues.toolObsidianMaxUses, ConfigValues.toolObsidianEfficiency, ConfigValues.toolObsidianDamage, ConfigValues.toolObsidianEnchantability); + toolMaterialEmerald = EnumHelper.addToolMaterial("toolMaterialEmerald", ConfigValues.toolEmeraldHarvestLevel, ConfigValues.toolEmeraldMaxUses, ConfigValues.toolEmeraldEfficiency, ConfigValues.toolEmeraldDamage, ConfigValues.toolEmeraldEnchantability).setRepairItem(new ItemStack(Items.emerald)); + toolMaterialObsidian = EnumHelper.addToolMaterial("toolMaterialObsidian", ConfigValues.toolObsidianHarvestLevel, ConfigValues.toolObsidianMaxUses, ConfigValues.toolObsidianEfficiency, ConfigValues.toolObsidianDamage, ConfigValues.toolObsidianEnchantability).setRepairItem(new ItemStack(Blocks.obsidian)); } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/oredict/OreDictRegistry.java b/src/main/java/ellpeck/someprettyrandomstuff/oredict/OreDictRegistry.java new file mode 100644 index 000000000..84f59db3f --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/oredict/OreDictRegistry.java @@ -0,0 +1,17 @@ +package ellpeck.someprettyrandomstuff.oredict; + +import ellpeck.someprettyrandomstuff.items.InitItems; +import ellpeck.someprettyrandomstuff.items.metalists.TheDusts; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +public class OreDictRegistry{ + + public static void init(){ + OreDictionary.registerOre("dustDiamond", new ItemStack(InitItems.itemDust, 1, TheDusts.DIAMOND.ordinal())); + OreDictionary.registerOre("dustIron", new ItemStack(InitItems.itemDust, 1, TheDusts.IRON.ordinal())); + OreDictionary.registerOre("dustGold", new ItemStack(InitItems.itemDust, 1, TheDusts.GOLD.ordinal())); + OreDictionary.registerOre("dustEmerald", new ItemStack(InitItems.itemDust, 1, TheDusts.EMERALD.ordinal())); + OreDictionary.registerOre("dustLapis", new ItemStack(InitItems.itemDust, 1, TheDusts.LAPIS.ordinal())); + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/proxy/ClientProxy.java b/src/main/java/ellpeck/someprettyrandomstuff/proxy/ClientProxy.java index 9e4275730..1f9339317 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/proxy/ClientProxy.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/proxy/ClientProxy.java @@ -1,6 +1,15 @@ package ellpeck.someprettyrandomstuff.proxy; +import cpw.mods.fml.client.registry.ClientRegistry; +import ellpeck.someprettyrandomstuff.blocks.InitBlocks; +import ellpeck.someprettyrandomstuff.blocks.render.ModelCompost; +import ellpeck.someprettyrandomstuff.blocks.render.RenderItems; +import ellpeck.someprettyrandomstuff.blocks.render.RenderTileEntity; +import ellpeck.someprettyrandomstuff.tile.TileEntityCompost; +import net.minecraft.item.Item; +import net.minecraftforge.client.MinecraftForgeClient; + @SuppressWarnings("unused") public class ClientProxy implements IProxy{ @@ -11,7 +20,8 @@ public class ClientProxy implements IProxy{ @Override public void init(){ - + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompost.class, new RenderTileEntity(new ModelCompost())); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(InitBlocks.blockCompost), new RenderItems(new ModelCompost())); } @Override diff --git a/src/main/java/ellpeck/someprettyrandomstuff/recipe/GrinderRecipes.java b/src/main/java/ellpeck/someprettyrandomstuff/recipe/GrinderRecipes.java new file mode 100644 index 000000000..30b567961 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/recipe/GrinderRecipes.java @@ -0,0 +1,54 @@ +package ellpeck.someprettyrandomstuff.recipe; + +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; + +public class GrinderRecipes{ + + private static final GrinderRecipes instance = new GrinderRecipes(); + + public ArrayList recipes = new ArrayList(); + + public static GrinderRecipes instance(){ + return instance; + } + + public void registerRecipe(ItemStack input, ItemStack outputOne, ItemStack outputTwo, int secondChance){ + this.recipes.add(new GrinderRecipe(input, outputOne, outputTwo, secondChance)); + } + + public ItemStack getOutput(ItemStack input, boolean wantSecond){ + for(GrinderRecipe recipe : recipes){ + if(recipe.input.isItemEqual(input)){ + return wantSecond ? recipe.secondOutput : recipe.firstOutput; + } + } + return null; + } + + public int getSecondChance(ItemStack input){ + for(GrinderRecipe recipe : recipes){ + if(recipe.input.isItemEqual(input)){ + return recipe.secondChance; + } + } + return 0; + } + + public class GrinderRecipe{ + + public final ItemStack input; + public final ItemStack firstOutput; + public final ItemStack secondOutput; + public final int secondChance; + + public GrinderRecipe(ItemStack input, ItemStack firstOutput, ItemStack secondOutput, int secondChance){ + this.input = input; + this.firstOutput = firstOutput; + this.secondOutput = secondOutput; + this.secondChance = secondChance; + } + + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityBase.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityBase.java index ecb2dab29..3f0b92c15 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityBase.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityBase.java @@ -2,13 +2,16 @@ package ellpeck.someprettyrandomstuff.tile; import cpw.mods.fml.common.registry.GameRegistry; import ellpeck.someprettyrandomstuff.util.Util; +import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; -public abstract class TileEntityBase extends TileEntity{ +public class TileEntityBase extends TileEntity{ @Override public Packet getDescriptionPacket(){ @@ -28,5 +31,12 @@ public abstract class TileEntityBase extends TileEntity{ GameRegistry.registerTileEntity(TileEntityCompost.class, Util.MOD_ID_LOWER + ":tileEntityCompost"); GameRegistry.registerTileEntity(TileEntityFeeder.class, Util.MOD_ID_LOWER + ":tileEntityFeeder"); GameRegistry.registerTileEntity(TileEntityGiantChest.class, Util.MOD_ID_LOWER + ":tileEntityGiantChest"); + GameRegistry.registerTileEntity(TileEntityGrinder.class, Util.MOD_ID_LOWER + ":tileEntityGrinder"); + GameRegistry.registerTileEntity(TileEntityFurnaceDouble.class, Util.MOD_ID_LOWER + ":tileEntityFurnaceDouble"); } -} + + @Override + public boolean shouldRefresh(Block oldBlock, Block newBlock, int oldMeta, int newMeta, World world, int x, int y, int z){ + return newBlock == null || newBlock instanceof BlockAir; + } +} \ No newline at end of file diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityCompost.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityCompost.java index 41b7e61b1..de8cfc73f 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityCompost.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityCompost.java @@ -3,6 +3,8 @@ package ellpeck.someprettyrandomstuff.tile; import ellpeck.someprettyrandomstuff.config.ConfigValues; import ellpeck.someprettyrandomstuff.items.InitItems; import ellpeck.someprettyrandomstuff.items.ItemFertilizer; +import ellpeck.someprettyrandomstuff.items.ItemMisc; +import ellpeck.someprettyrandomstuff.items.metalists.TheMiscItems; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -30,6 +32,11 @@ public class TileEntityCompost extends TileEntityInventoryBase{ } } + @Override + public int getInventoryStackLimit(){ + return this.amountNeededToConvert; + } + @Override public void writeToNBT(NBTTagCompound compound){ super.writeToNBT(compound); @@ -41,4 +48,19 @@ public class TileEntityCompost extends TileEntityInventoryBase{ super.readFromNBT(compound); this.conversionTime = compound.getInteger("ConversionTime"); } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack){ + return stack.getItem() instanceof ItemMisc && stack.getItemDamage() == TheMiscItems.MASHED_FOOD.ordinal(); + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side){ + return this.isItemValidForSlot(slot, stack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side){ + return stack.getItem() instanceof ItemFertilizer; + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFeeder.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFeeder.java index 38de7fd6d..62524cb53 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFeeder.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFeeder.java @@ -7,6 +7,7 @@ import ellpeck.someprettyrandomstuff.config.ConfigValues; import ellpeck.someprettyrandomstuff.network.PacketHandler; import ellpeck.someprettyrandomstuff.network.PacketTileEntityFeeder; import net.minecraft.entity.passive.EntityAnimal; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; @@ -83,4 +84,19 @@ public class TileEntityFeeder extends TileEntityInventoryBase{ super.readFromNBT(compound); this.currentTimer = compound.getInteger("Timer"); } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack){ + return true; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side){ + return this.isItemValidForSlot(slot, stack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side){ + return false; + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFurnaceDouble.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFurnaceDouble.java new file mode 100644 index 000000000..2cdd661a2 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityFurnaceDouble.java @@ -0,0 +1,155 @@ +package ellpeck.someprettyrandomstuff.tile; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; + +public class TileEntityFurnaceDouble extends TileEntityInventoryBase{ + + public static final int SLOT_COAL = 0; + public static final int SLOT_INPUT_1 = 1; + public static final int SLOT_OUTPUT_1 = 2; + public static final int SLOT_INPUT_2 = 3; + public static final int SLOT_OUTPUT_2 = 4; + + public int coalTime; + public int coalTimeLeft; + + public final int maxBurnTime; + + public int firstSmeltTime; + public int secondSmeltTime; + + public TileEntityFurnaceDouble(){ + super(5, "tileEntityFurnaceDouble"); + this.maxBurnTime = ConfigValues.furnaceDoubleSmeltTime; + } + + @Override + @SuppressWarnings("unchecked") + public void updateEntity(){ + if(!worldObj.isRemote){ + boolean theFlag = this.coalTimeLeft > 0; + + if(this.coalTimeLeft > 0) this.coalTimeLeft--; + + boolean canSmeltOnFirst = this.canSmeltOn(SLOT_INPUT_1, SLOT_OUTPUT_1); + boolean canSmeltOnSecond = this.canSmeltOn(SLOT_INPUT_2, SLOT_OUTPUT_2); + + if((canSmeltOnFirst || canSmeltOnSecond) && this.coalTimeLeft <= 0 && this.slots[SLOT_COAL] != null){ + this.coalTime = TileEntityFurnace.getItemBurnTime(this.slots[SLOT_COAL]); + this.coalTimeLeft = this.coalTime; + if(this.coalTime > 0){ + this.slots[SLOT_COAL].stackSize--; + if(this.slots[SLOT_COAL].stackSize <= 0) this.slots[SLOT_COAL] = this.slots[SLOT_COAL].getItem().getContainerItem(this.slots[SLOT_COAL]); + } + } + + if(this.coalTimeLeft > 0){ + if(canSmeltOnFirst){ + this.firstSmeltTime++; + if(this.firstSmeltTime >= maxBurnTime){ + this.finishBurning(SLOT_INPUT_1, SLOT_OUTPUT_1); + this.firstSmeltTime = 0; + } + } + else this.firstSmeltTime = 0; + + if(canSmeltOnSecond){ + this.secondSmeltTime++; + if(this.secondSmeltTime >= maxBurnTime){ + this.finishBurning(SLOT_INPUT_2, SLOT_OUTPUT_2); + this.secondSmeltTime = 0; + } + } + else this.secondSmeltTime = 0; + } + else{ + this.firstSmeltTime = 0; + this.secondSmeltTime = 0; + this.coalTime = 0; + } + + if(theFlag != this.coalTimeLeft > 0){ + int metaBefore = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, (this.coalTimeLeft > 0 ? metaBefore+4 : metaBefore-4), 2); + } + } + + } + + public boolean canSmeltOn(int theInput, int theOutput){ + if(this.slots[theInput] != null){ + ItemStack output = FurnaceRecipes.smelting().getSmeltingResult(this.slots[theInput]); + if(this.slots[theInput] != null){ + if(output != null){ + if(this.slots[theOutput] == null || (this.slots[theOutput].isItemEqual(output) && this.slots[theOutput].stackSize <= this.slots[theOutput].getMaxStackSize()-output.stackSize)){ + return true; + } + } + } + } + return false; + } + + public void finishBurning(int theInput, int theOutput){ + ItemStack output = FurnaceRecipes.smelting().getSmeltingResult(this.slots[theInput]); + if (this.slots[theOutput] == null) this.slots[theOutput] = output.copy(); + else if(this.slots[theOutput].getItem() == output.getItem()) this.slots[theOutput].stackSize += output.stackSize; + + this.slots[theInput].stackSize--; + if (this.slots[theInput].stackSize <= 0) this.slots[theInput] = null; + } + + @Override + public void writeToNBT(NBTTagCompound compound){ + super.writeToNBT(compound); + compound.setInteger("CoalTime", this.coalTime); + compound.setInteger("CoalTimeLeft", this.coalTimeLeft); + compound.setInteger("FirstSmeltTime", this.firstSmeltTime); + compound.setInteger("SecondSmeltTime", this.secondSmeltTime); + } + + @Override + public void readFromNBT(NBTTagCompound compound){ + super.readFromNBT(compound); + this.coalTime = compound.getInteger("CoalTime"); + this.coalTimeLeft = compound.getInteger("CoalTimeLeft"); + this.firstSmeltTime = compound.getInteger("FirstSmeltTime"); + this.secondSmeltTime = compound.getInteger("SecondSmeltTime"); + } + + @SideOnly(Side.CLIENT) + public int getCoalTimeToScale(int i){ + return this.coalTimeLeft * i / this.coalTime; + } + + @SideOnly(Side.CLIENT) + public int getFirstTimeToScale(int i){ + return this.firstSmeltTime * i / this.maxBurnTime; + } + + @SideOnly(Side.CLIENT) + public int getSecondTimeToScale(int i){ + return this.secondSmeltTime * i / this.maxBurnTime; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack){ + return i == SLOT_COAL && TileEntityFurnace.getItemBurnTime(stack) > 0 || (i == SLOT_INPUT_1 || i == SLOT_INPUT_2) && FurnaceRecipes.smelting().getSmeltingResult(stack) != null; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side){ + return this.isItemValidForSlot(slot, stack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side){ + return slot == SLOT_OUTPUT_1 || slot == SLOT_OUTPUT_2; + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGiantChest.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGiantChest.java index d5e8358d3..ff9987dfa 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGiantChest.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGiantChest.java @@ -40,4 +40,24 @@ public class TileEntityGiantChest extends TileEntityInventoryBase{ } } } + + @Override + public boolean canUpdate(){ + return false; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack){ + return true; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side){ + return this.isItemValidForSlot(slot, stack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side){ + return true; + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGrinder.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGrinder.java new file mode 100644 index 000000000..464ffe6e8 --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityGrinder.java @@ -0,0 +1,186 @@ +package ellpeck.someprettyrandomstuff.tile; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.someprettyrandomstuff.config.ConfigValues; +import ellpeck.someprettyrandomstuff.recipe.GrinderRecipes; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; + +import java.util.Random; + +public class TileEntityGrinder extends TileEntityInventoryBase{ + + public static final int SLOT_COAL = 0; + public static final int SLOT_INPUT_1 = 1; + public static final int SLOT_OUTPUT_1_1 = 2; + public static final int SLOT_OUTPUT_1_2 = 3; + public static final int SLOT_INPUT_2 = 4; + public static final int SLOT_OUTPUT_2_1 = 5; + public static final int SLOT_OUTPUT_2_2 = 6; + + public int coalTime; + public int coalTimeLeft; + + public int maxCrushTime; + + public int firstCrushTime; + public int secondCrushTime; + + public boolean isDouble; + + public TileEntityGrinder(){ + super(0, ""); + } + + public TileEntityGrinder(boolean isDouble){ + super(isDouble ? 7 : 4, isDouble ? "tileEntityGrinderDouble" : "tileEntityGrinder"); + this.maxCrushTime = isDouble ? ConfigValues.grinderDoubleCrushTime : ConfigValues.grinderCrushTime; + this.isDouble = isDouble; + } + + @Override + @SuppressWarnings("unchecked") + public void updateEntity(){ + if(!worldObj.isRemote){ + boolean theFlag = this.coalTimeLeft > 0; + + if(this.coalTimeLeft > 0) this.coalTimeLeft--; + + boolean canCrushOnFirst = this.canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2); + boolean canCrushOnSecond = false; + if(this.isDouble) canCrushOnSecond = this.canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2); + + if((canCrushOnFirst || canCrushOnSecond) && this.coalTimeLeft <= 0 && this.slots[SLOT_COAL] != null){ + this.coalTime = TileEntityFurnace.getItemBurnTime(this.slots[SLOT_COAL]); + this.coalTimeLeft = this.coalTime; + if(this.coalTime > 0){ + this.slots[SLOT_COAL].stackSize--; + if(this.slots[SLOT_COAL].stackSize <= 0) this.slots[SLOT_COAL] = this.slots[SLOT_COAL].getItem().getContainerItem(this.slots[SLOT_COAL]); + } + } + + if(this.coalTimeLeft > 0){ + if(canCrushOnFirst){ + this.firstCrushTime++; + if(this.firstCrushTime >= maxCrushTime){ + this.finishCrushing(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2); + this.firstCrushTime = 0; + } + } + else this.firstCrushTime = 0; + + if(this.isDouble){ + if(canCrushOnSecond){ + this.secondCrushTime++; + if(this.secondCrushTime >= maxCrushTime){ + this.finishCrushing(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2); + this.secondCrushTime = 0; + } + } + else this.secondCrushTime = 0; + } + } + else{ + this.firstCrushTime = 0; + this.secondCrushTime = 0; + this.coalTime = 0; + } + + if(theFlag != this.coalTimeLeft > 0){ + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, (this.coalTimeLeft > 0 ? 1 : 0), 2); + } + } + } + + public boolean canCrushOn(int theInput, int theFirstOutput, int theSecondOutput){ + if(this.slots[theInput] != null){ + ItemStack outputOne = GrinderRecipes.instance().getOutput(this.slots[theInput], false); + ItemStack outputTwo = GrinderRecipes.instance().getOutput(this.slots[theInput], true); + if(this.slots[theInput] != null){ + if(outputOne != null){ + if((this.slots[theFirstOutput] == null || (this.slots[theFirstOutput].isItemEqual(outputOne) && this.slots[theFirstOutput].stackSize <= this.slots[theFirstOutput].getMaxStackSize()-outputOne.stackSize)) && (outputTwo == null || (this.slots[theSecondOutput] == null || (this.slots[theSecondOutput].isItemEqual(outputTwo) && this.slots[theSecondOutput].stackSize <= this.slots[theSecondOutput].getMaxStackSize()-outputTwo.stackSize)))){ + return true; + } + } + } + } + return false; + } + + public void finishCrushing(int theInput, int theFirstOutput, int theSecondOutput){ + ItemStack outputOnFirst = GrinderRecipes.instance().getOutput(this.slots[theInput], false); + if (this.slots[theFirstOutput] == null) this.slots[theFirstOutput] = outputOnFirst.copy(); + else if(this.slots[theFirstOutput].getItem() == outputOnFirst.getItem()) this.slots[theFirstOutput].stackSize += outputOnFirst.stackSize; + + int chance = GrinderRecipes.instance().getSecondChance(this.slots[theInput]); + ItemStack outputOnSecond = GrinderRecipes.instance().getOutput(this.slots[theInput], true); + if(outputOnSecond != null){ + int rand = new Random().nextInt(100) + 1; + if(rand <= chance){ + if(this.slots[theSecondOutput] == null) this.slots[theSecondOutput] = outputOnSecond.copy(); + else if(this.slots[theSecondOutput].getItem() == outputOnSecond.getItem()) this.slots[theSecondOutput].stackSize += outputOnSecond.stackSize; + } + } + + this.slots[theInput].stackSize--; + if (this.slots[theInput].stackSize <= 0) this.slots[theInput] = null; + } + + @Override + public void writeToNBT(NBTTagCompound compound){ + compound.setInteger("CoalTime", this.coalTime); + compound.setInteger("CoalTimeLeft", this.coalTimeLeft); + compound.setInteger("FirstCrushTime", this.firstCrushTime); + compound.setInteger("SecondCrushTime", this.secondCrushTime); + compound.setInteger("MaxCrushTime", this.maxCrushTime); + compound.setBoolean("IsDouble", this.isDouble); + compound.setString("Name", this.name); + compound.setInteger("Slots", this.slots.length); + super.writeToNBT(compound); + } + + @Override + public void readFromNBT(NBTTagCompound compound){ + this.coalTime = compound.getInteger("CoalTime"); + this.coalTimeLeft = compound.getInteger("CoalTimeLeft"); + this.firstCrushTime = compound.getInteger("FirstCrushTime"); + this.secondCrushTime = compound.getInteger("SecondCrushTime"); + this.maxCrushTime = compound.getInteger("MaxCrushTime"); + this.isDouble = compound.getBoolean("IsDouble"); + this.name = compound.getString("Name"); + this.initializeSlots(compound.getInteger("Slots")); + super.readFromNBT(compound); + } + + @SideOnly(Side.CLIENT) + public int getCoalTimeToScale(int i){ + return this.coalTimeLeft * i / this.coalTime; + } + + @SideOnly(Side.CLIENT) + public int getFirstTimeToScale(int i){ + return this.firstCrushTime * i / this.maxCrushTime; + } + + @SideOnly(Side.CLIENT) + public int getSecondTimeToScale(int i){ + return this.secondCrushTime * i / this.maxCrushTime; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack){ + return i == SLOT_COAL && TileEntityFurnace.getItemBurnTime(stack) > 0 || (i == SLOT_INPUT_1 || i == SLOT_INPUT_2) && GrinderRecipes.instance().getOutput(stack, false) != null; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side){ + return this.isItemValidForSlot(slot, stack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side){ + return slot == SLOT_OUTPUT_1_1 || slot == SLOT_OUTPUT_1_2 || slot == SLOT_OUTPUT_2_1 || slot == SLOT_OUTPUT_2_2; + } +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityInventoryBase.java b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityInventoryBase.java index e54c06de1..7c0036d9f 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityInventoryBase.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/tile/TileEntityInventoryBase.java @@ -1,12 +1,12 @@ package ellpeck.someprettyrandomstuff.tile; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -public abstract class TileEntityInventoryBase extends TileEntityBase implements IInventory{ +public abstract class TileEntityInventoryBase extends TileEntityBase implements ISidedInventory{ public ItemStack slots[]; public String name; @@ -20,7 +20,7 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements public void writeToNBT(NBTTagCompound compound){ super.writeToNBT(compound); NBTTagList tagList = new NBTTagList(); - for(int currentIndex = 0; currentIndex < slots.length; ++currentIndex){ + for(int currentIndex = 0; currentIndex < slots.length; currentIndex++){ if (slots[currentIndex] != null){ NBTTagCompound tagCompound = new NBTTagCompound(); tagCompound.setByte("Slot", (byte)currentIndex); @@ -35,7 +35,7 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements public void readFromNBT(NBTTagCompound compound){ super.readFromNBT(compound); NBTTagList tagList = compound.getTagList("Items", 10); - for (int i = 0; i < tagList.tagCount(); ++i){ + for (int i = 0; i < tagList.tagCount(); i++){ NBTTagCompound tagCompound = tagList.getCompoundTagAt(i); byte slotIndex = tagCompound.getByte("Slot"); if (slotIndex >= 0 && slotIndex < slots.length){ @@ -120,4 +120,13 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements public void closeInventory(){ } + + @Override + public int[] getAccessibleSlotsFromSide(int side){ + int[] theInt = new int[slots.length]; + for(int i = 0; i < theInt.length; i++){ + theInt[i] = i; + } + return theInt; + } } diff --git a/src/main/java/ellpeck/someprettyrandomstuff/util/IInformation.java b/src/main/java/ellpeck/someprettyrandomstuff/util/IInformation.java new file mode 100644 index 000000000..554cf3fed --- /dev/null +++ b/src/main/java/ellpeck/someprettyrandomstuff/util/IInformation.java @@ -0,0 +1,7 @@ +package ellpeck.someprettyrandomstuff.util; + +public interface IInformation{ + + public abstract String[] getInformationString(); + +} diff --git a/src/main/java/ellpeck/someprettyrandomstuff/util/Util.java b/src/main/java/ellpeck/someprettyrandomstuff/util/Util.java index 169231b92..b7e0838ea 100644 --- a/src/main/java/ellpeck/someprettyrandomstuff/util/Util.java +++ b/src/main/java/ellpeck/someprettyrandomstuff/util/Util.java @@ -1,9 +1,13 @@ package ellpeck.someprettyrandomstuff.util; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.oredict.OreDictionary; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; @@ -44,11 +48,14 @@ public class Util{ public static final String UNDERLINE = (char)167 + "n"; public static final String ITALIC = (char)167 + "o"; + public static final String[] ROMAN_NUMERALS = new String[]{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"}; + + public static final int DECIMAL_COLOR_WHITE = 16777215; + public static boolean isShiftPressed(){ return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); } - @SuppressWarnings("unused") public static boolean isControlPressed(){ return Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL); } @@ -58,11 +65,8 @@ public class Util{ } public static String addStandardInformation(Item item){ - if(item instanceof IName){ - if(isShiftPressed()) return StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)item).getName() + ".desc"); - else return shiftForInfo(); - } - return null; + if(isShiftPressed()) return StatCollector.translateToLocal("tooltip." + Util.MOD_ID_LOWER + "." + ((IName)item).getName() + ".desc"); + else return shiftForInfo(); } public static void logInfo(String text){ @@ -71,9 +75,7 @@ public class Util{ public static void registerItems(Item[] items){ for(Item item : items){ - if(item instanceof IName){ - GameRegistry.registerItem(item, ((IName)item).getName()); - } + register(item); } } @@ -81,7 +83,24 @@ public class Util{ return new ResourceLocation(MOD_ID_LOWER, "textures/gui/" + file + ".png"); } - public static String getNamePrefix(){ - return MOD_ID_LOWER + "."; + public static String setUnlocalizedName(Item item){ + return MOD_ID_LOWER + "." + ((IName)item).getName(); + } + + public static String setUnlocalizedName(Block block){ + return MOD_ID_LOWER + "." + ((IName)block).getName(); + } + + public static void register(Item item){ + GameRegistry.registerItem(item, ((IName)item).getName()); + } + + public static void register(Block block, Class itemBlock){ + GameRegistry.registerBlock(block, itemBlock, ((IName)block).getName()); + } + + public static void registerEvent(Object o){ + FMLCommonHandler.instance().bus().register(o); + MinecraftForge.EVENT_BUS.register(o); } } \ No newline at end of file diff --git a/src/main/resources/assets/someprettyrandomstuff/lang/en_US.lang b/src/main/resources/assets/someprettyrandomstuff/lang/en_US.lang index 8fc6e9f3a..217220c21 100644 --- a/src/main/resources/assets/someprettyrandomstuff/lang/en_US.lang +++ b/src/main/resources/assets/someprettyrandomstuff/lang/en_US.lang @@ -8,12 +8,11 @@ tile.someprettyrandomstuff.blockMiscBlackQuartzChiseled.name=Chiseled Block of B tile.someprettyrandomstuff.blockMiscBlackQuartzPillar.name=Pillar of Black Quartz tile.someprettyrandomstuff.blockFeeder.name=Automatic Feeder tile.someprettyrandomstuff.blockGiantChest.name=Giant Chest +tile.someprettyrandomstuff.blockGrinder.name=Crusher +tile.someprettyrandomstuff.blockGrinderDouble.name=Double Crusher +tile.someprettyrandomstuff.blockFurnaceDouble.name=Double Furnace item.someprettyrandomstuff.itemMiscMashedFood.name=Mashed Food -item.someprettyrandomstuff.itemMiscRefinedIron.name=Refined Iron -item.someprettyrandomstuff.itemMiscRefinedRedstone.name=Refined Redstone -item.someprettyrandomstuff.itemMiscCompressedIron.name=Compressed Iron -item.someprettyrandomstuff.itemMiscSteel.name=Steel item.someprettyrandomstuff.itemFertilizer.name=Fertilizer item.someprettyrandomstuff.itemMiscDough.name=Dough item.someprettyrandomstuff.itemMiscPaperCone.name=Paper Cone @@ -32,6 +31,7 @@ item.someprettyrandomstuff.itemAxeObsidian.name=Obsidian Axe item.someprettyrandomstuff.itemShovelObsidian.name=Obsidian Shovel item.someprettyrandomstuff.itemHoeObsidian.name=Obsidian Hoe item.someprettyrandomstuff.itemSwordObsidian.name=Obsidian Sword +item.someprettyrandomstuff.itemCrafterOnAStick.name=Crafting Table On A Stick item.someprettyrandomstuff.itemFoodBaguette.name=Baguette item.someprettyrandomstuff.itemFoodPizza.name=Pizza @@ -50,24 +50,42 @@ item.someprettyrandomstuff.itemFoodCarrotJuice.name=Carrot Juice item.someprettyrandomstuff.itemFoodPumpkinStew.name=Pumpkin Stew item.someprettyrandomstuff.itemFoodCheese.name=Cheese +item.someprettyrandomstuff.itemSpecialUnknownSubstance.name=Unknown Substance +item.someprettyrandomstuff.itemSpecialSolidifiedExperience.name=Solidified Experience +item.someprettyrandomstuff.itemSpecialBloodFragment.name=Blood Fragment +item.someprettyrandomstuff.itemSpecialHeartPart.name=Part of a Heart +item.someprettyrandomstuff.itemSpecialPearlShard.name=Ender Pearl Shard +item.someprettyrandomstuff.itemSpecialEmeraldShard.name=Emerald Shard + +item.someprettyrandomstuff.itemDustIron.name=Crushed Iron +item.someprettyrandomstuff.itemDustGold.name=Crushed Gold +item.someprettyrandomstuff.itemDustDiamond.name=Crushed Diamond +item.someprettyrandomstuff.itemDustLapis.name=Crushed Lapis +item.someprettyrandomstuff.itemDustEmerald.name=Crushed Emerald + tooltip.someprettyrandomstuff.shiftForInfo.desc=Press Shift for Info tooltip.someprettyrandomstuff.hunger.desc=Fills tooltip.someprettyrandomstuff.saturation.desc=Saturation tooltip.someprettyrandomstuff.durability.desc=Durability -tooltip.someprettyrandomstuff.blockCompost.desc=Used to make Fertilizer with Mashed Food +tooltip.someprettyrandomstuff.blockCompost.desc.1=Used to make Fertilizer with Mashed Food +tooltip.someprettyrandomstuff.blockCompost.desc.2=BETA INFO: Will visually contain Compost in the Future! tooltip.someprettyrandomstuff.blockMiscOreBlackQuartz.desc=The darkest form of Quartz. Also: You had Silk Touch! tooltip.someprettyrandomstuff.blockMiscBlackQuartz.desc=Black, eerie Quartz! Nice for decorating. tooltip.someprettyrandomstuff.blockMiscBlackQuartzChiseled.desc=Black, eerie chiseled Quartz! Nice for decorating. tooltip.someprettyrandomstuff.blockMiscBlackQuartzPillar.desc=Kind of a pillar. Not really, though. It's fake! Fake I say! tooltip.someprettyrandomstuff.blockFeeder.desc=Feeds Animals on its own! tooltip.someprettyrandomstuff.blockGiantChest.desc=GUI Scale on 'Auto'? That's a problem! +tooltip.someprettyrandomstuff.blockGrinder.desc.1=Crushes Ores into Dusts! +tooltip.someprettyrandomstuff.blockGrinder.desc.2=You get two Dusts per Ore and Extras! +tooltip.someprettyrandomstuff.blockGrinder.desc.3=To crush two ores simultaneously, +tooltip.someprettyrandomstuff.blockGrinder.desc.4=build the Double Crusher! +tooltip.someprettyrandomstuff.blockGrinderDouble.desc.1=Crushes Ores into Dusts! +tooltip.someprettyrandomstuff.blockGrinderDouble.desc.2=You get two Dusts per Ore and Extras! +tooltip.someprettyrandomstuff.blockGrinderDouble.desc.3=Can crush two Ores simultaneously! +tooltip.someprettyrandomstuff.blockFurnaceDouble.desc=Smelts two Things simultaneously! tooltip.someprettyrandomstuff.itemMiscMashedFood.desc=Used to make Fertilizer -tooltip.someprettyrandomstuff.itemMiscRefinedIron.desc=Iron, but better -tooltip.someprettyrandomstuff.itemMiscRefinedRedstone.desc=Redstone, but better -tooltip.someprettyrandomstuff.itemMiscCompressedIron.desc=Iron, but compressed -tooltip.someprettyrandomstuff.itemMiscSteel.desc=Like Iron, but stronger. Much stronger. tooltip.someprettyrandomstuff.itemFertilizer.desc=Om nom nom. Don't eat it. tooltip.someprettyrandomstuff.itemMiscDough.desc=Used to make things that involve dough. tooltip.someprettyrandomstuff.itemMiscPaperCone.desc=Used to store foodstuffs! @@ -86,12 +104,13 @@ tooltip.someprettyrandomstuff.itemAxeObsidian.desc=Mines Wood. Slooooowly. tooltip.someprettyrandomstuff.itemShovelObsidian.desc=Mines Dirt. Slooooowly. tooltip.someprettyrandomstuff.itemHoeObsidian.desc=Mines... uhm... yea. tooltip.someprettyrandomstuff.itemSwordObsidian.desc=Mines... mobs? +tooltip.someprettyrandomstuff.itemCrafterOnAStick.desc=A Crafting Table you can carry around! tooltip.someprettyrandomstuff.itemFoodBaguette.desc=It's french. It's noms. tooltip.someprettyrandomstuff.itemFoodPizza.desc=Who doesn't like it? tooltip.someprettyrandomstuff.itemFoodHamburger.desc=It's from a german city! tooltip.someprettyrandomstuff.itemFoodBigCookie.desc=Do you know? The Subway Thing? -tooltip.someprettyrandomstuff.itemFoodSubmarineSandwich.desc=Do you know? The Subway and everything else Thing? +tooltip.someprettyrandomstuff.itemFoodSubmarineSandwich.desc=Just like Subway used to make! ...still does, right? tooltip.someprettyrandomstuff.itemFoodToast.desc="GHOSTS! GHOSTS! TOASTS!" tooltip.someprettyrandomstuff.itemFoodChocolate.desc=Lari likes. tooltip.someprettyrandomstuff.itemFoodChocolateCake.desc=Looks delicious. With redberries. Or something. @@ -104,6 +123,19 @@ tooltip.someprettyrandomstuff.itemFoodCarrotJuice.desc=Carrots, but pressed! tooltip.someprettyrandomstuff.itemFoodPumpkinStew.desc=Like Mushroom Stew or Rabbit Stew, but pumpykinny. tooltip.someprettyrandomstuff.itemFoodCheese.desc=Cheese. +tooltip.someprettyrandomstuff.itemSpecialUnknownSubstance.desc=Dropped by Skeletons. BETA INFO: Useless as of yet. +tooltip.someprettyrandomstuff.itemSpecialSolidifiedExperience.desc=Dropped by everyone. BETA INFO: Useless as of yet. +tooltip.someprettyrandomstuff.itemSpecialBloodFragment.desc=Dropped by everyone. BETA INFO: Useless as of yet. +tooltip.someprettyrandomstuff.itemSpecialHeartPart.desc=Dropped by everyone. BETA INFO: Useless as of yet. +tooltip.someprettyrandomstuff.itemSpecialPearlShard.desc=Dropped by Endermen. BETA INFO: Useless as of yet. +tooltip.someprettyrandomstuff.itemSpecialEmeraldShard.desc=Dropped by Creepers. BETA INFO: Useless as of yet. + +tooltip.someprettyrandomstuff.itemDustIron.desc=Iron! Crushed in the Crusher! +tooltip.someprettyrandomstuff.itemDustGold.desc=Gold! Crushed in the Crusher! +tooltip.someprettyrandomstuff.itemDustDiamond.desc=Diamond! Crushed in the Crusher! +tooltip.someprettyrandomstuff.itemDustLapis.desc=Lapis! Crushed in the Crusher! +tooltip.someprettyrandomstuff.itemDustEmerald.desc=Emerald! Crushed in the Crusher! + achievement.someprettyrandomstuff.smeltBaguette=Better than Bread! achievement.someprettyrandomstuff.smeltBaguette.desc=Bake a Baguette achievement.someprettyrandomstuff.craftDough=Knead, knead! @@ -129,8 +161,7 @@ achievement.someprettyrandomstuff.craftKnifeBlade.desc=Craft a Knife Blade achievement.someprettyrandomstuff.craftKnife=Sharper! Even sharper! achievement.someprettyrandomstuff.craftKnife.desc=Craft a Knife -info.someprettyrandomstuff.feeder.animal.desc=Animal -info.someprettyrandomstuff.feeder.animalsSuffix.desc=s +info.someprettyrandomstuff.feeder.animals.desc=Animals info.someprettyrandomstuff.feeder.enoughToBreed.desc=Enough to breed! info.someprettyrandomstuff.feeder.tooMany.desc=Too many to breed! info.someprettyrandomstuff.feeder.notEnough.desc=Not enough to breed! \ No newline at end of file diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostBottom.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostBottom.png deleted file mode 100644 index 790d97dce..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostBottom.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostFertilizer.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostFertilizer.png deleted file mode 100644 index f842ba60d..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostFertilizer.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostInside.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostInside.png deleted file mode 100644 index f34b73dd8..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostInside.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostMashedFood.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostMashedFood.png deleted file mode 100644 index 37d3b24f9..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostMashedFood.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostSide.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostSide.png deleted file mode 100644 index c431e1c4c..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostSide.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostTop.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostTop.png deleted file mode 100644 index 4f1331605..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockCompostTop.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDouble.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDouble.png new file mode 100644 index 000000000..819a89861 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDouble.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleFront.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleFront.png new file mode 100644 index 000000000..8db552960 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleFront.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleOn.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleOn.png new file mode 100644 index 000000000..41c512d4e Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleOn.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleTop.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleTop.png new file mode 100644 index 000000000..fc84e0c9f Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockFurnaceDoubleTop.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinder.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinder.png new file mode 100644 index 000000000..9715125f8 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinder.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderBottom.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderBottom.png new file mode 100644 index 000000000..819a89861 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderBottom.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderDouble.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderDouble.png new file mode 100644 index 000000000..0c6160b14 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderDouble.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderOn.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderOn.png new file mode 100644 index 000000000..13fa3fc54 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderOn.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderTop.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderTop.png new file mode 100644 index 000000000..ebe42f99d Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/blockGrinderTop.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/blocks/models/modelCompost.png b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/models/modelCompost.png new file mode 100644 index 000000000..2da473943 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/blocks/models/modelCompost.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiFurnaceDouble.png b/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiFurnaceDouble.png new file mode 100644 index 000000000..8b5c2ce8c Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiFurnaceDouble.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiGrinder.png b/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiGrinder.png new file mode 100644 index 000000000..b17b169ef Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiGrinder.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiGrinderDouble.png b/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiGrinderDouble.png new file mode 100644 index 000000000..f57b24fca Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/gui/guiGrinderDouble.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/blockCompost.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/blockCompost.png deleted file mode 100644 index f6e7d14db..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/items/blockCompost.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemCrafterOnAStick.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemCrafterOnAStick.png new file mode 100644 index 000000000..0b24de213 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemCrafterOnAStick.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemDust.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemDust.png new file mode 100644 index 000000000..768f1f830 Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemDust.png differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscCompressedIron.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscCompressedIron.png deleted file mode 100644 index d8a0cb07d..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscCompressedIron.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscRefinedIron.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscRefinedIron.png deleted file mode 100644 index e173cced1..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscRefinedIron.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscRefinedRedstone.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscRefinedRedstone.png deleted file mode 100644 index ca486b016..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscRefinedRedstone.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscSteel.png b/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscSteel.png deleted file mode 100644 index 1139d685b..000000000 Binary files a/src/main/resources/assets/someprettyrandomstuff/textures/items/itemMiscSteel.png and /dev/null differ diff --git a/src/main/resources/assets/someprettyrandomstuff/textures/logo.png b/src/main/resources/assets/someprettyrandomstuff/textures/logo.png new file mode 100644 index 000000000..d9b081cae Binary files /dev/null and b/src/main/resources/assets/someprettyrandomstuff/textures/logo.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 000000000..16197a4da --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,21 @@ +[ +{ + "modid": "SomePrettyRandomStuff", + "name": "Some Pretty Random Stuff", + "description": "A bunch of random stuff added to your Game to make it even more fun, exciting and add some more variety!", + "version": "0.0.1", + "mcversion": "1.7.10", + "url": "https://github.com/Ellpeck/SomePrettyRandomStuff", + "updateUrl": "", + "authorList": [ + "Ellpeck" + ], + "credits": "GlenthorLP for all of the awesome Graphics", + "logoFile": "assets/someprettyrandomstuff/textures/logo.png", + "screenshots": [ + ], + "parent":"", + "dependencies": [ + ] +} +] \ No newline at end of file