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)){
world.setBlockState(pos, state.withProperty(COVERED, true), 2);
return true;
}
}
}*/
}
}
return false;

View File

@@ -1,6 +1,7 @@
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.properties.IProperty;
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.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
@@ -21,6 +24,8 @@ 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.ModBlocks;
import nmd.primal.forgecraft.tiles.TileBaseCrucible;
import nmd.primal.forgecraft.tiles.TileFirebox;
/**
@@ -45,87 +50,28 @@ public class EmptyCrucible extends Block {
@Override
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));
//TileFirebox tile = (TileFirebox) world.getTileEntity(pos);
//if (tile != null) {
if (!world.isRemote) {
ItemStack pItem = player.inventory.getCurrentItem();
if(pItem.isEmpty()){
if (player.isSneaking()) {
CommonUtils.spawnItemEntity(world, player, new ItemStack(this, 1, this.getMetaFromState(state)));
CommonUtils.spawnItemEntity(world, player, new ItemStack(this, 1));
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;
}
// ***************************************************************************** //
// BlockState
// ***************************************************************************** //
/*@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);
}
@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;
return new TileBaseCrucible();
}*/
@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 output;
private ItemStack output_failed;
private ItemStack cool_output;
private int heat_threshold;
private int ideal_time;
private int cooldown;
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)
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.output = output;
this.output_failed = output_failed;
this.cool_output = cool_output;
this.heat_threshold = heat_threshold;
this.ideal_time = ideal_time;
this.cooldown = cooldown;
this.heat_variance = heat_variance;
this.time_variance = time_variance;
@@ -38,9 +42,9 @@ public class BloomeryCrafting {
// ***************************************************************************** //
// 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)
@@ -61,6 +65,15 @@ public class BloomeryCrafting {
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)
{
for(BloomeryCrafting recipe : bloomeryRecipes) {
@@ -70,6 +83,15 @@ public class BloomeryCrafting {
return null;
}
public static BloomeryCrafting getRecipeFromOutput(ItemStack stack)
{
for(BloomeryCrafting recipe : bloomeryRecipes) {
if (stack.isItemEqual(recipe.output))
return recipe;
}
return null;
}
public ItemStack getInput()
{
return this.input;
@@ -85,6 +107,11 @@ public class BloomeryCrafting {
return this.output_failed;
}
public ItemStack getCoolOutput()
{
return this.cool_output;
}
public int getHeatThreshold()
{
return this.heat_threshold;
@@ -95,6 +122,8 @@ public class BloomeryCrafting {
return this.ideal_time;
}
public int getCooldown(){ return this.cooldown;}
public float getHeatVariance(){return this.heat_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.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;
import nmd.primal.forgecraft.blocks.*;
/**
* Created by kitsu on 11/26/2016.
@@ -42,9 +39,9 @@ public class ModBlocks {
pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia");
bloomery = new Bloomery(Material.ROCK, "bloomery");
emptycrucible = new EmptyCrucible(Material.ROCK, "emptycrucible");
emptycruciblehot = new EmptyCrucible(Material.ROCK, "emptycruciblehot");
emptycruciblehot = new EmptyCrucibleHot(Material.ROCK, "emptycruciblehot");
emptycruciblecracked = new EmptyCrucible(Material.ROCK, "emptycruciblecracked");
emptycruciblecrackedhot = new EmptyCrucible(Material.ROCK, "emptycruciblecrackedhot");
emptycruciblecrackedhot = new EmptyCrucibleHot(Material.ROCK, "emptycruciblecrackedhot");
}
public static void register() {

View File

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

View File

@@ -52,7 +52,8 @@ public class ModItems {
ModelBakery.registerItemVariants(ModItems.stonetongs, ModItems.stonetongs.getRegistryName(),
new ResourceLocation(ModInfo.MOD_ID, "stonetongs"),
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() {
@Override
@@ -64,6 +65,9 @@ public class ModItems {
else if (stack.getTagCompound().getInteger("type") == 1 ) {
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");
}
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.minecraftforge.fml.common.registry.GameRegistry;
import nmd.primal.forgecraft.tiles.TileBaseCrucible;
import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox;
import nmd.primal.forgecraft.tiles.TilePistonBellows;
@@ -15,6 +16,7 @@ public class ModTiles {
registerTileEntity(TileFirebox.class, "firebox");
registerTileEntity(TilePistonBellows.class, "pistonbellows");
registerTileEntity(TileBloomery.class, "bloomery");
registerTileEntity(TileBaseCrucible.class, "basecrucible");
}
private static void registerTileEntity(Class<? extends TileEntity> tile_class, String baseName) {

View File

@@ -1,5 +1,8 @@
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.entity.Entity;
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)
{
//pos = pos.offset(facing);
if(!world.isRemote) {
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) {
TileBloomery tile = (TileBloomery) world.getTileEntity(pos);
System.out.println(tile.getSlotStack(1));
//itemstack.damageItem(1, player);
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 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": {
"thirdperson_righthand": {
"translation": [ 0, 5.5, -7 ]
"rotation": [60, 0, 0],
"translation": [ 0, 8.9, 3.7 ]
},
"firstperson_righthand": {
"translation": [ 0, 5.5, -7 ]

View File

@@ -11,6 +11,7 @@
"__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" },
@@ -24,6 +25,7 @@
"__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" },
@@ -38,6 +40,7 @@
"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" },
@@ -52,6 +55,7 @@
"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" },
@@ -65,6 +69,7 @@
"__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" },
@@ -78,6 +83,7 @@
"__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" },
@@ -91,32 +97,21 @@
"__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, 15, 11, 16 ], "texture": "#texture2" },
"south": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture2" },
"west": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture2" },
"east": { "uv": [ 5, 15, 11, 16 ], "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" }
"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" },
@@ -130,6 +125,7 @@
"__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" },
@@ -143,6 +139,7 @@
"__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" },
@@ -156,6 +153,7 @@
"__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" },
@@ -169,6 +167,7 @@
"__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" },
@@ -182,6 +181,7 @@
"__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" },
@@ -195,6 +195,7 @@
"__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" },
@@ -203,6 +204,20 @@
"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": {

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