can cook all crucibles, crucibles cool down, crucibles can be picked up, tongs can place crucibles they are holding

This commit is contained in:
Mohammad-Ali Minaie
2017-02-04 01:39:55 -05:00
parent 81ea23a8c9
commit 4f456b6771
15 changed files with 536 additions and 119 deletions

View File

@@ -137,12 +137,12 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid
} }
} }
if(!pItem.isEmpty()) { /*if(!pItem.isEmpty()) {
if(pItem.getItem() == Item.getItemFromBlock(Blocks.STONE_SLAB)){ if(pItem.getItem() == Item.getItemFromBlock(Blocks.STONE_SLAB)){
world.setBlockState(pos, state.withProperty(COVERED, true), 2); world.setBlockState(pos, state.withProperty(COVERED, true), 2);
return true; return true;
} }
} }*/
} }
} }
return false; return false;

View File

@@ -1,6 +1,7 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.properties.PropertyDirection;
@@ -9,7 +10,9 @@ import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
@@ -21,6 +24,8 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.forgecraft.CommonUtils; import nmd.primal.forgecraft.CommonUtils;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.init.ModBlocks;
import nmd.primal.forgecraft.tiles.TileBaseCrucible;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileFirebox;
/** /**
@@ -45,87 +50,28 @@ public class EmptyCrucible extends Block {
@Override @Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
/*if (!world.isRemote) {
System.out.println(state.getValue(SIZE)); if (!world.isRemote) {
//TileFirebox tile = (TileFirebox) world.getTileEntity(pos);
//if (tile != null) {
ItemStack pItem = player.inventory.getCurrentItem(); ItemStack pItem = player.inventory.getCurrentItem();
if(pItem.isEmpty()) { if(pItem.isEmpty()){
if (player.isSneaking()) { CommonUtils.spawnItemEntity(world, player, new ItemStack(this, 1));
CommonUtils.spawnItemEntity(world, player, new ItemStack(this, 1, this.getMetaFromState(state))); world.setBlockToAir(pos);
return true;
}
if(Block.getBlockFromItem(pItem.getItem()) == this){
CommonUtils.spawnItemEntity(world, player, new ItemStack(this, 1));
world.setBlockToAir(pos);
return true;
} }
} }
if(state.getValue(SIZE) == 3){
world.setBlockState(pos, state.withProperty(SIZE, 0), 2);
return true;
} else
world.setBlockState(pos, state.withProperty(SIZE, state.getValue(SIZE) + 1), 2);
return true;
}
if(player.isSneaking()){
}*/
return false; return false;
} }
// ***************************************************************************** //
// BlockState
// ***************************************************************************** //
/*@Override /*@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) public TileEntity createNewTileEntity(World worldIn, int meta)
{ {
worldIn.setBlockState(pos, state.withProperty(SIZE, 0), 2); return new TileBaseCrucible();
}
@Override
public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
{
return this.getStateFromMeta(meta).withProperty(SIZE, 0);
}
@Override
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[] {SIZE});
}
@Override
public IBlockState getStateFromMeta(int meta)
{
IBlockState iblockstate = this.getDefaultState();
if (meta == 0){
iblockstate = iblockstate.withProperty(SIZE, 0);
} else if (meta == 1){
iblockstate = iblockstate.withProperty(SIZE, 1);
} else if (meta == 2){
iblockstate = iblockstate.withProperty(SIZE, 2);
} else if (meta == 3){
iblockstate = iblockstate.withProperty(SIZE, 3);
}
return iblockstate;
}
@Override
public int getMetaFromState(IBlockState state)
{
int i = 0;
//switch state.getValue(LOG_AXIS);
if(state.getValue(SIZE) == 0) {
i = 0;
return i;
} else if(state.getValue(SIZE) == 1){
i = 1;
return i;
} else if(state.getValue(SIZE) == 2){
i = 2;
return i;
}else if(state.getValue(SIZE) == 3){
i = 3;
return i;
}
return i;
}*/ }*/
@Override @Override

View File

@@ -0,0 +1,91 @@
package nmd.primal.forgecraft.blocks;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.tiles.TileBaseCrucible;
/**
* Created by mminaie on 2/4/17.
*/
public class EmptyCrucibleHot extends Block implements ITileEntityProvider {
protected static final AxisAlignedBB boundBox = new AxisAlignedBB(4/16D, 0.0D, 4/16D, 12/16D, 7/16D, 12/16D);
//public static final PropertyInteger SIZE = PropertyInteger.create("size", 0, 3);
public EmptyCrucibleHot(Material material, String registryName) {
super(material);
setUnlocalizedName(ModInfo.ForgecraftBlocks.EMPTYCRUCIBLE.getUnlocalizedName());
//setUnlocalizedName("emptycrucible");
setRegistryName(registryName);
//setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName());
setCreativeTab(ModInfo.TAB_FORGECRAFT);
setHardness(3.0f);
//this.blockState.getBaseState().withProperty(SIZE, Integer.valueOf(0));
}
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
return false;
}
@Override
public TileEntity createNewTileEntity(World worldIn, int meta)
{
return new TileBaseCrucible();
}
@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;
}
}

View File

@@ -16,20 +16,24 @@ public class BloomeryCrafting {
private ItemStack input; private ItemStack input;
private ItemStack output; private ItemStack output;
private ItemStack output_failed; private ItemStack output_failed;
private ItemStack cool_output;
private int heat_threshold; private int heat_threshold;
private int ideal_time; private int ideal_time;
private int cooldown;
private float heat_variance; private float heat_variance;
private float time_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) public BloomeryCrafting(ItemStack input, ItemStack output, ItemStack output_failed, ItemStack cool_output, int heat_threshold, int ideal_time, int cooldown,float heat_variance, float time_variance)
{ {
this.input = input; this.input = input;
this.output = output; this.output = output;
this.output_failed = output_failed; this.output_failed = output_failed;
this.cool_output = cool_output;
this.heat_threshold = heat_threshold; this.heat_threshold = heat_threshold;
this.ideal_time = ideal_time; this.ideal_time = ideal_time;
this.cooldown = cooldown;
this.heat_variance = heat_variance; this.heat_variance = heat_variance;
this.time_variance = time_variance; this.time_variance = time_variance;
@@ -38,9 +42,9 @@ public class BloomeryCrafting {
// ***************************************************************************** // // ***************************************************************************** //
// Recipe Methods // Recipe Methods
// ***************************************************************************** // // ***************************************************************************** //
public static void addRecipe(ItemStack input, ItemStack output, ItemStack failed, int heat_threshold, int ideal_time, float heat_variance, float time_variance) public static void addRecipe(ItemStack input, ItemStack output, ItemStack failed, ItemStack cool, int heat_threshold, int ideal_time, int cooldown, float heat_variance, float time_variance)
{ {
bloomeryRecipes.add(new BloomeryCrafting(input, output, failed, heat_threshold, ideal_time, heat_variance, time_variance)); bloomeryRecipes.add(new BloomeryCrafting(input, output, failed, cool, heat_threshold, ideal_time, cooldown, heat_variance, time_variance));
} }
public static boolean isRecipeItem(ItemStack stack) public static boolean isRecipeItem(ItemStack stack)
@@ -61,6 +65,15 @@ public class BloomeryCrafting {
return false; return false;
} }
public static boolean isCoolItem(ItemStack stack)
{
for(BloomeryCrafting recipe : bloomeryRecipes) {
if (stack.isItemEqual(recipe.cool_output))
return true;
}
return false;
}
public static BloomeryCrafting getRecipe(ItemStack stack) public static BloomeryCrafting getRecipe(ItemStack stack)
{ {
for(BloomeryCrafting recipe : bloomeryRecipes) { for(BloomeryCrafting recipe : bloomeryRecipes) {
@@ -70,6 +83,15 @@ public class BloomeryCrafting {
return null; return null;
} }
public static BloomeryCrafting getRecipeFromOutput(ItemStack stack)
{
for(BloomeryCrafting recipe : bloomeryRecipes) {
if (stack.isItemEqual(recipe.output))
return recipe;
}
return null;
}
public ItemStack getInput() public ItemStack getInput()
{ {
return this.input; return this.input;
@@ -85,6 +107,11 @@ public class BloomeryCrafting {
return this.output_failed; return this.output_failed;
} }
public ItemStack getCoolOutput()
{
return this.cool_output;
}
public int getHeatThreshold() public int getHeatThreshold()
{ {
return this.heat_threshold; return this.heat_threshold;
@@ -95,6 +122,8 @@ public class BloomeryCrafting {
return this.ideal_time; return this.ideal_time;
} }
public int getCooldown(){ return this.cooldown;}
public float getHeatVariance(){return this.heat_variance; } public float getHeatVariance(){return this.heat_variance; }
public float getTimeVariance(){return this.time_variance; } public float getTimeVariance(){return this.time_variance; }

View File

@@ -7,10 +7,7 @@ import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import nmd.primal.forgecraft.blocks.Bloomery; import nmd.primal.forgecraft.blocks.*;
import nmd.primal.forgecraft.blocks.EmptyCrucible;
import nmd.primal.forgecraft.blocks.Firebox;
import nmd.primal.forgecraft.blocks.PistonBellows;
/** /**
* Created by kitsu on 11/26/2016. * Created by kitsu on 11/26/2016.
@@ -42,9 +39,9 @@ public class ModBlocks {
pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia"); pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia");
bloomery = new Bloomery(Material.ROCK, "bloomery"); bloomery = new Bloomery(Material.ROCK, "bloomery");
emptycrucible = new EmptyCrucible(Material.ROCK, "emptycrucible"); emptycrucible = new EmptyCrucible(Material.ROCK, "emptycrucible");
emptycruciblehot = new EmptyCrucible(Material.ROCK, "emptycruciblehot"); emptycruciblehot = new EmptyCrucibleHot(Material.ROCK, "emptycruciblehot");
emptycruciblecracked = new EmptyCrucible(Material.ROCK, "emptycruciblecracked"); emptycruciblecracked = new EmptyCrucible(Material.ROCK, "emptycruciblecracked");
emptycruciblecrackedhot = new EmptyCrucible(Material.ROCK, "emptycruciblecrackedhot"); emptycruciblecrackedhot = new EmptyCrucibleHot(Material.ROCK, "emptycruciblecrackedhot");
} }
public static void register() { public static void register() {

View File

@@ -39,18 +39,22 @@ public class ModCrafting {
BloomeryCrafting.addRecipe( BloomeryCrafting.addRecipe(
new ItemStack(ModItems.softcrucible, 1), new ItemStack(ModItems.softcrucible, 1),
new ItemStack(ModBlocks.emptycruciblehot, 1), new ItemStack(ModBlocks.emptycruciblehot, 1),
new ItemStack(ModBlocks.emptycruciblecrackedhot, 1),
new ItemStack(ModBlocks.emptycrucible, 1), new ItemStack(ModBlocks.emptycrucible, 1),
500, 2100,
1200, 1600,
600,
0.25f, 0.25f,
0.25f); 0.25f);
BloomeryCrafting.addRecipe( BloomeryCrafting.addRecipe(
new ItemStack(ModBlocks.emptycrucible, 1), new ItemStack(ModBlocks.emptycruciblehot, 1),
new ItemStack(Items.STICK, 1, 3), new ItemStack(ModBlocks.emptycruciblecrackedhot, 1),
new ItemStack(Items.STICK, 1, 3), new ItemStack(ModBlocks.emptycruciblecrackedhot, 1),
new ItemStack(ModBlocks.emptycruciblecracked, 1),
2700, 2700,
9000, 9000,
600,
0.0f, 0.0f,
0.0f); 0.0f);
} }

View File

@@ -52,7 +52,8 @@ public class ModItems {
ModelBakery.registerItemVariants(ModItems.stonetongs, ModItems.stonetongs.getRegistryName(), ModelBakery.registerItemVariants(ModItems.stonetongs, ModItems.stonetongs.getRegistryName(),
new ResourceLocation(ModInfo.MOD_ID, "stonetongs"), new ResourceLocation(ModInfo.MOD_ID, "stonetongs"),
new ResourceLocation(ModInfo.MOD_ID, "stonetongs_default"), new ResourceLocation(ModInfo.MOD_ID, "stonetongs_default"),
new ResourceLocation(ModInfo.MOD_ID, "stonetongs_emptyhot")); new ResourceLocation(ModInfo.MOD_ID, "stonetongs_emptyhot"),
new ResourceLocation(ModInfo.MOD_ID, "stonetongs_emptyhotcracked"));
ModelLoader.setCustomMeshDefinition(ModItems.stonetongs, new ItemMeshDefinition() { ModelLoader.setCustomMeshDefinition(ModItems.stonetongs, new ItemMeshDefinition() {
@Override @Override
@@ -64,6 +65,9 @@ public class ModItems {
else if (stack.getTagCompound().getInteger("type") == 1 ) { else if (stack.getTagCompound().getInteger("type") == 1 ) {
return new ModelResourceLocation(stack.getItem().getRegistryName() + "_emptyhot", "inventory"); return new ModelResourceLocation(stack.getItem().getRegistryName() + "_emptyhot", "inventory");
} }
else if (stack.getTagCompound().getInteger("type") == 2 ) {
return new ModelResourceLocation(stack.getItem().getRegistryName() + "_emptyhotcracked", "inventory");
}
else return new ModelResourceLocation(stack.getItem().getRegistryName(), "inventory"); else return new ModelResourceLocation(stack.getItem().getRegistryName(), "inventory");
} }
return new ModelResourceLocation(stack.getItem().getRegistryName(), "inventory"); return new ModelResourceLocation(stack.getItem().getRegistryName(), "inventory");

View File

@@ -2,6 +2,7 @@ package nmd.primal.forgecraft.init;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import nmd.primal.forgecraft.tiles.TileBaseCrucible;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileFirebox;
import nmd.primal.forgecraft.tiles.TilePistonBellows; import nmd.primal.forgecraft.tiles.TilePistonBellows;
@@ -15,6 +16,7 @@ public class ModTiles {
registerTileEntity(TileFirebox.class, "firebox"); registerTileEntity(TileFirebox.class, "firebox");
registerTileEntity(TilePistonBellows.class, "pistonbellows"); registerTileEntity(TilePistonBellows.class, "pistonbellows");
registerTileEntity(TileBloomery.class, "bloomery"); registerTileEntity(TileBloomery.class, "bloomery");
registerTileEntity(TileBaseCrucible.class, "basecrucible");
} }
private static void registerTileEntity(Class<? extends TileEntity> tile_class, String baseName) { private static void registerTileEntity(Class<? extends TileEntity> tile_class, String baseName) {

View File

@@ -1,5 +1,8 @@
package nmd.primal.forgecraft.items; package nmd.primal.forgecraft.items;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@@ -51,19 +54,51 @@ public class ItemStoneTongs extends Item {
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{ {
//pos = pos.offset(facing); if(!world.isRemote) {
ItemStack itemstack = player.getHeldItem(hand); ItemStack itemstack = player.getHeldItem(hand);
if (world.getBlockState(pos).getBlock() != ModBlocks.bloomery) {
if (world.getBlockState(pos).getMaterial() == Material.ROCK || world.getBlockState(pos).getMaterial() == Material.ROCK) {
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ());
if (world.getBlockState(tempPos).getBlock() == Blocks.AIR) {
switch (itemstack.getTagCompound().getInteger("type")) {
case 0:
break;
case 1:
world.setBlockState(tempPos, ModBlocks.emptycruciblehot.getDefaultState(), 3);
itemstack.getTagCompound().setInteger("type", 0);
return EnumActionResult.SUCCESS;
case 2:
world.setBlockState(tempPos, ModBlocks.emptycruciblecrackedhot.getDefaultState(), 3);
itemstack.getTagCompound().setInteger("type", 0);
return EnumActionResult.SUCCESS;
case 3:
return EnumActionResult.FAIL;
case 4:
return EnumActionResult.FAIL;
case 5:
return EnumActionResult.FAIL;
case 6:
return EnumActionResult.FAIL;
case 7:
return EnumActionResult.FAIL;
}
}
}
}
if (world.getBlockState(pos).getBlock() == ModBlocks.bloomery) { if (world.getBlockState(pos).getBlock() == ModBlocks.bloomery) {
TileBloomery tile = (TileBloomery) world.getTileEntity(pos); TileBloomery tile = (TileBloomery) world.getTileEntity(pos);
System.out.println(tile.getSlotStack(1)); if (tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.emptycruciblehot))) {
//itemstack.damageItem(1, player);
if(tile.getSlotStack(1).getItem().equals(Item.getItemFromBlock(ModBlocks.emptycruciblehot))){
itemstack.getTagCompound().setInteger("type", 1); itemstack.getTagCompound().setInteger("type", 1);
tile.setSlotStack(1, ItemStack.EMPTY); tile.setSlotStack(1, ItemStack.EMPTY);
return EnumActionResult.SUCCESS; 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 return EnumActionResult.FAIL; } else return EnumActionResult.FAIL;
} else return EnumActionResult.FAIL; } else return EnumActionResult.FAIL;
} }
return EnumActionResult.FAIL;
}
} }

View File

@@ -0,0 +1,40 @@
package nmd.primal.forgecraft.tiles;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ITickable;
import net.minecraft.world.World;
import nmd.primal.forgecraft.crafting.BloomeryCrafting;
/**
* Created by mminaie on 2/4/17.
*/
public class TileBaseCrucible extends BaseTile implements ITickable {
private int iteration = 0;
public int countdown = 0;
@Override
public void update () {
if (!world.isRemote) {
World world = this.getWorld();
IBlockState state = world.getBlockState(this.pos);
iteration++;
System.out.println(iteration);
if(iteration == 100 ){
iteration = 0;
countdown += 100;
System.out.println(countdown);
BloomeryCrafting recipe = BloomeryCrafting.getRecipeFromOutput(new ItemStack(state.getBlock(), 1));
if(recipe != null){
if (countdown > recipe.getCooldown()){
world.setBlockState(this.pos, Block.getBlockFromItem(recipe.getCoolOutput().getItem()).getDefaultState(), 3);
countdown = 0;
}
}
}
}
}
}

View File

@@ -89,7 +89,8 @@
], ],
"display": { "display": {
"thirdperson_righthand": { "thirdperson_righthand": {
"translation": [ 0, 5.5, -7 ] "rotation": [60, 0, 0],
"translation": [ 0, 8.9, 3.7 ]
}, },
"firstperson_righthand": { "firstperson_righthand": {
"translation": [ 0, 5.5, -7 ] "translation": [ 0, 5.5, -7 ]

View File

@@ -11,6 +11,7 @@
"__comment": "Cube1", "__comment": "Cube1",
"from": [ 4, 0, 0 ], "from": [ 4, 0, 0 ],
"to": [ 5, 1, 3 ], "to": [ 5, 1, 3 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 4, 12, 5, 15 ], "texture": "#texture1" }, "down": { "uv": [ 4, 12, 5, 15 ], "texture": "#texture1" },
"up": { "uv": [ 4, 1, 5, 4 ], "texture": "#texture1" }, "up": { "uv": [ 4, 1, 5, 4 ], "texture": "#texture1" },
@@ -24,6 +25,7 @@
"__comment": "Cube2", "__comment": "Cube2",
"from": [ 11, 0, 0 ], "from": [ 11, 0, 0 ],
"to": [ 12, 1, 3 ], "to": [ 12, 1, 3 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 4, 12, 5, 15 ], "texture": "#texture1" }, "down": { "uv": [ 4, 12, 5, 15 ], "texture": "#texture1" },
"up": { "uv": [ 4, 1, 5, 4 ], "texture": "#texture1" }, "up": { "uv": [ 4, 1, 5, 4 ], "texture": "#texture1" },
@@ -38,6 +40,7 @@
"from": [ 4, 0, 3 ], "from": [ 4, 0, 3 ],
"to": [ 5, 1, 10 ], "to": [ 5, 1, 10 ],
"rotation": { "origin": [ 4, 0, 3 ], "axis": "y", "angle": 45 }, "rotation": { "origin": [ 4, 0, 3 ], "axis": "y", "angle": 45 },
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 4, 2, 5, 9 ], "texture": "#texture" }, "down": { "uv": [ 4, 2, 5, 9 ], "texture": "#texture" },
"up": { "uv": [ 4, 3, 5, 10 ], "texture": "#texture" }, "up": { "uv": [ 4, 3, 5, 10 ], "texture": "#texture" },
@@ -52,6 +55,7 @@
"from": [ 11, 0, 3 ], "from": [ 11, 0, 3 ],
"to": [ 12, 1, 10 ], "to": [ 12, 1, 10 ],
"rotation": { "origin": [ 12, 1, 3 ], "axis": "y", "angle": -45 }, "rotation": { "origin": [ 12, 1, 3 ], "axis": "y", "angle": -45 },
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 4, 2, 5, 9 ], "texture": "#texture" }, "down": { "uv": [ 4, 2, 5, 9 ], "texture": "#texture" },
"up": { "uv": [ 4, 3, 5, 10 ], "texture": "#texture" }, "up": { "uv": [ 4, 3, 5, 10 ], "texture": "#texture" },
@@ -65,6 +69,7 @@
"__comment": "Cube5", "__comment": "Cube5",
"from": [ 6.5, 0, 7.5 ], "from": [ 6.5, 0, 7.5 ],
"to": [ 7.5, 1, 16 ], "to": [ 7.5, 1, 16 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 6.5, 0, 7.5, 8.5 ], "texture": "#texture" }, "down": { "uv": [ 6.5, 0, 7.5, 8.5 ], "texture": "#texture" },
"up": { "uv": [ 6.5, 7.5, 7.5, 16 ], "texture": "#texture" }, "up": { "uv": [ 6.5, 7.5, 7.5, 16 ], "texture": "#texture" },
@@ -78,6 +83,7 @@
"__comment": "Cube6", "__comment": "Cube6",
"from": [ 8.5, 0, 7.5 ], "from": [ 8.5, 0, 7.5 ],
"to": [ 9.5, 1, 16 ], "to": [ 9.5, 1, 16 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 8.5, 0, 9.5, 8.5 ], "texture": "#texture" }, "down": { "uv": [ 8.5, 0, 9.5, 8.5 ], "texture": "#texture" },
"up": { "uv": [ 8.5, 7.5, 9.5, 16 ], "texture": "#texture" }, "up": { "uv": [ 8.5, 7.5, 9.5, 16 ], "texture": "#texture" },
@@ -91,32 +97,21 @@
"__comment": "Cube1", "__comment": "Cube1",
"from": [ 5, -4, -3 ], "from": [ 5, -4, -3 ],
"to": [ 11, -3, 3 ], "to": [ 11, -3, 3 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture2" }, "down": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture2" }, "up": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture2" },
"north": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture2" }, "north": { "uv": [ 5, 13, 11, 14 ], "texture": "#texture2" },
"south": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture2" }, "south": { "uv": [ 7, 14, 13, 15 ], "texture": "#texture2" },
"west": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture2" }, "west": { "uv": [ 6, 9, 12, 10 ], "texture": "#texture2" },
"east": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture2" } "east": { "uv": [ 6, 9, 12, 10 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube11",
"from": [ 5, -3, -3 ],
"to": [ 11, 3, -2 ],
"faces": {
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture2" },
"north": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture2" },
"south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture2" },
"west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture2" },
"east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture2" }
} }
}, },
{ {
"__comment": "Cube11", "__comment": "Cube11",
"from": [ 5, -3, 2 ], "from": [ 5, -3, 2 ],
"to": [ 11, 3, 3 ], "to": [ 11, 3, 3 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture2" }, "down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture2" }, "up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture2" },
@@ -130,6 +125,7 @@
"__comment": "Cube13", "__comment": "Cube13",
"from": [ 5, -3, -2 ], "from": [ 5, -3, -2 ],
"to": [ 6, 3, 2 ], "to": [ 6, 3, 2 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" }, "down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
"up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" }, "up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
@@ -143,6 +139,7 @@
"__comment": "Cube13", "__comment": "Cube13",
"from": [ 10, -3, -2 ], "from": [ 10, -3, -2 ],
"to": [ 11, 3, 2 ], "to": [ 11, 3, 2 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" }, "down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
"up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" }, "up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
@@ -156,6 +153,7 @@
"__comment": "Cube15", "__comment": "Cube15",
"from": [ 4, 1, -2 ], "from": [ 4, 1, -2 ],
"to": [ 5, 2, 2 ], "to": [ 5, 2, 2 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" }, "down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
"up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" }, "up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
@@ -169,6 +167,7 @@
"__comment": "Cube15", "__comment": "Cube15",
"from": [ 11, 1, -2 ], "from": [ 11, 1, -2 ],
"to": [ 12, 2, 2 ], "to": [ 12, 2, 2 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" }, "down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
"up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" }, "up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
@@ -182,6 +181,7 @@
"__comment": "Cube17", "__comment": "Cube17",
"from": [ 6, 1, -4 ], "from": [ 6, 1, -4 ],
"to": [ 10, 2, -3 ], "to": [ 10, 2, -3 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture2" }, "down": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture2" },
"up": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture2" }, "up": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture2" },
@@ -195,6 +195,7 @@
"__comment": "Cube18", "__comment": "Cube18",
"from": [ 6, 1, 3 ], "from": [ 6, 1, 3 ],
"to": [ 10, 2, 4 ], "to": [ 10, 2, 4 ],
"shade": false,
"faces": { "faces": {
"down": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture2" }, "down": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture2" },
"up": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture2" }, "up": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture2" },
@@ -203,6 +204,20 @@
"west": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture2" }, "west": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture2" },
"east": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture2" } "east": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture2" }
} }
},
{
"__comment": "Cube11",
"from": [ 5, -3, -3 ],
"to": [ 11, 3, -2 ],
"shade": false,
"faces": {
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture2" },
"north": { "uv": [ 5, 7, 11, 13 ], "texture": "#texture2" },
"south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture2" },
"west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture2" },
"east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture2" }
}
} }
], ],
"display": { "display": {

View File

@@ -0,0 +1,243 @@
{
"__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio",
"textures": {
"particle": "forgecraft:blocks/stone_slab",
"texture": "forgecraft:blocks/stone_slab",
"texture1": "forgecraft:blocks/stone_slab",
"texture2": "forgecraft:blocks/stone_slab_hot"
},
"elements": [
{
"__comment": "Cube1",
"from": [ 4, 0, 0 ],
"to": [ 5, 1, 3 ],
"shade": false,
"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": [ 11, 0, 0 ],
"to": [ 12, 1, 3 ],
"shade": false,
"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": [ 4, 0, 3 ],
"to": [ 5, 1, 10 ],
"rotation": { "origin": [ 4, 0, 3 ], "axis": "y", "angle": 45 },
"shade": false,
"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": "Cube4",
"from": [ 11, 0, 3 ],
"to": [ 12, 1, 10 ],
"rotation": { "origin": [ 12, 1, 3 ], "axis": "y", "angle": -45 },
"shade": false,
"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.5, 0, 7.5 ],
"to": [ 7.5, 1, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 6.5, 0, 7.5, 8.5 ], "texture": "#texture" },
"up": { "uv": [ 6.5, 7.5, 7.5, 16 ], "texture": "#texture" },
"north": { "uv": [ 8.5, 15, 9.5, 16 ], "texture": "#texture" },
"south": { "uv": [ 6.5, 15, 7.5, 16 ], "texture": "#texture" },
"west": { "uv": [ 7.5, 15, 16, 16 ], "texture": "#texture" },
"east": { "uv": [ 0, 15, 8.5, 16 ], "texture": "#texture" }
}
},
{
"__comment": "Cube6",
"from": [ 8.5, 0, 7.5 ],
"to": [ 9.5, 1, 16 ],
"shade": false,
"faces": {
"down": { "uv": [ 8.5, 0, 9.5, 8.5 ], "texture": "#texture" },
"up": { "uv": [ 8.5, 7.5, 9.5, 16 ], "texture": "#texture" },
"north": { "uv": [ 6.5, 15, 7.5, 16 ], "texture": "#texture" },
"south": { "uv": [ 8.5, 15, 9.5, 16 ], "texture": "#texture" },
"west": { "uv": [ 7.5, 15, 16, 16 ], "texture": "#texture" },
"east": { "uv": [ 0, 15, 8.5, 16 ], "texture": "#texture" }
}
},
{
"__comment": "Cube1",
"from": [ 5, -4, -3 ],
"to": [ 11, -3, 3 ],
"shade": false,
"faces": {
"down": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture2" },
"north": { "uv": [ 5, 13, 11, 14 ], "texture": "#texture2" },
"south": { "uv": [ 7, 14, 13, 15 ], "texture": "#texture2" },
"west": { "uv": [ 6, 9, 12, 10 ], "texture": "#texture2" },
"east": { "uv": [ 6, 9, 12, 10 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube11",
"from": [ 5, -3, 2 ],
"to": [ 11, 3, 3 ],
"shade": false,
"faces": {
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture2" },
"north": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture2" },
"south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture2" },
"west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture2" },
"east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube13",
"from": [ 5, -3, -2 ],
"to": [ 6, 3, 2 ],
"shade": false,
"faces": {
"down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
"up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
"north": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture2" },
"south": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture2" },
"west": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture2" },
"east": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube13",
"from": [ 10, -3, -2 ],
"to": [ 11, 3, 2 ],
"shade": false,
"faces": {
"down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
"up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture2" },
"north": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture2" },
"south": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture2" },
"west": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture2" },
"east": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube15",
"from": [ 4, 1, -2 ],
"to": [ 5, 2, 2 ],
"shade": false,
"faces": {
"down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
"up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
"north": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture2" },
"south": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture2" },
"west": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" },
"east": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube15",
"from": [ 11, 1, -2 ],
"to": [ 12, 2, 2 ],
"shade": false,
"faces": {
"down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
"up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture2" },
"north": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture2" },
"south": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture2" },
"west": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" },
"east": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube17",
"from": [ 6, 1, -4 ],
"to": [ 10, 2, -3 ],
"shade": false,
"faces": {
"down": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture2" },
"up": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture2" },
"north": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" },
"south": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" },
"west": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture2" },
"east": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube18",
"from": [ 6, 1, 3 ],
"to": [ 10, 2, 4 ],
"shade": false,
"faces": {
"down": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture2" },
"up": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture2" },
"north": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" },
"south": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture2" },
"west": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture2" },
"east": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture2" }
}
},
{
"__comment": "Cube11",
"from": [ 5, -3, -3 ],
"to": [ 11, 3, -2 ],
"shade": false,
"faces": {
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture2" },
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture2" },
"north": { "uv": [ 5, 7, 11, 13 ], "texture": "#texture2" },
"south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture2" },
"west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture2" },
"east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture2" }
}
}
],
"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 ]
}
}
}

View File

@@ -0,0 +1,10 @@
{
"forge_marker":1,
"textures": {
"particle": "forgecraft:blocks/stone_slab",
"texture": "forgecraft:blocks/stone_slab",
"texture1": "forgecraft:blocks/stone_slab_cracked",
"texture2": "forgecraft:blocks/stone_slab_cracked_hot"
},
"parent": "forgecraft:item/stonetongs_emptyhot"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 484 B