create saw assets and saw recipes

This commit is contained in:
Mohammad-Ali Minaie
2018-11-25 19:27:49 -05:00
parent 0752fecfdc
commit 9a8fe16df4
27 changed files with 2479 additions and 739 deletions

View File

@@ -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

View File

@@ -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<CrucibleCrafting> CRUCIBLE_CRAFTING = GameRegistry.findRegistry(CrucibleCrafting.class);
public static final IForgeRegistry<WorkbenchCrafting> WORKBENCH_CRAFTING = GameRegistry.findRegistry(WorkbenchCrafting.class);
public static final IForgeRegistry<MachineSawCrafting> MACHINE_SAW_CRAFTING = GameRegistry.findRegistry(MachineSawCrafting.class);
}
}

View File

@@ -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)
{

View File

@@ -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();
}
}
}

View File

@@ -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<ItemStack> gearboxList = NonNullList.<ItemStack>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);
}
}
}
}
}

View File

@@ -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<ItemStack> 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<ItemStack> 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;
}
}
}

View File

@@ -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<MachineSawCrafting> { //extends AbstractCrafting<CrucibleCrafting> {
// ***************************************************************************** //
// Recipe Handler CrucibleHandler
// ***************************************************************************** //
public static final String RECIPE_PREFIX = "machine_saw";
public static final IForgeRegistry<MachineSawCrafting> REGISTRY = ModInfo.Registries.MACHINE_SAW_CRAFTING;
public static Collection<MachineSawCrafting> getRECIPES() {
return RECIPES;
}
public static final Collection<MachineSawCrafting> RECIPES = REGISTRY.getValuesCollection();
private Ingredient input;
private List<ItemStack> output;
public Ingredient getInput() {
return input;
}
public void setInput(Ingredient input) {
this.input = input;
}
public List<ItemStack> getOutput() {
return output;
}
public void setOutput(List<ItemStack> output) {
this.output = output;
}
public MachineSawCrafting(Ingredient input, List<ItemStack> 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<MachineSawCrafting> 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));
}
}

View File

@@ -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<MachineSawCrafting> event) {
PrimalAPI.logger(7, "Registering Recipes: " + MachineSawCrafting.RECIPE_PREFIX);
final IForgeRegistry<MachineSawCrafting> 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"));
}
}

View File

@@ -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)

View File

@@ -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();
}
}

View File

@@ -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)

View File

@@ -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());
}

View File

@@ -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<? extends TileEntity> tile_class, String baseName) {

View File

@@ -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<TileMachineSaw> {
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<ItemStack> gearList = NonNullList.<ItemStack>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<ItemStack> gearList = NonNullList.<ItemStack>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<ItemStack> gearList = NonNullList.<ItemStack>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);
}*/

View File

@@ -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<TileReds
private static int time =0;
//private static float k =60;
private static float angle = 17;
private boolean sound1;
private boolean sound2;
private boolean getSound1() {
return sound1;
}
private void setSound1(boolean sound) {
this.sound1 = sound;
}
private boolean getSound2() {
return sound2;
}
private void setSound2(boolean sound) {
this.sound2 = sound;
}
private void doPistonRotations(int t, float kon, float a, float pk, float testa, World world, BlockPos pos){
private void doPistonRotations(int t, float kon, float a, float pk, float testa){
if( pk >= 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<TileReds
{
BlockPos pos = tile.getPos();
IBlockState state = this.getWorld().getBlockState(pos);
World world = tile.getWorld();
ItemStack crank = new ItemStack(ModItems.woodcrank);
ItemStack arm = new ItemStack(ModItems.woodpistonarm);
ItemStack piston = new ItemStack(ModItems.woodpiston);
ItemStack gearbox = tile.getSlotStack(0);
ItemStack slotTool = tile.getSlotStack(1);
@@ -64,19 +103,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
time = (int) (tile.getWorld().getTotalWorldTime() % k);
float percentK = time / k;
float slowk = (60 - (tile.getRedstone()*2))*0.25F;
float slowTime = (int) (tile.getWorld().getTotalWorldTime() % slowk);
float percentKSlow = slowTime / slowk;
float fastk = (60 - (tile.getRedstone()*2))*4F;
float fastTime = (int) (tile.getWorld().getTotalWorldTime() % fastk);
float percentKFast = fastTime / fastk;
float percentKMed = percentK;
//System.out.println(k + ":" + time + ":" + percentK);
if (state.getBlock() instanceof RedstoneEngine) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glScalef(1.0f, 1.0f, 1.0f);
@@ -111,7 +138,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
GL11.glPushMatrix();
GL11.glTranslated((3/32D), 16/32D, 15/16D);
if(state.getValue(PrimalAPI.States.ACTIVE)){
doPistonRotations(time, k, angle, percentK, testAngle);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
}
renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
@@ -123,7 +150,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
if(state.getValue(PrimalAPI.States.ACTIVE)) {
//GL11.glTranslated(0.0, ((3/16D) * Math.cos(Math.toRadians( (360*(time / k))-90) )),
// (3/16D)+((3/16D) * Math.sin(Math.toRadians( (360*(time / k))-90 ))) );
doPistonRotations(time, k, angle, percentK, testAngle);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
GL11.glTranslated(0, 0, tempZ);
}
@@ -141,27 +168,12 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
/***A X L E***/
GL11.glPushMatrix();
float gearMulti = 1;
GL11.glTranslated((16/32D), 16/32D, 16/32D);
//GL11.glRotatef(45, 1.0F, 0.0F, 0.0F);
NonNullList<ItemStack> gearList = NonNullList.<ItemStack>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<TileReds
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);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
}
renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
@@ -196,7 +208,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
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);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
GL11.glTranslated(0, 0, tempZ);
}
renderItem.renderItem(arm, ItemCameraTransforms.TransformType.FIXED);
@@ -218,22 +230,8 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
GL11.glTranslated((16/32D), 16/32D, 16/32D);
GL11.glRotatef(180, 0F, 1F, 0F);
NonNullList<ItemStack> gearList = NonNullList.<ItemStack>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<TileReds
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);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
}
renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
@@ -268,7 +266,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
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);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
GL11.glTranslated(0, 0, tempZ);
}
@@ -291,22 +289,8 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
GL11.glTranslated((16/32D), 16/32D, 16/32D);
GL11.glRotatef(-90, 0F, 1F, 0F);
NonNullList<ItemStack> gearList = NonNullList.<ItemStack>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<TileReds
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);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
}
renderItem.renderItem(piston, ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
@@ -341,7 +325,7 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
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);
doPistonRotations(time, k, angle, percentK, testAngle, world, pos);
GL11.glTranslated(0, 0, tempZ);
}
@@ -364,22 +348,8 @@ public class TileRedstoneEngineRender extends TileEntitySpecialRenderer<TileReds
GL11.glTranslated((16/32D), 16/32D, 16/32D);
GL11.glRotatef(90, 0F, 1F, 0F);
NonNullList<ItemStack> gearList = NonNullList.<ItemStack>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<TileReds
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);
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;
}
}*/
}

View File

@@ -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;
}
}

View File

@@ -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<ItemStack> renderList = NonNullList.<ItemStack>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;
}

View File

@@ -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;

View File

@@ -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 }
}
}

View File

@@ -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 ]
}
}
}

View File

@@ -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 ]
}
}
}

View File

@@ -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" }
}
}
],

View File

@@ -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 ]
}
}
}

View File

@@ -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" ]
}
}
}