From dc8590ae86cf0297b33c2550405fa545eb36c46d Mon Sep 17 00:00:00 2001 From: Mohammad-Ali Minaie Date: Mon, 20 Feb 2017 00:44:46 -0500 Subject: [PATCH] discarded ItemBlock path and opted for abstract item class with custom code in init --- 1.11/eula.txt | 3 + 1.11/server.properties | 2 + .../primal/forgecraft/blocks/IngotBall.java | 2 + .../forgecraft/enumhandler/EnumHandler.java | 40 ++++++ .../nmd/primal/forgecraft/init/ModBlocks.java | 22 +++- .../nmd/primal/forgecraft/init/ModItems.java | 52 ++++++-- .../forgecraft/items/BaseMultiItem.java | 15 +++ .../forgecraft/items/ItemStoneTongs.java | 89 +++++++++---- .../items/blocks/ItemBlockIngotBall.java | 30 +++++ .../primal/forgecraft/util/IMetaLookup.java | 14 ++ .../forgecraft/models/item/ironingothot.json | 8 ++ .../models/item/stonetongs_ingot.json | 10 ++ .../models/item/stonetongs_ingot_default.json | 124 ++++++++++++++++++ 13 files changed, 369 insertions(+), 42 deletions(-) create mode 100644 1.11/eula.txt create mode 100644 1.11/server.properties create mode 100644 1.11/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java create mode 100644 1.11/src/main/java/nmd/primal/forgecraft/util/IMetaLookup.java create mode 100644 1.11/src/main/resources/assets/forgecraft/models/item/ironingothot.json create mode 100644 1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot.json create mode 100644 1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot_default.json diff --git a/1.11/eula.txt b/1.11/eula.txt new file mode 100644 index 00000000..b5009575 --- /dev/null +++ b/1.11/eula.txt @@ -0,0 +1,3 @@ +#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). +#Sun Feb 19 22:59:02 EST 2017 +eula=false diff --git a/1.11/server.properties b/1.11/server.properties new file mode 100644 index 00000000..e4035a0c --- /dev/null +++ b/1.11/server.properties @@ -0,0 +1,2 @@ +#Minecraft server properties +#Mon Feb 13 22:08:20 EST 2017 diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/IngotBall.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/IngotBall.java index 3668fb98..bc27df5d 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/blocks/IngotBall.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/IngotBall.java @@ -37,7 +37,9 @@ public class IngotBall extends BlockCustomBase { @Override public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { + //System.out.println(stack.getItemDamage()); worldIn.setBlockState(pos, state.withProperty(ACTIVE, Boolean.valueOf(false)), 2); + //System.out.println(state.getValue(ACTIVE)); } @Override diff --git a/1.11/src/main/java/nmd/primal/forgecraft/enumhandler/EnumHandler.java b/1.11/src/main/java/nmd/primal/forgecraft/enumhandler/EnumHandler.java index 4932cb97..44f855e5 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/enumhandler/EnumHandler.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/enumhandler/EnumHandler.java @@ -1,6 +1,7 @@ package nmd.primal.forgecraft.enumhandler; import net.minecraft.util.IStringSerializable; +import nmd.primal.forgecraft.util.IMetaLookup; /** * Created by mminaie on 2/1/17. @@ -35,4 +36,43 @@ public class EnumHandler { } + + public enum IngotTypes implements IMetaLookup { + IRONCOOL, /*0*/ + IRONHOT; /*1*/ + + public final int meta; + public final String name; + public boolean set = false; + + private IngotTypes() { + meta = ordinal(); + name = toString().toLowerCase(); + } + + @Override + public String getVariantName() { + return name; + } + + @Override + public int getOrdinal() { + return meta; + } + + @Override + public IngotTypes getByOrdinal(int i) { + return this.values()[i]; + } + + @Override + public String getID() { + return "ore_type"; + } + + } + + + + } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java index becfc424..27676b5e 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java @@ -8,6 +8,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.forgecraft.blocks.*; import nmd.primal.forgecraft.items.blocks.ItemBlockIngotBall; @@ -37,7 +39,8 @@ public class ModBlocks { public static Block failedironcruciblehot; public static Block ironball; - public static ItemBlock ironballitem; + //public static ItemBlock ironballitemcool; + //public static ItemBlock ironballitemhot; public static void init() { @@ -66,10 +69,12 @@ public class ModBlocks { failedironcruciblehot = new CrucibleHot(Material.ROCK, "failedironcruciblehot"); ironball = new IngotBall(Material.IRON, "ironball", 5.0F); - ironballitem = new ItemBlockIngotBall(ironball); + //ironballitemcool = new ItemBlockIngotBall(ironball); + //ironballitemhot = new ItemBlockIngotBall(ironball); } + public static void register() { registerBlock(firebox); registerBlock(bloomery); @@ -93,9 +98,12 @@ public class ModBlocks { registerBlock(failedironcrucible); registerBlock(failedironcruciblehot); - registerBlockSubType(ironball, ironballitem); + registerBlock(ironball); + //registerBlockSubType(ironball, ironballitemcool, "ironcool"); + //registerBlockSubType(ironball, ironballitemhot, "ironhot"); } + @SideOnly(Side.CLIENT) public static void registerRenders() { registerRender(firebox); registerRender(pistonbellowsoak); @@ -118,8 +126,8 @@ public class ModBlocks { registerRender(failedironcruciblehot); registerRender(ironball); - registerRenderCustom(ironballitem, 0, new ModelResourceLocation(ironballitem.getUnlocalizedName() + "_0")); - registerRenderCustom(ironballitem, 1, new ModelResourceLocation(ironballitem.getUnlocalizedName() + "_1")); + //registerRenderCustom(ironballitemcool, 0, new ModelResourceLocation(ironballitemcool.getUnlocalizedName())); + //registerRenderCustom(ironballitemhot, 1, new ModelResourceLocation(ironballitemhot.getUnlocalizedName())); } @@ -130,10 +138,10 @@ public class ModBlocks { GameRegistry.register(item); } - private static void registerBlockSubType(Block block, ItemBlock itemBlock){ + private static void registerBlockSubType(Block block, ItemBlock itemBlock, String registryName){ GameRegistry.register(block); ItemBlock item = itemBlock; - item.setRegistryName(block.getRegistryName()); + item.setRegistryName(registryName); GameRegistry.register(item); } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java index edfb5326..4cb2726c 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java @@ -4,18 +4,25 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.model.obj.OBJLoader; import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.forgecraft.ModInfo; -import nmd.primal.forgecraft.items.ItemBellowsHandle; -import nmd.primal.forgecraft.items.ItemForgingManual; -import nmd.primal.forgecraft.items.ItemSoftCrucible; -import nmd.primal.forgecraft.items.ItemStoneTongs; +import nmd.primal.forgecraft.blocks.IngotBall; +import nmd.primal.forgecraft.items.*; import nmd.primal.forgecraft.items.blocks.ItemBlockIngotBall; /** @@ -26,15 +33,32 @@ public class ModItems { public static Item pistonbellows; public static Item softcrucible; public static Item stonetongs; - //public static ItemBlock ironingotball; + //public static Item ironingotballcool; + public static Item ironingotballhot; //public static Item forgingmanual; public static void init() { - OBJLoader.INSTANCE.addDomain(ModInfo.MOD_ID); + //OBJLoader.INSTANCE.addDomain(ModInfo.MOD_ID); pistonbellows = new ItemBellowsHandle(); softcrucible = new ItemSoftCrucible(); stonetongs = new ItemStoneTongs("stonetongs"); - //ironingotball = new ItemBlockIngotBall(ModBlocks.ironball.setRegistryName(ModBlocks.ironball.getRegistryName())); + //ironingotballcool = new BaseMultiItem("ironingotcool") {}; + ironingotballhot = new BaseMultiItem("ironingothot") { + public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + if(!world.isRemote) { + ItemStack itemstack = player.getHeldItem(hand); + if (world.getBlockState(pos).getBlock() != ModBlocks.firebox) { + BlockPos tempPos = new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ()); + if(world.getBlockState(tempPos).getBlock() == Blocks.AIR){ + world.setBlockState(tempPos, ModBlocks.ironball.getDefaultState().withProperty(IngotBall.ACTIVE, true), 3); + itemstack.shrink(1); + return EnumActionResult.SUCCESS; + } + } + } + return EnumActionResult.FAIL; + } + }; //forgingmanual = new ItemForgingManual(); } @@ -42,17 +66,21 @@ public class ModItems { GameRegistry.register(pistonbellows); GameRegistry.register(softcrucible); GameRegistry.register(stonetongs); - //GameRegistry.register(ironingotball); + //GameRegistry.register(ironingotballcool); + GameRegistry.register(ironingotballhot); //GameRegistry.register(forgingmanual); } + @SideOnly(Side.CLIENT) public static void registerRenders() { registerRender(pistonbellows); registerRender(softcrucible); - //registerRenderItemBlock(ironingotball); + //registerRender(ironingotballcool); + registerRender(ironingotballhot); //registerRender(forgingmanual); } + @SideOnly(Side.CLIENT) public static void registerCustomRenders(){ ModelBakery.registerItemVariants(ModItems.stonetongs, ModItems.stonetongs.getRegistryName(), new ResourceLocation(ModInfo.MOD_ID, "stonetongs"), @@ -61,7 +89,8 @@ public class ModItems { new ResourceLocation(ModInfo.MOD_ID, "stonetongs_emptyhotcracked"), new ResourceLocation(ModInfo.MOD_ID, "stonetongs_hotiron"), new ResourceLocation(ModInfo.MOD_ID, "stonetongs_hotironcooked"), - new ResourceLocation(ModInfo.MOD_ID, "stonetongs_hotironfailed") + new ResourceLocation(ModInfo.MOD_ID, "stonetongs_hotironfailed"), + new ResourceLocation(ModInfo.MOD_ID, "stonetongs_ingot") ); ModelLoader.setCustomMeshDefinition(ModItems.stonetongs, new ItemMeshDefinition() { @@ -86,6 +115,9 @@ public class ModItems { else if (stack.getTagCompound().getInteger("type") == 5 ) { return new ModelResourceLocation(stack.getItem().getRegistryName() + "_hotironfailed", "inventory"); } + else if (stack.getTagCompound().getInteger("type") == 6 ) { + return new ModelResourceLocation(stack.getItem().getRegistryName() + "_ingot", "inventory"); + } else return new ModelResourceLocation(stack.getItem().getRegistryName(), "inventory"); } return new ModelResourceLocation(stack.getItem().getRegistryName(), "inventory"); diff --git a/1.11/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java b/1.11/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java new file mode 100644 index 00000000..3b80e093 --- /dev/null +++ b/1.11/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java @@ -0,0 +1,15 @@ +package nmd.primal.forgecraft.items; + +import nmd.primal.forgecraft.items.BaseItem; + +/** + * Created by mminaie on 2/19/17. + */ +public abstract class BaseMultiItem extends BaseItem { + + public BaseMultiItem( String registryName) { + setUnlocalizedName(registryName); + setRegistryName(registryName); + } + +} diff --git a/1.11/src/main/java/nmd/primal/forgecraft/items/ItemStoneTongs.java b/1.11/src/main/java/nmd/primal/forgecraft/items/ItemStoneTongs.java index def79a15..cb636696 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/items/ItemStoneTongs.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/items/ItemStoneTongs.java @@ -13,6 +13,7 @@ import net.minecraft.world.World; import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.blocks.Crucible; import nmd.primal.forgecraft.blocks.CrucibleHot; +import nmd.primal.forgecraft.blocks.IngotBall; import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.tiles.TileBaseCrucible; import nmd.primal.forgecraft.tiles.TileBloomery; @@ -44,8 +45,40 @@ public class ItemStoneTongs extends Item { public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + + /* + 0 | Default StoneTongs + 1 | Empty Crucible Hot + 2 | Empty Crucible Cracked Hot + 3 | Hot Iron Crucible + 4 | Hot Cooked Iron Crucible + 5 | Hot Failed Iron Crucible + 6 | Hot Iron Ingot + 7 | + */ + if(!world.isRemote) { ItemStack itemstack = player.getHeldItem(hand); + + /***** + Picks Up Hot Ingots from the Ground + *****/ + if (world.getBlockState(pos).getBlock() != ModBlocks.bloomery) { + if (world.getBlockState(pos).getBlock() instanceof IngotBall) { + //TileBaseCrucible tileCrucible = (TileBaseCrucible) world.getTileEntity(pos); + if (world.getBlockState(pos).getBlock() == ModBlocks.ironball) { + if(world.getBlockState(pos).getValue(IngotBall.ACTIVE) == true) { + itemstack.getTagCompound().setInteger("type", 6); + //itemstack.getTagCompound().setInteger("cooldown", tileCrucible.countdown); + world.setBlockToAir(pos); + System.out.println(itemstack.getTagCompound().getInteger("type")); + return EnumActionResult.SUCCESS; + } + } + } + } + + /***** Picks Up Hot Crucibles from the Ground *****/ @@ -84,7 +117,7 @@ public class ItemStoneTongs extends Item { } } /***** - Places the crucible from the Tongs to the World + Places the content from the Tongs to the World *****/ if ((world.getBlockState(pos).getBlock() instanceof Crucible) || (world.getBlockState(pos).getBlock() instanceof CrucibleHot)) { return EnumActionResult.FAIL; @@ -131,7 +164,9 @@ public class ItemStoneTongs extends Item { itemstack.getTagCompound().setInteger("type", 0); return EnumActionResult.SUCCESS; case 6: - return EnumActionResult.FAIL; + world.setBlockState(tempPos, ModBlocks.ironball.getDefaultState().withProperty(IngotBall.ACTIVE, true), 3); + itemstack.getTagCompound().setInteger("type", 0); + return EnumActionResult.SUCCESS; case 7: return EnumActionResult.FAIL; } @@ -141,31 +176,35 @@ public class ItemStoneTongs extends Item { /***** Pulls the crucible from the Bloomery *****/ - if (world.getBlockState(pos).getBlock() == ModBlocks.bloomery) { - TileBloomery tile = (TileBloomery) world.getTileEntity(pos); - if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.emptycruciblehot))) { - itemstack.getTagCompound().setInteger("type", 1); - tile.setSlotStack(1, ItemStack.EMPTY); - return EnumActionResult.SUCCESS; - } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.emptycruciblecrackedhot))) { - itemstack.getTagCompound().setInteger("type", 2); - tile.setSlotStack(1, ItemStack.EMPTY); - return EnumActionResult.SUCCESS; - } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.hotironcrucible))) { - itemstack.getTagCompound().setInteger("type", 3); - tile.setSlotStack(1, ItemStack.EMPTY); - return EnumActionResult.SUCCESS; - } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.hotcookedironcrucible))) { - itemstack.getTagCompound().setInteger("type", 4); - tile.setSlotStack(1, ItemStack.EMPTY); - return EnumActionResult.SUCCESS; - } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.failedironcruciblehot))) { - itemstack.getTagCompound().setInteger("type", 5); - tile.setSlotStack(1, ItemStack.EMPTY); - return EnumActionResult.SUCCESS; + if(itemstack.getTagCompound().getInteger("type") == 0){ + if (world.getBlockState(pos).getBlock() == ModBlocks.bloomery) { + TileBloomery tile = (TileBloomery) world.getTileEntity(pos); + if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.emptycruciblehot))) { + itemstack.getTagCompound().setInteger("type", 1); + tile.setSlotStack(1, ItemStack.EMPTY); + return EnumActionResult.SUCCESS; + } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.emptycruciblecrackedhot))) { + itemstack.getTagCompound().setInteger("type", 2); + tile.setSlotStack(1, ItemStack.EMPTY); + return EnumActionResult.SUCCESS; + } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.hotironcrucible))) { + itemstack.getTagCompound().setInteger("type", 3); + tile.setSlotStack(1, ItemStack.EMPTY); + return EnumActionResult.SUCCESS; + } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.hotcookedironcrucible))) { + itemstack.getTagCompound().setInteger("type", 4); + tile.setSlotStack(1, ItemStack.EMPTY); + return EnumActionResult.SUCCESS; + } else if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.failedironcruciblehot))) { + itemstack.getTagCompound().setInteger("type", 5); + tile.setSlotStack(1, ItemStack.EMPTY); + return EnumActionResult.SUCCESS; + } } - else return EnumActionResult.FAIL; + } + else return EnumActionResult.FAIL; + System.out.println(itemstack.getTagCompound().getInteger("type")); } return EnumActionResult.FAIL; } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/items/blocks/ItemBlockIngotBall.java b/1.11/src/main/java/nmd/primal/forgecraft/items/blocks/ItemBlockIngotBall.java index cc2449d3..86f29942 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/items/blocks/ItemBlockIngotBall.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/items/blocks/ItemBlockIngotBall.java @@ -1,9 +1,20 @@ package nmd.primal.forgecraft.items.blocks; import net.minecraft.block.Block; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.enumhandler.EnumHandler; + +import java.util.List; + +import static nmd.primal.forgecraft.enumhandler.EnumHandler.IngotTypes.*; /** * Created by mminaie on 2/12/17. @@ -24,5 +35,24 @@ public class ItemBlockIngotBall extends ItemBlock { } + public String getUnlocalizedNameInefficiently(ItemStack stack) { + EnumHandler.IngotTypes v = EnumHandler.IngotTypes.values()[stack.getItemDamage()]; + //EnumOreType z = EnumOreType.values()[stack.getItemDamage()]; + switch(v) { + case IRONCOOL: + case IRONHOT: + + return "item.forgecraft:"+v.name; + default: + return "item.forgecraft:unknown"; + } + } + + @SideOnly(Side.CLIENT) + public void getSubItems(Item itemIn, CreativeTabs tab, List subItems) { + subItems.add(new ItemStack(itemIn, 1, EnumHandler.IngotTypes.IRONCOOL.meta)); + subItems.add(new ItemStack(itemIn, 1, EnumHandler.IngotTypes.IRONHOT.meta)); + + } } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/util/IMetaLookup.java b/1.11/src/main/java/nmd/primal/forgecraft/util/IMetaLookup.java new file mode 100644 index 00000000..3c8b5100 --- /dev/null +++ b/1.11/src/main/java/nmd/primal/forgecraft/util/IMetaLookup.java @@ -0,0 +1,14 @@ +package nmd.primal.forgecraft.util; + +/** + * Created by mminaie on 2/19/17. + */ + + +public interface IMetaLookup { + public String getID(); + public T getByOrdinal(int i); + + public String getVariantName(); + public int getOrdinal(); +} diff --git a/1.11/src/main/resources/assets/forgecraft/models/item/ironingothot.json b/1.11/src/main/resources/assets/forgecraft/models/item/ironingothot.json new file mode 100644 index 00000000..f8ba3346 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/item/ironingothot.json @@ -0,0 +1,8 @@ +{ + "forge_marker":1, + "textures": { + "particle": "forgecraft:blocks/iron_ingot_hot", + "texture": "forgecraft:blocks/iron_ingot_hot" + }, + "parent": "forgecraft:item/ironball" +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot.json b/1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot.json new file mode 100644 index 00000000..be0b16d0 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot.json @@ -0,0 +1,10 @@ +{ + "forge_marker":1, + "textures": { + "particle": "blocks/planks_oak", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:blocks/stone_slab", + "texture2": "forgecraft:blocks/iron_ingot_hot" + }, + "parent": "forgecraft:item/stonetongs_ingot_default" +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot_default.json b/1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot_default.json new file mode 100644 index 00000000..60b3c453 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/item/stonetongs_ingot_default.json @@ -0,0 +1,124 @@ +{ + "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "blocks/planks_oak", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:blocks/stone_slab", + "texture2": "forgecraft:blocks/iron_ingot_hot" + }, + "elements": [ + { + "__comment": "Cube1", + "from": [ 6, 0, 0 ], + "to": [ 7, 1, 3 ], + "faces": { + "down": { "uv": [ 4, 12, 5, 15 ], "texture": "#texture1" }, + "up": { "uv": [ 4, 1, 5, 4 ], "texture": "#texture1" }, + "north": { "uv": [ 11, 13, 12, 14 ], "texture": "#texture1" }, + "south": { "uv": [ 4, 13, 5, 14 ], "texture": "#texture1" }, + "west": { "uv": [ 1, 14, 4, 15 ], "texture": "#texture1" }, + "east": { "uv": [ 12, 14, 15, 15 ], "texture": "#texture1" } + } + }, + { + "__comment": "Cube2", + "from": [ 9, 0, 0 ], + "to": [ 10, 1, 3 ], + "faces": { + "down": { "uv": [ 4, 12, 5, 15 ], "texture": "#texture1" }, + "up": { "uv": [ 4, 1, 5, 4 ], "texture": "#texture1" }, + "north": { "uv": [ 11, 13, 12, 14 ], "texture": "#texture1" }, + "south": { "uv": [ 4, 13, 5, 14 ], "texture": "#texture1" }, + "west": { "uv": [ 1, 14, 4, 15 ], "texture": "#texture1" }, + "east": { "uv": [ 12, 14, 15, 15 ], "texture": "#texture1" } + } + }, + { + "__comment": "Cube3", + "from": [ 6, 0, 3 ], + "to": [ 7, 1, 8 ], + "rotation": { "origin": [ 6, 0, 3 ], "axis": "y", "angle": 45 }, + "faces": { + "down": { "uv": [ 4, 2, 5, 9 ], "texture": "#texture" }, + "up": { "uv": [ 4, 3, 5, 10 ], "texture": "#texture" }, + "north": { "uv": [ 11, 15, 12, 16 ], "texture": "#texture" }, + "south": { "uv": [ 4, 15, 5, 16 ], "texture": "#texture" }, + "west": { "uv": [ 3, 15, 10, 16 ], "texture": "#texture" }, + "east": { "uv": [ 7, 15, 14, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube5", + "from": [ 6, 0, 5.5 ], + "to": [ 7, 1, 16 ], + "faces": { + "down": { "uv": [ 6, 0.5, 7, 11 ], "texture": "#texture" }, + "up": { "uv": [ 6, 4.5, 7, 15 ], "texture": "#texture" }, + "north": { "uv": [ 9, 15, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 7, 15, 8, 16 ], "texture": "#texture" }, + "west": { "uv": [ 5.5, 15, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0.5, 15, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube6", + "from": [ 9, 0, 5.5 ], + "to": [ 10, 1, 16 ], + "faces": { + "down": { "uv": [ 6, 0.5, 7, 11 ], "texture": "#texture" }, + "up": { "uv": [ 6, 4.5, 7, 15 ], "texture": "#texture" }, + "north": { "uv": [ 9, 15, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 7, 15, 8, 16 ], "texture": "#texture" }, + "west": { "uv": [ 5.5, 15, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0.5, 15, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 7, -0.5, 0 ], + "to": [ 9, 1.5, 2 ], + "faces": { + "down": { "uv": [ 7, 12, 9, 14 ], "texture": "#texture2" }, + "up": { "uv": [ 7, 0, 9, 2 ], "texture": "#texture2" }, + "north": { "uv": [ 7, 14, 9, 16 ], "texture": "#texture2" }, + "south": { "uv": [ 7, 14, 9, 16 ], "texture": "#texture2" }, + "west": { "uv": [ 0, 14, 2, 16 ], "texture": "#texture2" }, + "east": { "uv": [ 14, 14, 16, 16 ], "texture": "#texture2" } + } + }, + { + "__comment": "Cube3", + "from": [ 9, 0, 3 ], + "to": [ 10, 1, 8 ], + "rotation": { "origin": [ 10, 1, 3 ], "axis": "y", "angle": -45 }, + "faces": { + "down": { "uv": [ 4, 3, 5, 10 ], "texture": "#texture", "rotation": 180 }, + "up": { "uv": [ 4, 2, 5, 9 ], "texture": "#texture", "rotation": 180 }, + "north": { "uv": [ 12, 16, 11, 15 ], "texture": "#texture" }, + "south": { "uv": [ 5, 16, 4, 15 ], "texture": "#texture" }, + "west": { "uv": [ 7, 15, 14, 16 ], "texture": "#texture", "rotation": 180 }, + "east": { "uv": [ 3, 15, 10, 16 ], "texture": "#texture", "rotation": 180 } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [60, 0, 0], + "translation": [ 0, 8.9, 3.7 ] + }, + "firstperson_righthand": { + "translation": [ 0, 5.5, -7 ] + }, + "gui": { + "rotation": [ 90, 0, 0 ], + "scale": [ 0.95, 0.95, 0.95 ] + }, + "ground": { + "translation": [ 0, 4, 0 ] + }, + "fixed": { + "rotation": [ 90, 0, 0 ], + "translation": [ 0, 0, 8 ] + } + } +} \ No newline at end of file