From 799ed5a3b6901d4862988d8c7ca01ebc73ae35b2 Mon Sep 17 00:00:00 2001 From: Mohammad-Ali Minaie Date: Mon, 10 Apr 2017 00:24:01 -0400 Subject: [PATCH] making the BlockBreaker --- .../forgecraft/api/ForgecraftSounds.java | 12 - .../nmd/primal/forgecraft/blocks/Anvil.java | 5 +- .../nmd/primal/forgecraft/blocks/Breaker.java | 288 ++++++++++++++++++ .../nmd/primal/forgecraft/init/ModBlocks.java | 7 +- .../primal/forgecraft/init/ModCrafting.java | 7 +- .../nmd/primal/forgecraft/init/ModTiles.java | 1 + .../primal/forgecraft/proxy/ClientProxy.java | 11 +- .../renders/blocks/TileBreakerRender.java | 54 ++++ .../primal/forgecraft/tiles/TileAnvil.java | 6 +- .../primal/forgecraft/tiles/TileBreaker.java | 43 +++ .../forgecraft/blockstates/blockbreaker.json | 12 + .../forgecraft/models/block/blockbreaker.json | 200 ++++++++++++ .../models/block/blockbreaker2.json | 200 ++++++++++++ .../models/block/blockbreakeractive.json | 201 ++++++++++++ .../forgecraft/models/item/blockbreaker.json | 10 + .../forgecraft/textures/blocks/leather.png | Bin 0 -> 263 bytes .../forgecraft/textures/blocks/lever.png | Bin 0 -> 462 bytes 17 files changed, 1029 insertions(+), 28 deletions(-) delete mode 100644 1.11/src/main/java/nmd/primal/forgecraft/api/ForgecraftSounds.java create mode 100644 1.11/src/main/java/nmd/primal/forgecraft/blocks/Breaker.java create mode 100644 1.11/src/main/java/nmd/primal/forgecraft/renders/blocks/TileBreakerRender.java create mode 100644 1.11/src/main/java/nmd/primal/forgecraft/tiles/TileBreaker.java create mode 100644 1.11/src/main/resources/assets/forgecraft/blockstates/blockbreaker.json create mode 100644 1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker.json create mode 100644 1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker2.json create mode 100644 1.11/src/main/resources/assets/forgecraft/models/block/blockbreakeractive.json create mode 100644 1.11/src/main/resources/assets/forgecraft/models/item/blockbreaker.json create mode 100644 1.11/src/main/resources/assets/forgecraft/textures/blocks/leather.png create mode 100644 1.11/src/main/resources/assets/forgecraft/textures/blocks/lever.png diff --git a/1.11/src/main/java/nmd/primal/forgecraft/api/ForgecraftSounds.java b/1.11/src/main/java/nmd/primal/forgecraft/api/ForgecraftSounds.java deleted file mode 100644 index 35eaa87a..00000000 --- a/1.11/src/main/java/nmd/primal/forgecraft/api/ForgecraftSounds.java +++ /dev/null @@ -1,12 +0,0 @@ -package nmd.primal.forgecraft.api; - -import net.minecraft.util.SoundEvent; - -/** - * Created by mminaie on 3/24/17. - */ -public class ForgecraftSounds { - - - -} diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java index 978e2587..29d3cd3d 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java @@ -36,6 +36,8 @@ import nmd.primal.forgecraft.items.ForgeHammer; import nmd.primal.forgecraft.items.parts.ToolPart; import nmd.primal.forgecraft.tiles.TileAnvil; +import java.util.concurrent.ThreadLocalRandom; + /** * Created by mminaie on 3/4/17. */ @@ -70,7 +72,6 @@ public class Anvil extends CustomContainerFacing { super(material); setUnlocalizedName(registryName); setRegistryName(registryName); - //setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName()); setCreativeTab(ModInfo.TAB_FORGECRAFT); setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); setHardness(hardness); @@ -143,7 +144,7 @@ public class Anvil extends CustomContainerFacing { world.playEvent(1031, pos, 0); - if (world.rand.nextBoolean()) { + if (ThreadLocalRandom.current().nextInt(0, 2)==0) { if (recipe.getOutput().getItem() instanceof ToolPart) { diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Breaker.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Breaker.java new file mode 100644 index 00000000..ae8ad6d6 --- /dev/null +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Breaker.java @@ -0,0 +1,288 @@ +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.PropertyBool; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.EnumDyeColor; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +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.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.core.api.PrimalItems; +import nmd.primal.core.common.items.tools.WorkMallet; +import nmd.primal.forgecraft.CommonUtils; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.crafting.AnvilCrafting; +import nmd.primal.forgecraft.init.ModBlocks; +import nmd.primal.forgecraft.init.ModItems; +import nmd.primal.forgecraft.init.ModMaterials; +import nmd.primal.forgecraft.items.BaseMultiItem; +import nmd.primal.forgecraft.items.ForgeHammer; +import nmd.primal.forgecraft.items.parts.ToolPart; +import nmd.primal.forgecraft.tiles.TileAnvil; +import nmd.primal.forgecraft.tiles.TileBreaker; + +import java.util.concurrent.ThreadLocalRandom; + +/** + * Created by mminaie on 4/9/17. + */ +public class Breaker extends CustomContainerFacing implements ITileEntityProvider { + + public static final PropertyBool ACTIVE = PropertyBool.create("active"); + + public Breaker(Material material, String registryName, Float hardness) { + super(material); + setUnlocalizedName(registryName); + setRegistryName(registryName); + setCreativeTab(ModInfo.TAB_FORGECRAFT); + setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(ACTIVE, false)); + setHardness(hardness); + } + + @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){ + TileBreaker tile = (TileBreaker) world.getTileEntity(pos); + ItemStack pItem = player.inventory.getCurrentItem(); + if(state.getValue(ACTIVE) == true && player.isSneaking() && pItem.isEmpty()){ + world.setBlockState(pos, state.withProperty(FACING, state.getValue(FACING)).withProperty(ACTIVE, false)); + tile.setCharge(0.0F); + if (state.getValue(FACING) == EnumFacing.EAST) { + if(tile.getCharge() > world.getBlockState(pos.east()).getBlockHardness(world, pos.east())) { + if (world.getBlockState(pos.east()).getBlock() == Blocks.IRON_ORE) { + world.setBlockToAir(pos.east()); + CommonUtils.spawnItemEntityFromWorld(world, pos.east(), new ItemStack(PrimalItems.IRON_DUST, ThreadLocalRandom.current().nextInt(1, 2))); + return true; + } + } else { + tile.getSlotStack(0).damageItem(10, null); + return true; + } + } + if (state.getValue(FACING) == EnumFacing.WEST) { + if(tile.getCharge() > world.getBlockState(pos.west()).getBlockHardness(world, pos.west())) { + if (world.getBlockState(pos.west()).getBlock() == Blocks.IRON_ORE) { + world.setBlockToAir(pos.west()); + CommonUtils.spawnItemEntityFromWorld(world, pos.east(), new ItemStack(PrimalItems.IRON_DUST, ThreadLocalRandom.current().nextInt(1, 2))); + return true; + } + } else { + tile.getSlotStack(0).damageItem(10, null); + return true; + } + } + if (state.getValue(FACING) == EnumFacing.SOUTH) { + if(tile.getCharge() > world.getBlockState(pos.south()).getBlockHardness(world, pos.south())) { + if (world.getBlockState(pos.south()).getBlock() == Blocks.IRON_ORE) { + world.setBlockToAir(pos.south()); + CommonUtils.spawnItemEntityFromWorld(world, pos.east(), new ItemStack(PrimalItems.IRON_DUST, ThreadLocalRandom.current().nextInt(1, 2))); + return true; + } + } else { + tile.getSlotStack(0).damageItem(10, null); + return true; + } + + } + if (state.getValue(FACING) == EnumFacing.NORTH) { + if(tile.getCharge() > world.getBlockState(pos.north()).getBlockHardness(world, pos.north())) { + if (world.getBlockState(pos.north()).getBlock() == Blocks.IRON_ORE) { + world.setBlockToAir(pos.north()); + CommonUtils.spawnItemEntityFromWorld(world, pos.east(), new ItemStack(PrimalItems.IRON_DUST, ThreadLocalRandom.current().nextInt(1, 2))); + return true; + } + } else { + tile.getSlotStack(0).damageItem(10, null); + return true; + } + } + } + if(state.getValue(ACTIVE) == false && !player.isSneaking() && pItem.isEmpty()){ + world.setBlockState(pos, state.withProperty(FACING, state.getValue(FACING)).withProperty(ACTIVE, true), 2); + tile.setCharge(tile.getCharge() + 2.0f); + return true; + } + + if(pItem.getItem() instanceof WorkMallet){ + tile.setSlotStack(0, pItem); + pItem.shrink(1); + System.out.println(tile.getSlotStack(0)); + return true; + } + + } + + return false; + } + + @Override + public void breakBlock(World world, BlockPos pos, IBlockState state) + { + if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops")) + { + TileBreaker tile = (TileBreaker) world.getTileEntity(pos); + if (tile !=null) + { + for (ItemStack stack : tile.getSlotList()) + { + if (stack != null) { + float offset = 0.7F; + double offsetX = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D; + double offsetY = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D; + double offsetZ = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D; + EntityItem item = new EntityItem(world, pos.getX() + offsetX, pos.getY() + offsetY, pos.getZ() + offsetZ, stack); + item.setDefaultPickupDelay(); + world.spawnEntity(item); + } + } + } + } + + super.breakBlock(world, pos, state); + } + + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) + { + return new TileBreaker(); + } + + @Override + public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) + { + //if(!worldIn.isRemote) { + worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing()).withProperty(ACTIVE, false), 2); + //} + } + + @Override + public int getMetaFromState(IBlockState state) { + int i = 0; + + if(state.getValue(ACTIVE ) == false) { + if (state.getValue(FACING) == EnumFacing.EAST) { + i = 0; + return i; + } + if (state.getValue(FACING) == EnumFacing.WEST) { + i = 1; + return i; + } + if (state.getValue(FACING) == EnumFacing.SOUTH) { + i = 2; + return i; + } + if (state.getValue(FACING) == EnumFacing.NORTH) { + i = 3; + return i; + } + } + + if(state.getValue(ACTIVE)) { + if (state.getValue(FACING) == EnumFacing.EAST) { + i = 4; + return i; + } + if (state.getValue(FACING) == EnumFacing.WEST) { + i = 5; + return i; + } + if (state.getValue(FACING) == EnumFacing.SOUTH) { + i = 6; + return i; + } + if (state.getValue(FACING) == EnumFacing.NORTH) { + i = 7; + return i; + } + } + return i; + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + IBlockState iblockstate = this.getDefaultState(); + + if (meta == 0){ + iblockstate = iblockstate.withProperty(FACING, EnumFacing.EAST).withProperty(ACTIVE, false); + } + if (meta == 1) { + iblockstate = iblockstate.withProperty(FACING, EnumFacing.WEST).withProperty(ACTIVE, false); + } + if (meta == 2) { + iblockstate = iblockstate.withProperty(FACING, EnumFacing.SOUTH).withProperty(ACTIVE, false); + } + if (meta == 3) { + iblockstate = iblockstate.withProperty(FACING, EnumFacing.NORTH).withProperty(ACTIVE, false); + } + if (meta == 4){ + iblockstate = iblockstate.withProperty(FACING, EnumFacing.EAST).withProperty(ACTIVE, true); + } + if (meta == 5) { + iblockstate = iblockstate.withProperty(FACING, EnumFacing.WEST).withProperty(ACTIVE, true); + } + if (meta == 6) { + iblockstate = iblockstate.withProperty(FACING, EnumFacing.SOUTH).withProperty(ACTIVE, true); + } + if (meta == 7) { + iblockstate = iblockstate.withProperty(FACING, EnumFacing.NORTH).withProperty(ACTIVE, true); + } + return iblockstate; + } + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, new IProperty[] {ACTIVE, FACING}); + } + + @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/init/ModBlocks.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java index a49ebfd1..2acfbcad 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 @@ -35,12 +35,15 @@ public class ModBlocks { public static Block firebox; public static Block bloomery; + public static Block blockbreaker; + public static Block pistonbellowsoak; public static Block pistonbellowsjungle; public static Block pistonbellowsbirch; public static Block pistonbellowsspruce; public static Block pistonbellowsdarkoak; public static Block pistonbellowsacacia; + public static Block emptycrucible; public static Block emptycruciblehot; public static Block emptycruciblecracked; @@ -69,8 +72,8 @@ public class ModBlocks { public static void init() { firebox = new Forge(Material.ROCK); - bloomery = new Bloomery(Material.ROCK, "bloomery"); + blockbreaker = new Breaker(Material.WOOD, "blockbreaker", 4.0f); pistonbellowsoak = new PistonBellows(Material.WOOD, "pistonbellowsoak"); pistonbellowsjungle = new PistonBellows(Material.WOOD, "pistonbellowsjungle"); @@ -324,6 +327,7 @@ public class ModBlocks { public static void register() { registerBlock(firebox); registerBlock(bloomery); + registerBlock(blockbreaker); registerBlock(pistonbellowsoak); registerBlock(pistonbellowsjungle); @@ -365,6 +369,7 @@ public class ModBlocks { @SideOnly(Side.CLIENT) public static void registerRenders() { registerRender(firebox); + registerRender(blockbreaker); registerRender(pistonbellowsoak); registerRender(pistonbellowsjungle); registerRender(pistonbellowsbirch); 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 063e5e56..41564a41 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 @@ -41,6 +41,9 @@ public class ModCrafting { GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.bloomery), "X X", "X X", "XXX", 'X', Items.BRICK); + GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.blockbreaker), + "L ", "BSB", "BBB", 'L', Blocks.LEVER, 'B', new ItemStack(Blocks.PLANKS, 1, OreDictionary.WILDCARD_VALUE), 'S', PrimalItems.SILK_CORDAGE_COILED); + /*** Soft Crucible ***/ GameRegistry.addShapedRecipe(new ItemStack(ModItems.softcrucible), "X X", "X X", "XXX", 'X', Items.CLAY_BALL); @@ -181,7 +184,7 @@ public class ModCrafting { ); //Makes the Finished Hot Iron Crucible - BloomeryCrafting.addRecipe( +/* BloomeryCrafting.addRecipe( new ItemStack(ModBlocks.hotcookedironcrucible, 1), new ItemStack(ModBlocks.failedironcruciblehot, 1), new ItemStack(ModBlocks.failedironcruciblehot, 1), @@ -192,7 +195,7 @@ public class ModCrafting { 0.33f, 0.5f ); - +*/ /****************************************************************************** FORGING ******************************************************************************/ diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModTiles.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModTiles.java index 3dd8973b..b2dd3373 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModTiles.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModTiles.java @@ -15,6 +15,7 @@ public class ModTiles { registerTileEntity(TileBloomery.class, "bloomery"); registerTileEntity(TileBaseCrucible.class, "basecrucible"); registerTileEntity(TileAnvil.class, "anvil"); + registerTileEntity(TileBreaker.class, "breaker"); } private static void registerTileEntity(Class tile_class, String baseName) { diff --git a/1.11/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java b/1.11/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java index 9382fc42..427a0534 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java @@ -3,14 +3,8 @@ package nmd.primal.forgecraft.proxy; import net.minecraftforge.fml.client.registry.ClientRegistry; import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModItems; -import nmd.primal.forgecraft.renders.blocks.TileAnvilRender; -import nmd.primal.forgecraft.renders.blocks.TileBloomeryRender; -import nmd.primal.forgecraft.renders.blocks.TileForgeRender; -import nmd.primal.forgecraft.renders.blocks.TilePistonBellowsRender; -import nmd.primal.forgecraft.tiles.TileAnvil; -import nmd.primal.forgecraft.tiles.TileBloomery; -import nmd.primal.forgecraft.tiles.TileForge; -import nmd.primal.forgecraft.tiles.TilePistonBellows; +import nmd.primal.forgecraft.renders.blocks.*; +import nmd.primal.forgecraft.tiles.*; /** * Created by kitsu on 11/26/2016. @@ -39,6 +33,7 @@ public class ClientProxy implements CommonProxy { ClientRegistry.bindTileEntitySpecialRenderer(TilePistonBellows.class, new TilePistonBellowsRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileBloomery.class, new TileBloomeryRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileAnvil.class, new TileAnvilRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileBreaker.class, new TileBreakerRender()); } @Override diff --git a/1.11/src/main/java/nmd/primal/forgecraft/renders/blocks/TileBreakerRender.java b/1.11/src/main/java/nmd/primal/forgecraft/renders/blocks/TileBreakerRender.java new file mode 100644 index 00000000..c58541b8 --- /dev/null +++ b/1.11/src/main/java/nmd/primal/forgecraft/renders/blocks/TileBreakerRender.java @@ -0,0 +1,54 @@ +package nmd.primal.forgecraft.renders.blocks; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderItem; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import nmd.primal.forgecraft.blocks.Breaker; +import nmd.primal.forgecraft.init.ModBlocks; +import nmd.primal.forgecraft.init.ModItems; +import nmd.primal.forgecraft.tiles.TileBreaker; +import nmd.primal.forgecraft.tiles.TileForge; +import org.lwjgl.opengl.GL11; + +/** + * Created by mminaie on 4/9/17. + */ +public class TileBreakerRender extends TileEntitySpecialRenderer +{ + private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); + + @Override + public void renderTileEntityAt(TileBreaker tile, double x, double y, double z, float partialTicks, int destroyStage) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 0.95D, z + 0.5D); + GL11.glScalef(1.0f,1.0f,1.0f); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); + float prevLGTX = OpenGlHelper.lastBrightnessX; + float prevLGTY = OpenGlHelper.lastBrightnessY; + BlockPos pos = tile.getPos(); + IBlockState state = this.getWorld().getBlockState(pos); + int bright = tile.getWorld().getCombinedLight(pos.up(), 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); + + //ItemStack stack0 = tile.getSlotStack(0); + + if(state.getValue(Breaker.FACING) == EnumFacing.NORTH) { + GL11.glPushMatrix(); + GL11.glRotatef(tile.getCharge(), 1.0f, 0.0f, 0.0f); + renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); + GL11.glPopMatrix(); + } +} \ No newline at end of file diff --git a/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileAnvil.java b/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileAnvil.java index a02767d1..b5be8142 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileAnvil.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/tiles/TileAnvil.java @@ -52,21 +52,21 @@ public class TileAnvil extends TileBaseSlot implements ITickable { if ( ThreadLocalRandom.current().nextInt(0,10000) == 0 ) { for(int i=0; i slotList = NonNullList.withSize(2, ItemStack.EMPTY); + + // ***************************************************************************** // + // NBT + // ***************************************************************************** // + @Override + public NBTTagCompound readNBT(NBTTagCompound nbt) + { + super.readNBT(nbt); + this.charge = nbt.getFloat("charge"); + return nbt; + } + + @Override + public NBTTagCompound writeNBT(NBTTagCompound nbt) + { + nbt.setFloat("charge", this.charge); + super.writeNBT(nbt); + return nbt; + } + +} diff --git a/1.11/src/main/resources/assets/forgecraft/blockstates/blockbreaker.json b/1.11/src/main/resources/assets/forgecraft/blockstates/blockbreaker.json new file mode 100644 index 00000000..2f86b3a0 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/blockstates/blockbreaker.json @@ -0,0 +1,12 @@ +{ + "variants": { + "active=false,facing=north": { "model": "forgecraft:blockbreaker" }, + "active=false,facing=east": { "model": "forgecraft:blockbreaker", "y": 90 }, + "active=false,facing=south": { "model": "forgecraft:blockbreaker", "y": 180 }, + "active=false,facing=west": { "model": "forgecraft:blockbreaker", "y": 270 }, + "active=true,facing=north": { "model": "forgecraft:blockbreakeractive" }, + "active=true,facing=east": { "model": "forgecraft:blockbreakeractive", "y": 90 }, + "active=true,facing=south": { "model": "forgecraft:blockbreakeractive", "y": 180 }, + "active=true,facing=west": { "model": "forgecraft:blockbreakeractive", "y": 270 } + } +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker.json b/1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker.json new file mode 100644 index 00000000..fbb86a57 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker.json @@ -0,0 +1,200 @@ +{ + "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "blocks/planks_oak", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:blocks/leather", + "texture2": "forgecraft:blocks/lever" + }, + "elements": [ + { + "__comment": "Cube1", + "from": [ 0, 0, 0 ], + "to": [ 6, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "north": { "uv": [ 10, 14, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 14, 6, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube2", + "from": [ 6, 0, 2 ], + "to": [ 10, 2, 16 ], + "faces": { + "down": { "uv": [ 6, 0, 10, 14 ], "texture": "#texture" }, + "up": { "uv": [ 6, 2, 10, 16 ], "texture": "#texture" }, + "north": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube3", + "from": [ 10, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 14, 6, 16 ], "texture": "#texture" }, + "south": { "uv": [ 10, 14, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 6, 0, 0 ], + "to": [ 6.001, 2, 2 ], + "faces": { + "east": { "uv": [ 14, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX6", + "from": [ 10, 0, 0 ], + "to": [ 10.001, 2, 2 ], + "faces": { + "west": { "uv": [ 0, 14, 2, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 0, 2, 8 ], + "to": [ 2, 4, 15 ], + "faces": { + "down": { "uv": [ 0, 1, 2, 8 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 12, 16, 14 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 2, 14 ], "texture": "#texture" }, + "west": { "uv": [ 8, 12, 15, 14 ], "texture": "#texture" }, + "east": { "uv": [ 1, 12, 8, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube8", + "from": [ 0, 4, 9 ], + "to": [ 2, 6, 14 ], + "faces": { + "down": { "uv": [ 0, 2, 2, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 14 ], "texture": "#texture" }, + "north": { "uv": [ 14, 10, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 9, 10, 14, 12 ], "texture": "#texture" }, + "east": { "uv": [ 2, 10, 7, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube9", + "from": [ 0, 6, 10 ], + "to": [ 2, 8, 13 ], + "faces": { + "down": { "uv": [ 0, 3, 2, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 10, 2, 13 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 10, 8, 13, 10 ], "texture": "#texture" }, + "east": { "uv": [ 3, 8, 6, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 14, 2, 8 ], + "to": [ 16, 4, 15 ], + "faces": { + "down": { "uv": [ 0, 0, 2, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 16 ], "texture": "#texture" }, + "north": { "uv": [ 14, 12, 16, 14 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 2, 14 ], "texture": "#texture" }, + "west": { "uv": [ 9, 12, 16, 14 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 7, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube8", + "from": [ 14, 4, 9 ], + "to": [ 16, 6, 14 ], + "faces": { + "down": { "uv": [ 0, 1, 2, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 10, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 10, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 10, 10, 15, 12 ], "texture": "#texture" }, + "east": { "uv": [ 1, 10, 6, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube9", + "from": [ 14, 6, 10 ], + "to": [ 16, 8, 13 ], + "faces": { + "down": { "uv": [ 0, 2, 2, 5 ], "texture": "#texture" }, + "up": { "uv": [ 0, 11, 2, 14 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 11, 8, 14, 10 ], "texture": "#texture" }, + "east": { "uv": [ 2, 8, 5, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube13", + "from": [ 2, 6.5, 10.5 ], + "to": [ 14, 8, 12 ], + "faces": { + "down": { "uv": [ 2, 1, 14, 3 ], "texture": "#texture1" }, + "up": { "uv": [ 2, 13, 14, 15 ], "texture": "#texture1" }, + "north": { "uv": [ 2, 8, 14, 10 ], "texture": "#texture1" }, + "south": { "uv": [ 2, 8, 14, 10 ], "texture": "#texture1" } + } + }, + { + "__comment": "Cube14", + "from": [ 2, 5.5, 12.5 ], + "to": [ 3, 11.5, 13.5 ], + "faces": { + "down": { "uv": [ 15, 2.5, 16, 3.5 ], "texture": "#texture2" }, + "up": { "uv": [ 14, 0, 15, 1 ], "texture": "#texture2" }, + "north": { "uv": [ 11.5, 0, 12.5, 6 ], "texture": "#texture2" }, + "south": { "uv": [ 13, 0, 14, 6 ], "texture": "#texture2" }, + "west": { "uv": [ 14, 0, 15, 6 ], "texture": "#texture2" }, + "east": { "uv": [ 15, 0, 16, 6 ], "texture": "#texture2" } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + }, + "gui": { + "rotation": [ 30, 225, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.625, 0.625, 0.625 ] + }, + "ground": { + "translation": [ 0, 1, 0 ], + "scale": [ 0.25, 0.25, 0.25 ] + }, + "fixed": { + "rotation": [ -90, -90, 0 ], + "translation": [ 0, 0, -3 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + } +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker2.json b/1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker2.json new file mode 100644 index 00000000..e6350bda --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/block/blockbreaker2.json @@ -0,0 +1,200 @@ +{ + "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "blocks/e_particle", + "texture": "blocks/e_texture", + "texture1": "blocks/checker_test", + "texture2": "blocks/e_texture" + }, + "elements": [ + { + "__comment": "Cube1", + "from": [ 0, 0, 0 ], + "to": [ 6, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "north": { "uv": [ 10, 14, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 14, 6, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube2", + "from": [ 6, 0, 2 ], + "to": [ 10, 2, 16 ], + "faces": { + "down": { "uv": [ 6, 0, 10, 14 ], "texture": "#texture" }, + "up": { "uv": [ 6, 2, 10, 16 ], "texture": "#texture" }, + "north": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube3", + "from": [ 10, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 14, 6, 16 ], "texture": "#texture" }, + "south": { "uv": [ 10, 14, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 6, 0, 0 ], + "to": [ 6.001, 2, 2 ], + "faces": { + "east": { "uv": [ 14, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX6", + "from": [ 10, 0, 0 ], + "to": [ 10.001, 2, 2 ], + "faces": { + "west": { "uv": [ 0, 14, 2, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 0, 2, 8 ], + "to": [ 2, 4, 15 ], + "faces": { + "down": { "uv": [ 0, 1, 2, 8 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 12, 16, 14 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 2, 14 ], "texture": "#texture" }, + "west": { "uv": [ 8, 12, 15, 14 ], "texture": "#texture" }, + "east": { "uv": [ 1, 12, 8, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube8", + "from": [ 0, 4, 9 ], + "to": [ 2, 6, 14 ], + "faces": { + "down": { "uv": [ 0, 2, 2, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 14 ], "texture": "#texture" }, + "north": { "uv": [ 14, 10, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 9, 10, 14, 12 ], "texture": "#texture" }, + "east": { "uv": [ 2, 10, 7, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube9", + "from": [ 0, 6, 10 ], + "to": [ 2, 8, 13 ], + "faces": { + "down": { "uv": [ 0, 3, 2, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 10, 2, 13 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 10, 8, 13, 10 ], "texture": "#texture" }, + "east": { "uv": [ 3, 8, 6, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 14, 2, 8 ], + "to": [ 16, 4, 15 ], + "faces": { + "down": { "uv": [ 0, 0, 2, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 16 ], "texture": "#texture" }, + "north": { "uv": [ 14, 12, 16, 14 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 2, 14 ], "texture": "#texture" }, + "west": { "uv": [ 9, 12, 16, 14 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 7, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube8", + "from": [ 14, 4, 9 ], + "to": [ 16, 6, 14 ], + "faces": { + "down": { "uv": [ 0, 1, 2, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 10, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 10, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 10, 10, 15, 12 ], "texture": "#texture" }, + "east": { "uv": [ 1, 10, 6, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube9", + "from": [ 14, 6, 10 ], + "to": [ 16, 8, 13 ], + "faces": { + "down": { "uv": [ 0, 2, 2, 5 ], "texture": "#texture" }, + "up": { "uv": [ 0, 11, 2, 14 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 11, 8, 14, 10 ], "texture": "#texture" }, + "east": { "uv": [ 2, 8, 5, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube13", + "from": [ 2, 6.5, 10.5 ], + "to": [ 14, 8, 12 ], + "faces": { + "down": { "uv": [ 2, 1, 14, 3 ], "texture": "#texture1" }, + "up": { "uv": [ 2, 13, 14, 15 ], "texture": "#texture1" }, + "north": { "uv": [ 2, 8, 14, 10 ], "texture": "#texture1" }, + "south": { "uv": [ 2, 8, 14, 10 ], "texture": "#texture1" } + } + }, + { + "__comment": "Cube14", + "from": [ 2, 5.5, 12.5 ], + "to": [ 3, 11.5, 13.5 ], + "faces": { + "down": { "uv": [ 15, 2.5, 16, 3.5 ], "texture": "#texture" }, + "up": { "uv": [ 14, 0, 15, 1 ], "texture": "#texture" }, + "north": { "uv": [ 11.5, 0, 12.5, 6 ], "texture": "#texture" }, + "south": { "uv": [ 13, 0, 14, 6 ], "texture": "#texture" }, + "west": { "uv": [ 14, 0, 15, 6 ], "texture": "#texture" }, + "east": { "uv": [ 15, 0, 16, 6 ], "texture": "#texture" } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + }, + "gui": { + "rotation": [ 30, 225, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.625, 0.625, 0.625 ] + }, + "ground": { + "translation": [ 0, 1, 0 ], + "scale": [ 0.25, 0.25, 0.25 ] + }, + "fixed": { + "rotation": [ -90, -90, 0 ], + "translation": [ 0, 0, -3 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + } +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/block/blockbreakeractive.json b/1.11/src/main/resources/assets/forgecraft/models/block/blockbreakeractive.json new file mode 100644 index 00000000..48ceae46 --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/block/blockbreakeractive.json @@ -0,0 +1,201 @@ +{ + "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "blocks/planks_oak", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:blocks/leather", + "texture2": "forgecraft:blocks/lever" + }, + "elements": [ + { + "__comment": "Cube1", + "from": [ 0, 0, 0 ], + "to": [ 6, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "north": { "uv": [ 10, 14, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 14, 6, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube2", + "from": [ 6, 0, 2 ], + "to": [ 10, 2, 16 ], + "faces": { + "down": { "uv": [ 6, 0, 10, 14 ], "texture": "#texture" }, + "up": { "uv": [ 6, 2, 10, 16 ], "texture": "#texture" }, + "north": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube3", + "from": [ 10, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 14, 6, 16 ], "texture": "#texture" }, + "south": { "uv": [ 10, 14, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 6, 0, 0 ], + "to": [ 6.001, 2, 2 ], + "faces": { + "east": { "uv": [ 14, 14, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX6", + "from": [ 10, 0, 0 ], + "to": [ 10.001, 2, 2 ], + "faces": { + "west": { "uv": [ 0, 14, 2, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 0, 2, 8 ], + "to": [ 2, 4, 15 ], + "faces": { + "down": { "uv": [ 0, 1, 2, 8 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 12, 16, 14 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 2, 14 ], "texture": "#texture" }, + "west": { "uv": [ 8, 12, 15, 14 ], "texture": "#texture" }, + "east": { "uv": [ 1, 12, 8, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube8", + "from": [ 0, 4, 9 ], + "to": [ 2, 6, 14 ], + "faces": { + "down": { "uv": [ 0, 2, 2, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 14 ], "texture": "#texture" }, + "north": { "uv": [ 14, 10, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 9, 10, 14, 12 ], "texture": "#texture" }, + "east": { "uv": [ 2, 10, 7, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube9", + "from": [ 0, 6, 10 ], + "to": [ 2, 8, 13 ], + "faces": { + "down": { "uv": [ 0, 3, 2, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 10, 2, 13 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 10, 8, 13, 10 ], "texture": "#texture" }, + "east": { "uv": [ 3, 8, 6, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube7", + "from": [ 14, 2, 8 ], + "to": [ 16, 4, 15 ], + "faces": { + "down": { "uv": [ 0, 0, 2, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 16 ], "texture": "#texture" }, + "north": { "uv": [ 14, 12, 16, 14 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 2, 14 ], "texture": "#texture" }, + "west": { "uv": [ 9, 12, 16, 14 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 7, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube8", + "from": [ 14, 4, 9 ], + "to": [ 16, 6, 14 ], + "faces": { + "down": { "uv": [ 0, 1, 2, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 10, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 10, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 10, 10, 15, 12 ], "texture": "#texture" }, + "east": { "uv": [ 1, 10, 6, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube9", + "from": [ 14, 6, 10 ], + "to": [ 16, 8, 13 ], + "faces": { + "down": { "uv": [ 0, 2, 2, 5 ], "texture": "#texture" }, + "up": { "uv": [ 0, 11, 2, 14 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 11, 8, 14, 10 ], "texture": "#texture" }, + "east": { "uv": [ 2, 8, 5, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Cube13", + "from": [ 2, 6.5, 10.5 ], + "to": [ 14, 8, 12 ], + "faces": { + "down": { "uv": [ 2, 1, 14, 3 ], "texture": "#texture1" }, + "up": { "uv": [ 2, 13, 14, 15 ], "texture": "#texture1" }, + "north": { "uv": [ 2, 8, 14, 10 ], "texture": "#texture1" }, + "south": { "uv": [ 2, 8, 14, 10 ], "texture": "#texture1" } + } + }, + { + "__comment": "Cube14", + "from": [ 2, 5.5, 12.5 ], + "to": [ 3, 11.5, 13.5 ], + "rotation": { "origin": [ 2, 5.5, 12.5 ], "axis": "x", "angle": 45 }, + "faces": { + "down": { "uv": [ 15, 2.5, 16, 3.5 ], "texture": "#texture2" }, + "up": { "uv": [ 14, 0, 15, 1 ], "texture": "#texture2" }, + "north": { "uv": [ 11.5, 0, 12.5, 6 ], "texture": "#texture2" }, + "south": { "uv": [ 13, 0, 14, 6 ], "texture": "#texture2" }, + "west": { "uv": [ 14, 0, 15, 6 ], "texture": "#texture2" }, + "east": { "uv": [ 15, 0, 16, 6 ], "texture": "#texture2" } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + }, + "gui": { + "rotation": [ 30, 225, 0 ], + "translation": [ 0, 2.5, 0 ], + "scale": [ 0.625, 0.625, 0.625 ] + }, + "ground": { + "translation": [ 0, 1, 0 ], + "scale": [ 0.25, 0.25, 0.25 ] + }, + "fixed": { + "rotation": [ -90, -90, 0 ], + "translation": [ 0, 0, -3 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + } +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/models/item/blockbreaker.json b/1.11/src/main/resources/assets/forgecraft/models/item/blockbreaker.json new file mode 100644 index 00000000..6f42f6de --- /dev/null +++ b/1.11/src/main/resources/assets/forgecraft/models/item/blockbreaker.json @@ -0,0 +1,10 @@ +{ + "forge_marker":1, + "textures": { + "particle": "blocks/planks_oak", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:blocks/leather", + "texture2": "forgecraft:blocks/lever" + }, + "parent": "forgecraft:block/blockbreaker" +} \ No newline at end of file diff --git a/1.11/src/main/resources/assets/forgecraft/textures/blocks/leather.png b/1.11/src/main/resources/assets/forgecraft/textures/blocks/leather.png new file mode 100644 index 0000000000000000000000000000000000000000..a1cd04875bffd6741ca04b8c2d146af948e4bbb1 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE6#4@*ObXSga9!tY*KFQvCg-mnFr6U&M{itC2=P68vDc@w~T#N z^fq0LTos)DhBaE(B*^9V=G=7~vX-4XV5g99)W?36NzJPCj}d}E_c3_7`njxgN@xNA D)OcPz literal 0 HcmV?d00001 diff --git a/1.11/src/main/resources/assets/forgecraft/textures/blocks/lever.png b/1.11/src/main/resources/assets/forgecraft/textures/blocks/lever.png new file mode 100644 index 0000000000000000000000000000000000000000..72161cf63197dd52cb14e478e2e0870a82e7c839 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEUnfx)>bHL)Z$ zMWH;iBtya7(>EYRFO{8vfzim*#WBR<^xR1sy^a{j9NXVgyi-wRiTRciZC1^xd`|HW zf-ki#cK;CTd#87fb-qH!18xq!rAs-MMrXEJAG!2U?BS~VTfUZFKNo8+%=6^&PqEO*16y)x z>i0c<@qwO>EaOiC4h zk|cR+#?;sexwDg_rXD@8Q>(kNG4p0h@cWK+fksD5-q=jjV*d2|{%+nx2|k`l8V9OY zCkDUYb^m%gS8Ir*P6*p`bN%YA*N>k*`D_0dW;M?nUH7)W1H~AFr>mdKI;Vst0PSDA Ac>n+a literal 0 HcmV?d00001