more Grinding bench stuff
This commit is contained in:
@@ -9,6 +9,9 @@
|
||||
|
||||
## Current Feature
|
||||
- [ ] weapon upgrades
|
||||
- [ ] Grinding Bench
|
||||
- [ ] Grinding Wheel Crafting Slack, Clay, Sand
|
||||
- [ ] Damascus Workblade Recipe
|
||||
- [ ] Untick Bloomery and Forge
|
||||
- [ ] Craft Tweaker Support
|
||||
- [ ] Recipe Handler for Block Breaker
|
||||
|
||||
@@ -58,22 +58,22 @@ public class CommonEvents implements WeaponNBT {
|
||||
|
||||
if(inputStackItem != null) {
|
||||
if (inputStack.hasTagCompound()) {
|
||||
if (getModifiers(inputStack) < WeaponNBT.materialModifiers.get(((WeaponPart) outputStack.getItem()).getMaterial()) ) {
|
||||
if (WeaponNBT.getModifiers(inputStack) < WeaponNBT.materialModifiers.get(((WeaponPart) outputStack.getItem()).getMaterial()) ) {
|
||||
if (RecipeHelper.isOreName(modStack, "dustSilver")) {
|
||||
setSmiteLevel(outputStack, getSmiteLevel(inputStack) + 1);
|
||||
setModifiers(outputStack, getModifiers(inputStack) + 1);
|
||||
WeaponNBT.setSmiteLevel(outputStack, WeaponNBT.getSmiteLevel(inputStack) + 1);
|
||||
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
|
||||
}
|
||||
if (RecipeHelper.isOreName(modStack, "foodPoison")) {
|
||||
setBaneLevel(outputStack, getBaneLevel(inputStack) + 1);
|
||||
setModifiers(outputStack, getModifiers(inputStack) + 1);
|
||||
WeaponNBT.setBaneLevel(outputStack, WeaponNBT.getBaneLevel(inputStack) + 1);
|
||||
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
|
||||
}
|
||||
if (RecipeHelper.isOreName(modStack, "dustBlaze")) {
|
||||
setFireLevel(outputStack, getFireLevel(inputStack) + 1);
|
||||
setModifiers(outputStack, getModifiers(inputStack) + 1);
|
||||
WeaponNBT.setFireLevel(outputStack, WeaponNBT.getFireLevel(inputStack) + 1);
|
||||
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
|
||||
}
|
||||
if (RecipeHelper.isOreName(modStack, "gemLapis")) {
|
||||
setFortuneLevel(outputStack, getFortuneLevel(inputStack) + 1);
|
||||
setModifiers(outputStack, getModifiers(inputStack) + 1);
|
||||
WeaponNBT.setFortuneLevel(outputStack, WeaponNBT.getFortuneLevel(inputStack) + 1);
|
||||
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
package nmd.primal.forgecraft.blocks;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.properties.PropertyDirection;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumBlockRenderType;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
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.PrimalAPI;
|
||||
import nmd.primal.forgecraft.ModInfo;
|
||||
|
||||
/**
|
||||
* Created by kitsu on 12/3/2016.
|
||||
*/
|
||||
public abstract class CustomContainerFacingActive extends BlockContainer {
|
||||
|
||||
public static final PropertyDirection FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL);
|
||||
|
||||
protected CustomContainerFacingActive(Material material, String registryName)
|
||||
{
|
||||
super(material);
|
||||
this.setRegistryName(registryName);
|
||||
this.setUnlocalizedName(registryName);
|
||||
this.setHardness(3.0f);
|
||||
this.setResistance(4.0f);
|
||||
setCreativeTab(ModInfo.TAB_FORGECRAFT);
|
||||
}
|
||||
|
||||
@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(PrimalAPI.States.ACTIVE, false), 2);
|
||||
//}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state) {
|
||||
int i = 0;
|
||||
|
||||
if(!state.getValue(PrimalAPI.States.ACTIVE)) {
|
||||
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(PrimalAPI.States.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);
|
||||
}
|
||||
if (meta == 1) {
|
||||
iblockstate = iblockstate.withProperty(FACING, EnumFacing.WEST);
|
||||
}
|
||||
if (meta == 2) {
|
||||
iblockstate = iblockstate.withProperty(FACING, EnumFacing.SOUTH);
|
||||
}
|
||||
if (meta == 3) {
|
||||
iblockstate = iblockstate.withProperty(FACING, EnumFacing.NORTH);
|
||||
}
|
||||
return iblockstate;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState() {
|
||||
return new BlockStateContainer(this, new IProperty[] {FACING, PrimalAPI.States.ACTIVE});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullCube(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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package nmd.primal.forgecraft.blocks.machine;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
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 nmd.primal.core.api.PrimalAPI;
|
||||
import nmd.primal.core.common.helper.PlayerHelper;
|
||||
import nmd.primal.forgecraft.blocks.CustomContainerFacingActive;
|
||||
import nmd.primal.forgecraft.init.ModItems;
|
||||
import nmd.primal.forgecraft.items.parts.WeaponPart;
|
||||
import nmd.primal.forgecraft.items.weapons.CustomSword;
|
||||
import nmd.primal.forgecraft.items.weapons.SlayerSword;
|
||||
import nmd.primal.forgecraft.tiles.TileSharpBench;
|
||||
import nmd.primal.forgecraft.util.WeaponNBT;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class SharpBench extends CustomContainerFacingActive {
|
||||
|
||||
|
||||
protected static final AxisAlignedBB boundBoxNorth = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 10 / 16D, 8 / 16D);
|
||||
protected static final AxisAlignedBB boundBoxSouth = new AxisAlignedBB(0.0D, 0.0D, 8 / 16D, 1.0D, 10 / 16D, 1.0D);
|
||||
protected static final AxisAlignedBB boundBoxEast = new AxisAlignedBB(8 / 16D, 0.0D, 0.0D, 1.0D, 10 / 16D, 1.0D);
|
||||
protected static final AxisAlignedBB boundBoxWest = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 8 / 16D, 10 / 16D, 1.0D);
|
||||
|
||||
public SharpBench(Material material, String registryName) {
|
||||
super(material, registryName);
|
||||
this.setHardness(4.0f);
|
||||
}
|
||||
|
||||
@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) {
|
||||
if(player.getActiveHand().equals(EnumHand.MAIN_HAND)) {
|
||||
TileSharpBench tile = (TileSharpBench) world.getTileEntity(pos);
|
||||
if(player.getHeldItemMainhand().isEmpty()) {
|
||||
if(tile.getSlotStack(0).getItem().equals(ModItems.grindingwheel)) {
|
||||
world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 2);
|
||||
if (tile.getCharge() < 15) {
|
||||
tile.setCharge(tile.getCharge() + 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(player.getHeldItemMainhand().getItem().equals(ModItems.grindingwheel)) {
|
||||
tile.setSlotStack(0, player.getHeldItemMainhand().copy());
|
||||
player.getHeldItemMainhand().shrink(1);
|
||||
return true;
|
||||
}
|
||||
if(player.getHeldItemMainhand().isEmpty()) {
|
||||
if(player.isSneaking()){
|
||||
if(tile.getSlotStack(0).getItem().equals(ModItems.grindingwheel)){
|
||||
PlayerHelper.spawnItemOnGround(world, pos, tile.getSlotStack(0));
|
||||
tile.clearSlot(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity ent)
|
||||
{
|
||||
|
||||
if(ent instanceof EntityPlayer){
|
||||
EntityPlayer player = (EntityPlayer) ent;
|
||||
TileSharpBench tile = (TileSharpBench) world.getTileEntity(pos);
|
||||
if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getSlotStack(0).getItem().equals(ModItems.grindingwheel)){
|
||||
ItemStack playerStack = player.inventory.getCurrentItem();
|
||||
if(playerStack.getItem() instanceof CustomSword ||
|
||||
playerStack.getItem() instanceof SlayerSword){
|
||||
if(playerStack.getItemDamage() > 0){
|
||||
if (!world.isRemote) {
|
||||
if (PrimalAPI.getRandom().nextInt(1, 4) == 1) {
|
||||
playerStack.setItemDamage(playerStack.getItemDamage() - 1);
|
||||
tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1);
|
||||
WeaponNBT.removeAndSetEnchantsForStack(playerStack);
|
||||
}
|
||||
}
|
||||
if (world.isRemote) {
|
||||
//TODO make sparks
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World worldIn, int meta) {
|
||||
return new TileSharpBench();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{
|
||||
state = state.getActualState(source, pos);
|
||||
EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);
|
||||
|
||||
switch (enumfacing)
|
||||
{
|
||||
case EAST:
|
||||
default:
|
||||
return boundBoxEast;
|
||||
case SOUTH:
|
||||
return boundBoxSouth;
|
||||
case WEST:
|
||||
return boundBoxWest;
|
||||
case NORTH:
|
||||
return boundBoxNorth;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, BlockPos pos, IBlockState state)
|
||||
{
|
||||
if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops"))
|
||||
{
|
||||
TileSharpBench tile = (TileSharpBench) 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package nmd.primal.forgecraft.blocks.machine;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -37,7 +38,7 @@ public class Workbench extends CustomContainerFacing {
|
||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if (!world.isRemote) {
|
||||
if (hand.equals(hand.MAIN_HAND) ) {
|
||||
if(player.getActiveHand().equals(EnumHand.MAIN_HAND)) {
|
||||
|
||||
TileWorkbench tile = (TileWorkbench) world.getTileEntity(pos);
|
||||
ItemStack playerStack = player.inventory.getCurrentItem();
|
||||
@@ -270,6 +271,31 @@ public class Workbench extends CustomContainerFacing {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, BlockPos pos, IBlockState state)
|
||||
{
|
||||
if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops"))
|
||||
{
|
||||
TileWorkbench tile = (TileWorkbench) 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);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World worldIn, int meta) {
|
||||
|
||||
@@ -48,6 +48,7 @@ public class ModBlocks {
|
||||
public static Block ironanvil;
|
||||
|
||||
public static Block workbench;
|
||||
public static Block sharpbench;
|
||||
|
||||
public static Block yewstave;
|
||||
|
||||
@@ -79,6 +80,7 @@ public class ModBlocks {
|
||||
//ironanvil = new AnvilIron(Material.ANVIL, "ironanvil", 6.0f, true);
|
||||
|
||||
workbench = new Workbench(Material.WOOD, "toolbench");
|
||||
sharpbench = new SharpBench(Material.WOOD, "sharpbench");
|
||||
|
||||
yewstave = new YewStave(Material.WOOD, "yewstave", 3.0F);
|
||||
|
||||
@@ -112,6 +114,7 @@ public class ModBlocks {
|
||||
//registerBlockWithItem(ironanvil);
|
||||
|
||||
registerBlockWithItem(workbench);
|
||||
registerBlockWithItem(sharpbench);
|
||||
|
||||
registerBlockWithItem(yewstave);
|
||||
}
|
||||
@@ -144,6 +147,7 @@ public class ModBlocks {
|
||||
registerRender(stoneanvil);
|
||||
//registerRender(ironanvil);
|
||||
registerRender(workbench);
|
||||
registerRender(sharpbench);
|
||||
|
||||
registerRender(yewstave);
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ public class ModItems {
|
||||
public static Item softcrucible;
|
||||
//public static Item stonetongs;
|
||||
public static Item castingmud;
|
||||
|
||||
public static Item grindingwheel;
|
||||
|
||||
|
||||
public static Item bronzeingotball;
|
||||
@@ -191,7 +191,7 @@ public class ModItems {
|
||||
longbow = new Longbow("longbow");
|
||||
//matchlockmusket = new Musket("matchlock_musket");
|
||||
wootzworkblade = new Workblade("wootzworkblade", PrimalAPI.ToolMaterials.TOOL_WOOTZ_STEEL, -1.0F).setFireProof(true);
|
||||
|
||||
grindingwheel = new BaseItem("grindingwheel").setMaxDamage(9000).setMaxStackSize(1).setNoRepair();
|
||||
|
||||
/**********
|
||||
TOOL PARTS
|
||||
@@ -348,6 +348,7 @@ public class ModItems {
|
||||
ForgeRegistries.ITEMS.register(softcrucible);
|
||||
ForgeRegistries.ITEMS.register(wootzworkblade);
|
||||
ForgeRegistries.ITEMS.register(forgehammer);
|
||||
ForgeRegistries.ITEMS.register(grindingwheel);
|
||||
|
||||
ForgeRegistries.ITEMS.register(bronzeingotball);
|
||||
ForgeRegistries.ITEMS.register(bronzechunk);
|
||||
@@ -502,6 +503,7 @@ public class ModItems {
|
||||
registerRender(softcrucible);
|
||||
registerRender(forgehammer);
|
||||
registerRender(wootzworkblade);
|
||||
registerRender(grindingwheel);
|
||||
|
||||
registerRender(bronzeingotball);
|
||||
registerRender(bronzechunk);
|
||||
|
||||
@@ -18,6 +18,7 @@ public class ModTiles {
|
||||
registerTileEntity(TileCastingForm.class, "castingform");
|
||||
registerTileEntity(TileNBTCrucible.class, "nbtcrucible");
|
||||
registerTileEntity(TileWorkbench.class, "workbench");
|
||||
registerTileEntity(TileSharpBench.class, "sharpbench");
|
||||
}
|
||||
|
||||
private static void registerTileEntity(Class<? extends TileEntity> tile_class, String baseName) {
|
||||
|
||||
@@ -48,22 +48,22 @@ public class WeaponPart extends Item implements WeaponNBT {
|
||||
public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) {
|
||||
if (item.hasTagCompound()) {
|
||||
Float returnFloat = 0.0F;
|
||||
if(getSmiteLevel(item)>0){
|
||||
if(WeaponNBT.getSmiteLevel(item)>0){
|
||||
returnFloat += 0.1F;
|
||||
}
|
||||
if(getBaneLevel(item)>0){
|
||||
if(WeaponNBT.getBaneLevel(item)>0){
|
||||
returnFloat += (0.01F);
|
||||
}
|
||||
if(getFireLevel(item)>0){
|
||||
if(WeaponNBT.getFireLevel(item)>0){
|
||||
returnFloat += (0.001F);
|
||||
}
|
||||
if(getFortuneLevel(item)>0){
|
||||
if(WeaponNBT.getFortuneLevel(item)>0){
|
||||
returnFloat += (0.0001F);
|
||||
}
|
||||
if(getLeechLevel(item)>0){
|
||||
if(WeaponNBT.getLeechLevel(item)>0){
|
||||
returnFloat += (0.00001F);
|
||||
}
|
||||
if(getHot(item)){
|
||||
if(WeaponNBT.getHot(item)){
|
||||
returnFloat += 1.0F;
|
||||
}
|
||||
return returnFloat;
|
||||
@@ -106,24 +106,24 @@ public class WeaponPart extends Item implements WeaponNBT {
|
||||
{
|
||||
if(stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - getModifiers(stack)));
|
||||
if (getSmiteLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GOLD + "Holy: " + getSmiteLevel(stack));
|
||||
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - WeaponNBT.getModifiers(stack)));
|
||||
if (WeaponNBT.getSmiteLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GOLD + "Holy: " + WeaponNBT.getSmiteLevel(stack));
|
||||
}
|
||||
if (getBaneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + getBaneLevel(stack));
|
||||
if (WeaponNBT.getBaneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + WeaponNBT.getBaneLevel(stack));
|
||||
}
|
||||
if (getFireLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.RED + "Flame: " + getFireLevel(stack));
|
||||
if (WeaponNBT.getFireLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.RED + "Flame: " + WeaponNBT.getFireLevel(stack));
|
||||
}
|
||||
if (getFortuneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLUE + "Thieving: " + getFortuneLevel(stack));
|
||||
if (WeaponNBT.getFortuneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLUE + "Thieving: " + WeaponNBT.getFortuneLevel(stack));
|
||||
}
|
||||
if (getLeechLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + getLeechLevel(stack));
|
||||
if (WeaponNBT.getLeechLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + WeaponNBT.getLeechLevel(stack));
|
||||
}
|
||||
if (getSharpnessLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.WHITE + "Sharpness: " + getSharpnessLevel(stack));
|
||||
if (WeaponNBT.getSharpnessLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.WHITE + "Sharpness: " + WeaponNBT.getSharpnessLevel(stack));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,14 +3,21 @@ package nmd.primal.forgecraft.items.weapons;
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.mojang.realmsclient.gui.ChatFormatting;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.EnchantmentDamage;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.EntityEquipmentSlot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemSword;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
@@ -57,9 +64,62 @@ public class CustomSword extends ItemSword implements WeaponNBT {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity playerin, int itemSlot, boolean isSelected) {
|
||||
if(!world.isRemote){
|
||||
if(isSelected) {
|
||||
|
||||
//System.out.println( + stack.getMaxDamage() * 0.6 + " : " + stack.getItemDamage() + " : " + stack.getMaxDamage() * 0.5);
|
||||
//System.out.println(stack.getItemDamage() + ">" + stack.getMaxDamage() * 0.5);
|
||||
//System.out.println(stack.getItemDamage() + "<" + stack.getMaxDamage() * 0.6);
|
||||
//System.out.println(WeaponNBT.getSharpnessLevel(stack));
|
||||
if (stack.getItemDamage() < stack.getMaxDamage() * 0.5){
|
||||
WeaponNBT.setSharpnessLevel(stack, 5);
|
||||
//System.out.println("Sharpness = 5");
|
||||
}
|
||||
if (stack.getItemDamage() > stack.getMaxDamage() * 0.5 && stack.getItemDamage() < stack.getMaxDamage() * 0.6){
|
||||
WeaponNBT.setSharpnessLevel(stack, 4);
|
||||
//System.out.println("Sharpness = 4");
|
||||
}
|
||||
if (stack.getItemDamage() > stack.getMaxDamage() * 0.6 && stack.getItemDamage() < stack.getMaxDamage() * 0.7){
|
||||
WeaponNBT.setSharpnessLevel(stack, 3);
|
||||
//System.out.println("Sharpness = 3");
|
||||
}
|
||||
if (stack.getItemDamage() > stack.getMaxDamage() * 0.7 && stack.getItemDamage() < stack.getMaxDamage() * 0.8){
|
||||
WeaponNBT.setSharpnessLevel(stack, 2);
|
||||
//System.out.println("Sharpness = 2");
|
||||
}
|
||||
if (stack.getItemDamage() > stack.getMaxDamage() * 0.8 && stack.getItemDamage() < stack.getMaxDamage() * 0.9){
|
||||
WeaponNBT.setSharpnessLevel(stack, 1);
|
||||
//System.out.println("Sharpness = 1");
|
||||
}
|
||||
if (stack.getItemDamage() > stack.getMaxDamage() * 0.9 && stack.getItemDamage() < stack.getMaxDamage()){
|
||||
WeaponNBT.setSharpnessLevel(stack, 0);
|
||||
//System.out.println("Sharpness = 0");
|
||||
}
|
||||
//System.out.println(WeaponNBT.getSharpnessLevel(stack));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
|
||||
{
|
||||
if(!player.world.isRemote) {
|
||||
WeaponNBT.removeAndSetEnchantsForStack(stack);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockStartBreak(ItemStack stack, BlockPos pos, EntityPlayer player)
|
||||
{
|
||||
if(!player.world.isRemote) {
|
||||
System.out.println(WeaponNBT.getSharpnessLevel(stack));
|
||||
WeaponNBT.removeAndSetEnchantsForStack(stack);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -72,6 +132,7 @@ public class CustomSword extends ItemSword implements WeaponNBT {
|
||||
{
|
||||
multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", this.attack, 0));
|
||||
multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", this.speed, 0));
|
||||
|
||||
}
|
||||
|
||||
return multimap;
|
||||
@@ -81,28 +142,28 @@ public class CustomSword extends ItemSword implements WeaponNBT {
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flagIn)
|
||||
{
|
||||
//tooltip.add(ChatFormatting.GRAY + "Damage: " + item.getItemDamage() );
|
||||
tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + stack.getItemDamage() );
|
||||
if(stack.hasTagCompound())
|
||||
{
|
||||
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - getModifiers(stack)));
|
||||
if (getSmiteLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GOLD + "Holy: " + getSmiteLevel(stack));
|
||||
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - WeaponNBT.getModifiers(stack)));
|
||||
if (WeaponNBT.getSmiteLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GOLD + "Holy: " + WeaponNBT.getSmiteLevel(stack));
|
||||
}
|
||||
if (getBaneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + getBaneLevel(stack));
|
||||
if (WeaponNBT.getBaneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + WeaponNBT.getBaneLevel(stack));
|
||||
}
|
||||
if (getFireLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.RED + "Flame: " + getFireLevel(stack));
|
||||
if (WeaponNBT.getFireLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.RED + "Flame: " + WeaponNBT.getFireLevel(stack));
|
||||
}
|
||||
if (getFortuneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLUE + "Thieving: " + getFortuneLevel(stack));
|
||||
if (WeaponNBT.getFortuneLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLUE + "Thieving: " + WeaponNBT.getFortuneLevel(stack));
|
||||
}
|
||||
if (getLeechLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + getLeechLevel(stack));
|
||||
}
|
||||
if (getSharpnessLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.WHITE + "Sharpness: " + getSharpnessLevel(stack));
|
||||
if (WeaponNBT.getLeechLevel(stack) > 0) {
|
||||
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + WeaponNBT.getLeechLevel(stack));
|
||||
}
|
||||
//if (WeaponNBT.getSharpnessLevel(stack) > 0) {
|
||||
// tooltip.add(ChatFormatting.WHITE + "Sharpness: " + WeaponNBT.getSharpnessLevel(stack));
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
package nmd.primal.forgecraft.tiles;
|
||||
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ITickable;
|
||||
import net.minecraft.world.World;
|
||||
import nmd.primal.core.api.PrimalAPI;
|
||||
import nmd.primal.core.common.helper.RecipeHelper;
|
||||
import nmd.primal.core.common.items.tools.Gallagher;
|
||||
import nmd.primal.forgecraft.init.ModItems;
|
||||
import nmd.primal.forgecraft.items.parts.ToolPart;
|
||||
import nmd.primal.forgecraft.items.parts.WeaponGuard;
|
||||
import nmd.primal.forgecraft.items.parts.WeaponPart;
|
||||
import nmd.primal.forgecraft.items.tools.CustomAxe;
|
||||
import nmd.primal.forgecraft.items.tools.CustomHoe;
|
||||
import nmd.primal.forgecraft.items.tools.CustomPickaxe;
|
||||
import nmd.primal.forgecraft.items.tools.CustomShovel;
|
||||
|
||||
public class TileSharpBench extends TileBaseSlot implements ITickable {
|
||||
|
||||
private int iteration = 0;
|
||||
|
||||
public int getCharge() {
|
||||
return charge;
|
||||
}
|
||||
|
||||
public void setCharge(int charge) {
|
||||
this.charge = charge;
|
||||
}
|
||||
|
||||
private int charge;
|
||||
|
||||
@Override
|
||||
public void update () {
|
||||
World world = this.getWorld();
|
||||
if (!world.isRemote) {
|
||||
IBlockState state = world.getBlockState(this.pos);
|
||||
|
||||
if(state.getValue(PrimalAPI.States.ACTIVE)){
|
||||
this.iteration++;
|
||||
if(iteration > 80){
|
||||
if(charge > 0){
|
||||
charge -= 1;
|
||||
}
|
||||
iteration = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isItemValidForSlot(int index, ItemStack stack) {
|
||||
if(index == 0){
|
||||
if(stack.getItem()== ModItems.grindingwheel){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// ***************************************************************************** //
|
||||
// NBT
|
||||
// ***************************************************************************** //
|
||||
@Override
|
||||
public NBTTagCompound readNBT(NBTTagCompound nbt)
|
||||
{
|
||||
super.readNBT(nbt);
|
||||
this.charge = nbt.getInteger("charge");
|
||||
return nbt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeNBT(NBTTagCompound nbt)
|
||||
{
|
||||
nbt.setInteger("charge", this.charge);
|
||||
super.writeNBT(nbt);
|
||||
return nbt;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package nmd.primal.forgecraft.util;
|
||||
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
@@ -29,7 +31,7 @@ public interface WeaponNBT {
|
||||
* @param stack The ItemStack to get Modifiers from
|
||||
* @return int The number of modifiers applied
|
||||
*/
|
||||
default int getModifiers(ItemStack stack) {
|
||||
static int getModifiers(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -45,11 +47,11 @@ public interface WeaponNBT {
|
||||
* @param stack The stack to set modifiers to
|
||||
* @param mods The number of modifiers added
|
||||
*/
|
||||
default void setModifiers(ItemStack stack, Integer mods){
|
||||
static void setModifiers(ItemStack stack, Integer mods){
|
||||
stack.getSubCompound("tags").setInteger("modifiers", mods);
|
||||
}
|
||||
|
||||
default int getSmiteLevel(ItemStack stack){
|
||||
static int getSmiteLevel(ItemStack stack){
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -59,11 +61,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setSmiteLevel(ItemStack stack, int smite){
|
||||
static void setSmiteLevel(ItemStack stack, int smite){
|
||||
stack.getSubCompound("tags").setInteger("smite", smite);
|
||||
}
|
||||
|
||||
default int getBaneLevel(ItemStack stack) {
|
||||
static int getBaneLevel(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -73,11 +75,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setBaneLevel(ItemStack stack, Integer level){
|
||||
static void setBaneLevel(ItemStack stack, Integer level){
|
||||
stack.getSubCompound("tags").setInteger("bane", level);
|
||||
}
|
||||
|
||||
default int getFireLevel(ItemStack stack) {
|
||||
static int getFireLevel(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -87,11 +89,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setFireLevel(ItemStack stack, Integer level){
|
||||
static void setFireLevel(ItemStack stack, Integer level){
|
||||
stack.getSubCompound("tags").setInteger("fire", level);
|
||||
}
|
||||
|
||||
default int getFortuneLevel(ItemStack stack) {
|
||||
static int getFortuneLevel(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -101,11 +103,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setFortuneLevel(ItemStack stack, Integer level){
|
||||
static void setFortuneLevel(ItemStack stack, Integer level){
|
||||
stack.getSubCompound("tags").setInteger("fortune", level);
|
||||
}
|
||||
|
||||
default int getSweepingLevel(ItemStack stack) {
|
||||
static int getSweepingLevel(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -115,11 +117,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setSweepingLevel(ItemStack stack, Integer level){
|
||||
static void setSweepingLevel(ItemStack stack, Integer level){
|
||||
stack.getSubCompound("tags").setInteger("sweeping", level);
|
||||
}
|
||||
|
||||
default int getSharpnessLevel(ItemStack stack) {
|
||||
static int getSharpnessLevel(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -129,11 +131,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setSharpnessLevel(ItemStack stack, Integer level){
|
||||
static void setSharpnessLevel(ItemStack stack, Integer level){
|
||||
stack.getSubCompound("tags").setInteger("sharp", level);
|
||||
}
|
||||
|
||||
default int getLeechLevel(ItemStack stack) {
|
||||
static int getLeechLevel(ItemStack stack) {
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -143,11 +145,11 @@ public interface WeaponNBT {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
default void setLeechLevel(ItemStack stack, Integer level){
|
||||
static void setLeechLevel(ItemStack stack, Integer level){
|
||||
stack.getSubCompound("tags").setInteger("leech", level);
|
||||
}
|
||||
|
||||
default NBTTagCompound getTags(ItemStack stack){
|
||||
static NBTTagCompound getTags(ItemStack stack){
|
||||
if(!stack.isEmpty()) {
|
||||
if (stack.hasTagCompound()) {
|
||||
if (stack.getSubCompound("tags") != null) {
|
||||
@@ -158,7 +160,7 @@ public interface WeaponNBT {
|
||||
return null;
|
||||
}
|
||||
|
||||
default boolean getHot(ItemStack stack){
|
||||
static boolean getHot(ItemStack stack){
|
||||
|
||||
if(!stack.isEmpty()){
|
||||
if(stack.hasTagCompound()){
|
||||
@@ -171,7 +173,7 @@ public interface WeaponNBT {
|
||||
return false;
|
||||
}
|
||||
|
||||
default void setHot(ItemStack stack){
|
||||
static void setHot(ItemStack stack){
|
||||
|
||||
}
|
||||
|
||||
@@ -189,6 +191,32 @@ public interface WeaponNBT {
|
||||
stack.getSubCompound("tags").setBoolean("hot", false);
|
||||
}
|
||||
|
||||
static void removeAndSetEnchantsForStack(ItemStack stack){
|
||||
if(stack.hasTagCompound()) {
|
||||
//if(stack.isItemEnchanted()) {
|
||||
stack.getTagCompound().removeTag("ench");
|
||||
if (getSmiteLevel(stack)>0) {
|
||||
stack.addEnchantment(Enchantment.getEnchantmentByID(17), getSmiteLevel(stack));
|
||||
}
|
||||
if (getBaneLevel(stack)>0) {
|
||||
stack.addEnchantment(Enchantment.getEnchantmentByID(18), getBaneLevel(stack));
|
||||
}
|
||||
if (getFireLevel(stack)>0) {
|
||||
stack.addEnchantment(Enchantment.getEnchantmentByID(20), getFireLevel(stack));
|
||||
}
|
||||
if (getFortuneLevel(stack)>0) {
|
||||
stack.addEnchantment(Enchantment.getEnchantmentByID(21), getFortuneLevel(stack));
|
||||
}
|
||||
if (getSweepingLevel(stack) > 0) {
|
||||
stack.addEnchantment(Enchantment.getEnchantmentByID(22), getSweepingLevel(stack));
|
||||
}
|
||||
if (getSharpnessLevel(stack)>0) {
|
||||
stack.addEnchantment(Enchantment.getEnchantmentByID(16), getSharpnessLevel(stack));
|
||||
}
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
Hashtable<Item.ToolMaterial, Integer> materialModifiers = new Hashtable<Item.ToolMaterial, Integer>(){{
|
||||
|
||||
put(PrimalAPI.ToolMaterials.TOOL_COPPER, 3);
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"active=false,facing=north": { "model": "forgecraft:grinder_model" },
|
||||
"active=false,facing=east": { "model": "forgecraft:grinder_model", "y": 90 },
|
||||
"active=false,facing=south": { "model": "forgecraft:grinder_model", "y": 180 },
|
||||
"active=false,facing=west": { "model": "forgecraft:grinder_model", "y": 270 },
|
||||
"active=true,facing=north": { "model": "forgecraft:grinder_model" },
|
||||
"active=true,facing=east": { "model": "forgecraft:grinder_model", "y": 90 },
|
||||
"active=true,facing=south": { "model": "forgecraft:grinder_model", "y": 180 },
|
||||
"active=true,facing=west": { "model": "forgecraft:grinder_model", "y": 270 }
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 159 B |
Binary file not shown.
|
Before Width: | Height: | Size: 141 B |
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio",
|
||||
"textures": {
|
||||
"particle": "blocks/planks_oak",
|
||||
"texture": "blocks/planks_oak",
|
||||
"lever_handle": "blocks/planks_big_oak"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 4.5, 0, 1 ],
|
||||
"to": [ 6.5, 9, 3 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 13, 6.5, 15 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 1, 6.5, 3 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 1, 7, 3, 16 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 13, 7, 15, 16 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 4.5, 0, 9 ],
|
||||
"to": [ 6.5, 9, 11 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 9, 6.5, 11 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 9, 7, 11, 16 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 5, 7, 7, 16 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 9.5, 0, 9 ],
|
||||
"to": [ 11.5, 9, 11 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 9.5, 9, 11.5, 11 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 9, 7, 11, 16 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 5, 7, 7, 16 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 9.5, 0, 1 ],
|
||||
"to": [ 11.5, 9, 3 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9.5, 13, 11.5, 15 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 9.5, 1, 11.5, 3 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 1, 7, 3, 16 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 13, 7, 15, 16 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box5",
|
||||
"from": [ 4.5, 9, 1 ],
|
||||
"to": [ 6.5, 11, 11 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 5, 6.5, 15 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 1, 6.5, 11 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 1, 5, 11, 7 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 5, 5, 15, 7 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box5",
|
||||
"from": [ 9.5, 9, 1 ],
|
||||
"to": [ 11.5, 11, 11 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9.5, 5, 11.5, 15 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 9.5, 1, 11.5, 11 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 1, 5, 11, 7 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 5, 5, 15, 7 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box18",
|
||||
"from": [ 5, 11, 4 ],
|
||||
"to": [ 11, 12, 5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 5, 11, 11, 12 ], "texture": "#lever_handle" },
|
||||
"up": { "uv": [ 5, 4, 11, 5 ], "texture": "#lever_handle" },
|
||||
"north": { "uv": [ 5, 4, 11, 5 ], "texture": "#lever_handle" },
|
||||
"south": { "uv": [ 5, 4, 11, 5 ], "texture": "#lever_handle" },
|
||||
"west": { "uv": [ 4, 4, 5, 5 ], "texture": "#lever_handle" },
|
||||
"east": { "uv": [ 11, 4, 12, 5 ], "texture": "#lever_handle" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box23",
|
||||
"from": [ 5.5, 11, 8.5 ],
|
||||
"to": [ 10.5, 12, 9.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 5.5, 6.5, 10.5, 7.5 ], "texture": "#lever_handle" },
|
||||
"up": { "uv": [ 5.5, 8.5, 10.5, 9.5 ], "texture": "#lever_handle" },
|
||||
"north": { "uv": [ 5.5, 4, 10.5, 5 ], "texture": "#lever_handle" },
|
||||
"south": { "uv": [ 5.5, 4, 10.5, 5 ], "texture": "#lever_handle" },
|
||||
"west": { "uv": [ 8.5, 4, 9.5, 5 ], "texture": "#lever_handle" },
|
||||
"east": { "uv": [ 6.5, 4, 7.5, 5 ], "texture": "#lever_handle" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box24",
|
||||
"from": [ 5.5, 11, 9.5 ],
|
||||
"to": [ 10.5, 11.5, 10.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 5.5, 5.5, 10.5, 6.5 ], "texture": "#lever_handle" },
|
||||
"up": { "uv": [ 5.5, 9.5, 10.5, 10.5 ], "texture": "#lever_handle" },
|
||||
"north": { "uv": [ 5.5, 4.5, 10.5, 5 ], "texture": "#lever_handle" },
|
||||
"south": { "uv": [ 5.5, 4.5, 10.5, 5 ], "texture": "#lever_handle" },
|
||||
"west": { "uv": [ 9.5, 4.5, 10.5, 5 ], "texture": "#lever_handle" },
|
||||
"east": { "uv": [ 5.5, 4.5, 6.5, 5 ], "texture": "#lever_handle" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box25",
|
||||
"from": [ 4.5, 11, 2 ],
|
||||
"to": [ 6.5, 12, 4 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 12, 6.5, 14 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 2, 6.5, 4 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 2, 4, 4, 5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 12, 4, 14, 5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box25",
|
||||
"from": [ 4.5, 11, 5 ],
|
||||
"to": [ 6.5, 12, 7 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 9, 6.5, 11 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 5, 4, 7, 5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9, 4, 11, 5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box27",
|
||||
"from": [ 4.5, 12, 3 ],
|
||||
"to": [ 6.5, 13, 6 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 10, 6.5, 13 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 3, 6.5, 6 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 3, 11.5, 4 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 3, 6.5, 4 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 3, 3, 6, 4 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 10, 3, 13, 4 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box25",
|
||||
"from": [ 9.5, 11, 2 ],
|
||||
"to": [ 11.5, 12, 4 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9.5, 12, 11.5, 14 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 9.5, 2, 11.5, 4 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 2, 4, 4, 5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 12, 4, 14, 5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box25",
|
||||
"from": [ 9.5, 11, 5 ],
|
||||
"to": [ 11.5, 12, 7 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9.5, 9, 11.5, 11 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 5, 4, 7, 5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9, 4, 11, 5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "PlaneX34",
|
||||
"from": [ 4.5, 11, 4 ],
|
||||
"to": [ 4.501, 12, 5 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 4, 4, 5, 5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 11, 4, 12, 5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box27",
|
||||
"from": [ 9.5, 12, 3 ],
|
||||
"to": [ 11.5, 13, 6 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 4.5, 10, 6.5, 13 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 4.5, 3, 6.5, 6 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 9.5, 3, 11.5, 4 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 4.5, 3, 6.5, 4 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 3, 3, 6, 4 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 10, 3, 13, 4 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "PlaneX34",
|
||||
"from": [ 11.5, 11, 4 ],
|
||||
"to": [ 11.501, 12, 5 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 4, 4, 5, 5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 11, 4, 12, 5 ], "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 ],
|
||||
"scale": [ 0.4, 0.4, 0.4 ]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [ 0, 45, 0 ],
|
||||
"scale": [ 0.4, 0.4, 0.4 ]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [ 30, -45, 0 ],
|
||||
"scale": [ 0.625, 0.625, 0.625 ]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [ 0, 3, 0 ],
|
||||
"scale": [ 0.25, 0.25, 0.25 ]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [ 0, 90, 0 ],
|
||||
"scale": [ 0.5, 0.5, 0.5 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
{
|
||||
"__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio",
|
||||
"textures": {
|
||||
"particle": "blocks/snow",
|
||||
"texture": "blocks/snow"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 7, 10.5, 6.5 ],
|
||||
"to": [ 9, 11.5, 9.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 4.5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 4.5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6.5, 4.5, 9.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 6.5, 4.5, 9.5, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 7, 9.5, 5.5 ],
|
||||
"to": [ 9, 10.5, 10.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5.5, 9, 6.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5.5, 9, 6.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 5.5, 5.5, 10.5, 6.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 5.5, 5.5, 10.5, 6.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box3",
|
||||
"from": [ 7, 6.5, 4.5 ],
|
||||
"to": [ 9, 7.5, 11.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 8.5, 9, 9.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 8.5, 9, 9.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 4.5, 8.5, 11.5, 9.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 4.5, 8.5, 11.5, 9.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box3",
|
||||
"from": [ 7, 8.5, 4.5 ],
|
||||
"to": [ 9, 9.5, 11.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 6.5, 9, 7.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 6.5, 9, 7.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 4.5, 6.5, 11.5, 7.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 4.5, 6.5, 11.5, 7.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box5",
|
||||
"from": [ 7, 7.5, 4.5 ],
|
||||
"to": [ 9, 8.5, 7.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 8.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 4.5, 9, 7.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 4.5, 7.5, 7.5, 8.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 8.5, 7.5, 11.5, 8.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box5",
|
||||
"from": [ 7, 7.5, 8.5 ],
|
||||
"to": [ 9, 8.5, 11.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 4.5, 9, 7.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 8.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 8.5, 7.5, 11.5, 8.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 4.5, 7.5, 7.5, 8.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 7, 5.5, 5.5 ],
|
||||
"to": [ 9, 6.5, 10.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 9.5, 9, 10.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 9.5, 9, 10.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 5.5, 9.5, 10.5, 10.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 5.5, 9.5, 10.5, 10.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box1",
|
||||
"from": [ 7, 4.5, 6.5 ],
|
||||
"to": [ 9, 5.5, 9.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 10.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 10.5, 9, 11.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6.5, 10.5, 9.5, 11.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 6.5, 10.5, 9.5, 11.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 9.5, 5 ],
|
||||
"to": [ 9, 10, 5.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 10.5, 9, 11 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 5, 6, 5.5, 6.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 10.5, 6, 11, 6.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 6, 5 ],
|
||||
"to": [ 9, 6.5, 5.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 5, 6 ],
|
||||
"to": [ 9, 5.5, 6.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 5, 9.5 ],
|
||||
"to": [ 9, 5.5, 10 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 6, 10.5 ],
|
||||
"to": [ 9, 6.5, 11 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 9.5, 10.5 ],
|
||||
"to": [ 9, 10, 11 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 10.5, 9.5 ],
|
||||
"to": [ 9, 11, 10 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"__comment": "Box9",
|
||||
"from": [ 7, 10.5, 6 ],
|
||||
"to": [ 9, 11, 6.5 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
|
||||
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
|
||||
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
|
||||
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
|
||||
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [ 0, -90, 55 ],
|
||||
"translation": [ 0, 4, 0.5 ],
|
||||
"scale": [ 0.85, 0.85, 0.85 ]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [ 0, -90, 55 ],
|
||||
"translation": [ 0, 4, 0.5 ],
|
||||
"scale": [ 0.85, 0.85, 0.85 ]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [ 0, -90, 25 ],
|
||||
"translation": [ 1.13, 3.2, 1.13 ],
|
||||
"scale": [ 0.68, 0.68, 0.68 ]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [ 0, -90, 25 ],
|
||||
"translation": [ 1.13, 3.2, 1.13 ],
|
||||
"scale": [ 0.68, 0.68, 0.68 ]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [ 30, 225, 0 ],
|
||||
"scale": [ 0.625, 0.625, 0.625 ]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [ 0, 2, 0 ],
|
||||
"scale": [ 0.5, 0.5, 0.5 ]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [ 0, 90, 0 ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"forge_marker":1,
|
||||
"textures": {
|
||||
"particle": "blocks/planks_oak",
|
||||
"texture": "blocks/planks_oak",
|
||||
"lever_handle": "blocks/planks_big_oak"
|
||||
},
|
||||
"parent": "forgecraft:block/grinder_model"
|
||||
}
|
||||
Reference in New Issue
Block a user