diff --git a/kfc/To-Dos.md b/kfc/To-Dos.md index bc976239..4489a846 100644 --- a/kfc/To-Dos.md +++ b/kfc/To-Dos.md @@ -10,17 +10,8 @@ - [ ] Grinding wheel rotate ## Current Feature -- [ ] Redstone Engine Model -- [ ] Engine Refactor -- [ ] Slots for Engines -- [ ] Tool Slot -- [ ] Gearbox Slot -- [ ] Grinding Blade -- [ ] Fan -- [ ] powered-axle -- [ ] Gearbox Block -- [ ] Engine Overclocking -- [ ] Gears +- [ ] Recipe Handler for saw +- [ ] Sound for block break ## Feature Optimizations - [ ] Untick Bloomery and Forge @@ -65,6 +56,17 @@ rename s/iron/steel/ iron* ``` ### Completed +- [x] Redstone Engine Model +- [x] Engine Refactor +- [x] Slots for Engines +- [x] Tool Slot +- [x] Gearbox Slot +- [x] Grinding Blade +- [x] Fan +- [x] powered-axle +- [x] Gearbox Block +- [x] Engine Overclocking +- [x] Gears - [x] weapon upgrades - [x] Grinding Bench - [x] Repair ToolHead diff --git a/kfc/src/main/java/nmd/primal/forgecraft/ModInfo.java b/kfc/src/main/java/nmd/primal/forgecraft/ModInfo.java index 3c260fc5..71435352 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/ModInfo.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/ModInfo.java @@ -6,7 +6,9 @@ import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.registries.IForgeRegistry; +import nmd.primal.forgecraft.blocks.machine.MachineSaw; import nmd.primal.forgecraft.crafting.CrucibleCrafting; +import nmd.primal.forgecraft.crafting.MachineSawCrafting; import nmd.primal.forgecraft.crafting.WorkbenchCrafting; import nmd.primal.forgecraft.init.ModItems; //import nmd.primal.forgecraft.Item.ModItems; @@ -57,6 +59,7 @@ public class ModInfo { // In-World Recipes public static final IForgeRegistry CRUCIBLE_CRAFTING = GameRegistry.findRegistry(CrucibleCrafting.class); public static final IForgeRegistry WORKBENCH_CRAFTING = GameRegistry.findRegistry(WorkbenchCrafting.class); + public static final IForgeRegistry MACHINE_SAW_CRAFTING = GameRegistry.findRegistry(MachineSawCrafting.class); } } \ No newline at end of file diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/CustomContainerFacingActive.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/CustomContainerFacingActive.java index 92969772..09b5e8a1 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/blocks/CustomContainerFacingActive.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/CustomContainerFacingActive.java @@ -35,6 +35,13 @@ public abstract class CustomContainerFacingActive extends BlockContainer { setCreativeTab(ModInfo.TAB_FORGECRAFT); } + @Override + public void breakBlock(World worldIn, BlockPos pos, IBlockState state) + { + super.breakBlock(worldIn, pos, state); + worldIn.removeTileEntity(pos); + } + @Override public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/MachineSaw.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/MachineSaw.java new file mode 100644 index 00000000..caed582d --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/MachineSaw.java @@ -0,0 +1,150 @@ +package nmd.primal.forgecraft.blocks.machine; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import nmd.primal.core.api.PrimalAPI; +import nmd.primal.core.common.helper.PlayerHelper; +import nmd.primal.core.common.helper.RecipeHelper; +import nmd.primal.forgecraft.blocks.CustomContainerFacingActive; +import nmd.primal.forgecraft.crafting.MachineSawCrafting; +import nmd.primal.forgecraft.init.ModBlocks; +import nmd.primal.forgecraft.init.ModSounds; +import nmd.primal.forgecraft.tiles.TileMachineSaw; +import nmd.primal.forgecraft.tiles.TileRedstoneEngine; + +import javax.annotation.Nullable; +import java.util.Random; + +public class MachineSaw extends CustomContainerFacingActive { + + public MachineSaw(Material material, String registryName) { + super(material, registryName); + } + + @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 (hand.equals(EnumHand.MAIN_HAND)) { + TileMachineSaw tile = (TileMachineSaw) world.getTileEntity(pos); + ItemStack playerStack = player.getHeldItem(hand); + + if (tile.isItemValidForSlot(0, playerStack)) { + ItemStack setStack = playerStack.copy(); + setStack.setCount(1); + tile.setSlotStack(0, setStack); + playerStack.shrink(1); + return true; + } + if(playerStack.isEmpty()){ + if(player.isSneaking()){ + PlayerHelper.spawnItemOnPlayer(world, player, tile.slotList); + tile.clearSlots(); + return true; + } + } + } + } + return false; + } + + @Override + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { + if (!world.isRemote) { + TileMachineSaw tile = (TileMachineSaw) world.getTileEntity(pos); + + if(state.getValue(FACING).equals (EnumFacing.NORTH)){ + if(world.getBlockState(pos.west()).getBlock().equals(ModBlocks.redstoneengine)){ + updateValues(world, pos, tile, state, pos.west()); + sawThings(world, pos, state, tile, fromPos); + } + + } + if(state.getValue(FACING).equals (EnumFacing.SOUTH)){ + if(world.getBlockState(pos.east()).getBlock().equals(ModBlocks.redstoneengine)){ + updateValues(world, pos, tile, state, pos.east()); + sawThings(world, pos, state, tile, fromPos); + } + } + if(state.getValue(FACING).equals (EnumFacing.EAST)){ + if(world.getBlockState(pos.north()).getBlock().equals(ModBlocks.redstoneengine)){ + updateValues(world, pos, tile, state, pos.north()); + sawThings(world, pos, state, tile, fromPos); + } + } + if(state.getValue(FACING).equals (EnumFacing.WEST)){ + if(world.getBlockState(pos.south()).getBlock().equals(ModBlocks.redstoneengine)){ + updateValues(world, pos, tile, state, pos.south()); + sawThings(world, pos, state, tile, fromPos); + } + } + } + } + + @Nullable + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) { + return new TileMachineSaw(); + } + + private void sawThings(World world, BlockPos pos, IBlockState state, TileMachineSaw tile, BlockPos fromPos){ + if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getTransfer() ){ + if(fromPos.equals(pos.up())) { + IBlockState sawState = world.getBlockState(fromPos); + ItemStack sawStack = new ItemStack(Item.getItemFromBlock(sawState.getBlock()), 1, sawState.getBlock().getMetaFromState(sawState)); + MachineSawCrafting recipe = MachineSawCrafting.getRecipe(sawStack); + if(recipe != null){ + if(!recipe.isDisabled()) { + if(PrimalAPI.randomCheck(15-tile.getRedstone())){ + PlayerHelper.spawnItemOnGround(world, pos.offset(state.getValue(FACING)), recipe.getOutput()); + world.destroyBlock(pos.up(), false); + } else { + world.destroyBlock(pos.up(), true); + } + } + } + } + } + } + + private void setValues(TileMachineSaw tile, TileRedstoneEngine tileRedstoneEngine){ + tile.setPower(tileRedstoneEngine.getPower()); + tile.setTorque(tileRedstoneEngine.getTorque()); + tile.setRpm(tileRedstoneEngine.getRPM()); + tile.setRedstone(tileRedstoneEngine.getRedstone()); + tile.setGearMulti(tileRedstoneEngine.getGearMulti()); + tile.setTransfer(tileRedstoneEngine.getTransfer()); + } + + private void clearValues(TileMachineSaw tile, TileRedstoneEngine tileRedstoneEngine){ + tile.setPower(0); + tile.setTorque(0); + tile.setRpm(0); + tile.setRedstone(0); + tile.setTransfer(tileRedstoneEngine.getTransfer()); + } + + private void updateValues(World world, BlockPos pos, TileMachineSaw tile, IBlockState state, BlockPos offsetPos){ + TileRedstoneEngine tileEngine = (TileRedstoneEngine) world.getTileEntity(offsetPos); + if(world.getBlockState(offsetPos).getValue(PrimalAPI.States.ACTIVE) && tileEngine.getTransfer()){ + setValues(tile, tileEngine); + world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 2); + } + if(!world.getBlockState(offsetPos).getValue(PrimalAPI.States.ACTIVE) || !tileEngine.getTransfer()){ + clearValues(tile, tileEngine); + world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, false), 2); + tile.markDirty(); + } + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/RedstoneEngine.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/RedstoneEngine.java index ff17ac95..e16acb81 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/RedstoneEngine.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/RedstoneEngine.java @@ -4,16 +4,20 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ItemStackHelper; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.common.helper.PlayerHelper; +import nmd.primal.core.common.helper.RecipeHelper; import nmd.primal.forgecraft.blocks.CustomContainerFacingActive; import nmd.primal.forgecraft.tiles.TileRedstoneEngine; @@ -22,7 +26,10 @@ import java.util.Random; public class RedstoneEngine extends CustomContainerFacingActive { - protected static final AxisAlignedBB boundBox = new AxisAlignedBB(0/16D, 0/16D, 0/16D, 1, 9 / 16D, 1); + protected static final AxisAlignedBB boundBoxNorth = new AxisAlignedBB(0/16D, 0/16D, 0/16D, 10/16D, 27 / 32D, 16/16D); + protected static final AxisAlignedBB boundBoxSouth = new AxisAlignedBB(6/16D, 6/16D, 0/16D, 1, 27 / 32D, 16/16D); + protected static final AxisAlignedBB boundBoxEast = new AxisAlignedBB(0/16D, 0/16D, 0/16D, 16/16D, 27 / 32D, 10/16D); + protected static final AxisAlignedBB boundBoxWest = new AxisAlignedBB(0/16D, 0/16D, 6/16D, 1, 27 / 32D, 16/16D); public RedstoneEngine(Material material, String registryName) { super(material, registryName); @@ -34,6 +41,7 @@ public class RedstoneEngine extends CustomContainerFacingActive { if(hand.equals(EnumHand.MAIN_HAND)) { TileRedstoneEngine tile = (TileRedstoneEngine) world.getTileEntity(pos); ItemStack playerStack = player.getHeldItem(hand); + Chunk chunk = world.getChunkFromBlockCoords(pos); if(tile.isItemValidForSlot(0, playerStack)){ ItemStack setStack = playerStack.copy(); @@ -47,12 +55,27 @@ public class RedstoneEngine extends CustomContainerFacingActive { setStack.setCount(1); tile.setSlotStack(1, setStack); playerStack.shrink(1); + tile.setTransfer(true); + + if( world.getRedstonePower(pos.down(), EnumFacing.UP)>0 || + world.getRedstonePower(pos.offset(state.getValue(FACING).getOpposite()), state.getValue(FACING))>0 ) { + if(world.getRedstonePower(pos.down(), EnumFacing.UP) > world.getRedstonePower(pos.offset(state.getValue(FACING).getOpposite()), state.getValue(FACING))){ + tile.setRedstone(world.getRedstonePower(pos.down(), EnumFacing.UP)); + } else { + tile.setRedstone(world.getRedstonePower(pos.offset(state.getValue(FACING).getOpposite()), state.getValue(FACING))); + } + tile.setPower(); + this.setValues(tile); + } + world.markAndNotifyBlock(pos, chunk, state, state, 3); return true; } if(playerStack.isEmpty()){ if(player.isSneaking()){ PlayerHelper.spawnItemOnPlayer(world, player, tile.slotList); tile.clearSlots(); + tile.setTransfer(false); + world.markAndNotifyBlock(pos, chunk, state, state, 3); return true; } } @@ -67,34 +90,38 @@ public class RedstoneEngine extends CustomContainerFacingActive { TileRedstoneEngine tile = (TileRedstoneEngine) world.getTileEntity(pos); if (fromPos.equals(pos.down()) || fromPos.equals(pos.offset(state.getValue(FACING).getOpposite()))) { if (world.isBlockIndirectlyGettingPowered(pos)>0) { - world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 2); int power = world.isBlockIndirectlyGettingPowered(pos); tile.setRedstone(power); - tile.updateBlock(); - + tile.setPower(); + this.setValues(tile); + world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 3); } if (!world.isBlockPowered(pos)) { - world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, false), 2); tile.setRedstone(0); - tile.updateBlock(); + tile.setPower(); + this.setValues(tile); + world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, false), 3); } } } } - @Override - public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) { - if (state.getValue(PrimalAPI.States.ACTIVE) == Boolean.TRUE) { - if (state.getValue(PistonBellows.FACING) == EnumFacing.NORTH) { - - } - } - } - @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { - return boundBox; + if(state.getValue(FACING).equals(EnumFacing.NORTH)){ + return boundBoxNorth; + } + if(state.getValue(FACING).equals(EnumFacing.SOUTH)){ + return boundBoxSouth; + } + if(state.getValue(FACING).equals(EnumFacing.EAST)){ + return boundBoxEast; + } + if(state.getValue(FACING).equals(EnumFacing.WEST)){ + return boundBoxWest; + } + return boundBoxNorth; } @Nullable @@ -103,4 +130,35 @@ public class RedstoneEngine extends CustomContainerFacingActive { return new TileRedstoneEngine(); } + private void setValues(TileRedstoneEngine tile){ + if(!tile.getSlotStack(0).isEmpty()){ + NonNullList gearboxList = NonNullList.withSize(3, ItemStack.EMPTY); + if(tile.getSlotStack(0).getSubCompound("BlockEntityTag") != null) { + ItemStackHelper.loadAllItems(tile.getSlotStack(0).getSubCompound("BlockEntityTag"), gearboxList); + if (RecipeHelper.isOreName(gearboxList.get(0), "gearPrimalMedium") && + RecipeHelper.isOreName(gearboxList.get(1), "gearPrimalMedium") && + RecipeHelper.isOreName(gearboxList.get(2), "gearboxCoverPrimal")) { + tile.setRPM(1200F/(60-2*tile.getRedstone())); + tile.setTorque(tile.getPower()/tile.getRPM()); + tile.setGearMulti(1F); + } + if (RecipeHelper.isOreName(gearboxList.get(0), "gearPrimalSmall") && + RecipeHelper.isOreName(gearboxList.get(1), "gearPrimalLarge") && + RecipeHelper.isOreName(gearboxList.get(2), "gearboxCoverPrimal")) { + tile.setRPM((1200F/(60-2*tile.getRedstone()))*4); + tile.setTorque(tile.getPower()/tile.getRPM()); + tile.setGearMulti(4F); + } + if (RecipeHelper.isOreName(gearboxList.get(0), "gearPrimalLarge") && + RecipeHelper.isOreName(gearboxList.get(1), "gearPrimalSmall") && + RecipeHelper.isOreName(gearboxList.get(2), "gearboxCoverPrimal")) { + + tile.setRPM((1200F/(60-2*tile.getRedstone()))/4); + tile.setTorque(tile.getPower()/tile.getRPM()); + tile.setGearMulti(0.25F); + } + } + } + } + } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/compat/ct/CTSaw.java b/kfc/src/main/java/nmd/primal/forgecraft/compat/ct/CTSaw.java new file mode 100644 index 00000000..74574d6f --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/compat/ct/CTSaw.java @@ -0,0 +1,151 @@ +package nmd.primal.forgecraft.compat.ct; + + +import crafttweaker.CraftTweakerAPI; +import crafttweaker.IAction; +import crafttweaker.annotations.ModOnly; +import crafttweaker.annotations.ZenRegister; +import crafttweaker.api.item.IIngredient; +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.minecraft.CraftTweakerMC; +import net.minecraft.inventory.ItemStackHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import nmd.primal.core.api.PrimalAPI; +import nmd.primal.core.common.PrimalCore; +import nmd.primal.core.common.helper.RecipeHelper; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.blocks.machine.MachineSaw; +import nmd.primal.forgecraft.crafting.CrucibleCrafting; +import nmd.primal.forgecraft.crafting.MachineSawCrafting; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; + +import java.util.List; +import java.util.stream.Collectors; + +@ZenClass("mods.forgecraft.MachineSaw") +@ModOnly(ModInfo.MOD_ID) +@ZenRegister +public class CTSaw { + + static + { + PrimalCore.LOGGER.info("Registering CraftTweaker: " + MachineSawCrafting.RECIPE_PREFIX); + } + + @ZenMethod + public static void addRecipe(IIngredient ing0, + IIngredient output, + String recipe_name) + { + CraftTweakerAPI.apply(new Add(ing0, output, recipe_name)); + } + + @ZenMethod + public static void removeRecipe(String recipe_name) + { + CraftTweakerAPI.apply(new Remove(recipe_name)); + } + + @ZenMethod + public static void removeAll() + { + CraftTweakerAPI.apply(new RemoveAll()); + } + + private static class Add implements IAction + { + private final String recipe_name; + private final Ingredient ing0; + private final List output; + private boolean isDisabled, isHidden; + + public Add(IIngredient I0, IIngredient output, String recipe_name) + { + + ItemStack[] array0 = null; + ItemStack[] emptyArray = new ItemStack[1]; + emptyArray[0] = ItemStack.EMPTY; + + if(I0 != null) { + List zeroIList = I0.getItems().stream().map(CraftTweakerMC::getItemStack).collect(Collectors.toList()); + array0 = zeroIList.stream().toArray(ItemStack[]::new); + } + if(I0 == null) { + array0 = emptyArray; + } + + this.recipe_name = recipe_name; + this.ing0 = Ingredient.fromStacks(array0); + this.output = RecipeHelper.getIIngredientStacks(output); + this.isDisabled = false; + this.isHidden = false; + } + + @Override + public void apply() + { + PrimalCore.LOGGER.info("Add CraftTweaker Recipe: " + this.recipe_name); + MachineSawCrafting.REGISTRY.register(new MachineSawCrafting( + this.ing0, + this.output).setRecipeName(this.recipe_name)); + } + + @Override + public String describe() + { + return "[" + ModInfo.MOD_NAME + "] Adding Crafting Tweaker recipe for: " + MachineSawCrafting.RECIPE_PREFIX; + } + } + + + private static class Remove implements IAction + { + private String recipe_name; + + public Remove(String recipe_name) + { + this.recipe_name = recipe_name; + } + + @Override + public void apply() + { + MachineSawCrafting recipe = MachineSawCrafting.getRecipe(recipe_name); + if (recipe != null && !recipe.isHidden()) + { + PrimalCore.LOGGER.info("Remove CraftTweaker Recipe: " + recipe_name); + recipe.setDisabled(true); + } + } + + @Override + public String describe() + { + return "[" + ModInfo.MOD_NAME + "] Removing Crafting Tweaker recipe for:" + MachineSawCrafting.RECIPE_PREFIX; + } + } + + private static class RemoveAll implements IAction + { + public RemoveAll() { } + + @Override + public void apply() + { + for (MachineSawCrafting recipe : MachineSawCrafting.RECIPES) + { + if (!recipe.isHidden()) + recipe.setDisabled(true); + } + } + + @Override + public String describe() + { + return "[" + ModInfo.MOD_NAME + "] Removing Crafting Tweaker recipe for:" + MachineSawCrafting.RECIPE_PREFIX; + } + } +} + diff --git a/kfc/src/main/java/nmd/primal/forgecraft/crafting/MachineSawCrafting.java b/kfc/src/main/java/nmd/primal/forgecraft/crafting/MachineSawCrafting.java new file mode 100644 index 00000000..599e7fb2 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/crafting/MachineSawCrafting.java @@ -0,0 +1,124 @@ +package nmd.primal.forgecraft.crafting; + +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import net.minecraftforge.registries.IForgeRegistry; +import nmd.primal.core.common.helper.RecipeHelper; +import nmd.primal.core.common.recipes.AbstractRecipe; +import nmd.primal.forgecraft.ModInfo; + +import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * Created by mminaie on 11/11/17. + */ +public class MachineSawCrafting extends AbstractRecipe { //extends AbstractCrafting { + + // ***************************************************************************** // + // Recipe Handler CrucibleHandler + // ***************************************************************************** // + + public static final String RECIPE_PREFIX = "machine_saw"; + public static final IForgeRegistry REGISTRY = ModInfo.Registries.MACHINE_SAW_CRAFTING; + + public static Collection getRECIPES() { + return RECIPES; + } + + public static final Collection RECIPES = REGISTRY.getValuesCollection(); + + private Ingredient input; + private List output; + + public Ingredient getInput() { + return input; + } + public void setInput(Ingredient input) { + this.input = input; + } + + public List getOutput() { + return output; + } + public void setOutput(List output) { + this.output = output; + } + + public MachineSawCrafting(Ingredient input, List output){ + super(); + this.input = input; + this.output = output; + } + + public static boolean compare(Ingredient ingredient, ItemStack stack){ + if(stack == null){ + stack = new ItemStack(Items.AIR, 1); + } + if(ingredient == null && stack.isEmpty()) { + return true; + } + + if (ingredient.test(ItemStack.EMPTY)) { + if (stack.isEmpty()) { + return true; + } + } + + if(ingredient.apply(stack)){ + return true; + } + + return false; + } + + public boolean isRecipe(ItemStack input){ + for(MachineSawCrafting recipe : RECIPES){ + if(input == null){ + input = ItemStack.EMPTY; + } + if(compare(recipe.input, input)){ + return true; + } + } + return false; + } + + public static MachineSawCrafting getRecipe(ItemStack input){ + for(MachineSawCrafting recipe : RECIPES){ + if(input == null){ + input = ItemStack.EMPTY; + } + if(recipe.input.apply(input)){ + return recipe; + } + } + return null; + } + + @Override + public Collection getRecipes() { + return RECIPES; + } + + @Override + public String getRecipePrefix() { + return RECIPE_PREFIX; + } + + /** + * Shim for getting a recipe directly from correctly formatted name + * @param recipe_name basic recipe name, no prefix or mod id + * @return Recipe object + */ + @Nullable + public static MachineSawCrafting getRecipe(String recipe_name) + { + return REGISTRY.getValue(getFullRecipeName(RECIPE_PREFIX, recipe_name)); + } +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/crafting/registery/RecipesMachineSaw.java b/kfc/src/main/java/nmd/primal/forgecraft/crafting/registery/RecipesMachineSaw.java new file mode 100644 index 00000000..69e50947 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/crafting/registery/RecipesMachineSaw.java @@ -0,0 +1,113 @@ +package nmd.primal.forgecraft.crafting.registery; + +import crafttweaker.api.block.IBlock; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.util.NonNullList; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.OreIngredient; +import net.minecraftforge.registries.IForgeRegistry; +import nmd.primal.core.api.PrimalAPI; +import nmd.primal.core.common.helper.RecipeHelper; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.crafting.MachineSawCrafting; +import nmd.primal.forgecraft.crafting.WorkbenchCrafting; +import nmd.primal.forgecraft.init.ModItems; + +import java.util.List; + +@GameRegistry.ObjectHolder(ModInfo.MOD_ID) +@Mod.EventBusSubscriber +public final class RecipesMachineSaw { + @SubscribeEvent + public static void registerRecipes(RegistryEvent.Register event) { + PrimalAPI.logger(7, "Registering Recipes: " + MachineSawCrafting.RECIPE_PREFIX); + final IForgeRegistry recipes = event.getRegistry(); + + ItemStack sticks = new ItemStack(Items.STICK, 2); + + recipes.register(new MachineSawCrafting( + new OreIngredient("logOak"), + RecipeHelper.buildList((new ItemStack(Item.getItemFromBlock(Blocks.PLANKS), 4, 0)), + (new ItemStack(PrimalAPI.Items.BARK_OAK, 4)), + sticks)) + .setRecipeName("oakPlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logSpruce"), + RecipeHelper.buildList((new ItemStack(Item.getItemFromBlock(Blocks.PLANKS), 4, 1)), + (new ItemStack(PrimalAPI.Items.BARK_SPRUCE, 4)), + sticks)) + .setRecipeName("sprucePlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logBirch"), + RecipeHelper.buildList( (new ItemStack(Item.getItemFromBlock(Blocks.PLANKS), 4, 2)), + (new ItemStack(PrimalAPI.Items.BARK_BIRCH, 4)), + sticks)) + .setRecipeName("birchPlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logJungle"), + RecipeHelper.buildList(new ItemStack(Item.getItemFromBlock(Blocks.PLANKS), 4, 3))) + .setRecipeName("junglePlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logAcacia"), + RecipeHelper.buildList(new ItemStack(Item.getItemFromBlock(Blocks.PLANKS), 4, 0))) + .setRecipeName("acaciaPlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logIronwood"), + RecipeHelper.buildList(new ItemStack(Item.getItemFromBlock(PrimalAPI.Blocks.PLANKS), 4, 0))) + .setRecipeName("ironwoodPlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logYew"), + RecipeHelper.buildList(new ItemStack(Item.getItemFromBlock(PrimalAPI.Blocks.PLANKS), 4, 1))) + .setRecipeName("yewPlanks")); + recipes.register(new MachineSawCrafting( + new OreIngredient("logCorypha"), + RecipeHelper.buildList(new ItemStack(Item.getItemFromBlock(PrimalAPI.Blocks.PLANKS), 4, 3))) + .setRecipeName("coryphaPlanks")); + + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedOak"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_OAK, 6))) + .setRecipeName("splitOak")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedSpruce"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_SPRUCE, 6))) + .setRecipeName("splitSpruce")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedBirch"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_BIRCH, 6))) + .setRecipeName("splitBirch")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedJungle"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_JUNGLE, 6))) + .setRecipeName("splitJungle")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedAcacia"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_ACACIA, 6))) + .setRecipeName("splitAcacia")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedDarkOak"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_DARK_OAK, 6))) + .setRecipeName("splitDarkOak")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedIronwood"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_IRONWOOD, 6))) + .setRecipeName("splitIronwood")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedYew"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_YEW, 6))) + .setRecipeName("splitYew")); + recipes.register(new MachineSawCrafting( + new OreIngredient("strippedCorypha"), + RecipeHelper.buildList(new ItemStack(PrimalAPI.Items.LOGS_SPLIT_CORYPHA, 6))) + .setRecipeName("splitCorypha")); + } +} \ No newline at end of file diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java index 76a6586e..754ea153 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java @@ -49,13 +49,16 @@ public class ModBlocks { public static Block pistonbellowsacacia; public static Block stoneanvil; - public static Block ironanvil; + //public static Block ironanvil; public static Block workbench; public static Block sharpbench; public static Block yewstave; + /** M A C H I N E S **/ + public static Block machinesaw; + public static void init() { nbtCrucible = new NBTCrucible(Material.ROCK, "nbtcrucible"); @@ -91,6 +94,8 @@ public class ModBlocks { yewstave = new YewStave(Material.WOOD, "yewstave", 3.0F); + machinesaw = new MachineSaw(Material.IRON, "ironmachinesaw"); + } @@ -127,6 +132,8 @@ public class ModBlocks { registerBlockWithItem(sharpbench); registerBlockWithItem(yewstave); + + registerBlockWithItem(machinesaw); } @SideOnly(Side.CLIENT) @@ -162,6 +169,7 @@ public class ModBlocks { registerRender(yewstave); + registerRender(machinesaw); } private static void registerBlockWithItem(Block block) diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModRegistries.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModRegistries.java index 269a7896..1cefd668 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModRegistries.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModRegistries.java @@ -9,6 +9,7 @@ import net.minecraftforge.registries.RegistryBuilder; import nmd.primal.core.api.PrimalAPI; import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.crafting.CrucibleCrafting; +import nmd.primal.forgecraft.crafting.MachineSawCrafting; import nmd.primal.forgecraft.crafting.WorkbenchCrafting; /** @@ -35,5 +36,12 @@ public class ModRegistries { registryWorkbench.setIDRange(0, 1000); registryWorkbench.create(); + PrimalAPI.logger(1, "Custom Registry", MachineSawCrafting.RECIPE_PREFIX); + RegistryBuilder registryMachineSaw = new RegistryBuilder(); + registryMachineSaw.setType(MachineSawCrafting.class); + registryMachineSaw.setName(new ResourceLocation(ModInfo.MOD_ID, "recipes_" + MachineSawCrafting.RECIPE_PREFIX)); + registryMachineSaw.setIDRange(0, 1000); + registryMachineSaw.create(); + } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModSounds.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModSounds.java index da5b56c2..a11e82ac 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModSounds.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModSounds.java @@ -15,6 +15,9 @@ public class ModSounds { public static SoundEvent BOW_TWANG; public static SoundEvent CHISEL_HIT; public static SoundEvent CHISEL_HIT_FINISHED; + public static SoundEvent ENGINE_EXTENSION; + public static SoundEvent ENGINE_RETRACTION; + public static SoundEvent SAW_MACHINE; public static void registerSounds() { @@ -23,6 +26,9 @@ public class ModSounds { BOW_TWANG = registerSound("bow_twang"); CHISEL_HIT = registerSound("chisel_hit"); CHISEL_HIT_FINISHED = registerSound("chisel_hit_finished"); + ENGINE_EXTENSION = registerSound("piston_engine_out"); + ENGINE_RETRACTION = registerSound("piston_engine_in"); + SAW_MACHINE = registerSound("saw_machine"); } private static SoundEvent registerSound(String name) diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModTileRenders.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModTileRenders.java index 51cf047c..d215579b 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModTileRenders.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModTileRenders.java @@ -17,6 +17,7 @@ public class ModTileRenders { ClientRegistry.bindTileEntitySpecialRenderer(TileSharpBench.class, new TileSharpBenchRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileRedstoneEngine.class, new TileRedstoneEngineRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileGearbox.class, new TileGearboxRender()); + ClientRegistry.bindTileEntitySpecialRenderer(TileMachineSaw.class, new TileMachineSawRender()); } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModTiles.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModTiles.java index 6e134063..97eebe57 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModTiles.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModTiles.java @@ -1,7 +1,6 @@ package nmd.primal.forgecraft.init; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fml.common.registry.ForgeRegistries; import net.minecraftforge.fml.common.registry.GameRegistry; import nmd.primal.forgecraft.tiles.*; @@ -22,6 +21,7 @@ public class ModTiles { registerTileEntity(TileSharpBench.class, "sharpbench"); registerTileEntity(TileRedstoneEngine.class, "redstoneengine"); registerTileEntity(TileGearbox.class, "gearbox"); + registerTileEntity(TileMachineSaw.class, "machine"); } private static void registerTileEntity(Class tile_class, String baseName) { diff --git a/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileMachineSawRender.java b/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileMachineSawRender.java new file mode 100644 index 00000000..7487b3f6 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileMachineSawRender.java @@ -0,0 +1,418 @@ +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.item.ItemStack; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import nmd.primal.core.api.PrimalAPI; +import nmd.primal.forgecraft.blocks.CustomContainerFacingActive; +import nmd.primal.forgecraft.blocks.machine.MachineSaw; +import nmd.primal.forgecraft.init.ModBlocks; +import nmd.primal.forgecraft.init.ModSounds; +import nmd.primal.forgecraft.tiles.TileMachineSaw; +import nmd.primal.forgecraft.tiles.TileRedstoneEngine; +import org.lwjgl.opengl.GL11; + +/** + * Created by mminaie on 4/9/17. + */ +public class TileMachineSawRender extends TileEntitySpecialRenderer { + private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); + private boolean sound1; + + private boolean getSound1() { + return sound1; + } + private void setSound1(boolean sound) { + this.sound1 = sound; + } + + @Override + public void render(TileMachineSaw tile, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { + BlockPos pos = tile.getPos(); + IBlockState state = this.getWorld().getBlockState(pos); + World world = tile.getWorld(); + + ItemStack saw = tile.getSlotStack(0); + + if (state.getBlock() instanceof MachineSaw) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glScalef(1.0f, 1.0f, 1.0f); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); + float prevLGTX = OpenGlHelper.lastBrightnessX; + float prevLGTY = OpenGlHelper.lastBrightnessY; + int bright = tile.getWorld().getCombinedLight(pos.up(), 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); + + //N O R T H + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.NORTH) { + GL11.glPushMatrix(); + GL11.glTranslated((16 / 32D), (27 / 32D), (16 / 32D)); + GL11.glRotatef(180 , 0.0F, 1.0F, 0.0F); + if(world.getBlockState(pos.west()).getBlock().equals(ModBlocks.redstoneengine)) { + if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getTransfer()) { + GL11.glRotatef(-360 * createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())<=0.02F && !getSound1()){ + world.playSound(pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAW_MACHINE, SoundCategory.BLOCKS, 0.15F, 1.0F, true); + } + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())>0.02F && getSound1()){ + setSound1(false); + } + } + + } + renderItem.renderItem(saw, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + + //S O U T H// + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.SOUTH) { + GL11.glPushMatrix(); + GL11.glTranslated((16 / 32D), (27 / 32D), (16 / 32D)); + if(world.getBlockState(pos.east()).getBlock().equals(ModBlocks.redstoneengine)) { + if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getTransfer()) { + GL11.glRotatef(-360 * createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())<=0.02F && !getSound1()){ + world.playSound(pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAW_MACHINE, SoundCategory.BLOCKS, 0.15F, 1.0F, true); + } + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())>0.02F && getSound1()){ + setSound1(false); + } + } + } + renderItem.renderItem(saw, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + + //E A S T// + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.EAST) { + GL11.glPushMatrix(); + GL11.glTranslated((16 / 32D), (27 / 32D), (16 / 32D)); + GL11.glRotatef(90 , 0.0F, 1.0F, 0.0F); + if(world.getBlockState(pos.north()).getBlock().equals(ModBlocks.redstoneengine)) { + if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getTransfer()) { + GL11.glRotatef(360 * createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())<=0.02F && !getSound1()){ + world.playSound(pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAW_MACHINE, SoundCategory.BLOCKS, 0.15F, 1.0F, true); + } + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())>0.02F && getSound1()){ + setSound1(false); + } + } + } + renderItem.renderItem(saw, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + + //W E S T// + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.WEST) { + GL11.glPushMatrix(); + GL11.glTranslated((16 / 32D), (27 / 32D), (16 / 32D)); + GL11.glRotatef(-90 , 0.0F, 1.0F, 0.0F); + if(world.getBlockState(pos.south()).getBlock().equals(ModBlocks.redstoneengine)) { + if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getTransfer()) { + GL11.glRotatef(360 * createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())<=0.02F && !getSound1()){ + world.playSound(pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAW_MACHINE, SoundCategory.BLOCKS, 0.15F, 1.0F, true); + } + if(createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone())>0.02F && getSound1()){ + setSound1(false); + } + } + } + renderItem.renderItem(saw, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); + GL11.glPopMatrix(); + } + } + + public float createOutputK(World world, Float gearMulti, int redstone){ + if(gearMulti==1){ + float k = (60 - (redstone*2)); + float time = (int) (world.getTotalWorldTime() % k); + float tempK = (time / k); + return tempK; + } else if (gearMulti==4){ + float fastk = (60 - (redstone*2))*0.25F; + float fastTime = (int) (world.getTotalWorldTime() % fastk); + float tempk = fastTime / fastk; + return tempk; + } else if(gearMulti==0.25){ + float slowk = (60 - (redstone*2))*4F; + float slowTime = (int) (world.getTotalWorldTime() % slowk); + float tempk = slowTime / slowk; + return tempk; + } else return 0; + } + +} + /************************ + S O U T H + ************************/ +/* + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.SOUTH) { + /***CRANK***/ +/* + GL11.glPushMatrix(); + GL11.glTranslated((21/32D), (16/32D), (25/32D)); + GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)){ + GL11.glRotatef(360*(time / k), 1.0F, 0.0F, 0.0F); + } + renderItem.renderItem(crank, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***PISTON***/ +/* + GL11.glPushMatrix(); + GL11.glTranslated((29/32D), 16/32D, 1/16D); + GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)){ + doPistonRotations(time, k, angle, percentK, testAngle); + } + renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***ARM1***/ +/* + GL11.glPushMatrix(); + + GL11.glTranslated((29/32D), 16/32D, 3/32D); + GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)) { + doPistonRotations(time, k, angle, percentK, testAngle); + GL11.glTranslated(0, 0, tempZ); + } + renderItem.renderItem(arm, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***GEARBOX***/ +/* + GL11.glPushMatrix(); + + GL11.glTranslated(16/32D, 23/32D, 16/32D); + GL11.glRotatef(90, 0F, 1F, 0.0F); + renderItem.renderItem(gearbox, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***TOOL SLOT***/ +/* + GL11.glPushMatrix(); + + float gearMulti = 1; + + GL11.glTranslated((16/32D), 16/32D, 16/32D); + GL11.glRotatef(180, 0F, 1F, 0F); + + NonNullList gearList = NonNullList.withSize(3, ItemStack.EMPTY); + if(gearbox.getSubCompound("BlockEntityTag") != null) { + ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { + gearMulti=4F; + } + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { + gearMulti=1; + } + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { + gearMulti=0.25f; + } + } + + if(state.getValue(PrimalAPI.States.ACTIVE)) { + GL11.glRotatef(-360*(percentK*gearMulti), 1.0F, 0.0F, 0.0F); + } + renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + /************************ + E A S T + ************************/ +/* + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.EAST) { + /***CRANK***/ +/* + GL11.glPushMatrix(); + GL11.glTranslated((25/32D), (16/32D), (11/32D)); + GL11.glRotatef(-90, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)){ + GL11.glRotatef(360*(time / k), 1.0F, 0.0F, 0.0F); + } + renderItem.renderItem(crank, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***PISTON***/ +/* + GL11.glPushMatrix(); + GL11.glTranslated((3/32D), 16/32D, 3/32D); + GL11.glRotatef(-90, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)){ + doPistonRotations(time, k, angle, percentK, testAngle); + } + renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***ARM1***/ +/* + GL11.glPushMatrix(); + + GL11.glTranslated((3/32D), 16/32D, 3/32D); + GL11.glRotatef(-90, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)) { + doPistonRotations(time, k, angle, percentK, testAngle); + GL11.glTranslated(0, 0, tempZ); + } + + renderItem.renderItem(arm, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***GEARBOX***/ +/* + GL11.glPushMatrix(); + + GL11.glTranslated(16/32D, 23/32D, 16/32D); + GL11.glRotatef(180, 0F, 1F, 0.0F); + renderItem.renderItem(gearbox, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***TOOL SLOT***/ +/* + GL11.glPushMatrix(); + + float gearMulti = 1; + + GL11.glTranslated((16/32D), 16/32D, 16/32D); + GL11.glRotatef(-90, 0F, 1F, 0F); + + NonNullList gearList = NonNullList.withSize(3, ItemStack.EMPTY); + if(gearbox.getSubCompound("BlockEntityTag") != null) { + ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { + gearMulti=4F; + } + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { + gearMulti=1; + } + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { + gearMulti=0.25f; + } + } + + if(state.getValue(PrimalAPI.States.ACTIVE)) { + GL11.glRotatef(-360*(percentK*gearMulti), 1.0F, 0.0F, 0.0F); + } + renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } + /************************ + W E S T + ************************/ +/* + if (state.getValue(CustomContainerFacingActive.FACING) == EnumFacing.WEST) { + /***CRANK***/ +/* + GL11.glPushMatrix(); + GL11.glTranslated((7/32D), (16/32D), (21/32D)); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)){ + GL11.glRotatef(360*(time / k), 1.0F, 0.0F, 0.0F); + } + renderItem.renderItem(crank, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***PISTON***/ +/* + GL11.glPushMatrix(); + GL11.glTranslated((29/32D), 16/32D, 29/32D); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)){ + doPistonRotations(time, k, angle, percentK, testAngle); + } + renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***ARM1***/ +/* + GL11.glPushMatrix(); + + GL11.glTranslated((29/32D), 16/32D, 29/32D); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + if(state.getValue(PrimalAPI.States.ACTIVE)) { + doPistonRotations(time, k, angle, percentK, testAngle); + GL11.glTranslated(0, 0, tempZ); + } + + renderItem.renderItem(arm, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***GEARBOX***/ +/* + GL11.glPushMatrix(); + + GL11.glTranslated(16/32D, 23/32D, 16/32D); + //GL11.glRotatef(180, 0F, 1F, 0.0F); + renderItem.renderItem(gearbox, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + + /***TOOL SLOT***/ +/* + GL11.glPushMatrix(); + + float gearMulti = 1; + + GL11.glTranslated((16/32D), 16/32D, 16/32D); + GL11.glRotatef(90, 0F, 1F, 0F); + + NonNullList gearList = NonNullList.withSize(3, ItemStack.EMPTY); + if(gearbox.getSubCompound("BlockEntityTag") != null) { + ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { + gearMulti=4F; + } + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { + gearMulti=1; + } + if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { + gearMulti=0.25f; + } + } + + if(state.getValue(PrimalAPI.States.ACTIVE)) { + GL11.glRotatef(-360*(percentK*gearMulti), 1.0F, 0.0F, 0.0F); + } + renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); + GL11.glPopMatrix(); + } +*/ + //OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); + //GL11.glPopMatrix(); + //} + + + /*if( percentK >= 0 && percentK < 0.25 ) { + GL11.glRotatef(angle * (time/(k/4)), 1.0F, 0.0F, 0.0F); + } + float halfFloat = time - (k/4); + if( percentK >= 0.25 && percentK < 0.5) { + GL11.glRotatef(angle * (((k/4)-halfFloat)/(k/4)), 1.0F, 0.0F, 0.0F); + } + if( percentK >= 0.5 && percentK < 0.75) { + GL11.glRotatef(-angle * ((time-(k/2))/(k/4)), 1.0F, 0.0F, 0.0F); + } + float thirdFloat = time - ((k/4)*3); + if( percentK >= 0.75 && percentK < 1) { + GL11.glRotatef(-angle * (((k/4)-thirdFloat)/(k/4)), 1.0F, 0.0F, 0.0F); + + }*/ \ No newline at end of file diff --git a/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileRedstoneEngineRender.java b/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileRedstoneEngineRender.java index f72dcaf5..e211ebd3 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileRedstoneEngineRender.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileRedstoneEngineRender.java @@ -7,16 +7,21 @@ 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.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; import net.minecraft.inventory.ItemStackHelper; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.NonNullList; +import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.common.helper.RecipeHelper; import nmd.primal.forgecraft.blocks.CustomContainerFacingActive; import nmd.primal.forgecraft.blocks.machine.RedstoneEngine; import nmd.primal.forgecraft.init.ModItems; +import nmd.primal.forgecraft.init.ModSounds; import nmd.primal.forgecraft.tiles.TileRedstoneEngine; import org.lwjgl.opengl.GL11; @@ -29,19 +34,53 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer= 0 && pk < 0.25 ) { + if(pk<=0.02 && !getSound2()){ + world.playSound(pos.getX(), pos.getY(), pos.getZ(), ModSounds.ENGINE_RETRACTION, SoundCategory.BLOCKS, 0.25F, 1.0F, true); + setSound2(true); + } + GL11.glRotatef(angle * (time/(kon/4)), 1.0F, 0.0F, 0.0F); } if( pk >= 0.25 && pk < 0.5) { + if(getSound2()){ + setSound2(false); + } GL11.glRotatef(testa, 1.0F, 0.0F, 0.0F); } if( pk >= 0.5 && pk < 0.75) { + if(pk<=0.52 && !getSound1()){ + world.playSound(pos.getX(), pos.getY(), pos.getZ(), ModSounds.ENGINE_EXTENSION, SoundCategory.BLOCKS, 0.2F, 1.0F, true); + setSound1(true); + } + GL11.glRotatef(testa, 1.0F, 0.0F, 0.0F); } float thirdFloat = time - ((kon/4)*3); - if( pk >= 0.75 && pk < 1) { + if( pk >= 0.75 && pk <= 1) { + if(getSound1()){ + setSound1(false); + } GL11.glRotatef(-angle * (((kon/4)-thirdFloat)/(kon/4)), 1.0F, 0.0F, 0.0F); } } @@ -51,12 +90,12 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer gearList = NonNullList.withSize(3, ItemStack.EMPTY); - if(gearbox.getSubCompound("BlockEntityTag") != null) { - ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { - gearMulti=percentKSlow; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { - gearMulti=percentKMed; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { - gearMulti=percentKFast; - } - } if(state.getValue(PrimalAPI.States.ACTIVE)) { - GL11.glRotatef(-360*(gearMulti), 1.0F, 0.0F, 0.0F); + + GL11.glRotatef(-360 * createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()) , 1.0F, 0.0F, 0.0F); + //GL11.glRotatef(-360*(percentKFast), 1.0F, 0.0F, 0.0F); } renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix(); @@ -185,7 +197,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer gearList = NonNullList.withSize(3, ItemStack.EMPTY); - if(gearbox.getSubCompound("BlockEntityTag") != null) { - ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { - gearMulti=4F; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { - gearMulti=1; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { - gearMulti=0.25f; - } - } - if(state.getValue(PrimalAPI.States.ACTIVE)) { - GL11.glRotatef(-360*(percentK*gearMulti), 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-360*createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); } renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix(); @@ -257,7 +255,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer gearList = NonNullList.withSize(3, ItemStack.EMPTY); - if(gearbox.getSubCompound("BlockEntityTag") != null) { - ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { - gearMulti=4F; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { - gearMulti=1; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { - gearMulti=0.25f; - } - } - if(state.getValue(PrimalAPI.States.ACTIVE)) { - GL11.glRotatef(-360*(percentK*gearMulti), 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-360*createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); } renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix(); @@ -330,7 +314,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer gearList = NonNullList.withSize(3, ItemStack.EMPTY); - if(gearbox.getSubCompound("BlockEntityTag") != null) { - ItemStackHelper.loadAllItems(gearbox.getSubCompound("BlockEntityTag"), gearList); - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalSmall")) { - gearMulti=4F; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalMedium")) { - gearMulti=1; - } - if(RecipeHelper.isOreName(gearList.get(0), "gearPrimalLarge")) { - gearMulti=0.25f; - } - } - if(state.getValue(PrimalAPI.States.ACTIVE)) { - GL11.glRotatef(-360*(percentK*gearMulti), 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-360*createOutputK(tile.getWorld(), tile.getGearMulti(), tile.getRedstone()), 1.0F, 0.0F, 0.0F); } renderItem.renderItem(slotTool, ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix(); @@ -389,20 +359,24 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer= 0 && percentK < 0.25 ) { - GL11.glRotatef(angle * (time/(k/4)), 1.0F, 0.0F, 0.0F); - } - float halfFloat = time - (k/4); - if( percentK >= 0.25 && percentK < 0.5) { - GL11.glRotatef(angle * (((k/4)-halfFloat)/(k/4)), 1.0F, 0.0F, 0.0F); - } - if( percentK >= 0.5 && percentK < 0.75) { - GL11.glRotatef(-angle * ((time-(k/2))/(k/4)), 1.0F, 0.0F, 0.0F); - } - float thirdFloat = time - ((k/4)*3); - if( percentK >= 0.75 && percentK < 1) { - GL11.glRotatef(-angle * (((k/4)-thirdFloat)/(k/4)), 1.0F, 0.0F, 0.0F); + public float createOutputK(World world, Float gearMulti, int redstone){ + if(gearMulti==1){ + float k = (60 - (redstone*2)); + float time = (int) (world.getTotalWorldTime() % k); + float tempK = (time / k); + return tempK; + } else if (gearMulti==4){ + float fastk = (60 - (redstone*2))*0.25F; + float fastTime = (int) (world.getTotalWorldTime() % fastk); + float tempk = fastTime / fastk; + return tempk; + } else if(gearMulti==0.25){ + float slowk = (60 - (redstone*2))*4F; + float slowTime = (int) (world.getTotalWorldTime() % slowk); + float tempk = slowTime / slowk; + return tempk; + } else return 0; + } - }*/ \ No newline at end of file +} \ No newline at end of file diff --git a/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileMachineSaw.java b/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileMachineSaw.java new file mode 100644 index 00000000..39d597b0 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileMachineSaw.java @@ -0,0 +1,124 @@ +package nmd.primal.forgecraft.tiles; + +import net.minecraft.inventory.ItemStackHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ITickable; +import net.minecraft.util.NonNullList; +import nmd.primal.forgecraft.items.blocks.ItemGearbox; +import nmd.primal.forgecraft.items.enginetools.BaseEngineTool; + +public class TileMachineSaw extends TileBaseSlot /*implements ITickable*/ { + + + + private float torque; + private float power; + private float rpm; + + private int redstone; + private float gearMulti; + + private boolean transfer; + private boolean playSound; + + public int getRedstone() { + return redstone; + } + + public void setRedstone(int redstone) { + this.redstone = redstone; + } + + public float getGearMulti() { + return gearMulti; + } + + public void setGearMulti(float gearMulti) { + this.gearMulti = gearMulti; + } + + public void setTorque(float torque) { + this.torque = torque; + } + + public void setPower(float power) { + this.power = power; + } + + public void setRpm(float rpm) { + this.rpm = rpm; + } + + public float getTorque() { + return torque; + } + + public float getPower() { + return power; + } + + public float getRpm() { + return rpm; + } + + public boolean getTransfer() { + return transfer; + } + + public void setTransfer(boolean transfer) { + this.transfer = transfer; + } + public boolean getPlaySound() { + return playSound; + } + + public void setPlaySound(boolean playSound) { + this.playSound = playSound; + } + + public TileMachineSaw() { + } + + public boolean isItemValidForSlot(int index, ItemStack stack) { + + if(index == 0){ + if(this.getSlotStack(0).isEmpty() && stack.getItem() instanceof BaseEngineTool) { + return true; + } + } + return false; + } + + // ***************************************************************************** // + // NBT + // ***************************************************************************** // + @Override + public NBTTagCompound readNBT(NBTTagCompound nbt) + { + super.readNBT(nbt); + this.torque = nbt.getFloat("torque"); + this.power = nbt.getFloat("power"); + this.rpm = nbt.getFloat("rpm"); + this.redstone = nbt.getInteger("redstone"); + this.gearMulti = nbt.getFloat("gear"); + this.transfer = nbt.getBoolean("transfer"); + return nbt; + } + + @Override + public NBTTagCompound writeNBT(NBTTagCompound nbt) + { + nbt.setFloat("torque", this.torque); + nbt.setFloat("power", this.power); + nbt.setFloat("rpm", this.rpm); + nbt.setInteger("redstone", this.redstone); + nbt.setFloat("gear", this.gearMulti); + nbt.setBoolean("transfer", this.transfer); + super.writeNBT(nbt); + return nbt; + } + + + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileRedstoneEngine.java b/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileRedstoneEngine.java index 204e6427..c7db3afd 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileRedstoneEngine.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileRedstoneEngine.java @@ -1,55 +1,47 @@ package nmd.primal.forgecraft.tiles; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.inventory.ItemStackHelper; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import nmd.primal.core.common.helper.RecipeHelper; import nmd.primal.forgecraft.items.blocks.ItemGearbox; import nmd.primal.forgecraft.items.enginetools.BaseEngineTool; -public class TileRedstoneEngine extends TileBaseSlot implements ITickable { +public class TileRedstoneEngine extends TileBaseSlot { private int redstone; // AKA power - private int torque; // = power/speed - private int speed; // = power/torque + private float torque; // = power/speed + private float power;// = 100*redstone; + private float rpm; + + private boolean transfer = false; + private float gearMulti; + + public float getGearMulti() { return gearMulti; } + public void setGearMulti(float gearMulti){ this.gearMulti = gearMulti;} public int getRedstone() { return redstone; } public void setRedstone(int redstone) { this.redstone = redstone; } - public int getTorque() { return torque; } - public void setTorque(int torque) { this.torque = torque; } - public int getSpeed() { return speed; } - public void setSpeed(int speed) { this.speed = speed; } + + public float getTorque() { return torque; } + public void setTorque(float torque) { + this.torque = torque; + } + + public float getRPM() { return rpm; } + public void setRPM(float rpm) { + this.rpm = rpm; + } + + public float getPower() {return power; } + public void setPower() { this.power = 100*redstone; } + + public boolean getTransfer() { return transfer; } + public void setTransfer(boolean transfer) { + this.transfer = transfer; + } public TileRedstoneEngine() { } - - - @Override - public void update () { - if(!world.isRemote) { - World world = this.getWorld(); - IBlockState state = world.getBlockState(this.pos); - BlockPos pos = new BlockPos(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); - Block block = world.getBlockState(pos).getBlock(); - - NonNullList renderList = NonNullList.withSize(3, ItemStack.EMPTY); - //System.out.println(this.getSlotStack(0).getTagCompound()); - if(this.getSlotStack(0).getSubCompound("BlockEntityTag") != null) { - ItemStackHelper.loadAllItems(this.getSlotStack(0).getSubCompound("BlockEntityTag"), renderList); - //System.out.println(renderList); - } - } - } - - - public boolean isItemValidForSlot(int index, ItemStack stack) { if(index == 0 ) { if (this.getSlotStack(0).isEmpty() && stack.getItem() instanceof ItemGearbox) { @@ -73,7 +65,11 @@ public class TileRedstoneEngine extends TileBaseSlot implements ITickable { { super.readNBT(nbt); this.redstone = nbt.getInteger("redstone"); - + this.torque = nbt.getFloat("torque"); + this.power = nbt.getFloat("power"); + this.rpm = nbt.getFloat("rpm"); + this.transfer = nbt.getBoolean("transfer"); + this.gearMulti = nbt.getFloat("gear"); return nbt; } @@ -81,6 +77,11 @@ public class TileRedstoneEngine extends TileBaseSlot implements ITickable { public NBTTagCompound writeNBT(NBTTagCompound nbt) { nbt.setInteger("redstone", this.redstone); + nbt.setFloat("torque", this.torque); + nbt.setFloat("power", this.power); + nbt.setFloat("rpm", this.rpm); + nbt.setBoolean("transfer", this.transfer); + nbt.setFloat("gear", this.gearMulti); super.writeNBT(nbt); return nbt; } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/util/BreakerHandler.java b/kfc/src/main/java/nmd/primal/forgecraft/util/BreakerHandler.java index 9e365ed4..83f87e38 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/util/BreakerHandler.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/util/BreakerHandler.java @@ -48,7 +48,7 @@ public interface BreakerHandler { if (RecipeHelper.isOreName(smashStack, "cobblestone")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(Blocks.GRAVEL, randomChanceReturn(9, 1, 1))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -56,7 +56,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "gravel")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(Blocks.SAND, randomChanceReturn(9, 1, 1))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -66,7 +66,7 @@ public interface BreakerHandler { for (GallagherRecipe recipe : GallagherRecipe.RECIPES) { if (recipe.match(smashState)) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), recipe.getOutputStack()); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -76,7 +76,7 @@ public interface BreakerHandler { if (RecipeHelper.isOreName(smashStack, "oreIron")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(PrimalAPI.Items.IRON_DUST, randomChanceReturn(9, 1, 2))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -84,7 +84,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "oreCopper")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(PrimalAPI.Items.COPPER_DUST, randomChanceReturn(9, 1, 2))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -92,7 +92,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "oreTin")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(PrimalAPI.Items.TIN_DUST, randomChanceReturn(9, 1, 2))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -100,7 +100,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "oreZinc")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(PrimalAPI.Items.ZINC_DUST, randomChanceReturn(9, 1, 2))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -108,7 +108,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "oreGold")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(PrimalAPI.Items.GOLD_DUST, randomChanceReturn(9, 1, 2))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -116,7 +116,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "cobblestone")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(Blocks.GRAVEL, randomChanceReturn(9, 1, 1))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; @@ -124,7 +124,7 @@ public interface BreakerHandler { } if (RecipeHelper.isOreName(smashStack, "gravel")) { if (tile.getCharge() > getThreshold(world, pos.offset(face))) { - world.setBlockToAir(pos.offset(face)); + world.destroyBlock(pos.offset(face), false); PlayerHelper.spawnItemOnGround(world, pos.offset(face), new ItemStack(Blocks.SAND, randomChanceReturn(9, 1, 1))); tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1); return true; diff --git a/kfc/src/main/resources/assets/forgecraft/blockstates/ironmachinesaw.json b/kfc/src/main/resources/assets/forgecraft/blockstates/ironmachinesaw.json new file mode 100644 index 00000000..959fee3c --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/blockstates/ironmachinesaw.json @@ -0,0 +1,20 @@ +{ + "forge_marker":1, + "defaults": { + "textures": { + "particle": "forgecraft:items/iron/0", + "texture": "forgecraft:items/iron/0" + }, + "parent": "forgecraft:block/saw_block_model" + }, + "variants": { + "active=false,facing=north": { "model": "forgecraft:saw_block_model" }, + "active=false,facing=east": { "model": "forgecraft:saw_block_model", "y": 90 }, + "active=false,facing=south": { "model": "forgecraft:saw_block_model", "y": 180 }, + "active=false,facing=west": { "model": "forgecraft:saw_block_model", "y": 270 }, + "active=true,facing=north": { "model": "forgecraft:saw_block_model" }, + "active=true,facing=east": { "model": "forgecraft:saw_block_model", "y": 90 }, + "active=true,facing=south": { "model": "forgecraft:saw_block_model", "y": 180 }, + "active=true,facing=west": { "model": "forgecraft:saw_block_model", "y": 270 } + } +} \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/models/block/castingform2.json b/kfc/src/main/resources/assets/forgecraft/models/block/castingform2.json deleted file mode 100644 index e0c0356a..00000000 --- a/kfc/src/main/resources/assets/forgecraft/models/block/castingform2.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", - "textures": { - "particle": "blocks/e_particle", - "texture": "items/test" - }, - "elements": [ - { - "__comment": "Box1", - "from": [ 0, 2, 0 ], - "to": [ 3, 5, 16 ], - "faces": { - "up": { "uv": [ 0, 0, 3, 16 ], "texture": "#texture" }, - "north": { "uv": [ 13, 11, 16, 14 ], "texture": "#texture" }, - "south": { "uv": [ 0, 11, 3, 14 ], "texture": "#texture" }, - "west": { "uv": [ 0, 11, 16, 14 ], "texture": "#texture" }, - "east": { "uv": [ 0, 11, 16, 14 ], "texture": "#texture" } - } - }, - { - "__comment": "Box1", - "from": [ 13, 2, 0 ], - "to": [ 16, 5, 16 ], - "faces": { - "up": { "uv": [ 13, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 11, 3, 14 ], "texture": "#texture" }, - "south": { "uv": [ 13, 11, 16, 14 ], "texture": "#texture" }, - "west": { "uv": [ 0, 11, 16, 14 ], "texture": "#texture" }, - "east": { "uv": [ 0, 11, 16, 14 ], "texture": "#texture" } - } - }, - { - "__comment": "Box5", - "from": [ 3, 2, 0 ], - "to": [ 13, 5, 3 ], - "faces": { - "up": { "uv": [ 3, 0, 13, 3 ], "texture": "#texture" }, - "north": { "uv": [ 3, 11, 13, 14 ], "texture": "#texture" }, - "south": { "uv": [ 3, 11, 13, 14 ], "texture": "#texture" } - } - }, - { - "__comment": "Box5", - "from": [ 3, 2, 13 ], - "to": [ 13, 5, 16 ], - "faces": { - "up": { "uv": [ 3, 13, 13, 16 ], "texture": "#texture" }, - "north": { "uv": [ 3, 11, 13, 14 ], "texture": "#texture" }, - "south": { "uv": [ 3, 11, 13, 14 ], "texture": "#texture" } - } - }, - { - "__comment": "Box8", - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" }, - "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" }, - "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" }, - "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture" } - } - }, - { - "__comment": "Box6", - "from": [ 7.5, 5, 0 ], - "to": [ 8.5, 6, 1 ], - "faces": { - "up": { "uv": [ 7.5, 0, 8.5, 1 ], "texture": "#texture" }, - "north": { "uv": [ 7.5, 10, 8.5, 11 ], "texture": "#texture" }, - "south": { "uv": [ 7.5, 10, 8.5, 11 ], "texture": "#texture" }, - "west": { "uv": [ 0, 10, 1, 11 ], "texture": "#texture" }, - "east": { "uv": [ 15, 10, 16, 11 ], "texture": "#texture" } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ 75, 45, 0 ], - "translation": [ 0, 2.5, 1.5 ], - "scale": [ 0.375, 0.375, 0.375 ] - }, - "thirdperson_lefthand": { - "rotation": [ 75, 45, 0 ], - "translation": [ 0, 2.5, 1.5 ], - "scale": [ 0.375, 0.375, 0.375 ] - }, - "firstperson_righthand": { - "translation": [ 0, 2, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - }, - "firstperson_lefthand": { - "translation": [ 0, 2, 0 ], - "scale": [ 0.4, 0.4, 0.4 ] - }, - "gui": { - "rotation": [ 30, 225, 0 ], - "scale": [ 0.625, 0.625, 0.625 ] - }, - "ground": { - "translation": [ 0, 3, 0 ], - "scale": [ 0.25, 0.25, 0.25 ] - }, - "fixed": { - "rotation": [ 90, 0, 180 ], - "translation": [ 0, 0, -3 ], - "scale": [ 0.5, 0.5, 0.5 ] - } - } -} \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/models/block/saw_block_model.json b/kfc/src/main/resources/assets/forgecraft/models/block/saw_block_model.json index a159ff3a..518751c5 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/block/saw_block_model.json +++ b/kfc/src/main/resources/assets/forgecraft/models/block/saw_block_model.json @@ -4,123 +4,216 @@ "particle": "blocks/e_particle", "texture": "blocks/e_texture" }, - "elements": [ - { - "__comment": "Box1", - "from": [ 0, 0, 0 ], - "to": [ 16, 6, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture" }, - "south": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture" }, - "west": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture" }, - "east": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture" } - } - }, - { - "__comment": "Box4", - "from": [ 0, 7.5, 0 ], - "to": [ 2, 8.5, 7.5 ], - "faces": { - "north": { "uv": [ 14, 7.5, 16, 8.5 ], "texture": "#texture" }, - "south": { "uv": [ 0, 7.5, 2, 8.5 ], "texture": "#texture" }, - "west": { "uv": [ 0, 7.5, 7.5, 8.5 ], "texture": "#texture" } - } - }, - { - "__comment": "Box4", - "from": [ 0, 7.5, 8.5 ], - "to": [ 2, 8.5, 16 ], - "faces": { - "north": { "uv": [ 14, 7.5, 16, 8.5 ], "texture": "#texture" }, - "south": { "uv": [ 0, 7.5, 2, 8.5 ], "texture": "#texture" }, - "west": { "uv": [ 8.5, 7.5, 16, 8.5 ], "texture": "#texture" } - } - }, - { - "__comment": "Box8", - "from": [ 0, 8.5, 0 ], - "to": [ 2, 14, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 2, 16 ], "texture": "#texture" }, - "north": { "uv": [ 14, 2, 16, 7.5 ], "texture": "#texture" }, - "south": { "uv": [ 0, 2, 2, 7.5 ], "texture": "#texture" }, - "west": { "uv": [ 0, 2, 16, 7.5 ], "texture": "#texture" } - } - }, - { - "__comment": "Box17", - "from": [ 2, 6, 0 ], - "to": [ 6, 14, 16 ], - "faces": { - "north": { "uv": [ 10, 2, 14, 10 ], "texture": "#texture" }, - "south": { "uv": [ 2, 2, 6, 10 ], "texture": "#texture" }, - "west": { "uv": [ 0, 2, 16, 10 ], "texture": "#texture" }, - "east": { "uv": [ 0, 2, 16, 10 ], "texture": "#texture" } - } - }, - { - "__comment": "Box18", - "from": [ 0, 6, 0 ], - "to": [ 2, 7.5, 16 ], - "faces": { - "up": { "uv": [ 0, 0, 2, 16 ], "texture": "#texture" }, - "north": { "uv": [ 14, 8.5, 16, 10 ], "texture": "#texture" }, - "south": { "uv": [ 0, 8.5, 2, 10 ], "texture": "#texture" }, - "west": { "uv": [ 0, 8.5, 16, 10 ], "texture": "#texture" } - } - }, - { - "__comment": "Box20", - "from": [ 0, 14, 0 ], - "to": [ 6, 16, 16 ], - "faces": { - "down": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, - "up": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, - "north": { "uv": [ 10, 0, 16, 2 ], "texture": "#texture" }, - "south": { "uv": [ 0, 0, 6, 2 ], "texture": "#texture" }, - "west": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" }, - "east": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } - } - }, - { - "__comment": "Box20", - "from": [ 10, 6, 0 ], - "to": [ 16, 16, 16 ], - "faces": { - "up": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, - "north": { "uv": [ 0, 0, 6, 10 ], "texture": "#texture" }, - "south": { "uv": [ 10, 0, 16, 10 ], "texture": "#texture" }, - "west": { "uv": [ 0, 0, 16, 10 ], "texture": "#texture" }, - "east": { "uv": [ 0, 0, 16, 10 ], "texture": "#texture" } - } - }, - { - "__comment": "Box22", - "from": [ 6, 14.5, 0 ], - "to": [ 7.5, 16, 16 ], - "faces": { - "down": { "uv": [ 6, 0, 7.5, 16 ], "texture": "#texture" }, - "up": { "uv": [ 6, 0, 7.5, 16 ], "texture": "#texture" }, - "north": { "uv": [ 8.5, 0, 10, 1.5 ], "texture": "#texture" }, - "south": { "uv": [ 6, 0, 7.5, 1.5 ], "texture": "#texture" }, - "east": { "uv": [ 0, 0, 16, 1.5 ], "texture": "#texture" } - } - }, - { - "__comment": "Box22", - "from": [ 8.5, 14.5, 0 ], - "to": [ 10, 16, 16 ], - "faces": { - "down": { "uv": [ 8.5, 0, 10, 16 ], "texture": "#texture" }, - "up": { "uv": [ 8.5, 0, 10, 16 ], "texture": "#texture" }, - "north": { "uv": [ 6, 0, 7.5, 1.5 ], "texture": "#texture" }, - "south": { "uv": [ 8.5, 0, 10, 1.5 ], "texture": "#texture" }, - "west": { "uv": [ 0, 0, 16, 1.5 ], "texture": "#texture" } - } - } - ], + "elements": [ + { + "__comment": "Box1", + "from": [ 0, 0, 0 ], + "to": [ 16, 4, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 0, 7.5, 0 ], + "to": [ 2, 8.5, 7.5 ], + "faces": { + "north": { "uv": [ 14, 7.5, 16, 8.5 ], "texture": "#texture" }, + "south": { "uv": [ 0, 7.5, 2, 8.5 ], "texture": "#texture" }, + "west": { "uv": [ 0, 7.5, 7.5, 8.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 0, 7.5, 8.5 ], + "to": [ 2, 8.5, 16 ], + "faces": { + "north": { "uv": [ 14, 7.5, 16, 8.5 ], "texture": "#texture" }, + "south": { "uv": [ 0, 7.5, 2, 8.5 ], "texture": "#texture" }, + "west": { "uv": [ 8.5, 7.5, 16, 8.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box8", + "from": [ 0, 8.5, 0 ], + "to": [ 6, 13, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "north": { "uv": [ 10, 3, 16, 7.5 ], "texture": "#texture" }, + "south": { "uv": [ 0, 3, 6, 7.5 ], "texture": "#texture" }, + "west": { "uv": [ 0, 3, 16, 7.5 ], "texture": "#texture" }, + "east": { "uv": [ 0, 3, 16, 7.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box17", + "from": [ 2, 4, 0 ], + "to": [ 6, 8.5, 16 ], + "faces": { + "north": { "uv": [ 10, 7.5, 14, 12 ], "texture": "#texture" }, + "south": { "uv": [ 2, 7.5, 6, 12 ], "texture": "#texture" }, + "west": { "uv": [ 0, 7.5, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 0, 7.5, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Box18", + "from": [ 0, 4, 0 ], + "to": [ 2, 7.5, 16 ], + "faces": { + "up": { "uv": [ 0, 0, 2, 16 ], "texture": "#texture" }, + "north": { "uv": [ 14, 8.5, 16, 12 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8.5, 2, 12 ], "texture": "#texture" }, + "west": { "uv": [ 0, 8.5, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Box20", + "from": [ 0, 14, 0 ], + "to": [ 6, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 6, 16 ], "texture": "#texture" }, + "north": { "uv": [ 10, 0, 16, 2 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 6, 2 ], "texture": "#texture" }, + "west": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + }, + { + "__comment": "Box20", + "from": [ 10, 4, 0 ], + "to": [ 16, 13, 16 ], + "faces": { + "up": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 3, 6, 12 ], "texture": "#texture" }, + "south": { "uv": [ 10, 3, 16, 12 ], "texture": "#texture" }, + "west": { "uv": [ 0, 3, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 0, 3, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Box22", + "from": [ 6, 14.5, 0 ], + "to": [ 7.5, 16, 16 ], + "faces": { + "down": { "uv": [ 6, 0, 7.5, 16 ], "texture": "#texture" }, + "up": { "uv": [ 6, 0, 7.5, 16 ], "texture": "#texture" }, + "north": { "uv": [ 8.5, 0, 10, 1.5 ], "texture": "#texture" }, + "south": { "uv": [ 6, 0, 7.5, 1.5 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 1.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box22", + "from": [ 8.5, 14.5, 0 ], + "to": [ 10, 16, 16 ], + "faces": { + "down": { "uv": [ 8.5, 0, 10, 16 ], "texture": "#texture" }, + "up": { "uv": [ 8.5, 0, 10, 16 ], "texture": "#texture" }, + "north": { "uv": [ 6, 0, 7.5, 1.5 ], "texture": "#texture" }, + "south": { "uv": [ 8.5, 0, 10, 1.5 ], "texture": "#texture" }, + "west": { "uv": [ 0, 0, 16, 1.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box11", + "from": [ 5, 13, 0 ], + "to": [ 6, 14, 7.5 ], + "faces": { + "down": { "uv": [ 5, 8.5, 6, 16 ], "texture": "#texture" }, + "up": { "uv": [ 5, 0, 6, 7.5 ], "texture": "#texture" }, + "north": { "uv": [ 10, 2, 11, 3 ], "texture": "#texture" }, + "south": { "uv": [ 5, 2, 6, 3 ], "texture": "#texture" }, + "west": { "uv": [ 0, 2, 7.5, 3 ], "texture": "#texture" }, + "east": { "uv": [ 8.5, 2, 16, 3 ], "texture": "#texture" } + } + }, + { + "__comment": "Box11", + "from": [ 5, 13, 8.5 ], + "to": [ 6, 14, 16 ], + "faces": { + "down": { "uv": [ 5, 0, 6, 7.5 ], "texture": "#texture" }, + "up": { "uv": [ 5, 8.5, 6, 16 ], "texture": "#texture" }, + "north": { "uv": [ 10, 2, 11, 3 ], "texture": "#texture" }, + "south": { "uv": [ 5, 2, 6, 3 ], "texture": "#texture" }, + "west": { "uv": [ 8.5, 2, 16, 3 ], "texture": "#texture" }, + "east": { "uv": [ 0, 2, 7.5, 3 ], "texture": "#texture" } + } + }, + { + "__comment": "Box13", + "from": [ 0, 13, 0 ], + "to": [ 5, 14, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 5, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 5, 16 ], "texture": "#texture" }, + "north": { "uv": [ 11, 2, 16, 3 ], "texture": "#texture" }, + "south": { "uv": [ 0, 2, 5, 3 ], "texture": "#texture" }, + "west": { "uv": [ 0, 2, 16, 3 ], "texture": "#texture" }, + "east": { "uv": [ 0, 2, 16, 3 ], "texture": "#texture" } + } + }, + { + "__comment": "Box13", + "from": [ 11, 13, 0 ], + "to": [ 16, 14, 16 ], + "faces": { + "down": { "uv": [ 11, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 11, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 2, 5, 3 ], "texture": "#texture" }, + "south": { "uv": [ 11, 2, 16, 3 ], "texture": "#texture" }, + "west": { "uv": [ 0, 2, 16, 3 ], "texture": "#texture" }, + "east": { "uv": [ 0, 2, 16, 3 ], "texture": "#texture" } + } + }, + { + "__comment": "Box11", + "from": [ 10, 13, 0 ], + "to": [ 11, 14, 7.5 ], + "faces": { + "down": { "uv": [ 10, 8.5, 11, 16 ], "texture": "#texture" }, + "up": { "uv": [ 10, 0, 11, 7.5 ], "texture": "#texture" }, + "north": { "uv": [ 5, 2, 6, 3 ], "texture": "#texture" }, + "south": { "uv": [ 10, 2, 11, 3 ], "texture": "#texture" }, + "west": { "uv": [ 0, 2, 7.5, 3 ], "texture": "#texture" }, + "east": { "uv": [ 8.5, 2, 16, 3 ], "texture": "#texture" } + } + }, + { + "__comment": "Box11", + "from": [ 10, 13, 8.5 ], + "to": [ 11, 14, 16 ], + "faces": { + "down": { "uv": [ 10, 0, 11, 7.5 ], "texture": "#texture" }, + "up": { "uv": [ 10, 8.5, 11, 16 ], "texture": "#texture" }, + "north": { "uv": [ 5, 2, 6, 3 ], "texture": "#texture" }, + "south": { "uv": [ 10, 2, 11, 3 ], "texture": "#texture" }, + "west": { "uv": [ 8.5, 2, 16, 3 ], "texture": "#texture" }, + "east": { "uv": [ 0, 2, 7.5, 3 ], "texture": "#texture" } + } + }, + { + "__comment": "Box20", + "from": [ 10, 14, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 6, 2 ], "texture": "#texture" }, + "south": { "uv": [ 10, 0, 16, 2 ], "texture": "#texture" }, + "west": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + } + ], "display": { "thirdperson_righthand": { "rotation": [ 75, 45, 0 ], @@ -149,7 +242,7 @@ "scale": [ 0.25, 0.25, 0.25 ] }, "fixed": { - "scale": [ 0.5, 0.5, 0.5 ] + "scale": [ 1, 1, 1 ] } } } \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/saw_model.json b/kfc/src/main/resources/assets/forgecraft/models/item/saw_model.json index df1f1f38..c9897a2e 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/saw_model.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/saw_model.json @@ -8,535 +8,534 @@ "elements": [ { "__comment": "Box17", - "from": [ 8.5, 7.5, 7.5 ], - "to": [ 12, 8.5, 8.5 ], + "from": [ 5, 7.5, 7.5 ], + "to": [ 11, 8.5, 8.5 ], "faces": { - "down": { "uv": [ 8.5, 7.5, 12, 8.5 ], "texture": "#texture" }, - "up": { "uv": [ 8.5, 7.5, 12, 8.5 ], "texture": "#texture" }, - "north": { "uv": [ 4, 7.5, 7.5, 8.5 ], "texture": "#texture" }, - "south": { "uv": [ 8.5, 7.5, 12, 8.5 ], "texture": "#texture" }, + "down": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "up": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "north": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "south": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, "west": { "uv": [ 7.5, 7.5, 8.5, 8.5 ], "texture": "#texture" }, "east": { "uv": [ 7.5, 7.5, 8.5, 8.5 ], "texture": "#texture" } } }, { "__comment": "Box7", - "from": [ 12, 11.5, 6 ], - "to": [ 13, 12.5, 10 ], + "from": [ 7.5, 13.25, 5 ], + "to": [ 8.5, 14.75, 11 ], "faces": { - "down": { "uv": [ 12, 6, 13, 10 ], "texture": "#texture" }, - "up": { "uv": [ 12, 6, 13, 10 ], "texture": "#texture" }, - "north": { "uv": [ 3, 3.5, 4, 4.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 3.5, 13, 4.5 ], "texture": "#texture" }, - "west": { "uv": [ 6, 3.5, 10, 4.5 ], "texture": "#texture" }, - "east": { "uv": [ 6, 3.5, 10, 4.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "west": { "uv": [ 5, 1.25, 11, 2.75 ], "texture": "#texture" }, + "east": { "uv": [ 5, 1.25, 11, 2.75 ], "texture": "#texture" } } }, { "__comment": "Box7", - "from": [ 12, 3.5, 6 ], - "to": [ 13, 4.5, 10 ], + "from": [ 7.5, 1.25, 5 ], + "to": [ 8.5, 2.75, 11 ], "faces": { - "down": { "uv": [ 12, 6, 13, 10 ], "texture": "#texture" }, - "up": { "uv": [ 12, 6, 13, 10 ], "texture": "#texture" }, - "north": { "uv": [ 3, 11.5, 4, 12.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 11.5, 13, 12.5 ], "texture": "#texture" }, - "west": { "uv": [ 6, 11.5, 10, 12.5 ], "texture": "#texture" }, - "east": { "uv": [ 6, 11.5, 10, 12.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "west": { "uv": [ 5, 13.25, 11, 14.75 ], "texture": "#texture" }, + "east": { "uv": [ 5, 13.25, 11, 14.75 ], "texture": "#texture" } } }, { "__comment": "Box16", - "from": [ 12, 6, 3.5 ], - "to": [ 13, 10, 4.5 ], + "from": [ 7.5, 5, 1.25 ], + "to": [ 8.5, 11, 2.75 ], "faces": { - "down": { "uv": [ 12, 11.5, 13, 12.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 3.5, 13, 4.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 6, 4, 10 ], "texture": "#texture" }, - "south": { "uv": [ 12, 6, 13, 10 ], "texture": "#texture" }, - "west": { "uv": [ 3.5, 6, 4.5, 10 ], "texture": "#texture" }, - "east": { "uv": [ 11.5, 6, 12.5, 10 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "west": { "uv": [ 1.25, 5, 2.75, 11 ], "texture": "#texture" }, + "east": { "uv": [ 13.25, 5, 14.75, 11 ], "texture": "#texture" } } }, { "__comment": "Box16", - "from": [ 12, 6, 11.5 ], - "to": [ 13, 10, 12.5 ], + "from": [ 7.5, 5, 13.25 ], + "to": [ 8.5, 11, 14.75 ], "faces": { - "down": { "uv": [ 12, 3.5, 13, 4.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 11.5, 13, 12.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 6, 4, 10 ], "texture": "#texture" }, - "south": { "uv": [ 12, 6, 13, 10 ], "texture": "#texture" }, - "west": { "uv": [ 11.5, 6, 12.5, 10 ], "texture": "#texture" }, - "east": { "uv": [ 3.5, 6, 4.5, 10 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "west": { "uv": [ 13.25, 5, 14.75, 11 ], "texture": "#texture" }, + "east": { "uv": [ 1.25, 5, 2.75, 11 ], "texture": "#texture" } } }, { "__comment": "Box24", - "from": [ 12, 5.5, 4.5 ], - "to": [ 13, 10.5, 5.5 ], + "from": [ 7.5, 4.25, 2.75 ], + "to": [ 8.5, 11.75, 4.25 ], "faces": { - "down": { "uv": [ 12, 10.5, 13, 11.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 4.5, 13, 5.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 5.5, 4, 10.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 5.5, 13, 10.5 ], "texture": "#texture" }, - "west": { "uv": [ 4.5, 5.5, 5.5, 10.5 ], "texture": "#texture" }, - "east": { "uv": [ 10.5, 5.5, 11.5, 10.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 2.75, 4.25, 4.25, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 11.75, 4.25, 13.25, 11.75 ], "texture": "#texture" } } }, { "__comment": "Box24", - "from": [ 12, 5.5, 10.5 ], - "to": [ 13, 10.5, 11.5 ], + "from": [ 7.5, 4.25, 11.75 ], + "to": [ 8.5, 11.75, 13.25 ], "faces": { - "down": { "uv": [ 12, 4.5, 13, 5.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 10.5, 13, 11.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 5.5, 4, 10.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 5.5, 13, 10.5 ], "texture": "#texture" }, - "west": { "uv": [ 10.5, 5.5, 11.5, 10.5 ], "texture": "#texture" }, - "east": { "uv": [ 4.5, 5.5, 5.5, 10.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 11.75, 4.25, 13.25, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 2.75, 4.25, 4.25, 11.75 ], "texture": "#texture" } } }, { "__comment": "Box28", - "from": [ 12, 4.5, 5.5 ], - "to": [ 13, 11.5, 10.5 ], + "from": [ 7.5, 2.75, 4.25 ], + "to": [ 8.5, 13.25, 11.75 ], "faces": { - "down": { "uv": [ 12, 5.5, 13, 10.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 5.5, 13, 10.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 4.5, 4, 11.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 4.5, 13, 11.5 ], "texture": "#texture" }, - "west": { "uv": [ 5.5, 4.5, 10.5, 11.5 ], "texture": "#texture" }, - "east": { "uv": [ 5.5, 4.5, 10.5, 11.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2.75, 8.5, 13.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2.75, 8.5, 13.25 ], "texture": "#texture" }, + "west": { "uv": [ 4.25, 2.75, 11.75, 13.25 ], "texture": "#texture" }, + "east": { "uv": [ 4.25, 2.75, 11.75, 13.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 10, 4 ], - "to": [ 13, 10.5, 4.5 ], + "from": [ 7.5, 11, 2 ], + "to": [ 8.5, 11.75, 2.75 ], "faces": { - "down": { "uv": [ 12, 11.5, 13, 12 ], "texture": "#texture" }, - "up": { "uv": [ 12, 4, 13, 4.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 5.5, 4, 6 ], "texture": "#texture" }, - "south": { "uv": [ 12, 5.5, 13, 6 ], "texture": "#texture" }, - "west": { "uv": [ 4, 5.5, 4.5, 6 ], "texture": "#texture" }, - "east": { "uv": [ 11.5, 5.5, 12, 6 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "west": { "uv": [ 2, 4.25, 2.75, 5 ], "texture": "#texture" }, + "east": { "uv": [ 13.25, 4.25, 14, 5 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 10.5, 4.5 ], - "to": [ 13, 11, 5 ], + "from": [ 7.5, 11.75, 2.75 ], + "to": [ 8.5, 12.5, 3.5 ], "faces": { - "down": { "uv": [ 12, 11, 13, 11.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 4.5, 13, 5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 5, 4, 5.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 5, 13, 5.5 ], "texture": "#texture" }, - "west": { "uv": [ 4.5, 5, 5, 5.5 ], "texture": "#texture" }, - "east": { "uv": [ 11, 5, 11.5, 5.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 2.75, 3.5, 3.5, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 12.5, 3.5, 13.25, 4.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 10.5, 5 ], - "to": [ 13, 11.5, 5.5 ], + "from": [ 7.5, 11.75, 3.5 ], + "to": [ 8.5, 13.25, 4.25 ], "faces": { - "down": { "uv": [ 12, 10.5, 13, 11 ], "texture": "#texture" }, - "up": { "uv": [ 12, 5, 13, 5.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 4.5, 4, 5.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 4.5, 13, 5.5 ], "texture": "#texture" }, - "west": { "uv": [ 5, 4.5, 5.5, 5.5 ], "texture": "#texture" }, - "east": { "uv": [ 10.5, 4.5, 11, 5.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 3.5, 2.75, 4.25, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 11.75, 2.75, 12.5, 4.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 4.5, 5 ], - "to": [ 13, 5.5, 5.5 ], + "from": [ 7.5, 2.75, 3.5 ], + "to": [ 8.5, 4.25, 4.25 ], "faces": { - "down": { "uv": [ 12, 10.5, 13, 11 ], "texture": "#texture" }, - "up": { "uv": [ 12, 5, 13, 5.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 10.5, 4, 11.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 10.5, 13, 11.5 ], "texture": "#texture" }, - "west": { "uv": [ 5, 10.5, 5.5, 11.5 ], "texture": "#texture" }, - "east": { "uv": [ 10.5, 10.5, 11, 11.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "west": { "uv": [ 3.5, 11.75, 4.25, 13.25 ], "texture": "#texture" }, + "east": { "uv": [ 11.75, 11.75, 12.5, 13.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 10.5, 10.5 ], - "to": [ 13, 11.5, 11 ], + "from": [ 7.5, 11.75, 11.75 ], + "to": [ 8.5, 13.25, 12.5 ], "faces": { - "down": { "uv": [ 12, 5, 13, 5.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 10.5, 13, 11 ], "texture": "#texture" }, - "north": { "uv": [ 3, 4.5, 4, 5.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 4.5, 13, 5.5 ], "texture": "#texture" }, - "west": { "uv": [ 10.5, 4.5, 11, 5.5 ], "texture": "#texture" }, - "east": { "uv": [ 5, 4.5, 5.5, 5.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 11.75, 2.75, 12.5, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 3.5, 2.75, 4.25, 4.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 4.5, 10.5 ], - "to": [ 13, 5.5, 11 ], + "from": [ 7.5, 2.75, 11.75 ], + "to": [ 8.5, 4.25, 12.5 ], "faces": { - "down": { "uv": [ 12, 5, 13, 5.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 10.5, 13, 11 ], "texture": "#texture" }, - "north": { "uv": [ 3, 10.5, 4, 11.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 10.5, 13, 11.5 ], "texture": "#texture" }, - "west": { "uv": [ 10.5, 10.5, 11, 11.5 ], "texture": "#texture" }, - "east": { "uv": [ 5, 10.5, 5.5, 11.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "west": { "uv": [ 11.75, 11.75, 12.5, 13.25 ], "texture": "#texture" }, + "east": { "uv": [ 3.5, 11.75, 4.25, 13.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 11.5, 5.5 ], - "to": [ 13, 12, 6 ], + "from": [ 7.5, 13.25, 4.25 ], + "to": [ 8.5, 14, 5 ], "faces": { - "down": { "uv": [ 12, 10, 13, 10.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 5.5, 13, 6 ], "texture": "#texture" }, - "north": { "uv": [ 3, 4, 4, 4.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 4, 13, 4.5 ], "texture": "#texture" }, - "west": { "uv": [ 5.5, 4, 6, 4.5 ], "texture": "#texture" }, - "east": { "uv": [ 10, 4, 10.5, 4.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "west": { "uv": [ 4.25, 2, 5, 2.75 ], "texture": "#texture" }, + "east": { "uv": [ 11, 2, 11.75, 2.75 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 5.5, 4 ], - "to": [ 13, 6, 4.5 ], + "from": [ 7.5, 4.25, 2 ], + "to": [ 8.5, 5, 2.75 ], "faces": { - "down": { "uv": [ 12, 11.5, 13, 12 ], "texture": "#texture" }, - "up": { "uv": [ 12, 4, 13, 4.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 10, 4, 10.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 10, 13, 10.5 ], "texture": "#texture" }, - "west": { "uv": [ 4, 10, 4.5, 10.5 ], "texture": "#texture" }, - "east": { "uv": [ 11.5, 10, 12, 10.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 2, 11, 2.75, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 13.25, 11, 14, 11.75 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 5, 4.5 ], - "to": [ 13, 5.5, 5 ], + "from": [ 7.5, 3.5, 2.75 ], + "to": [ 8.5, 4.25, 3.5 ], "faces": { - "down": { "uv": [ 12, 11, 13, 11.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 4.5, 13, 5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 10.5, 4, 11 ], "texture": "#texture" }, - "south": { "uv": [ 12, 10.5, 13, 11 ], "texture": "#texture" }, - "west": { "uv": [ 4.5, 10.5, 5, 11 ], "texture": "#texture" }, - "east": { "uv": [ 11, 10.5, 11.5, 11 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "west": { "uv": [ 2.75, 11.75, 3.5, 12.5 ], "texture": "#texture" }, + "east": { "uv": [ 12.5, 11.75, 13.25, 12.5 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 4, 5.5 ], - "to": [ 13, 4.5, 6 ], + "from": [ 7.5, 2, 4.25 ], + "to": [ 8.5, 2.75, 5 ], "faces": { - "down": { "uv": [ 12, 10, 13, 10.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 5.5, 13, 6 ], "texture": "#texture" }, - "north": { "uv": [ 3, 11.5, 4, 12 ], "texture": "#texture" }, - "south": { "uv": [ 12, 11.5, 13, 12 ], "texture": "#texture" }, - "west": { "uv": [ 5.5, 11.5, 6, 12 ], "texture": "#texture" }, - "east": { "uv": [ 10, 11.5, 10.5, 12 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "west": { "uv": [ 4.25, 13.25, 5, 14 ], "texture": "#texture" }, + "east": { "uv": [ 11, 13.25, 11.75, 14 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 4, 10 ], - "to": [ 13, 4.5, 10.5 ], + "from": [ 7.5, 2, 11 ], + "to": [ 8.5, 2.75, 11.75 ], "faces": { - "down": { "uv": [ 12, 5.5, 13, 6 ], "texture": "#texture" }, - "up": { "uv": [ 12, 10, 13, 10.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 11.5, 4, 12 ], "texture": "#texture" }, - "south": { "uv": [ 12, 11.5, 13, 12 ], "texture": "#texture" }, - "west": { "uv": [ 10, 11.5, 10.5, 12 ], "texture": "#texture" }, - "east": { "uv": [ 5.5, 11.5, 6, 12 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "west": { "uv": [ 11, 13.25, 11.75, 14 ], "texture": "#texture" }, + "east": { "uv": [ 4.25, 13.25, 5, 14 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 5, 11 ], - "to": [ 13, 5.5, 11.5 ], + "from": [ 7.5, 3.5, 12.5 ], + "to": [ 8.5, 4.25, 13.25 ], "faces": { - "down": { "uv": [ 12, 4.5, 13, 5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 11, 13, 11.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 10.5, 4, 11 ], "texture": "#texture" }, - "south": { "uv": [ 12, 10.5, 13, 11 ], "texture": "#texture" }, - "west": { "uv": [ 11, 10.5, 11.5, 11 ], "texture": "#texture" }, - "east": { "uv": [ 4.5, 10.5, 5, 11 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "west": { "uv": [ 12.5, 11.75, 13.25, 12.5 ], "texture": "#texture" }, + "east": { "uv": [ 2.75, 11.75, 3.5, 12.5 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 5.5, 11.5 ], - "to": [ 13, 6, 12 ], + "from": [ 7.5, 4.25, 13.25 ], + "to": [ 8.5, 5, 14 ], "faces": { - "down": { "uv": [ 12, 4, 13, 4.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 11.5, 13, 12 ], "texture": "#texture" }, - "north": { "uv": [ 3, 10, 4, 10.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 10, 13, 10.5 ], "texture": "#texture" }, - "west": { "uv": [ 11.5, 10, 12, 10.5 ], "texture": "#texture" }, - "east": { "uv": [ 4, 10, 4.5, 10.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 13.25, 11, 14, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 2, 11, 2.75, 11.75 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 11.5, 10 ], - "to": [ 13, 12, 10.5 ], + "from": [ 7.5, 13.25, 11 ], + "to": [ 8.5, 14, 11.75 ], "faces": { - "down": { "uv": [ 12, 5.5, 13, 6 ], "texture": "#texture" }, - "up": { "uv": [ 12, 10, 13, 10.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 4, 4, 4.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 4, 13, 4.5 ], "texture": "#texture" }, - "west": { "uv": [ 10, 4, 10.5, 4.5 ], "texture": "#texture" }, - "east": { "uv": [ 5.5, 4, 6, 4.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "west": { "uv": [ 11, 2, 11.75, 2.75 ], "texture": "#texture" }, + "east": { "uv": [ 4.25, 2, 5, 2.75 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 10.5, 11 ], - "to": [ 13, 11, 11.5 ], + "from": [ 7.5, 11.75, 12.5 ], + "to": [ 8.5, 12.5, 13.25 ], "faces": { - "down": { "uv": [ 12, 4.5, 13, 5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 11, 13, 11.5 ], "texture": "#texture" }, - "north": { "uv": [ 3, 5, 4, 5.5 ], "texture": "#texture" }, - "south": { "uv": [ 12, 5, 13, 5.5 ], "texture": "#texture" }, - "west": { "uv": [ 11, 5, 11.5, 5.5 ], "texture": "#texture" }, - "east": { "uv": [ 4.5, 5, 5, 5.5 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 12.5, 3.5, 13.25, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 2.75, 3.5, 3.5, 4.25 ], "texture": "#texture" } } }, { "__comment": "Box30", - "from": [ 12, 10, 11.5 ], - "to": [ 13, 10.5, 12 ], + "from": [ 7.5, 11, 13.25 ], + "to": [ 8.5, 11.75, 14 ], "faces": { - "down": { "uv": [ 12, 4, 13, 4.5 ], "texture": "#texture" }, - "up": { "uv": [ 12, 11.5, 13, 12 ], "texture": "#texture" }, - "north": { "uv": [ 3, 5.5, 4, 6 ], "texture": "#texture" }, - "south": { "uv": [ 12, 5.5, 13, 6 ], "texture": "#texture" }, - "west": { "uv": [ 11.5, 5.5, 12, 6 ], "texture": "#texture" }, - "east": { "uv": [ 4, 5.5, 4.5, 6 ], "texture": "#texture" } + "down": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "west": { "uv": [ 13.25, 4.25, 14, 5 ], "texture": "#texture" }, + "east": { "uv": [ 2, 4.25, 2.75, 5 ], "texture": "#texture" } } }, { "__comment": "Box46", - "from": [ 12.25, 7, 3.5 ], - "to": [ 12.75, 8, 4 ], - "rotation": { "origin": [ 12.25, 8, 4 ], "axis": "x", "angle": 45 }, + "from": [ 7.75, 6.5, 1.25 ], + "to": [ 8.25, 8, 2 ], + "rotation": { "origin": [ 7.75, 8, 2 ], "axis": "x", "angle": 45 }, "faces": { - "down": { "uv": [ 12.25, 3.5, 12.75, 4 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 12, 12.75, 12.5 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 8.5, 12.25, 7.5 ], "texture": "#light" }, - "south": { "uv": [ 3.75, 8.5, 3.25, 7.5 ], "texture": "#light" }, - "west": { "uv": [ 3.5, 7.5, 4, 8.5 ], "texture": "#light", "rotation": 180 }, - "east": { "uv": [ 12, 7.5, 12.5, 8.5 ], "texture": "#light", "rotation": 180 } + "down": { "uv": [ 7.75, 14.84099, 8.25, 15.59099 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 0.4090099, 8.25, 1.15901 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 7.03033, 8.25, 8.53033 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 7.03033, 8.25, 8.53033 ], "texture": "#light" }, + "west": { "uv": [ 0.4090095, 7.03033, 1.159009, 8.53033 ], "texture": "#light" }, + "east": { "uv": [ 14.84099, 7.03033, 15.59099, 8.53033 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 12, 8 ], - "to": [ 12.75, 13, 8.5 ], - "rotation": { "origin": [ 12.25, 12, 8 ], "axis": "x", "angle": -45 }, + "from": [ 7.75, 14, 8 ], + "to": [ 8.25, 15.5, 8.75 ], + "rotation": { "origin": [ 7.75, 14, 8 ], "axis": "x", "angle": -45 }, "faces": { - "down": { "uv": [ 12.25, 8, 12.75, 8.5 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 7.5, 12.75, 8 ], "texture": "#light" }, - "north": { "uv": [ 3.25, 2.5, 3.75, 3.5 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 2.5, 12.75, 3.5 ], "texture": "#light" }, - "west": { "uv": [ 7.5, 2.5, 8, 3.5 ], "texture": "#light" }, - "east": { "uv": [ 8, 2.5, 8.5, 3.5 ], "texture": "#light" } + "down": { "uv": [ 7.75, 7.25, 8.25, 8 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 8, 8.25, 8.75 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "west": { "uv": [ 8, 0.5, 8.75, 2 ], "texture": "#light" }, + "east": { "uv": [ 7.25, 0.5, 8, 2 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 3, 7.5 ], - "to": [ 12.75, 4, 8 ], - "rotation": { "origin": [ 12.25, 4, 8 ], "axis": "x", "angle": -45 }, + "from": [ 7.75, 0.5, 7.25 ], + "to": [ 8.25, 2, 8 ], + "rotation": { "origin": [ 7.75, 2, 8 ], "axis": "x", "angle": -45 }, "faces": { - "down": { "uv": [ 12.25, 8.06066, 12.75, 8.56066 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 7.439341, 12.75, 7.939341 ], "texture": "#light" }, - "north": { "uv": [ 3.25, 11.85355, 3.75, 12.85355 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 11.85355, 12.75, 12.85355 ], "texture": "#light" }, - "west": { "uv": [ 7.43934, 11.85355, 7.93934, 12.85355 ], "texture": "#light" }, - "east": { "uv": [ 8.06066, 11.85355, 8.56066, 12.85355 ], "texture": "#light" } + "down": { "uv": [ 7.75, 6.719669, 8.25, 7.469669 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 8.530331, 8.25, 9.280331 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 14.09099, 8.25, 15.59099 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 14.09099, 8.25, 15.59099 ], "texture": "#light" }, + "west": { "uv": [ 8.530331, 14.09099, 9.280331, 15.59099 ], "texture": "#light" }, + "east": { "uv": [ 6.719669, 14.09099, 7.469669, 15.59099 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 8, 12 ], - "to": [ 12.75, 9, 12.5 ], - "rotation": { "origin": [ 12.25, 8, 12 ], "axis": "x", "angle": 45 }, + "from": [ 7.75, 8, 14 ], + "to": [ 8.25, 9.5, 14.75 ], + "rotation": { "origin": [ 7.75, 8, 14 ], "axis": "x", "angle": 45 }, "faces": { - "down": { "uv": [ 12.25, 12.85355, 12.75, 13.35355 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 2.646446, 12.75, 3.146446 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 8.56066, 12.25, 7.560659 ], "texture": "#light" }, - "south": { "uv": [ 3.75, 8.56066, 3.25, 7.560659 ], "texture": "#light" }, - "west": { "uv": [ 12.85355, 7.560659, 13.35355, 8.56066 ], "texture": "#light", "rotation": 180 }, - "east": { "uv": [ 2.646446, 7.560659, 3.146446, 8.56066 ], "texture": "#light", "rotation": 180 } + "down": { "uv": [ 7.75, 1.25, 8.25, 2 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 14, 8.25, 14.75 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 6.5, 8.25, 8 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 6.5, 8.25, 8 ], "texture": "#light" }, + "west": { "uv": [ 14, 6.5, 14.75, 8 ], "texture": "#light" }, + "east": { "uv": [ 1.25, 6.5, 2, 8 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 9.5, 3 ], - "to": [ 12.75, 10, 4 ], - "rotation": { "origin": [ 12.25, 9.5, 4 ], "axis": "x", "angle": -22.5 }, + "from": [ 7.75, 10.25, 0.5 ], + "to": [ 8.25, 11, 2 ], + "rotation": { "origin": [ 7.75, 10.25, 2 ], "axis": "x", "angle": -22.5 }, "faces": { - "down": { "uv": [ 3.75, 6.5, 3.25, 5.5 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 5.5, 12.75, 6.5 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 4, 12.25, 3.5 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 12, 12.75, 12.5 ], "texture": "#light" }, - "west": { "uv": [ 3.5, 5.5, 4, 6.5 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 12, 5.5, 12.5, 6.5 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 13.88582, 8.25, 15.38582 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 0.6141806, 8.25, 2.114181 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 5.574026, 8.25, 6.324026 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 5.574026, 8.25, 6.324026 ], "texture": "#light" }, + "west": { "uv": [ 0.6141806, 5.574026, 2.114181, 6.324026 ], "texture": "#light" }, + "east": { "uv": [ 13.88582, 5.574026, 15.38582, 6.324026 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 12, 9.5 ], - "to": [ 12.75, 13, 10 ], - "rotation": { "origin": [ 12.25, 12, 9.5 ], "axis": "x", "angle": -22.5 }, + "from": [ 7.75, 14, 10.25 ], + "to": [ 8.25, 15.5, 11 ], + "rotation": { "origin": [ 7.75, 14, 10.25 ], "axis": "x", "angle": -22.5 }, "faces": { - "down": { "uv": [ 3.75, 3.96194, 3.25, 3.46194 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 3.46194, 12.75, 3.96194 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 10.69134, 12.25, 9.69134 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 5.308661, 12.75, 6.308661 ], "texture": "#light" }, - "west": { "uv": [ 9.69134, 3.46194, 10.69134, 3.96194 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 5.30866, 3.46194, 6.30866, 3.96194 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 5, 8.25, 5.75 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 10.25, 8.25, 11 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "west": { "uv": [ 10.25, 0.5, 11, 2 ], "texture": "#light" }, + "east": { "uv": [ 5, 0.5, 5.75, 2 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 6, 12 ], - "to": [ 12.75, 6.5, 13 ], - "rotation": { "origin": [ 12.25, 6.5, 12 ], "axis": "x", "angle": -22.5 }, + "from": [ 7.75, 5, 14 ], + "to": [ 8.25, 5.75, 15.5 ], + "rotation": { "origin": [ 7.75, 5.75, 14 ], "axis": "x", "angle": -22.5 }, "faces": { - "down": { "uv": [ 3.75, 10.61522, 3.25, 9.615221 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 9.615221, 12.75, 10.61522 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 12.92074, 12.25, 12.42074 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 3.079256, 12.75, 3.579256 ], "texture": "#light" }, - "west": { "uv": [ 12.42074, 9.615221, 12.92074, 10.61522 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 3.079256, 9.615221, 3.579256, 10.61522 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 0.2129879, 8.25, 1.712988 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 14.28701, 8.25, 15.78701 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 10.19291, 8.25, 10.94291 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 10.19291, 8.25, 10.94291 ], "texture": "#light" }, + "west": { "uv": [ 14.28701, 10.19291, 15.78701, 10.94291 ], "texture": "#light" }, + "east": { "uv": [ 0.2129879, 10.19291, 1.712988, 10.94291 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 11, 4 ], - "to": [ 12.75, 11.5, 5 ], + "from": [ 7.75, 12.5, 2 ], + "to": [ 8.25, 13.25, 3.5 ], "faces": { - "down": { "uv": [ 3.75, 5, 3.25, 4 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 4, 12.75, 5 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 5, 12.25, 4.5 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 11, 12.75, 11.5 ], "texture": "#light" }, - "west": { "uv": [ 4.5, 4, 5, 5 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 11, 4, 11.5, 5 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "west": { "uv": [ 2, 2.75, 3.5, 3.5 ], "texture": "#light" }, + "east": { "uv": [ 12.5, 2.75, 14, 3.5 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 11, 11 ], - "to": [ 12.75, 12, 11.5 ], + "from": [ 7.75, 12.5, 12.5 ], + "to": [ 8.25, 14, 13.25 ], "faces": { - "down": { "uv": [ 3.75, 5, 3.25, 4.5 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 4.5, 12.75, 5 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 12, 12.25, 11 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 4.000001, 12.75, 5.000001 ], "texture": "#light" }, - "west": { "uv": [ 11, 4.5, 12, 5 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 4.000001, 4.5, 5.000001, 5 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "west": { "uv": [ 12.5, 2, 13.25, 3.5 ], "texture": "#light" }, + "east": { "uv": [ 2.75, 2, 3.5, 3.5 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 4.5, 11 ], - "to": [ 12.75, 5, 12 ], - "rotation": { "origin": [ 12.25, 5, 11 ], "axis": "x", "angle": 0 }, + "from": [ 7.75, 2.75, 12.5 ], + "to": [ 8.25, 3.5, 14 ], "faces": { - "down": { "uv": [ 12.25, 11, 12.75, 12 ], "texture": "#light" }, - "up": { "uv": [ 3.75, 12, 3.25, 11 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 5, 12.25, 4.5 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 11, 12.75, 11.5 ], "texture": "#light" }, - "west": { "uv": [ 11, 11, 11.5, 12 ], "texture": "#light", "rotation": 90 }, - "east": { "uv": [ 4.5, 11, 5, 12 ], "texture": "#light", "rotation": 270 } + "down": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "west": { "uv": [ 12.5, 12.5, 14, 13.25 ], "texture": "#light" }, + "east": { "uv": [ 2, 12.5, 3.5, 13.25 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 4, 4.5 ], - "to": [ 12.75, 5, 5 ], + "from": [ 7.75, 2, 2.75 ], + "to": [ 8.25, 3.5, 3.5 ], "faces": { - "down": { "uv": [ 12.25, 11, 12.75, 11.5 ], "texture": "#light" }, - "up": { "uv": [ 3.75, 11.5, 3.25, 11 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 12, 12.25, 11 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 4, 12.75, 5 ], "texture": "#light" }, - "west": { "uv": [ 4, 11, 5, 11.5 ], "texture": "#light", "rotation": 90 }, - "east": { "uv": [ 11, 11, 12, 11.5 ], "texture": "#light", "rotation": 270 } + "down": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "west": { "uv": [ 2.75, 12.5, 3.5, 14 ], "texture": "#light" }, + "east": { "uv": [ 12.5, 12.5, 13.25, 14 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 11.5, 5 ], - "to": [ 12.75, 12, 6.5 ], - "rotation": { "origin": [ 12.25, 11.5, 6.5 ], "axis": "x", "angle": 22.5 }, + "from": [ 7.75, 13.25, 3.5 ], + "to": [ 8.25, 14, 5.75 ], + "rotation": { "origin": [ 7.75, 13.25, 5.75 ], "axis": "x", "angle": 22.5 }, "faces": { - "down": { "uv": [ 3.75, 4, 3.25, 2.5 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 2.5, 12.75, 4 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 6, 12.25, 5.5 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 10, 12.75, 10.5 ], "texture": "#light" }, - "west": { "uv": [ 5.5, 2.5, 6, 4 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 10, 2.5, 10.5, 4 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 10.07873, 8.25, 12.32873 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 3.67127, 8.25, 5.92127 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 1.138962, 8.25, 1.888962 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 1.138962, 8.25, 1.888962 ], "texture": "#light" }, + "west": { "uv": [ 3.671271, 1.138962, 5.921271, 1.888962 ], "texture": "#light" }, + "east": { "uv": [ 10.07873, 1.138962, 12.32873, 1.888962 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 9.5, 11.5 ], - "to": [ 12.75, 11, 12 ], - "rotation": { "origin": [ 12.25, 9.5, 11.5 ], "axis": "x", "angle": 22.5 }, + "from": [ 7.75, 10.25, 13.25 ], + "to": [ 8.25, 12.5, 14 ], + "rotation": { "origin": [ 7.75, 10.25, 13.25 ], "axis": "x", "angle": 22.5 }, "faces": { - "down": { "uv": [ 3.75, 5.96194, 3.25, 5.46194 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 5.46194, 12.75, 5.96194 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 13.30866, 12.25, 11.80866 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 2.691342, 12.75, 4.191341 ], "texture": "#light" }, - "west": { "uv": [ 11.80866, 5.46194, 13.30866, 5.96194 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 2.691342, 5.46194, 4.191342, 5.96194 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 2, 8.25, 2.75 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 13.25, 8.25, 14 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 3.5, 8.25, 5.75 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 3.5, 8.25, 5.75 ], "texture": "#light" }, + "west": { "uv": [ 13.25, 3.5, 14, 5.75 ], "texture": "#light" }, + "east": { "uv": [ 2, 3.5, 2.75, 5.75 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 4, 9.5 ], - "to": [ 12.75, 4.5, 11 ], - "rotation": { "origin": [ 12.25, 4.5, 9.5 ], "axis": "x", "angle": 22.5 }, + "from": [ 7.75, 2, 10.25 ], + "to": [ 8.25, 2.75, 12.5 ], + "rotation": { "origin": [ 7.75, 2.75, 10.25 ], "axis": "x", "angle": 22.5 }, "faces": { - "down": { "uv": [ 3.75, 13.19448, 3.25, 11.69448 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 11.69448, 12.75, 13.19448 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 9.964035, 12.25, 9.464035 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 6.035965, 12.75, 6.535965 ], "texture": "#light" }, - "west": { "uv": [ 9.464035, 11.69448, 9.964035, 13.19448 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 6.035965, 11.69448, 6.535965, 13.19448 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 3.787012, 8.25, 6.037012 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 9.962988, 8.25, 12.21299 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 13.19291, 8.25, 13.94291 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 13.19291, 8.25, 13.94291 ], "texture": "#light" }, + "west": { "uv": [ 9.962988, 13.19291, 12.21299, 13.94291 ], "texture": "#light" }, + "east": { "uv": [ 3.787012, 13.19291, 6.037012, 13.94291 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 5, 4 ], - "to": [ 12.75, 6.5, 4.5 ], - "rotation": { "origin": [ 12.25, 6.5, 4.5 ], "axis": "x", "angle": 22.5 }, + "from": [ 7.75, 3.5, 2 ], + "to": [ 8.25, 5.75, 2.75 ], + "rotation": { "origin": [ 7.75, 5.75, 2.75 ], "axis": "x", "angle": 22.5 }, "faces": { - "down": { "uv": [ 3.75, 9.925975, 3.25, 9.425975 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 9.425975, 12.75, 9.925975 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 4.114182, 12.25, 2.614182 ], "texture": "#light" }, - "south": { "uv": [ 12.25, 11.88582, 12.75, 13.38582 ], "texture": "#light" }, - "west": { "uv": [ 2.614181, 9.425975, 4.114181, 9.925975 ], "texture": "#light", "rotation": 270 }, - "east": { "uv": [ 11.88582, 9.425975, 13.38582, 9.925975 ], "texture": "#light", "rotation": 90 } + "down": { "uv": [ 7.75, 14.05395, 8.25, 14.80395 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 1.196053, 8.25, 1.946053 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 9.791717, 8.25, 12.04172 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 9.791717, 8.25, 12.04172 ], "texture": "#light" }, + "west": { "uv": [ 1.196053, 9.791717, 1.946053, 12.04172 ], "texture": "#light" }, + "east": { "uv": [ 14.05395, 9.791717, 14.80395, 12.04172 ], "texture": "#light" } } }, { "__comment": "Box46", - "from": [ 12.25, 3, 6 ], - "to": [ 12.75, 4, 6.5 ], - "rotation": { "origin": [ 12.25, 4, 6.5 ], "axis": "x", "angle": -22.5 }, + "from": [ 7.75, 0.5, 5 ], + "to": [ 8.25, 2, 5.75 ], + "rotation": { "origin": [ 7.75, 2, 5.75 ], "axis": "x", "angle": -22.5 }, "faces": { - "down": { "uv": [ 12.25, 3.5, 12.75, 4 ], "texture": "#light" }, - "up": { "uv": [ 12.25, 12, 12.75, 12.5 ], "texture": "#light" }, - "north": { "uv": [ 12.75, 6.5, 12.25, 5.5 ], "texture": "#light" }, - "south": { "uv": [ 3.75, 6.5, 3.25, 5.5 ], "texture": "#light" }, - "west": { "uv": [ 3.5, 5.5, 4, 6.5 ], "texture": "#light", "rotation": 180 }, - "east": { "uv": [ 12, 5.5, 12.5, 6.5 ], "texture": "#light", "rotation": 180 } + "down": { "uv": [ 7.75, 9.618885, 8.25, 10.36889 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 5.631115, 8.25, 6.381115 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 14.17283, 8.25, 15.67283 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 14.17283, 8.25, 15.67283 ], "texture": "#light" }, + "west": { "uv": [ 5.631115, 14.17283, 6.381115, 15.67283 ], "texture": "#light" }, + "east": { "uv": [ 9.618885, 14.17283, 10.36889, 15.67283 ], "texture": "#light" } } } ], diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/saw_model2.json b/kfc/src/main/resources/assets/forgecraft/models/item/saw_model2.json new file mode 100644 index 00000000..9b71e04f --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/models/item/saw_model2.json @@ -0,0 +1,573 @@ +{ + "__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "blocks/e_particle", + "texture": "blocks/e_texture", + "light": "blocks/iron_ingot_light" + }, + "elements": [ + { + "__comment": "Box17", + "from": [ 5, 7.5, 7.5 ], + "to": [ 11, 8.5, 8.5 ], + "faces": { + "down": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "up": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "north": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "south": { "uv": [ 5, 7.5, 11, 8.5 ], "texture": "#texture" }, + "west": { "uv": [ 7.5, 7.5, 8.5, 8.5 ], "texture": "#texture" }, + "east": { "uv": [ 7.5, 7.5, 8.5, 8.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box7", + "from": [ 7.5, 13.25, 5 ], + "to": [ 8.5, 14.75, 11 ], + "faces": { + "down": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "west": { "uv": [ 5, 1.25, 11, 2.75 ], "texture": "#texture" }, + "east": { "uv": [ 5, 1.25, 11, 2.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box7", + "from": [ 7.5, 1.25, 5 ], + "to": [ 8.5, 2.75, 11 ], + "faces": { + "down": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "west": { "uv": [ 5, 13.25, 11, 14.75 ], "texture": "#texture" }, + "east": { "uv": [ 5, 13.25, 11, 14.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box16", + "from": [ 7.5, 5, 1.25 ], + "to": [ 8.5, 11, 2.75 ], + "faces": { + "down": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "west": { "uv": [ 1.25, 5, 2.75, 11 ], "texture": "#texture" }, + "east": { "uv": [ 13.25, 5, 14.75, 11 ], "texture": "#texture" } + } + }, + { + "__comment": "Box16", + "from": [ 7.5, 5, 13.25 ], + "to": [ 8.5, 11, 14.75 ], + "faces": { + "down": { "uv": [ 7.5, 1.25, 8.5, 2.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 13.25, 8.5, 14.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 5, 8.5, 11 ], "texture": "#texture" }, + "west": { "uv": [ 13.25, 5, 14.75, 11 ], "texture": "#texture" }, + "east": { "uv": [ 1.25, 5, 2.75, 11 ], "texture": "#texture" } + } + }, + { + "__comment": "Box24", + "from": [ 7.5, 4.25, 2.75 ], + "to": [ 8.5, 11.75, 4.25 ], + "faces": { + "down": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 2.75, 4.25, 4.25, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 11.75, 4.25, 13.25, 11.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box24", + "from": [ 7.5, 4.25, 11.75 ], + "to": [ 8.5, 11.75, 13.25 ], + "faces": { + "down": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 11.75, 4.25, 13.25, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 2.75, 4.25, 4.25, 11.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box28", + "from": [ 7.5, 2.75, 4.25 ], + "to": [ 8.5, 13.25, 11.75 ], + "faces": { + "down": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 4.25, 8.5, 11.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2.75, 8.5, 13.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2.75, 8.5, 13.25 ], "texture": "#texture" }, + "west": { "uv": [ 4.25, 2.75, 11.75, 13.25 ], "texture": "#texture" }, + "east": { "uv": [ 4.25, 2.75, 11.75, 13.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 11, 2 ], + "to": [ 8.5, 11.75, 2.75 ], + "faces": { + "down": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "west": { "uv": [ 2, 4.25, 2.75, 5 ], "texture": "#texture" }, + "east": { "uv": [ 13.25, 4.25, 14, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 11.75, 2.75 ], + "to": [ 8.5, 12.5, 3.5 ], + "faces": { + "down": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 2.75, 3.5, 3.5, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 12.5, 3.5, 13.25, 4.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 11.75, 3.5 ], + "to": [ 8.5, 13.25, 4.25 ], + "faces": { + "down": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 3.5, 2.75, 4.25, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 11.75, 2.75, 12.5, 4.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 2.75, 3.5 ], + "to": [ 8.5, 4.25, 4.25 ], + "faces": { + "down": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "west": { "uv": [ 3.5, 11.75, 4.25, 13.25 ], "texture": "#texture" }, + "east": { "uv": [ 11.75, 11.75, 12.5, 13.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 11.75, 11.75 ], + "to": [ 8.5, 13.25, 12.5 ], + "faces": { + "down": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2.75, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 11.75, 2.75, 12.5, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 3.5, 2.75, 4.25, 4.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 2.75, 11.75 ], + "to": [ 8.5, 4.25, 12.5 ], + "faces": { + "down": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 13.25 ], "texture": "#texture" }, + "west": { "uv": [ 11.75, 11.75, 12.5, 13.25 ], "texture": "#texture" }, + "east": { "uv": [ 3.5, 11.75, 4.25, 13.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 13.25, 4.25 ], + "to": [ 8.5, 14, 5 ], + "faces": { + "down": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "west": { "uv": [ 4.25, 2, 5, 2.75 ], "texture": "#texture" }, + "east": { "uv": [ 11, 2, 11.75, 2.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 4.25, 2 ], + "to": [ 8.5, 5, 2.75 ], + "faces": { + "down": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 2, 11, 2.75, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 13.25, 11, 14, 11.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 3.5, 2.75 ], + "to": [ 8.5, 4.25, 3.5 ], + "faces": { + "down": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "west": { "uv": [ 2.75, 11.75, 3.5, 12.5 ], "texture": "#texture" }, + "east": { "uv": [ 12.5, 11.75, 13.25, 12.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 2, 4.25 ], + "to": [ 8.5, 2.75, 5 ], + "faces": { + "down": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "west": { "uv": [ 4.25, 13.25, 5, 14 ], "texture": "#texture" }, + "east": { "uv": [ 11, 13.25, 11.75, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 2, 11 ], + "to": [ 8.5, 2.75, 11.75 ], + "faces": { + "down": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "west": { "uv": [ 11, 13.25, 11.75, 14 ], "texture": "#texture" }, + "east": { "uv": [ 4.25, 13.25, 5, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 3.5, 12.5 ], + "to": [ 8.5, 4.25, 13.25 ], + "faces": { + "down": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11.75, 8.5, 12.5 ], "texture": "#texture" }, + "west": { "uv": [ 12.5, 11.75, 13.25, 12.5 ], "texture": "#texture" }, + "east": { "uv": [ 2.75, 11.75, 3.5, 12.5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 4.25, 13.25 ], + "to": [ 8.5, 5, 14 ], + "faces": { + "down": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "west": { "uv": [ 13.25, 11, 14, 11.75 ], "texture": "#texture" }, + "east": { "uv": [ 2, 11, 2.75, 11.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 13.25, 11 ], + "to": [ 8.5, 14, 11.75 ], + "faces": { + "down": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 11, 8.5, 11.75 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "west": { "uv": [ 11, 2, 11.75, 2.75 ], "texture": "#texture" }, + "east": { "uv": [ 4.25, 2, 5, 2.75 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 11.75, 12.5 ], + "to": [ 8.5, 12.5, 13.25 ], + "faces": { + "down": { "uv": [ 7.5, 2.75, 8.5, 3.5 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 12.5, 8.5, 13.25 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 3.5, 8.5, 4.25 ], "texture": "#texture" }, + "west": { "uv": [ 12.5, 3.5, 13.25, 4.25 ], "texture": "#texture" }, + "east": { "uv": [ 2.75, 3.5, 3.5, 4.25 ], "texture": "#texture" } + } + }, + { + "__comment": "Box30", + "from": [ 7.5, 11, 13.25 ], + "to": [ 8.5, 11.75, 14 ], + "faces": { + "down": { "uv": [ 7.5, 2, 8.5, 2.75 ], "texture": "#texture" }, + "up": { "uv": [ 7.5, 13.25, 8.5, 14 ], "texture": "#texture" }, + "north": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "south": { "uv": [ 7.5, 4.25, 8.5, 5 ], "texture": "#texture" }, + "west": { "uv": [ 13.25, 4.25, 14, 5 ], "texture": "#texture" }, + "east": { "uv": [ 2, 4.25, 2.75, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 6.5, 1.25 ], + "to": [ 8.25, 8, 2 ], + "rotation": { "origin": [ 7.75, 8, 2 ], "axis": "x", "angle": 45 }, + "faces": { + "down": { "uv": [ 7.75, 14.84099, 8.25, 15.59099 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 0.4090099, 8.25, 1.15901 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 7.03033, 8.25, 8.53033 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 7.03033, 8.25, 8.53033 ], "texture": "#light" }, + "west": { "uv": [ 0.4090095, 7.03033, 1.159009, 8.53033 ], "texture": "#light" }, + "east": { "uv": [ 14.84099, 7.03033, 15.59099, 8.53033 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 14, 8 ], + "to": [ 8.25, 15.5, 8.75 ], + "rotation": { "origin": [ 7.75, 14, 8 ], "axis": "x", "angle": -45 }, + "faces": { + "down": { "uv": [ 7.75, 7.25, 8.25, 8 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 8, 8.25, 8.75 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "west": { "uv": [ 8, 0.5, 8.75, 2 ], "texture": "#light" }, + "east": { "uv": [ 7.25, 0.5, 8, 2 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 0.5, 7.25 ], + "to": [ 8.25, 2, 8 ], + "rotation": { "origin": [ 7.75, 2, 8 ], "axis": "x", "angle": -45 }, + "faces": { + "down": { "uv": [ 7.75, 6.719669, 8.25, 7.469669 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 8.530331, 8.25, 9.280331 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 14.09099, 8.25, 15.59099 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 14.09099, 8.25, 15.59099 ], "texture": "#light" }, + "west": { "uv": [ 8.530331, 14.09099, 9.280331, 15.59099 ], "texture": "#light" }, + "east": { "uv": [ 6.719669, 14.09099, 7.469669, 15.59099 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 8, 14 ], + "to": [ 8.25, 9.5, 14.75 ], + "rotation": { "origin": [ 7.75, 8, 14 ], "axis": "x", "angle": 45 }, + "faces": { + "down": { "uv": [ 7.75, 1.25, 8.25, 2 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 14, 8.25, 14.75 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 6.5, 8.25, 8 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 6.5, 8.25, 8 ], "texture": "#light" }, + "west": { "uv": [ 14, 6.5, 14.75, 8 ], "texture": "#light" }, + "east": { "uv": [ 1.25, 6.5, 2, 8 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 10.25, 0.5 ], + "to": [ 8.25, 11, 2 ], + "rotation": { "origin": [ 7.75, 10.25, 2 ], "axis": "x", "angle": -22.5 }, + "faces": { + "down": { "uv": [ 7.75, 13.88582, 8.25, 15.38582 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 0.6141806, 8.25, 2.114181 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 5.574026, 8.25, 6.324026 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 5.574026, 8.25, 6.324026 ], "texture": "#light" }, + "west": { "uv": [ 0.6141806, 5.574026, 2.114181, 6.324026 ], "texture": "#light" }, + "east": { "uv": [ 13.88582, 5.574026, 15.38582, 6.324026 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 14, 10.25 ], + "to": [ 8.25, 15.5, 11 ], + "rotation": { "origin": [ 7.75, 14, 10.25 ], "axis": "x", "angle": -22.5 }, + "faces": { + "down": { "uv": [ 7.75, 5, 8.25, 5.75 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 10.25, 8.25, 11 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 0.5, 8.25, 2 ], "texture": "#light" }, + "west": { "uv": [ 10.25, 0.5, 11, 2 ], "texture": "#light" }, + "east": { "uv": [ 5, 0.5, 5.75, 2 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 5, 14 ], + "to": [ 8.25, 5.75, 15.5 ], + "rotation": { "origin": [ 7.75, 5.75, 14 ], "axis": "x", "angle": -22.5 }, + "faces": { + "down": { "uv": [ 7.75, 0.2129879, 8.25, 1.712988 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 14.28701, 8.25, 15.78701 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 10.19291, 8.25, 10.94291 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 10.19291, 8.25, 10.94291 ], "texture": "#light" }, + "west": { "uv": [ 14.28701, 10.19291, 15.78701, 10.94291 ], "texture": "#light" }, + "east": { "uv": [ 0.2129879, 10.19291, 1.712988, 10.94291 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 12.5, 2 ], + "to": [ 8.25, 13.25, 3.5 ], + "faces": { + "down": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "west": { "uv": [ 2, 2.75, 3.5, 3.5 ], "texture": "#light" }, + "east": { "uv": [ 12.5, 2.75, 14, 3.5 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 12.5, 12.5 ], + "to": [ 8.25, 14, 13.25 ], + "faces": { + "down": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "west": { "uv": [ 12.5, 2, 13.25, 3.5 ], "texture": "#light" }, + "east": { "uv": [ 2.75, 2, 3.5, 3.5 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 2.75, 12.5 ], + "to": [ 8.25, 3.5, 14 ], + "faces": { + "down": { "uv": [ 7.75, 2, 8.25, 3.5 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "west": { "uv": [ 12.5, 12.5, 14, 13.25 ], "texture": "#light" }, + "east": { "uv": [ 2, 12.5, 3.5, 13.25 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 2, 2.75 ], + "to": [ 8.25, 3.5, 3.5 ], + "faces": { + "down": { "uv": [ 7.75, 12.5, 8.25, 13.25 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 2.75, 8.25, 3.5 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 12.5, 8.25, 14 ], "texture": "#light" }, + "west": { "uv": [ 2.75, 12.5, 3.5, 14 ], "texture": "#light" }, + "east": { "uv": [ 12.5, 12.5, 13.25, 14 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 13.25, 3.5 ], + "to": [ 8.25, 14, 5.75 ], + "rotation": { "origin": [ 7.75, 13.25, 5.75 ], "axis": "x", "angle": 22.5 }, + "faces": { + "down": { "uv": [ 7.75, 10.07873, 8.25, 12.32873 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 3.67127, 8.25, 5.92127 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 1.138962, 8.25, 1.888962 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 1.138962, 8.25, 1.888962 ], "texture": "#light" }, + "west": { "uv": [ 3.671271, 1.138962, 5.921271, 1.888962 ], "texture": "#light" }, + "east": { "uv": [ 10.07873, 1.138962, 12.32873, 1.888962 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 10.25, 13.25 ], + "to": [ 8.25, 12.5, 14 ], + "rotation": { "origin": [ 7.75, 10.25, 13.25 ], "axis": "x", "angle": 22.5 }, + "faces": { + "down": { "uv": [ 7.75, 2, 8.25, 2.75 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 13.25, 8.25, 14 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 3.5, 8.25, 5.75 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 3.5, 8.25, 5.75 ], "texture": "#light" }, + "west": { "uv": [ 13.25, 3.5, 14, 5.75 ], "texture": "#light" }, + "east": { "uv": [ 2, 3.5, 2.75, 5.75 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 2, 10.25 ], + "to": [ 8.25, 2.75, 12.5 ], + "rotation": { "origin": [ 7.75, 2.75, 10.25 ], "axis": "x", "angle": 22.5 }, + "faces": { + "down": { "uv": [ 7.75, 3.787012, 8.25, 6.037012 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 9.962988, 8.25, 12.21299 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 13.19291, 8.25, 13.94291 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 13.19291, 8.25, 13.94291 ], "texture": "#light" }, + "west": { "uv": [ 9.962988, 13.19291, 12.21299, 13.94291 ], "texture": "#light" }, + "east": { "uv": [ 3.787012, 13.19291, 6.037012, 13.94291 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 3.5, 2 ], + "to": [ 8.25, 5.75, 2.75 ], + "rotation": { "origin": [ 7.75, 5.75, 2.75 ], "axis": "x", "angle": 22.5 }, + "faces": { + "down": { "uv": [ 7.75, 14.05395, 8.25, 14.80395 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 1.196053, 8.25, 1.946053 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 9.791717, 8.25, 12.04172 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 9.791717, 8.25, 12.04172 ], "texture": "#light" }, + "west": { "uv": [ 1.196053, 9.791717, 1.946053, 12.04172 ], "texture": "#light" }, + "east": { "uv": [ 14.05395, 9.791717, 14.80395, 12.04172 ], "texture": "#light" } + } + }, + { + "__comment": "Box46", + "from": [ 7.75, 0.5, 5 ], + "to": [ 8.25, 2, 5.75 ], + "rotation": { "origin": [ 7.75, 2, 5.75 ], "axis": "x", "angle": -22.5 }, + "faces": { + "down": { "uv": [ 7.75, 9.618885, 8.25, 10.36889 ], "texture": "#light" }, + "up": { "uv": [ 7.75, 5.631115, 8.25, 6.381115 ], "texture": "#light" }, + "north": { "uv": [ 7.75, 14.17283, 8.25, 15.67283 ], "texture": "#light" }, + "south": { "uv": [ 7.75, 14.17283, 8.25, 15.67283 ], "texture": "#light" }, + "west": { "uv": [ 5.631115, 14.17283, 6.381115, 15.67283 ], "texture": "#light" }, + "east": { "uv": [ 9.618885, 14.17283, 10.36889, 15.67283 ], "texture": "#light" } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ 0, -90, 55 ], + "translation": [ 0, 0.2635, 0.5 ], + "scale": [ 0.85, 0.85, 0.85 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, -90, 55 ], + "translation": [ 0, 0.2635, 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 ], + "translation": [ 2, 0, 0 ], + "scale": [ 0.625, 0.625, 0.625 ] + }, + "ground": { + "translation": [ 0, 3, 0 ], + "scale": [ 0.25, 0.25, 0.25 ] + } + } +} \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/sounds.json b/kfc/src/main/resources/assets/forgecraft/sounds.json index 47d07af8..adeebc1b 100644 --- a/kfc/src/main/resources/assets/forgecraft/sounds.json +++ b/kfc/src/main/resources/assets/forgecraft/sounds.json @@ -23,7 +23,25 @@ "chisel_hit_finished": { "category": "block", - "subtitle": "forgecraft.subtitle.chisel_hit_finishedg", + "subtitle": "forgecraft.subtitle.chisel_hit_finished", "sounds": [ "forgecraft:chisel_hit_finished" ] + }, + + "piston_engine_in": { + "category": "block", + "subtitle": "forgecraft.subtitle.piston_engine_in", + "sounds": [ "forgecraft:piston_engine_in" ] + }, + + "piston_engine_out": { + "category": "block", + "subtitle": "forgecraft.subtitle.piston_engine_out", + "sounds": [ "forgecraft:piston_engine_out" ] + }, + + "saw_machine": { + "category": "block", + "subtitle": "forgecraft.subtitle.saw_machine", + "sounds": [ "forgecraft:saw_machine" ] } -} \ No newline at end of file +} diff --git a/kfc/src/main/resources/assets/forgecraft/sounds/piston_engine_in.ogg b/kfc/src/main/resources/assets/forgecraft/sounds/piston_engine_in.ogg new file mode 100644 index 00000000..18713f67 Binary files /dev/null and b/kfc/src/main/resources/assets/forgecraft/sounds/piston_engine_in.ogg differ diff --git a/kfc/src/main/resources/assets/forgecraft/sounds/piston_engine_out.ogg b/kfc/src/main/resources/assets/forgecraft/sounds/piston_engine_out.ogg new file mode 100644 index 00000000..95d59d83 Binary files /dev/null and b/kfc/src/main/resources/assets/forgecraft/sounds/piston_engine_out.ogg differ diff --git a/kfc/src/main/resources/assets/forgecraft/sounds/saw_machine.ogg b/kfc/src/main/resources/assets/forgecraft/sounds/saw_machine.ogg new file mode 100644 index 00000000..0855f051 Binary files /dev/null and b/kfc/src/main/resources/assets/forgecraft/sounds/saw_machine.ogg differ