diff --git a/1.11/To-Dos b/1.11/To-Dos index 00e779f9..6ab04222 100644 --- a/1.11/To-Dos +++ b/1.11/To-Dos @@ -10,12 +10,13 @@ To-Dos - [ ] Iron Success Output - [ ] Iron Post Fail Output -- [ ] Crucible +- [X] Soft Crucible - [x] Model - - [ ] Block - - [ ] Tile + - [x] Item -- [ ] Tongs - - [ ] Model - - [ ] Item(s) + +- [x] Tongs + - [x] Model + - [x] Item(s) + - [ ] Functionality diff --git a/1.11/src/main/java/nmd/primal/forgecraft/ModInfo.java b/1.11/src/main/java/nmd/primal/forgecraft/ModInfo.java index 76b15dd3..854c4599 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/ModInfo.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/ModInfo.java @@ -52,7 +52,8 @@ public class ModInfo { public enum ForgecraftBlocks { FIREBOX("firebox", "firebox"), PISTONBELLOWS("pistonbellows", "pistonbellows"), - BLOOMERY("bloomery", "bloomery"); + BLOOMERY("bloomery", "bloomery"), + EMPTYCRUCIBLE("emptycrucible", "emptycrucible"); private String unlocalizedName; private String registryName; diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Bloomery.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Bloomery.java index ba03ae10..81008b9e 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Bloomery.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Bloomery.java @@ -28,6 +28,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.forgecraft.CommonUtils; import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileFirebox; @@ -65,6 +66,7 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid if (tile != null) { ItemStack pItem = player.inventory.getCurrentItem(); ItemStack tileItem = tile.getSlotStack(0); + ItemStack tileItem1 = tile.getSlotStack(1); if(pItem.isEmpty()) { /*if (player.isSneaking()) { if (!tileItem.isEmpty()) { @@ -101,6 +103,7 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid if(tileItem.getCount() < 64){ if(tileItem.getCount() + pItem.getCount() <= 64){ tileItem.grow(pItem.getCount()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); tile.markDirty(); tile.updateBlock(); return true; @@ -121,6 +124,18 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid return true; } } + + if((!pItem.isEmpty()) && tile.isItemValidForSlot(1, pItem)) { + if (!tileItem1.isEmpty()) { + return false; + } + if(tileItem1.isEmpty()){ + ItemStack tempItem = new ItemStack(ModItems.softcrucible, 1); + tile.setSlotStack(1, tempItem); + pItem.shrink(1); + } + } + if(!pItem.isEmpty()) { if(pItem.getItem() == Item.getItemFromBlock(Blocks.STONE_SLAB)){ world.setBlockState(pos, state.withProperty(COVERED, true), 2); diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/EmptyCrucible.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/EmptyCrucible.java new file mode 100644 index 00000000..2a8a0eed --- /dev/null +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/EmptyCrucible.java @@ -0,0 +1,69 @@ +package nmd.primal.forgecraft.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.EnumBlockRenderType; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.forgecraft.ModInfo; + +/** + * Created by mminaie on 1/24/17. + */ +public class EmptyCrucible extends Block { + + protected static final AxisAlignedBB boundBox = new AxisAlignedBB(4/16D, 0.0D, 4/16D, 12/16D, 7/16D, 12/16D); + + public EmptyCrucible(Material material, String registryName) { + super(material); + setUnlocalizedName(ModInfo.ForgecraftBlocks.EMPTYCRUCIBLE.getUnlocalizedName()); + setRegistryName(registryName); + //setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName()); + setCreativeTab(ModInfo.TAB_FORGECRAFT); + setHardness(3.0f); + } + + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) + { + return boundBox; + } + + @Override + public boolean isFullCube(IBlockState state) + { + return false; + } + + @Override + public boolean isFullyOpaque(IBlockState state) + { + return false; + } + + @Override + public boolean isOpaqueCube(IBlockState state) + { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) + { + return true; + } + + @Override + public EnumBlockRenderType getRenderType(IBlockState state) + { + return EnumBlockRenderType.MODEL; + } + + +} diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Firebox.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Firebox.java index 8be49a14..259e2c1e 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Firebox.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Firebox.java @@ -117,6 +117,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide if(tileItem.getCount() < 64){ if(tileItem.getCount() + pItem.getCount() <= 64){ tileItem.grow(pItem.getCount()); + player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); tile.markDirty(); tile.updateBlock(); return true; diff --git a/1.11/src/main/java/nmd/primal/forgecraft/crafting/BloomeryCrafting.java b/1.11/src/main/java/nmd/primal/forgecraft/crafting/BloomeryCrafting.java new file mode 100644 index 00000000..ca4e9412 --- /dev/null +++ b/1.11/src/main/java/nmd/primal/forgecraft/crafting/BloomeryCrafting.java @@ -0,0 +1,106 @@ +package nmd.primal.forgecraft.crafting; + +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; + +/** + * Created by mminaie on 1/24/17. + */ +public class BloomeryCrafting { + // ***************************************************************************** // + // Recipe Handler Bloomery + // ***************************************************************************** // + private static ArrayList bloomeryRecipes = new ArrayList<>(); + + private ItemStack input; + private ItemStack output; + private ItemStack output_failed; + + private int heat_threshold; + private int ideal_time; + + private float heat_variance; + private float time_variance; + + public BloomeryCrafting(ItemStack input, ItemStack output, ItemStack output_failed, int heat_threshold, int ideal_time, float heat_variance, float time_variance) + { + this.input = input; + this.output = output; + this.output_failed = output_failed; + this.heat_threshold = heat_threshold; + this.ideal_time = ideal_time; + this.heat_variance = heat_variance; + this.time_variance = time_variance; + + } + + // ***************************************************************************** // + // Recipe Methods + // ***************************************************************************** // + public static void addRecipe(ItemStack input, ItemStack output, ItemStack output_failed, int heat_threshold, int ideal_time, float heat_variance, float time_variance) + { + bloomeryRecipes.add(new BloomeryCrafting(input, output, output_failed, heat_threshold, ideal_time, heat_variance, time_variance)); + } + + public static boolean isRecipeItem(ItemStack stack) + { + for(BloomeryCrafting recipe : bloomeryRecipes) { + if (stack.isItemEqual(recipe.input)) + return true; + } + return false; + } + + public static boolean isOutputItem(ItemStack stack) + { + for(BloomeryCrafting recipe : bloomeryRecipes) { + if (stack.isItemEqual(recipe.output)) + return true; + } + return false; + } + + public static BloomeryCrafting getRecipe(ItemStack stack) + { + for(BloomeryCrafting recipe : bloomeryRecipes) { + if (stack.isItemEqual(recipe.input)) + return recipe; + } + return null; + } + + public ItemStack getInput() + { + return this.input; + } + + public ItemStack getOutput() + { + return this.output; + } + + public ItemStack getOutputFailed() + { + return this.output_failed; + } + + public int getHeatThreshold() + { + return this.heat_threshold; + } + + public int getIdealTime() + { + return this.ideal_time; + } + + public float getHeat_variance(){return this.heat_variance; } + + public float getTime_variance(){return this.time_variance; } + + /// + // end + /// + +} 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 56f97b61..7684a692 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,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraftforge.fml.common.registry.GameRegistry; import nmd.primal.forgecraft.blocks.Bloomery; +import nmd.primal.forgecraft.blocks.EmptyCrucible; import nmd.primal.forgecraft.blocks.Firebox; import nmd.primal.forgecraft.blocks.PistonBellows; @@ -24,6 +25,7 @@ public class ModBlocks { public static Block pistonbellowsspruce; public static Block pistonbellowsdarkoak; public static Block pistonbellowsacacia; + public static Block emptycrucible; public static void init() { @@ -36,6 +38,7 @@ public class ModBlocks { pistonbellowsdarkoak = new PistonBellows(Material.WOOD, "pistonbellowsdarkoak"); pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia"); bloomery = new Bloomery(Material.ROCK, "bloomery"); + emptycrucible = new EmptyCrucible(Material.ROCK, "emptycrucible"); } public static void register() { @@ -47,6 +50,7 @@ public class ModBlocks { registerBlock(pistonbellowsdarkoak); registerBlock(pistonbellowsacacia); registerBlock(bloomery); + registerBlock(emptycrucible); } public static void registerRenders() { @@ -58,6 +62,7 @@ public class ModBlocks { registerRender(pistonbellowsdarkoak); registerRender(pistonbellowsacacia); registerRender(bloomery); + registerRender(emptycrucible); } private static void registerBlock(Block block) { diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java index 0ec6b662..214e2886 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java @@ -4,6 +4,8 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.registry.GameRegistry; +import nmd.primal.forgecraft.blocks.Bloomery; +import nmd.primal.forgecraft.crafting.BloomeryCrafting; /** * Created by kitsu on 11/30/2016. @@ -28,6 +30,19 @@ public class ModCrafting { GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.pistonbellowsdarkoak), "XXX", "X Y", "XXX", 'X', new ItemStack(Blocks.PLANKS, 1, 5), 'Y', ModItems.pistonbellows); + /***Bellows Handle***/ GameRegistry.addShapedRecipe(new ItemStack(ModItems.pistonbellows), "X X", "X X", " X ", 'X', Items.STICK); + + /***Bloomery Crafting***/ + //DryingRecipe.addRecipe(new ItemStack(Items.FISH, 1, 0), new ItemStack(PrimalItems.FISH_COD_DRIED), new ItemStack(PrimalItems.FISH_COD_ROTTEN), 25, 0.006F); + BloomeryCrafting.addRecipe( + new ItemStack(ModItems.softcrucible, 1), + new ItemStack(ModBlocks.emptycrucible, 1), + //new ItemStack(ModItems.crackedcrucible, 1), + new ItemStack(Items.STICK, 1), + 2100, + 2400, + 0.25f, + 1.0f); } } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/renders/TileBloomeryRender.java b/1.11/src/main/java/nmd/primal/forgecraft/renders/TileBloomeryRender.java index 4a56b949..cd6c9a42 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/renders/TileBloomeryRender.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/renders/TileBloomeryRender.java @@ -32,31 +32,42 @@ public class TileBloomeryRender extends TileEntitySpecialRenderer int bright = tile.getWorld().getCombinedLight(pos.up(), 0); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); - ItemStack stack1 = tile.getSlotStack(0); + ItemStack stack0 = tile.getSlotStack(0); + ItemStack stack1 = tile.getSlotStack(1); - boolean is_block = stack1.getItem() instanceof ItemBlock; - float scale = is_block ? 0.1725F : 0.3F; - double xTrans = is_block ? -1.6D : -0.45D; - double yTrans = is_block ? -1.26D : -0.7D; - if (!stack1.isEmpty()) { - int stackRotation = stack1.getCount(); + if (!stack0.isEmpty()) { + + boolean is_block = stack0.getItem() instanceof ItemBlock; + float scale = is_block ? 0.1725F : 0.3F; + double xTrans = is_block ? -1.6D : -0.45D; + double yTrans = is_block ? -1.26D : -0.7D; + int stackRotation = stack0.getCount(); + GL11.glPushMatrix(); GL11.glScalef(scale, scale, scale); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); - renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); + renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0)); GL11.glPopMatrix(); + for(int i = 0; i < Math.ceil(stackRotation/8) + 1; i++){ GL11.glPushMatrix(); GL11.glScalef(scale, scale, scale); GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glTranslated(xTrans, yTrans, 0.0D); - renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); + renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0)); GL11.glPopMatrix(); } } + if(!stack1.isEmpty()){ + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.50D, 0); + renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); + GL11.glPopMatrix(); + } + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); GL11.glPopMatrix(); } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileBloomery.java b/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileBloomery.java index 32c4eee4..71d19770 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileBloomery.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileBloomery.java @@ -13,6 +13,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import nmd.primal.forgecraft.blocks.Bloomery; import nmd.primal.forgecraft.blocks.Firebox; +import nmd.primal.forgecraft.init.ModItems; import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime; @@ -40,23 +41,35 @@ public class TileBloomery extends TileBaseSlot implements ITickable { this.markDirty(); world.notifyBlockUpdate(pos, state, state, 2); } - if(this.getSlotStack(0) != ItemStack.EMPTY) { - Integer decrInt = (int) Math.floor(getVanillaItemBurnTime(this.getSlotStack(0)) / 20); - if(decrInt == 0) { - decrInt = 1; - } - if (world.rand.nextInt(decrInt) == 0) { - this.decrStackSize(0, 1); - this.markDirty(); - this.updateBlock(); - } - } + slotZeroManager(world); + } this.heatManager(this.getHeat(), state, this.getSlotStack(0)); } } } + //Insert Slot 1 manager for crafting + + private void slotZeroManager(World world){ + if(this.getSlotStack(0) != ItemStack.EMPTY) { + Integer decrInt = (int) Math.floor(getVanillaItemBurnTime(this.getSlotStack(0)) / 20); + if(decrInt == 0) { + decrInt = 1; + } + if (world.rand.nextInt(decrInt) == 0) { + this.decrStackSize(0, 1); + this.markDirty(); + this.updateBlock(); + } + if (this.getSlotStack(0).getCount() == 1){ + this.decrStackSize(0, 1); + this.markDirty(); + this.updateBlock(); + } + } + } + public int getHeat(){ return this.heat; } @@ -114,6 +127,11 @@ public class TileBloomery extends TileBaseSlot implements ITickable { } } } + if(index == 1){ + if (stack.getItem() == ModItems.softcrucible) { + return true; + } + } return false; } diff --git a/1.11/src/main/resources/assets/forgecraft/blockstates/emptycrucible.json b/1.11/src/main/resources/assets/forgecraft/blockstates/emptycrucible.json new file mode 100644 index 00000000..d42f0e0b --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/blockstates/emptycrucible.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "forgecraft:emptycrucible" } + } +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/block/emptycrucible.json b/1.11/src/main/resources/assets/forgecraft/models/block/emptycrucible.json new file mode 100644 index 00000000..3620dec1 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/block/emptycrucible.json @@ -0,0 +1,144 @@ +{ + "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "forgecraft:blocks/stone_slab", + "texture": "forgecraft:blocks/stone_slab" + }, + "elements": [ + { + "__comment": "Cube1", + "from": [ 5, 0, 5 ], + "to": [ 11, 1, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture" }, + "up": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture" }, + "north": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" }, + "south": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" }, + "west": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube11", + "from": [ 5, 1, 5 ], + "to": [ 11, 7, 6 ], + "faces": { + "down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture" }, + "up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture" }, + "north": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" }, + "south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" }, + "west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" }, + "east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube11", + "from": [ 5, 1, 10 ], + "to": [ 11, 7, 11 ], + "faces": { + "down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture" }, + "up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture" }, + "north": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" }, + "south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" }, + "west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" }, + "east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube13", + "from": [ 5, 1, 6 ], + "to": [ 6, 7, 10 ], + "faces": { + "down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" }, + "up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" }, + "north": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" }, + "south": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" }, + "west": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" }, + "east": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube13", + "from": [ 10, 1, 6 ], + "to": [ 11, 7, 10 ], + "faces": { + "down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" }, + "up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" }, + "north": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" }, + "south": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" }, + "west": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" }, + "east": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube15", + "from": [ 4, 5, 6 ], + "to": [ 5, 6, 10 ], + "faces": { + "down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" }, + "up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" }, + "north": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" }, + "south": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" }, + "west": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }, + "east": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube15", + "from": [ 11, 5, 6 ], + "to": [ 12, 6, 10 ], + "faces": { + "down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" }, + "up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" }, + "north": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" }, + "south": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" }, + "west": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }, + "east": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube17", + "from": [ 6, 5, 4 ], + "to": [ 10, 6, 5 ], + "faces": { + "down": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture" }, + "up": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture" }, + "north": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }, + "south": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }, + "west": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" }, + "east": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube18", + "from": [ 6, 5, 11 ], + "to": [ 10, 6, 12 ], + "faces": { + "down": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture" }, + "up": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture" }, + "north": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }, + "south": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }, + "west": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" }, + "east": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" } + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [ 0.1, 1.1, -2.35 ] + }, + "firstperson_righthand": { + "translation": [ 0, 4, 0 ] + }, + "gui": { + "translation": [ 0, 4, 0 ] + }, + "ground": { + "translation": [ 0, 4, 0 ] + }, + "fixed": { + "rotation": [ 45, 45, 0 ], + "translation": [ 0, 4, 0 ] + } + } +} \ No newline at end of file