Models adapted (3rd/1st person display). Experimental Slab Slices: recipes. Experimental mineal melter concept implementation.
|
@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx8G
|
||||||
version_minecraft=1.12.2
|
version_minecraft=1.12.2
|
||||||
version_forge=14.23.5.2768
|
version_forge=14.23.5.2768
|
||||||
version_jei=4.10.0.198
|
version_jei=4.10.0.198
|
||||||
version_engineersdecor=1.0.9-b2
|
version_engineersdecor=1.0.9-b3
|
||||||
|
|
|
@ -10,7 +10,13 @@ Mod sources for Minecraft version 1.12.2.
|
||||||
----
|
----
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
~ v1.0.9-b2 [A] Added slabs for Clinker Brick, Slag Brick, Rebar Concrete,
|
~ v1.0.9-b3 [A] Added missing recipes for slabs.
|
||||||
|
[A] Added slab slices for IE sheet metals, treated wood,
|
||||||
|
and concretes (stackable "quater-slabs").
|
||||||
|
[M] Updated 1st/3rd person item model rotations/translations.
|
||||||
|
[M] Hardness of valves and furni slightly increased.
|
||||||
|
|
||||||
|
- v1.0.9-b2 [A] Added slabs for Clinker Brick, Slag Brick, Rebar Concrete,
|
||||||
and Stained Clinker. Texture variations like the base blocks.
|
and Stained Clinker. Texture variations like the base blocks.
|
||||||
Allow fast pick-up (see tooltip help or config).
|
Allow fast pick-up (see tooltip help or config).
|
||||||
[F] Fixed lab/electrical furnace initialisation issue (first item
|
[F] Fixed lab/electrical furnace initialisation issue (first item
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
/*
|
||||||
|
* @file BlockDecorDirectedHorizontal.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Smaller directed block with direction set narrowed
|
||||||
|
* to horizontal directions.
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.blocks;
|
||||||
|
|
||||||
|
import net.minecraft.block.BlockHorizontal;
|
||||||
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.properties.PropertyDirection;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.block.SoundType;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.util.EnumHand;
|
||||||
|
import net.minecraft.util.Mirror;
|
||||||
|
import net.minecraft.util.Rotation;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
|
||||||
|
public class BlockDecorDirectedHorizontal extends BlockDecorDirected
|
||||||
|
{
|
||||||
|
public static final PropertyDirection FACING = BlockHorizontal.FACING;
|
||||||
|
|
||||||
|
public BlockDecorDirectedHorizontal(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||||
|
{ super(registryName, config|CFG_HORIZIONTAL, material, hardness, resistance, sound, unrotatedAABB); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateFromMeta(int meta)
|
||||||
|
{ return this.getDefaultState().withProperty(FACING, EnumFacing.byHorizontalIndex(meta & 0x3)); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetaFromState(IBlockState state)
|
||||||
|
{ return state.getValue(FACING).getHorizontalIndex(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BlockStateContainer createBlockState()
|
||||||
|
{ return new BlockStateContainer(this, FACING); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||||
|
{ return AABBs.get(state.getValue(FACING).getIndex() & 0x7); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{ return getBoundingBox(state, world, pos); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState withRotation(IBlockState state, Rotation rot)
|
||||||
|
{ return state; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
|
||||||
|
{ return state; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||||
|
{
|
||||||
|
if((config & CFG_LOOK_PLACEMENT) != 0) {
|
||||||
|
// horizontal placement in direction the player is looking
|
||||||
|
facing = placer.getHorizontalFacing();
|
||||||
|
} else {
|
||||||
|
// horizontal placement on a face
|
||||||
|
facing = ((facing==EnumFacing.UP)||(facing==EnumFacing.DOWN)) ? (placer.getHorizontalFacing()) : facing;
|
||||||
|
}
|
||||||
|
if((config & CFG_OPPOSITE_PLACEMENT)!=0) facing = facing.getOpposite();
|
||||||
|
if(((config & CFG_FLIP_PLACEMENT_SHIFTCLICK) != 0) && (placer.isSneaking())) facing = facing.getOpposite();
|
||||||
|
return getDefaultState().withProperty(FACING, facing);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,698 @@
|
||||||
|
/*
|
||||||
|
* @file BlockDecorMineralSmelter.java
|
||||||
|
* @author Stefan Wilhelm (wile)
|
||||||
|
* @copyright (C) 2019 Stefan Wilhelm
|
||||||
|
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||||
|
*
|
||||||
|
* Small highly insulated stone liquification furnace
|
||||||
|
* (magmatic phase).
|
||||||
|
*/
|
||||||
|
package wile.engineersdecor.blocks;
|
||||||
|
|
||||||
|
import net.minecraft.block.state.BlockFaceShape;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import wile.engineersdecor.ModEngineersDecor;
|
||||||
|
import net.minecraft.block.properties.PropertyInteger;
|
||||||
|
import net.minecraft.block.state.BlockStateContainer;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.SoundType;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.Explosion;
|
||||||
|
import net.minecraft.entity.item.EntityItem;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.init.Items;
|
||||||
|
import net.minecraft.init.SoundEvents;
|
||||||
|
import net.minecraft.item.*;
|
||||||
|
import net.minecraft.inventory.*;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
import net.minecraft.util.text.TextComponentTranslation;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.*;
|
||||||
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
import net.minecraftforge.fluids.FluidRegistry;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||||
|
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||||
|
import net.minecraftforge.fluids.capability.IFluidTankProperties;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class BlockDecorMineralSmelter extends BlockDecorDirectedHorizontal
|
||||||
|
{
|
||||||
|
public static final int PHASE_MAX = 3;
|
||||||
|
public static final PropertyInteger PHASE = PropertyInteger.create("phase", 0, PHASE_MAX);
|
||||||
|
|
||||||
|
public BlockDecorMineralSmelter(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||||
|
{
|
||||||
|
super(registryName, config, material, hardness, resistance, sound, unrotatedAABB);
|
||||||
|
setLightOpacity(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BlockStateContainer createBlockState()
|
||||||
|
{ return new BlockStateContainer(this, FACING, PHASE); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateFromMeta(int meta)
|
||||||
|
{ return super.getStateFromMeta(meta).withProperty(PHASE, (meta>>2) & 0x3); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetaFromState(IBlockState state)
|
||||||
|
{ return super.getMetaFromState(state) | (state.getValue(PHASE)<<2); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||||
|
{ return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand).withProperty(PHASE, 0); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
|
||||||
|
{ return BlockFaceShape.SOLID; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public boolean hasComparatorInputOverride(IBlockState state)
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos)
|
||||||
|
{ return MathHelper.clamp((state.getValue(PHASE)*5), 0, 15); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTileEntity(IBlockState state)
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public TileEntity createTileEntity(World world, IBlockState state)
|
||||||
|
{ return new BlockDecorMineralSmelter.BTileEntity(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
|
||||||
|
{}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||||
|
{
|
||||||
|
if(world.isRemote) return true;
|
||||||
|
BTileEntity te = getTe(world, pos);
|
||||||
|
if(te==null) return super.removedByPlayer(state, world, pos, player, willHarvest);
|
||||||
|
ItemStack st = ItemStack.EMPTY;
|
||||||
|
if(!te.getStackInSlot(1).isEmpty()) {
|
||||||
|
st = te.getStackInSlot(1).copy();
|
||||||
|
} else if(!te.getStackInSlot(0).isEmpty()) {
|
||||||
|
st = te.getStackInSlot(0).copy();
|
||||||
|
}
|
||||||
|
te.reset_process();
|
||||||
|
ItemStack stack = new ItemStack(this, 1);
|
||||||
|
world.spawnEntity(new EntityItem(world, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, stack));
|
||||||
|
world.setBlockToAir(pos);
|
||||||
|
world.removeTileEntity(pos);
|
||||||
|
if(!st.isEmpty()) {
|
||||||
|
st.setCount(1);
|
||||||
|
world.spawnEntity(new EntityItem(world, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, st));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBlockExploded(World world, BlockPos pos, Explosion explosion)
|
||||||
|
{
|
||||||
|
if(world.isRemote) return;
|
||||||
|
BTileEntity te = getTe(world, pos);
|
||||||
|
if(te==null) return;
|
||||||
|
te.reset_process();
|
||||||
|
super.onBlockExploded(world, pos, explosion);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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) return true;
|
||||||
|
if(player.isSneaking()) return false;
|
||||||
|
BTileEntity te = getTe(world, pos);
|
||||||
|
if(te==null) return true;
|
||||||
|
final ItemStack stack = player.getHeldItem(hand);
|
||||||
|
boolean dirty = false;
|
||||||
|
if(te.accepts_lava_container(stack)) {
|
||||||
|
if(stack.isItemEqualIgnoreDurability(BTileEntity.BUCKET_STACK)) { // check how this works with item capabilities or so
|
||||||
|
if(te.fluid_level() >= BTileEntity.MAX_BUCKET_EXTRACT_FLUID_LEVEL) {
|
||||||
|
te.reset_process();
|
||||||
|
player.setHeldItem(hand, BTileEntity.LAVA_BUCKET_STACK.copy());
|
||||||
|
world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL_LAVA, SoundCategory.BLOCKS, 1f, 1f);
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if(stack.getItem() == Items.AIR) {
|
||||||
|
final ItemStack istack = te.getStackInSlot(1).copy();
|
||||||
|
if(te.phase() > BTileEntity.PHASE_WARMUP) player.setFire(1);
|
||||||
|
if(!istack.isEmpty()) {
|
||||||
|
istack.setCount(1);
|
||||||
|
player.setHeldItem(hand, istack);
|
||||||
|
te.reset_process();
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
} else if(te.insert(stack.copy(),false)) {
|
||||||
|
stack.shrink(1);
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
if(dirty) player.inventory.markDirty();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rnd)
|
||||||
|
{
|
||||||
|
if(state.getBlock()!=this) return;
|
||||||
|
EnumParticleTypes particle = EnumParticleTypes.SMOKE_NORMAL;
|
||||||
|
switch(state.getValue(PHASE)) {
|
||||||
|
case BTileEntity.PHASE_WARMUP:
|
||||||
|
return;
|
||||||
|
case BTileEntity.PHASE_HOT:
|
||||||
|
if(rnd.nextInt(10) > 4) return;
|
||||||
|
break;
|
||||||
|
case BTileEntity.PHASE_MAGMABLOCK:
|
||||||
|
if(rnd.nextInt(10) > 7) return;
|
||||||
|
particle = EnumParticleTypes.SMOKE_LARGE;
|
||||||
|
break;
|
||||||
|
case BTileEntity.PHASE_LAVA:
|
||||||
|
if(rnd.nextInt(10) > 2) return;
|
||||||
|
particle = EnumParticleTypes.LAVA;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final double x=0.5+pos.getX(), y=0.5+pos.getY(), z=0.5+pos.getZ();
|
||||||
|
final double xr=rnd.nextDouble()*0.4-0.2, yr=rnd.nextDouble()*0.5, zr=rnd.nextDouble()*0.4-0.2;
|
||||||
|
world.spawnParticle(particle, x+xr, y+yr, z+zr, 0.0, 0.0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private BTileEntity getTe(World world, BlockPos pos)
|
||||||
|
{ final TileEntity te=world.getTileEntity(pos); return (!(te instanceof BTileEntity)) ? (null) : ((BTileEntity)te); }
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Tile entity
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public static class BTileEntity extends TileEntity implements ITickable, ISidedInventory, IEnergyStorage
|
||||||
|
{
|
||||||
|
public static final int TICK_INTERVAL = 20;
|
||||||
|
public static final int MAX_FLUID_LEVEL = 1000;
|
||||||
|
public static final int MAX_BUCKET_EXTRACT_FLUID_LEVEL = 900;
|
||||||
|
public static final int MAX_ENERGY_BUFFER = 32000;
|
||||||
|
public static final int MAX_ENERGY_TRANSFER = 8192;
|
||||||
|
public static final int DEFAULT_ENERGY_CONSUMPTION = 92;
|
||||||
|
public static final int DEFAULT_HEATUP_RATE = 2; // -> 50s for one smelting process
|
||||||
|
public static final int PHASE_WARMUP = 0;
|
||||||
|
public static final int PHASE_HOT = 1;
|
||||||
|
public static final int PHASE_MAGMABLOCK = 2;
|
||||||
|
public static final int PHASE_LAVA = 3;
|
||||||
|
private static final ItemStack MAGMA_STACK = new ItemStack(Blocks.MAGMA);
|
||||||
|
private static final ItemStack BUCKET_STACK = new ItemStack(Items.BUCKET);
|
||||||
|
private static final ItemStack LAVA_BUCKET_STACK = new ItemStack(Items.LAVA_BUCKET);
|
||||||
|
private static int energy_consumption = DEFAULT_ENERGY_CONSUMPTION;
|
||||||
|
private static int heatup_rate = DEFAULT_HEATUP_RATE;
|
||||||
|
private static int cooldown_rate = 1;
|
||||||
|
private static Set<Item> accepted_minerals = new HashSet<Item>();
|
||||||
|
private static Set<Item> accepted_lava_contrainers = new HashSet<Item>();
|
||||||
|
|
||||||
|
private int tick_timer_;
|
||||||
|
private int energy_stored_;
|
||||||
|
private int progress_;
|
||||||
|
private int fluid_level_;
|
||||||
|
private boolean force_block_update_;
|
||||||
|
private NonNullList<ItemStack> stacks_ = NonNullList.<ItemStack>withSize(2, ItemStack.EMPTY);
|
||||||
|
|
||||||
|
static {
|
||||||
|
// Mineals: No Nether brick (made of Netherrack),
|
||||||
|
// no glazed terracotta, no obsidian, no stairs, slabs etc.
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.COBBLESTONE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.STONE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.SANDSTONE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.PRISMARINE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.END_STONE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.MOSSY_COBBLESTONE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.RED_SANDSTONE));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.QUARTZ_BLOCK));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.BRICK_BLOCK));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.END_BRICKS));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.HARDENED_CLAY));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.STAINED_HARDENED_CLAY));
|
||||||
|
accepted_minerals.add(Item.getItemFromBlock(Blocks.STONEBRICK));
|
||||||
|
// Lava containers
|
||||||
|
accepted_lava_contrainers.add(Items.BUCKET);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void on_config(int energy_consumption, int heatup_per_second)
|
||||||
|
{
|
||||||
|
energy_consumption = MathHelper.clamp(energy_consumption, 32, 4096);
|
||||||
|
heatup_rate = MathHelper.clamp(heatup_per_second, 1, 5);
|
||||||
|
cooldown_rate = MathHelper.clamp(heatup_per_second/2, 1, 5);
|
||||||
|
ModEngineersDecor.logger.info("Config mineal smelter energy consumption:" + energy_consumption + "rf/t, heat-up rate: " + heatup_rate + "%/s.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public BTileEntity()
|
||||||
|
{ reset_process(); }
|
||||||
|
|
||||||
|
public int progress()
|
||||||
|
{ return progress_; }
|
||||||
|
|
||||||
|
public int phase()
|
||||||
|
{
|
||||||
|
if(progress_ >= 100) return PHASE_LAVA;
|
||||||
|
if(progress_ >= 90) return PHASE_MAGMABLOCK;
|
||||||
|
if(progress_ >= 5) return PHASE_HOT;
|
||||||
|
return PHASE_WARMUP;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int fluid_level()
|
||||||
|
{ return fluid_level_; }
|
||||||
|
|
||||||
|
public int fluid_level_drain(int amount)
|
||||||
|
{ amount = MathHelper.clamp(amount, 0, fluid_level_); fluid_level_ -= amount; return amount; }
|
||||||
|
|
||||||
|
public int comparator_signal()
|
||||||
|
{ return phase() * 5; } // -> 0..15
|
||||||
|
|
||||||
|
private boolean accepts_lava_container(ItemStack stack)
|
||||||
|
{ return accepted_lava_contrainers.contains(stack.getItem()); }
|
||||||
|
|
||||||
|
private boolean accepts_input(ItemStack stack)
|
||||||
|
{
|
||||||
|
if(!stacks_.get(0).isEmpty()) return false;
|
||||||
|
if(fluid_level() > MAX_BUCKET_EXTRACT_FLUID_LEVEL) {
|
||||||
|
return accepts_lava_container(stack);
|
||||||
|
} else {
|
||||||
|
return accepted_minerals.contains(stack.getItem());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean insert(final ItemStack stack, boolean simulate)
|
||||||
|
{
|
||||||
|
if(stack.isEmpty() || (!accepts_input(stack))) return false;
|
||||||
|
if(!simulate) {
|
||||||
|
ItemStack st = stack.copy();
|
||||||
|
st.setCount(st.getMaxStackSize());
|
||||||
|
stacks_.set(0, st);
|
||||||
|
if(!accepts_lava_container(stack)) progress_ = 0;
|
||||||
|
force_block_update_ = true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack extract(boolean simulate)
|
||||||
|
{
|
||||||
|
ItemStack stack = stacks_.get(1).copy();
|
||||||
|
if(stack.isEmpty()) return ItemStack.EMPTY;
|
||||||
|
if(!simulate) reset_process();
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reset_process()
|
||||||
|
{
|
||||||
|
stacks_ = NonNullList.<ItemStack>withSize(2, ItemStack.EMPTY);
|
||||||
|
force_block_update_ = true;
|
||||||
|
fluid_level_ = 0;
|
||||||
|
tick_timer_ = 0;
|
||||||
|
progress_ = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void readnbt(NBTTagCompound nbt)
|
||||||
|
{
|
||||||
|
energy_stored_ = nbt.getInteger("energy");
|
||||||
|
progress_ = nbt.getInteger("progress");
|
||||||
|
fluid_level_ = nbt.getInteger("fluidlevel");
|
||||||
|
ItemStackHelper.loadAllItems(nbt, stacks_);
|
||||||
|
if(stacks_.size() != 1) reset_process();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void writenbt(NBTTagCompound nbt)
|
||||||
|
{
|
||||||
|
nbt.setInteger("energy", MathHelper.clamp(energy_stored_,0 , MAX_ENERGY_BUFFER));
|
||||||
|
nbt.setInteger("progress", MathHelper.clamp(progress_,0 , 100));
|
||||||
|
nbt.setInteger("fluidlevel", MathHelper.clamp(fluid_level_,0 , MAX_FLUID_LEVEL));
|
||||||
|
ItemStackHelper.saveAllItems(nbt, stacks_);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TileEntity ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldRefresh(World world, BlockPos pos, IBlockState os, IBlockState ns)
|
||||||
|
{ return (os.getBlock() != ns.getBlock()) || (!(ns.getBlock() instanceof BlockDecorMineralSmelter)); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound compound)
|
||||||
|
{ super.readFromNBT(compound); readnbt(compound); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound writeToNBT(NBTTagCompound compound)
|
||||||
|
{ super.writeToNBT(compound); writenbt(compound); return compound; }
|
||||||
|
|
||||||
|
// IWorldNamable ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName()
|
||||||
|
{ final Block block=getBlockType(); return (block!=null) ? (block.getTranslationKey() + ".name") : (""); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasCustomName()
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ITextComponent getDisplayName()
|
||||||
|
{ return new TextComponentTranslation(getName(), new Object[0]); }
|
||||||
|
|
||||||
|
// IInventory ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSizeInventory()
|
||||||
|
{ return stacks_.size(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty()
|
||||||
|
{ for(ItemStack stack: stacks_) { if(!stack.isEmpty()) return false; } return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getStackInSlot(int index)
|
||||||
|
{ return ((index >= 0) && (index < getSizeInventory())) ? stacks_.get(index) : ItemStack.EMPTY; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack decrStackSize(int index, int count)
|
||||||
|
{ return ItemStackHelper.getAndSplit(stacks_, index, count); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack removeStackFromSlot(int index)
|
||||||
|
{ return ItemStackHelper.getAndRemove(stacks_, index); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInventorySlotContents(int index, ItemStack stack)
|
||||||
|
{ if(stack.getCount()>getInventoryStackLimit()){stack.setCount(getInventoryStackLimit());} stacks_.set(index, stack); markDirty(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInventoryStackLimit()
|
||||||
|
{ return 1; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markDirty()
|
||||||
|
{ super.markDirty(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isUsableByPlayer(EntityPlayer player)
|
||||||
|
{ return ((world.getTileEntity(pos) == this) && (player.getDistanceSq(pos.getX()+0.5d, pos.getY()+0.5d, pos.getZ()+0.5d) <= 64.0d)); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void openInventory(EntityPlayer player)
|
||||||
|
{}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void closeInventory(EntityPlayer player)
|
||||||
|
{ markDirty(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValidForSlot(int index, ItemStack stack)
|
||||||
|
{ return ((index==0) && accepts_input(stack)) || (index==1); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getField(int id)
|
||||||
|
{ return 0; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setField(int id, int value)
|
||||||
|
{}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFieldCount()
|
||||||
|
{ return 0; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear()
|
||||||
|
{ reset_process(); }
|
||||||
|
|
||||||
|
// ISidedInventory ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
private static final int[] SIDED_INV_SLOTS = new int[] {0,1};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSlotsForFace(EnumFacing side)
|
||||||
|
{ return SIDED_INV_SLOTS; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canInsertItem(int index, ItemStack stack, EnumFacing direction)
|
||||||
|
{ return (index==0) && isItemValidForSlot(index, stack); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction)
|
||||||
|
{ return (index==1) && (!stacks_.get(1).isEmpty()); }
|
||||||
|
|
||||||
|
// IEnergyStorage ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canExtract()
|
||||||
|
{ return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canReceive()
|
||||||
|
{ return true; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxEnergyStored()
|
||||||
|
{ return MAX_ENERGY_BUFFER; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnergyStored()
|
||||||
|
{ return energy_stored_; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int extractEnergy(int maxExtract, boolean simulate)
|
||||||
|
{ return 0; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int receiveEnergy(int maxReceive, boolean simulate)
|
||||||
|
{
|
||||||
|
if(energy_stored_ >= MAX_ENERGY_BUFFER) return 0;
|
||||||
|
int n = Math.min(maxReceive, (MAX_ENERGY_BUFFER - energy_stored_));
|
||||||
|
if(n > MAX_ENERGY_TRANSFER) n = MAX_ENERGY_TRANSFER;
|
||||||
|
if(!simulate) {energy_stored_ += n; markDirty(); }
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IItemHandler --------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
protected static class BItemHandler implements IItemHandler
|
||||||
|
{
|
||||||
|
private BTileEntity te;
|
||||||
|
|
||||||
|
BItemHandler(BTileEntity te)
|
||||||
|
{ this.te = te; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSlots()
|
||||||
|
{ return 2; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSlotLimit(int index)
|
||||||
|
{ return te.getInventoryStackLimit(); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValid(int slot, @Nonnull ItemStack stack)
|
||||||
|
{ return te.isItemValidForSlot(slot, stack); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public ItemStack insertItem(int index, @Nonnull ItemStack stack, boolean simulate)
|
||||||
|
{
|
||||||
|
ItemStack rstack = stack.copy();
|
||||||
|
if((index!=0) || (!te.insert(stack.copy(), simulate))) return rstack;
|
||||||
|
rstack.shrink(1);
|
||||||
|
return rstack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public ItemStack extractItem(int index, int amount, boolean simulate)
|
||||||
|
{ return (index!=1) ? ItemStack.EMPTY : te.extract(simulate); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public ItemStack getStackInSlot(int index)
|
||||||
|
{ return te.getStackInSlot(index); }
|
||||||
|
}
|
||||||
|
|
||||||
|
private BItemHandler item_handler_ = new BItemHandler(this);
|
||||||
|
|
||||||
|
// IFluidHandler --------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
private static class BFluidHandler implements IFluidHandler, IFluidTankProperties
|
||||||
|
{
|
||||||
|
private final FluidStack lava;
|
||||||
|
private final BTileEntity te;
|
||||||
|
private final IFluidTankProperties[] props_ = {this};
|
||||||
|
BFluidHandler(BTileEntity te) { this.te=te; lava = new FluidStack(FluidRegistry.LAVA, 1); }
|
||||||
|
@Override @Nullable public FluidStack getContents() { return new FluidStack(lava, te.fluid_level()); }
|
||||||
|
@Override public IFluidTankProperties[] getTankProperties() { return props_; }
|
||||||
|
@Override public int fill(FluidStack resource, boolean doFill) { return 0; }
|
||||||
|
@Override public int getCapacity() { return 1000; }
|
||||||
|
@Override public boolean canFill() { return false; }
|
||||||
|
@Override public boolean canDrain() { return true; }
|
||||||
|
@Override public boolean canFillFluidType(FluidStack fluidStack) { return false; }
|
||||||
|
@Override public boolean canDrainFluidType(FluidStack fluidStack) { return fluidStack.isFluidEqual(lava); }
|
||||||
|
|
||||||
|
@Override @Nullable public FluidStack drain(FluidStack resource, boolean doDrain)
|
||||||
|
{
|
||||||
|
if((te.fluid_level() <= 0) || (!resource.isFluidEqual(lava))) return null;
|
||||||
|
FluidStack fs = getContents();
|
||||||
|
if(doDrain) te.fluid_level_drain(fs.amount);
|
||||||
|
return fs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override @Nullable public FluidStack drain(int maxDrain, boolean doDrain)
|
||||||
|
{
|
||||||
|
if(te.fluid_level() <= 0) return null;
|
||||||
|
maxDrain = (doDrain) ? (te.fluid_level_drain(maxDrain)) : (Math.min(maxDrain, te.fluid_level()));
|
||||||
|
return new FluidStack(FluidRegistry.LAVA, maxDrain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final BFluidHandler fluid_handler_ = new BFluidHandler(this);
|
||||||
|
|
||||||
|
// Capability export ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasCapability(Capability<?> cap, EnumFacing facing)
|
||||||
|
{ return ((cap==CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||||
|
|| (cap==CapabilityEnergy.ENERGY)
|
||||||
|
|| (cap==CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||||
|
|| (super.hasCapability(cap, facing))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Nullable
|
||||||
|
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
|
||||||
|
{
|
||||||
|
if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||||
|
return (T)item_handler_;
|
||||||
|
} else if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
|
||||||
|
return (T)fluid_handler_;
|
||||||
|
} else if(capability == CapabilityEnergy.ENERGY) {
|
||||||
|
return (T)this;
|
||||||
|
} else {
|
||||||
|
return super.getCapability(capability, facing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ITickable ------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update()
|
||||||
|
{
|
||||||
|
if(world.isRemote) return;
|
||||||
|
if(--tick_timer_ > 0) return;
|
||||||
|
tick_timer_ = TICK_INTERVAL;
|
||||||
|
boolean dirty = false;
|
||||||
|
final int last_phase = phase();
|
||||||
|
final ItemStack istack = stacks_.get(0);
|
||||||
|
if(istack.isEmpty() && (fluid_level()==0)) {
|
||||||
|
progress_ = 0;
|
||||||
|
} else if((energy_stored_ <= 0) || (world.isBlockPowered(pos))) {
|
||||||
|
progress_ = MathHelper.clamp(progress_-cooldown_rate, 0,100);
|
||||||
|
} else if(progress_ >= 100) {
|
||||||
|
progress_ = 100;
|
||||||
|
energy_stored_ = MathHelper.clamp(energy_stored_-((energy_consumption*TICK_INTERVAL)/20), 0, MAX_ENERGY_BUFFER);
|
||||||
|
} else {
|
||||||
|
energy_stored_ = MathHelper.clamp(energy_stored_-(energy_consumption*TICK_INTERVAL), 0, MAX_ENERGY_BUFFER);
|
||||||
|
progress_ = MathHelper.clamp(progress_+heatup_rate, 0, 100);
|
||||||
|
}
|
||||||
|
int new_phase = phase();
|
||||||
|
boolean is_lava_container = accepts_lava_container(istack);
|
||||||
|
if(is_lava_container || (new_phase != last_phase)) {
|
||||||
|
if(is_lava_container) {
|
||||||
|
// That stays in the slot until its extracted or somone takes it out.
|
||||||
|
if(istack.isItemEqual(BUCKET_STACK)) {
|
||||||
|
if(!stacks_.get(1).isItemEqual(LAVA_BUCKET_STACK)) {
|
||||||
|
if(fluid_level() >= MAX_BUCKET_EXTRACT_FLUID_LEVEL) {
|
||||||
|
stacks_.set(1, LAVA_BUCKET_STACK);
|
||||||
|
world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL_LAVA, SoundCategory.BLOCKS, 0.2f, 1.3f);
|
||||||
|
} else {
|
||||||
|
stacks_.set(1, istack.copy());
|
||||||
|
}
|
||||||
|
dirty = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stacks_.set(1, istack.copy());
|
||||||
|
// Out stack -> Somehow the filled container or container with fluid+fluid_level().
|
||||||
|
}
|
||||||
|
} else if(new_phase > last_phase) {
|
||||||
|
switch(new_phase) {
|
||||||
|
case PHASE_LAVA:
|
||||||
|
fluid_level_ = MAX_FLUID_LEVEL;
|
||||||
|
stacks_.set(1, ItemStack.EMPTY);
|
||||||
|
stacks_.set(0, ItemStack.EMPTY);
|
||||||
|
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_AMBIENT, SoundCategory.BLOCKS, 0.2f, 1.0f);
|
||||||
|
dirty = true;
|
||||||
|
break;
|
||||||
|
case PHASE_MAGMABLOCK:
|
||||||
|
stacks_.set(1, MAGMA_STACK.copy());
|
||||||
|
world.playSound(null, pos, SoundEvents.BLOCK_FIRE_AMBIENT, SoundCategory.BLOCKS, 0.2f, 0.8f);
|
||||||
|
dirty = true;
|
||||||
|
break;
|
||||||
|
case PHASE_HOT:
|
||||||
|
world.playSound(null, pos, SoundEvents.BLOCK_FIRE_AMBIENT, SoundCategory.BLOCKS, 0.2f, 0.8f);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch(new_phase) {
|
||||||
|
case PHASE_MAGMABLOCK:
|
||||||
|
stacks_.set(0, (fluid_level_ >= MAX_BUCKET_EXTRACT_FLUID_LEVEL) ? (MAGMA_STACK.copy()) : (ItemStack.EMPTY));
|
||||||
|
stacks_.set(1, stacks_.get(0).copy());
|
||||||
|
fluid_level_ = 0;
|
||||||
|
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_EXTINGUISH, SoundCategory.BLOCKS, 0.5f, 1.1f);
|
||||||
|
dirty = true;
|
||||||
|
break;
|
||||||
|
case PHASE_HOT:
|
||||||
|
if(istack.isItemEqual(MAGMA_STACK)) {
|
||||||
|
stacks_.set(1, new ItemStack(Blocks.OBSIDIAN));
|
||||||
|
} else {
|
||||||
|
stacks_.set(1, new ItemStack(Blocks.COBBLESTONE));
|
||||||
|
}
|
||||||
|
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_EXTINGUISH, SoundCategory.BLOCKS, 0.3f, 0.9f);
|
||||||
|
dirty = true;
|
||||||
|
break;
|
||||||
|
case PHASE_WARMUP:
|
||||||
|
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_EXTINGUISH, SoundCategory.BLOCKS, 0.3f, 0.7f);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
IBlockState state = world.getBlockState(pos);
|
||||||
|
if((state.getBlock() instanceof BlockDecorMineralSmelter) && (force_block_update_ || (state.getValue(PHASE) != new_phase))) {
|
||||||
|
state = state.withProperty(PHASE, new_phase);
|
||||||
|
world.setBlockState(pos, state,3|16);
|
||||||
|
world.notifyNeighborsOfStateChange(pos, state.getBlock(),false);
|
||||||
|
force_block_update_ = false;
|
||||||
|
}
|
||||||
|
if(dirty) markDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -205,7 +205,7 @@ public class ModBlocks
|
||||||
"straight_pipe_valve",
|
"straight_pipe_valve",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT,
|
BlockDecor.CFG_CUTOUT,
|
||||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ public class ModBlocks
|
||||||
"straight_pipe_valve_redstone",
|
"straight_pipe_valve_redstone",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
||||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ public class ModBlocks
|
||||||
"straight_pipe_valve_redstone_analog",
|
"straight_pipe_valve_redstone_analog",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED|BlockDecor.CFG_ANALOG,
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED|BlockDecor.CFG_ANALOG,
|
||||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -229,10 +229,31 @@ public class ModBlocks
|
||||||
"passive_fluid_accumulator",
|
"passive_fluid_accumulator",
|
||||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||||
BlockDecor.CFG_CUTOUT,
|
BlockDecor.CFG_CUTOUT,
|
||||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static final BlockDecorWasteIncinerator SMALL_WASTE_INCINERATOR = new BlockDecorWasteIncinerator(
|
||||||
|
"small_waste_incinerator",
|
||||||
|
BlockDecor.CFG_DEFAULT|BlockDecor.CFG_ELECTRICAL,
|
||||||
|
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||||
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||||
|
);
|
||||||
|
|
||||||
|
public static final BlockDecorDropper FACTORY_DROPPER = new BlockDecorDropper(
|
||||||
|
"factory_dropper",
|
||||||
|
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
||||||
|
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||||
|
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,15)
|
||||||
|
);
|
||||||
|
|
||||||
|
public static final BlockDecorMineralSmelter SMALL_MINERAL_SMELTER = new BlockDecorMineralSmelter(
|
||||||
|
"small_mineral_smelter",
|
||||||
|
BlockDecor.CFG_LOOK_PLACEMENT,
|
||||||
|
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||||
|
ModAuxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
|
||||||
|
);
|
||||||
|
|
||||||
public static final BlockDecorDirected SIGN_HOTWIRE = new BlockDecorDirected(
|
public static final BlockDecorDirected SIGN_HOTWIRE = new BlockDecorDirected(
|
||||||
"sign_hotwire",
|
"sign_hotwire",
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT|(1<<BlockDecor.CFG_LIGHT_VALUE_SHIFT),
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT|(1<<BlockDecor.CFG_LIGHT_VALUE_SHIFT),
|
||||||
|
@ -261,20 +282,6 @@ public class ModBlocks
|
||||||
ModAuxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
|
ModAuxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
|
||||||
);
|
);
|
||||||
|
|
||||||
public static final BlockDecorWasteIncinerator SMALL_WASTE_INCINERATOR = new BlockDecorWasteIncinerator(
|
|
||||||
"small_waste_incinerator",
|
|
||||||
BlockDecor.CFG_DEFAULT|BlockDecor.CFG_ELECTRICAL,
|
|
||||||
Material.IRON, 0.3f, 15f, SoundType.METAL,
|
|
||||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
|
||||||
);
|
|
||||||
|
|
||||||
public static final BlockDecorDropper FACTORY_DROPPER = new BlockDecorDropper(
|
|
||||||
"factory_dropper",
|
|
||||||
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
|
||||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
|
||||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,15)
|
|
||||||
);
|
|
||||||
|
|
||||||
public static final BlockDecorDirected SIGN_FACTORY_AREA = new BlockDecorDirected(
|
public static final BlockDecorDirected SIGN_FACTORY_AREA = new BlockDecorDirected(
|
||||||
"sign_factoryarea",
|
"sign_factoryarea",
|
||||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
|
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
|
||||||
|
@ -356,6 +363,10 @@ public class ModBlocks
|
||||||
BlockDecorDropper.BTileEntity.class, "te_factory_dropper"
|
BlockDecorDropper.BTileEntity.class, "te_factory_dropper"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
private static final TileEntityRegistrationData SMALL_MINERAL_SMELTER_TEI = new TileEntityRegistrationData(
|
||||||
|
BlockDecorMineralSmelter.BTileEntity.class, "te_small_mineral_smelter"
|
||||||
|
);
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
//-- Registration list
|
//-- Registration list
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -406,17 +417,17 @@ public class ModBlocks
|
||||||
THICK_STEEL_POLE_HEAD,
|
THICK_STEEL_POLE_HEAD,
|
||||||
STEEL_DOUBLE_T_SUPPORT,
|
STEEL_DOUBLE_T_SUPPORT,
|
||||||
SIGN_HOTWIRE, SIGN_DANGER, SIGN_DEFENSE, SIGN_FACTORY_AREA, SIGN_MODLOGO,
|
SIGN_HOTWIRE, SIGN_DANGER, SIGN_DEFENSE, SIGN_FACTORY_AREA, SIGN_MODLOGO,
|
||||||
};
|
|
||||||
|
|
||||||
private static final Object dev_content[] = {
|
|
||||||
SIGN_MINDSTEP,
|
|
||||||
PANZERGLASS_SLAB, // check if another class is needed due to is_side_visible
|
|
||||||
// handling not sure yet ...
|
|
||||||
HALFSLAB_REBARCONCRETE, HALFSLAB_CONCRETE, HALFSLAB_TREATEDWOOD,
|
HALFSLAB_REBARCONCRETE, HALFSLAB_CONCRETE, HALFSLAB_TREATEDWOOD,
|
||||||
HALFSLAB_SHEETMETALIRON, HALFSLAB_SHEETMETALSTEEL, HALFSLAB_SHEETMETALCOPPER,
|
HALFSLAB_SHEETMETALIRON, HALFSLAB_SHEETMETALSTEEL, HALFSLAB_SHEETMETALCOPPER,
|
||||||
HALFSLAB_SHEETMETALGOLD, HALFSLAB_SHEETMETALALUMINIUM,
|
HALFSLAB_SHEETMETALGOLD, HALFSLAB_SHEETMETALALUMINIUM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static final Object dev_content[] = {
|
||||||
|
SMALL_MINERAL_SMELTER, SMALL_MINERAL_SMELTER_TEI,
|
||||||
|
PANZERGLASS_SLAB, // check if another class is needed due to is_side_visible
|
||||||
|
SIGN_MINDSTEP,
|
||||||
|
};
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
//-- Init
|
//-- Init
|
||||||
//--------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "engineersdecor:furnace/small_mineral_smelter_model"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"normal": [{}],
|
||||||
|
"inventory": [{}],
|
||||||
|
"facing": { "north": {"y":0}, "south": {"y":180}, "west": {"y":-90}, "east": {"y":90} },
|
||||||
|
"phase": {
|
||||||
|
"0":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s0" } },
|
||||||
|
"1":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s1" } },
|
||||||
|
"2":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s2" } },
|
||||||
|
"3":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s3" } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -145,6 +145,11 @@ tile.engineersdecor.factory_dropper.help=§6Dropper suitable for advanced factor
|
||||||
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
||||||
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
||||||
simultaneously. Click on all elements in the GUI to see how it works.
|
simultaneously. Click on all elements in the GUI to see how it works.
|
||||||
|
tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||||
|
tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulation electrical stone melting furnace.§r\n\
|
||||||
|
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||||
|
miniturized device size the process is rather inefficient - much time and \
|
||||||
|
energy is needed to liquefy a stone block.
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
||||||
tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||||
|
|
|
@ -140,6 +140,11 @@ tile.engineersdecor.factory_dropper.help=§6Выбрасыватель подх
|
||||||
Триггерные кнопки симуляции для тестирования. Предварительно открывает дверцу затвора, \
|
Триггерные кнопки симуляции для тестирования. Предварительно открывает дверцу затвора, \
|
||||||
когда выполняются условия внутреннего запуска. Сбрасывает все соответствующие стеки одновременно. \
|
когда выполняются условия внутреннего запуска. Сбрасывает все соответствующие стеки одновременно. \
|
||||||
Нажмите на все элементы в GUI, чтобы увидеть, как это работает.
|
Нажмите на все элементы в GUI, чтобы увидеть, как это работает.
|
||||||
|
tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||||
|
#tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulation electrical stone melting furnace.§r\n\
|
||||||
|
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||||
|
miniturized device size the process is rather inefficient - much time and \
|
||||||
|
energy is needed to liquefy a stone block.
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Табличка с надписью (Логотип Engineer's decor)
|
tile.engineersdecor.sign_decor.name=Табличка с надписью (Логотип Engineer's decor)
|
||||||
tile.engineersdecor.sign_decor.help=§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.
|
tile.engineersdecor.sign_decor.help=§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.
|
||||||
|
|
|
@ -143,6 +143,11 @@ tile.engineersdecor.factory_dropper.name=Factory Dropper
|
||||||
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
||||||
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
||||||
simultaneously. Click on all elements in the GUI to see how it works.
|
simultaneously. Click on all elements in the GUI to see how it works.
|
||||||
|
tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||||
|
#tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulation electrical stone melting furnace.§r\n\
|
||||||
|
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||||
|
miniturized device size the process is rather inefficient - much time and \
|
||||||
|
energy is needed to liquefy a stone block.
|
||||||
#-----------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------
|
||||||
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
||||||
#tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
#tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||||
|
|
|
@ -102,6 +102,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [15, 21, 0],
|
||||||
|
"translation": [2.25, -1.25, -2.5],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -94,7 +94,13 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [85, 3, -10],
|
||||||
|
"translation": [1.75, -0.75, -2.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
|
"translation": [0, -0.75, 0],
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"front": "engineersdecor:blocks/furnace/small_mineral_smelter_front_s0",
|
||||||
|
"top": "engineersdecor:blocks/furnace/small_mineral_smelter_top",
|
||||||
|
"side": "engineersdecor:blocks/furnace/small_mineral_smelter_side",
|
||||||
|
"particle": "engineersdecor:blocks/furnace/small_mineral_smelter_side",
|
||||||
|
"bottom": "engineersdecor:blocks/furnace/small_mineral_smelter_bottom"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [1, 1, 1],
|
||||||
|
"to": [15, 15, 15],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#side"},
|
||||||
|
"east": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#front"},
|
||||||
|
"west": {"texture": "#side"},
|
||||||
|
"up": {"texture": "#front"},
|
||||||
|
"down": {"texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [0, 15, 0],
|
||||||
|
"to": [16, 16, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#side"},
|
||||||
|
"east": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#front"},
|
||||||
|
"west": {"texture": "#side"},
|
||||||
|
"up": {"texture": "#top"},
|
||||||
|
"down": {"texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [0, 1, 2],
|
||||||
|
"to": [1, 15, 14],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#front"},
|
||||||
|
"west": {"texture": "#side"},
|
||||||
|
"up": {"texture": "#front"},
|
||||||
|
"down": {"texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [15, 1, 2],
|
||||||
|
"to": [16, 15, 14],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#side"},
|
||||||
|
"east": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#front"},
|
||||||
|
"up": {"texture": "#front"},
|
||||||
|
"down": {"texture": "#top"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 1, 0],
|
||||||
|
"to": [14, 15, 1],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#side"},
|
||||||
|
"east": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#side"},
|
||||||
|
"west": {"texture": "#side"},
|
||||||
|
"up": {"texture": "#side"},
|
||||||
|
"down": {"texture": "#side"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 1, 15],
|
||||||
|
"to": [14, 15, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#front"},
|
||||||
|
"east": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#front"},
|
||||||
|
"west": {"texture": "#side"},
|
||||||
|
"up": {"texture": "#front"},
|
||||||
|
"down": {"texture": "#front"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [0, 0, 0],
|
||||||
|
"to": [16, 1, 16],
|
||||||
|
"faces": {
|
||||||
|
"north": {"texture": "#side"},
|
||||||
|
"east": {"texture": "#side"},
|
||||||
|
"south": {"texture": "#front"},
|
||||||
|
"west": {"texture": "#side"},
|
||||||
|
"up": {"texture": "#bottom"},
|
||||||
|
"down": {"texture": "#bottom"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"ground": {
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,5 +13,27 @@
|
||||||
"south": {"texture": "#glass"}
|
"south": {"texture": "#glass"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"display": {
|
||||||
|
"ground": {
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.9, 0.9, 0.9],
|
||||||
|
"translation": [ 3, -8, -3]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [3, 69, 23],
|
||||||
|
"translation": [1, 1, -2.25],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [0, -61, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -61,6 +61,15 @@
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"scale": [0.5, 0.5, 0.5]
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [3, 69, 23],
|
||||||
|
"translation": [1, 1, -2.25],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [0, -61, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -129,6 +129,14 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [24, -27, 10],
|
||||||
|
"translation": [-0.75, 2.25, 0.5],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [-3, 18, 0]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,45 +9,67 @@
|
||||||
"from": [1, 0, 6.5],
|
"from": [1, 0, 6.5],
|
||||||
"to": [15, 1, 9.5],
|
"to": [15, 1, 9.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"texture": "#frame"},
|
"north": {"uv": [1, 15, 15, 16], "texture": "#frame"},
|
||||||
"south": {"texture": "#frame"},
|
"south": {"uv": [1, 15, 15, 16], "texture": "#frame"},
|
||||||
"up": {"texture": "#frame"},
|
"up": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"},
|
||||||
"down": {"texture": "#frame"}
|
"down": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [0, 0, 6.5],
|
"from": [0, 0, 6.5],
|
||||||
"to": [1, 16, 9.5],
|
"to": [1, 16, 9.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"texture": "#frame"},
|
"north": {"uv": [15, 0, 16, 16], "texture": "#frame"},
|
||||||
"east": {"texture": "#frame"},
|
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||||
"south": {"texture": "#frame"},
|
"south": {"uv": [0, 0, 1, 16], "texture": "#frame"},
|
||||||
"west": {"texture": "#frame"},
|
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||||
"up": {"texture": "#frame"},
|
"up": {"uv": [0, 6.5, 1, 9.5], "texture": "#frame"},
|
||||||
"down": {"texture": "#frame"}
|
"down": {"uv": [0, 6.5, 1, 9.5], "texture": "#frame"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [1, 15, 6.5],
|
"from": [1, 15, 6.5],
|
||||||
"to": [15, 16, 9.5],
|
"to": [15, 16, 9.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"texture": "#frame"},
|
"north": {"uv": [1, 0, 15, 1], "texture": "#frame"},
|
||||||
"south": {"texture": "#frame"},
|
"south": {"uv": [1, 0, 15, 1], "texture": "#frame"},
|
||||||
"up": {"texture": "#frame"},
|
"up": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"},
|
||||||
"down": {"texture": "#frame"}
|
"down": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [15, 0, 6.5],
|
"from": [15, 0, 6.5],
|
||||||
"to": [16, 16, 9.5],
|
"to": [16, 16, 9.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"texture": "#frame"},
|
"north": {"uv": [0, 0, 1, 16], "texture": "#frame"},
|
||||||
"east": {"texture": "#frame"},
|
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||||
"south": {"texture": "#frame"},
|
"south": {"uv": [15, 0, 16, 16], "texture": "#frame"},
|
||||||
"west": {"texture": "#frame"},
|
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||||
"up": {"texture": "#frame"},
|
"up": {"uv": [15, 6.5, 16, 9.5], "texture": "#frame"},
|
||||||
"down": {"texture": "#frame"}
|
"down": {"uv": [15, 6.5, 16, 9.5], "texture": "#frame"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"ground": {
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.9, 0.9, 0.9],
|
||||||
|
"translation": [ 3, -8, -3]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [3, 69, 23],
|
||||||
|
"translation": [1, 1, -2.25],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [0, -61, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
|
||||||
}
|
}
|
|
@ -63,13 +63,23 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [-8, 154, 97],
|
||||||
|
"translation": [-4, 1.25, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [-2, -59, -46],
|
||||||
|
"translation": [-1.25, -0.75, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"rotation": [30, 225, 0],
|
"rotation": [30, 225, 0],
|
||||||
"scale": [0.9, 0.9, 0.9],
|
"translation": [3, -8, -3],
|
||||||
"translation": [ 3, -8, -3]
|
"scale": [0.9, 0.9, 0.9]
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"scale": [0.5, 0.5, 0.5]
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
|
|
@ -53,25 +53,29 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
"ground": {
|
"thirdperson_righthand": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"rotation": [95, 4, 33],
|
||||||
},
|
"translation": [2, -1.5, -3.25],
|
||||||
"gui": {
|
|
||||||
"rotation": [30, 225, 0],
|
|
||||||
"scale": [0.625, 0.625, 0.625]
|
|
||||||
},
|
|
||||||
"fixed": {
|
|
||||||
"scale": [0.5, 0.5, 0.5]
|
"scale": [0.5, 0.5, 0.5]
|
||||||
},
|
},
|
||||||
"firstperson_righthand": {
|
"firstperson_righthand": {
|
||||||
"scale": [0.5, 0.5, 0.5],
|
|
||||||
"rotation": [120, 30, 0],
|
"rotation": [120, 30, 0],
|
||||||
"translation": [2, 3, 0]
|
"translation": [2, 3, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
},
|
},
|
||||||
"thirdperson_righthand": {
|
"ground": {
|
||||||
"scale": [0.5, 0.5, 0.5],
|
"translation": [0, -4.25, 0],
|
||||||
"rotation": [120, 15, 0],
|
"scale": [0.3, 0.3, 0.3]
|
||||||
"translation": [-1, -1, -2]
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [26, 39, 0],
|
||||||
|
"translation": [0, -3, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"rotation": [0, 90, 0],
|
||||||
|
"translation": [0, -4, 0],
|
||||||
|
"scale": [0.7, 0.7, 0.7]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,13 +1,8 @@
|
||||||
{
|
{
|
||||||
"parent": "block/cube",
|
"parent": "block/cube",
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "engineersdecor:blocks/iestyle/steel_texture",
|
"o": "engineersdecor:blocks/iestyle/steel_texture",
|
||||||
"o": "engineersdecor:blocks/iestyle/steel_texture"
|
"particle": "engineersdecor:blocks/iestyle/steel_texture"
|
||||||
},
|
|
||||||
"display": {
|
|
||||||
"gui": { "rotation": [ 30, 225, 0 ], "scale": [0.625, 0.625, 0.625] },
|
|
||||||
"fixed": { "scale": [0.5, 0.5, 0.5] },
|
|
||||||
"ground": { "scale": [0.2, 0.2, 0.2] }
|
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
|
@ -154,5 +149,22 @@
|
||||||
"down": {"uv": [0, 0, 1.25, 1], "texture": "#o"}
|
"down": {"uv": [0, 0, 1.25, 1], "texture": "#o"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [16, -118, 0],
|
||||||
|
"translation": [2.75, -0.75, 0.75],
|
||||||
|
"scale": [0.36, 0.36, 0.36]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -151,6 +151,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [8, -68, 0],
|
||||||
|
"translation": [2.5, -2.75, -2.5],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"credit": "I made this with the Blockbench",
|
|
||||||
"parent": "block/cube",
|
"parent": "block/cube",
|
||||||
"textures": {
|
"textures": {
|
||||||
"o": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
|
"o": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
|
||||||
|
@ -80,6 +79,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [1, 67, 0],
|
||||||
|
"translation": [-1.75, -2.25, -2.5],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -112,18 +112,26 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [-3, -60, 0],
|
||||||
|
"translation": [-5, 0, 2.25],
|
||||||
|
"scale": [0.7, 0.7, 0.7]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [5, -52, 0],
|
||||||
|
"translation": [-3, -0.75, 1.25]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, 0, 6],
|
||||||
|
"scale": [0.7, 0.7, 0.7]
|
||||||
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"rotation": [0, 180, 0],
|
"rotation": [16, 30, 0],
|
||||||
"translation": [0, 0.5, 0]
|
"translation": [3.75, -1.5, 0]
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"rotation": [0, 180, 0],
|
"rotation": [0, 180, 0],
|
||||||
"translation": [0, 0, -7.3]
|
"translation": [0, 0, -8.05]
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
"rotation": [0, 0, 0],
|
|
||||||
"translation": [0, 0, 7],
|
|
||||||
"scale": [0.7, 0.7, 0.7]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -32,14 +32,14 @@
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
"thirdperson_righthand": {
|
"thirdperson_righthand": {
|
||||||
"rotation": [120, 15, 0],
|
"rotation": [108, 6, -23],
|
||||||
"translation": [-1, -1, -2],
|
"translation": [1.75, -0.5, -2.5],
|
||||||
"scale": [0.4, 0.4, 0.4]
|
"scale": [0.4, 0.4, 0.4]
|
||||||
},
|
},
|
||||||
"firstperson_righthand": {
|
"firstperson_righthand": {
|
||||||
"rotation": [120, 30, 0],
|
"rotation": [120, 30, 0],
|
||||||
"translation": [2, 3, 0],
|
"translation": [1.75, 1.25, -0.25],
|
||||||
"scale": [0.4, 0.4, 0.4]
|
"scale": [0.35, 0.35, 0.35]
|
||||||
},
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
|
|
@ -64,13 +64,13 @@
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
"thirdperson_righthand": {
|
"thirdperson_righthand": {
|
||||||
"rotation": [120, 15, 0],
|
"rotation": [106, 2, -17],
|
||||||
"translation": [-1, -1, -2],
|
"translation": [1, -1.5, -1],
|
||||||
"scale": [0.4, 0.4, 0.4]
|
"scale": [0.4, 0.4, 0.4]
|
||||||
},
|
},
|
||||||
"firstperson_righthand": {
|
"firstperson_righthand": {
|
||||||
"rotation": [120, 30, 0],
|
"rotation": [120, 30, 0],
|
||||||
"translation": [2, 3, 0],
|
"translation": [2, 2, 0],
|
||||||
"scale": [0.4, 0.4, 0.4]
|
"scale": [0.4, 0.4, 0.4]
|
||||||
},
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
|
@ -81,6 +81,7 @@
|
||||||
"scale": [0.625, 0.625, 0.625]
|
"scale": [0.625, 0.625, 0.625]
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
|
"rotation": [0, 90, 0],
|
||||||
"scale": [0.5, 0.5, 0.5]
|
"scale": [0.5, 0.5, 0.5]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,6 +101,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [-2, 0, 0],
|
||||||
|
"translation": [0, -1.75, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -42,6 +42,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [1, -1, 14],
|
||||||
|
"translation": [0, -1.75, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -125,6 +125,10 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"translation": [0, -0.75, -1.5],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -100,6 +100,10 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"translation": [0, -2.25, -1.25],
|
||||||
|
"scale": [0.45, 0.45, 0.45]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -52,6 +52,15 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [6, 17, 10],
|
||||||
|
"translation": [0, 0, -1],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [17, 10, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -108,6 +108,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [18, 0, 3],
|
||||||
|
"translation": [0, -0.5, -0.75],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -52,6 +52,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [0, 13, 0],
|
||||||
|
"translation": [0, -0.25, -0.75],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
|
|
@ -20,17 +20,26 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [-1, -78, -10],
|
||||||
|
"translation": [-2.75, -1.25, -1.5],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [2, -68, 8],
|
||||||
|
"translation": [0.5, 0, -0.25],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"translation": [0, 0, 7],
|
"translation": [0, 0, 2.5],
|
||||||
"scale": [0.7, 0.7, 0.7]
|
"scale": [0.3, 0.3, 0.3]
|
||||||
},
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"rotation": [0, 0, 0],
|
|
||||||
"translation": [0, 0.5, 0]
|
"translation": [0, 0.5, 0]
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"rotation": [0, 180, 0],
|
"rotation": [0, 180, 0],
|
||||||
"translation": [0, 0, -7.3]
|
"translation": [0, 0, -7.8]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,16 +10,26 @@
|
||||||
"from": [1, 1, 0],
|
"from": [1, 1, 0],
|
||||||
"to": [15, 15, 0.5],
|
"to": [15, 15, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 1, 15, 15], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 1, 16, 15], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [1, 1, 15, 15], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 1, 0.5, 15], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [1, 0, 15, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [1, 15.5, 15, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [27, -68, 7],
|
||||||
|
"translation": [-3, -1, -0.75],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [1, -58, 7],
|
||||||
|
"translation": [0.5, 0, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"translation": [0, 0, 7],
|
"translation": [0, 0, 7],
|
||||||
"scale": [0.7, 0.7, 0.7]
|
"scale": [0.7, 0.7, 0.7]
|
||||||
|
@ -29,7 +39,7 @@
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"rotation": [0, 180, 0],
|
"rotation": [0, 180, 0],
|
||||||
"translation": [0, 0, -7.3]
|
"translation": [0, 0, -7.8]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,182 +10,192 @@
|
||||||
"from": [0.75, 1.25, 0],
|
"from": [0.75, 1.25, 0],
|
||||||
"to": [15.25, 2.5, 0.5],
|
"to": [15.25, 2.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0.75, 13.5, 15.25, 14.75], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 13.5, 16, 14.75], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [0.75, 13.5, 15.25, 14.75], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 13.5, 0.5, 14.75], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [0.75, 0, 15.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [0.75, 15.5, 15.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [1.75, 3.5, 0],
|
"from": [1.75, 3.5, 0],
|
||||||
"to": [14.25, 4.5, 0.5],
|
"to": [14.25, 4.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1.75, 11.5, 14.25, 12.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 11.5, 16, 12.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [1.75, 11.5, 14.25, 12.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 11.5, 0.5, 12.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [1.75, 0, 14.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [1.75, 15.5, 14.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [2.75, 5.5, 0],
|
"from": [2.75, 5.5, 0],
|
||||||
"to": [13.25, 6.5, 0.5],
|
"to": [13.25, 6.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [2.75, 9.5, 13.25, 10.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 9.5, 16, 10.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [2.75, 9.5, 13.25, 10.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 9.5, 0.5, 10.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [2.75, 0, 13.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [2.75, 15.5, 13.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [3.75, 7.5, 0],
|
"from": [3.75, 7.5, 0],
|
||||||
"to": [12.25, 8.5, 0.5],
|
"to": [12.25, 8.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [3.75, 7.5, 12.25, 8.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 7.5, 16, 8.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [3.75, 7.5, 12.25, 8.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 7.5, 0.5, 8.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [3.75, 0, 12.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [3.75, 15.5, 12.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [4.75, 9.5, 0],
|
"from": [4.75, 9.5, 0],
|
||||||
"to": [11.25, 10.5, 0.5],
|
"to": [11.25, 10.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [4.75, 5.5, 11.25, 6.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 5.5, 16, 6.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [4.75, 5.5, 11.25, 6.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 5.5, 0.5, 6.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [4.75, 0, 11.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [4.75, 15.5, 11.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [5.75, 11.5, 0],
|
"from": [5.75, 11.5, 0],
|
||||||
"to": [10.25, 12.5, 0.5],
|
"to": [10.25, 12.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5.75, 3.5, 10.25, 4.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 3.5, 16, 4.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [5.75, 3.5, 10.25, 4.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 3.5, 0.5, 4.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [5.75, 0, 10.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [5.75, 15.5, 10.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [6.25, 12.5, 0],
|
"from": [6.25, 12.5, 0],
|
||||||
"to": [9.75, 13.5, 0.5],
|
"to": [9.75, 13.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [6.25, 2.5, 9.75, 3.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 2.5, 16, 3.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [6.25, 2.5, 9.75, 3.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 2.5, 0.5, 3.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [6.25, 0, 9.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [6.25, 15.5, 9.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [1.25, 2.5, 0],
|
"from": [1.25, 2.5, 0],
|
||||||
"to": [14.75, 3.5, 0.5],
|
"to": [14.75, 3.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1.25, 12.5, 14.75, 13.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 12.5, 16, 13.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [1.25, 12.5, 14.75, 13.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 12.5, 0.5, 13.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [1.25, 0, 14.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [1.25, 15.5, 14.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [2.25, 4.5, 0],
|
"from": [2.25, 4.5, 0],
|
||||||
"to": [13.75, 5.5, 0.5],
|
"to": [13.75, 5.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [2.25, 10.5, 13.75, 11.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 10.5, 16, 11.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [2.25, 10.5, 13.75, 11.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 10.5, 0.5, 11.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [2.25, 0, 13.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [2.25, 15.5, 13.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [3.25, 6.5, 0],
|
"from": [3.25, 6.5, 0],
|
||||||
"to": [12.75, 7.5, 0.5],
|
"to": [12.75, 7.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [3.25, 8.5, 12.75, 9.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 8.5, 16, 9.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [3.25, 8.5, 12.75, 9.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 8.5, 0.5, 9.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [3.25, 0, 12.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [3.25, 15.5, 12.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [4.25, 8.5, 0],
|
"from": [4.25, 8.5, 0],
|
||||||
"to": [11.75, 9.5, 0.5],
|
"to": [11.75, 9.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [4.25, 6.5, 11.75, 7.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 6.5, 16, 7.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [4.25, 6.5, 11.75, 7.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 6.5, 0.5, 7.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [4.25, 0, 11.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [4.25, 15.5, 11.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [5.25, 10.5, 0],
|
"from": [5.25, 10.5, 0],
|
||||||
"to": [10.75, 11.5, 0.5],
|
"to": [10.75, 11.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5.25, 4.5, 10.75, 5.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 4.5, 16, 5.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [5.25, 4.5, 10.75, 5.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 4.5, 0.5, 5.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [5.25, 0, 10.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [5.25, 15.5, 10.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [6.75, 13.5, 0],
|
"from": [6.75, 13.5, 0],
|
||||||
"to": [9.25, 14.5, 0.5],
|
"to": [9.25, 14.5, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [6.75, 1.5, 9.25, 2.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 1.5, 16, 2.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [6.75, 1.5, 9.25, 2.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 1.5, 0.5, 2.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [6.75, 0, 9.25, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [6.75, 15.5, 9.25, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [7.25, 14.5, 0],
|
"from": [7.25, 14.5, 0],
|
||||||
"to": [8.75, 15, 0.5],
|
"to": [8.75, 15, 0.5],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [7.25, 1, 8.75, 1.5], "texture": "#s"},
|
"north": {"texture": "#s"},
|
||||||
"east": {"uv": [15.5, 1, 16, 1.5], "texture": "#s"},
|
"east": {"texture": "#s"},
|
||||||
"south": {"uv": [7.25, 1, 8.75, 1.5], "texture": "#f"},
|
"south": {"texture": "#f"},
|
||||||
"west": {"uv": [0, 1, 0.5, 1.5], "texture": "#s"},
|
"west": {"texture": "#s"},
|
||||||
"up": {"uv": [7.25, 0, 8.75, 0.5], "texture": "#s"},
|
"up": {"texture": "#s"},
|
||||||
"down": {"uv": [7.25, 15.5, 8.75, 16], "texture": "#s"}
|
"down": {"texture": "#s"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [41, -73, 0],
|
||||||
|
"translation": [-3, -0.75, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [3, -84, 14],
|
||||||
|
"translation": [0.75, 0, -1],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"translation": [0, 0, 7],
|
"translation": [0, 0, 2.75],
|
||||||
"scale": [0.7, 0.7, 0.7]
|
"scale": [0.35, 0.35, 0.35]
|
||||||
},
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"translation": [0, 0.5, 0]
|
"translation": [0, 0.5, 0]
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"rotation": [0, 180, 0],
|
"rotation": [0, 180, 0],
|
||||||
"translation": [0, 0, -7.3]
|
"translation": [0, 0, -8.05]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -20,6 +20,25 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [27, -16, -85],
|
||||||
|
"translation": [2.75, 0, 0],
|
||||||
|
"scale": [0.375, 0.375, 0.375]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [-12, -17, 80],
|
||||||
|
"translation": [-1.75, 0.75, -1.5],
|
||||||
|
"scale": [0.37, 0.37, 0.37]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [26, 19, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [15, 15, 0],
|
||||||
|
"translation": [0, 0.25, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
"ground": {
|
"ground": {
|
||||||
"scale": [0.2, 0.2, 0.2]
|
"scale": [0.2, 0.2, 0.2]
|
||||||
},
|
},
|
||||||
|
@ -28,22 +47,9 @@
|
||||||
"scale": [0.625, 0.625, 0.625]
|
"scale": [0.625, 0.625, 0.625]
|
||||||
},
|
},
|
||||||
"fixed": {
|
"fixed": {
|
||||||
|
"rotation": [90, 0, 0],
|
||||||
|
"translation": [0, 0, 3],
|
||||||
"scale": [0.5, 0.5, 0.5]
|
"scale": [0.5, 0.5, 0.5]
|
||||||
},
|
|
||||||
"thirdperson_righthand": {
|
|
||||||
"rotation": [ 75, 45, 0 ],
|
|
||||||
"translation": [ 0, 0, 2.2],
|
|
||||||
"scale": [ 0.375, 0.375, 0.375 ]
|
|
||||||
},
|
|
||||||
"firstperson_righthand": {
|
|
||||||
"rotation": [ 0, 45, 0 ],
|
|
||||||
"translation": [ 0, 0, 0 ],
|
|
||||||
"scale": [ 0.40, 0.40, 0.40 ]
|
|
||||||
},
|
|
||||||
"firstperson_lefthand": {
|
|
||||||
"rotation": [ 0, 225, 0 ],
|
|
||||||
"translation": [ 0, 0, 0 ],
|
|
||||||
"scale": [ 0.40, 0.40, 0.40 ]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,5 +18,38 @@
|
||||||
"down": {"texture": "#all"}
|
"down": {"texture": "#all"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [-18, -13, -92],
|
||||||
|
"translation": [1.75, -0.75, -1.5],
|
||||||
|
"scale": [0.375, 0.375, 0.375]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [-30, -30, 80],
|
||||||
|
"translation": [0, -1, -3],
|
||||||
|
"scale": [0.37, 0.37, 0.37]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [26, 19, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [15, 15, 0],
|
||||||
|
"translation": [0, 0.25, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"scale": [0.2, 0.2, 0.2]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"rotation": [90, 0, 0],
|
||||||
|
"translation": [0, 0, 3],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -8,36 +8,36 @@
|
||||||
"from": [0, 0, 0],
|
"from": [0, 0, 0],
|
||||||
"to": [16, 8, 16],
|
"to": [16, 8, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
"north": {"texture": "#side", "cullface": "north"},
|
||||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
"west": {"texture": "#side", "cullface": "west"},
|
||||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
"up": {"texture": "#side"},
|
||||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [8, 8, 0],
|
"from": [8, 8, 0],
|
||||||
"to": [16, 16, 16],
|
"to": [16, 16, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "north"},
|
"north": {"texture": "#side", "cullface": "north"},
|
||||||
"east": {"uv": [0, 0, 16, 8], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [0, 0, 16, 8], "texture": "#side"},
|
"west": {"texture": "#side"},
|
||||||
"up": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "up"},
|
"up": {"texture": "#side", "cullface": "up"},
|
||||||
"down": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [0, 8, 8],
|
"from": [0, 8, 8],
|
||||||
"to": [8, 16, 16],
|
"to": [8, 16, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [8, 0, 16, 8], "texture": "#side"},
|
"north": {"texture": "#side"},
|
||||||
"east": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "west"},
|
"west": {"texture": "#side", "cullface": "west"},
|
||||||
"up": {"uv": [0, 8, 8, 16], "texture": "#side", "cullface": "up"},
|
"up": {"texture": "#side", "cullface": "up"},
|
||||||
"down": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -8,24 +8,24 @@
|
||||||
"from": [0, 0, 0],
|
"from": [0, 0, 0],
|
||||||
"to": [16, 8, 16],
|
"to": [16, 8, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
"north": {"texture": "#side", "cullface": "north"},
|
||||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
"west": {"texture": "#side", "cullface": "west"},
|
||||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
"up": {"texture": "#side"},
|
||||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [8, 8, 8],
|
"from": [8, 8, 8],
|
||||||
"to": [16, 16, 16],
|
"to": [16, 16, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side"},
|
"north": {"texture": "#side"},
|
||||||
"east": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [8, 0, 16, 8], "texture": "#side"},
|
"west": {"texture": "#side"},
|
||||||
"up": {"uv": [8, 8, 16, 16], "texture": "#side", "cullface": "up"},
|
"up": {"texture": "#side", "cullface": "up"},
|
||||||
"down": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,36 +1,41 @@
|
||||||
{
|
{
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
"side": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||||
"side" : "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"from": [0, 0, 0],
|
"from": [0, 0, 0],
|
||||||
"to": [16, 8, 16],
|
"to": [16, 8, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
"north": {"texture": "#side", "cullface": "north"},
|
||||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
"west": {"texture": "#side", "cullface": "west"},
|
||||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
"up": {"texture": "#side"},
|
||||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [8, 8, 0],
|
"from": [8, 8, 0],
|
||||||
"to": [16, 16, 16],
|
"to": [16, 16, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "north"},
|
"north": {"texture": "#side", "cullface": "north"},
|
||||||
"east": {"uv": [0, 0, 16, 8], "texture": "#side", "cullface": "east"},
|
"east": {"texture": "#side", "cullface": "east"},
|
||||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
"south": {"texture": "#side", "cullface": "south"},
|
||||||
"west": {"uv": [0, 0, 16, 8], "texture": "#side"},
|
"west": {"texture": "#side"},
|
||||||
"up": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "up"},
|
"up": {"texture": "#side", "cullface": "up"},
|
||||||
"down": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
"down": {"texture": "#side", "cullface": "down"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [5, -71, -5],
|
||||||
|
"translation": [1, -0.5, -1.75],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
"thirdperson_lefthand": {
|
"thirdperson_lefthand": {
|
||||||
"rotation": [75, -135, 0],
|
"rotation": [75, -135, 0],
|
||||||
"translation": [0, 2.5, 0],
|
"translation": [0, 2.5, 0],
|
||||||
|
|
|
@ -35,6 +35,16 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [14, 8, 1],
|
||||||
|
"translation": [0, -0.75, -2],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [4, 9, 2],
|
||||||
|
"translation": [0, 0, 1],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"rotation": [30, 135, 0],
|
"rotation": [30, 135, 0],
|
||||||
"scale": [0.625, 0.625, 0.625]
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
|
|
@ -151,6 +151,16 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": {
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [20, -9, 1],
|
||||||
|
"translation": [0.5, -1, -1.75],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [14, 3, -5],
|
||||||
|
"translation": [1.25, 0, 0],
|
||||||
|
"scale": [0.35, 0.35, 0.35]
|
||||||
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"rotation": [30, 135, 0],
|
"rotation": [30, 135, 0],
|
||||||
"scale": [0.625, 0.625, 0.625]
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
|
|
@ -27,6 +27,10 @@
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "blockIron" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "blockIron" },
|
||||||
"name": "blockIron"
|
"name": "blockIron"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ingredient": { "type": "forge:ore_dict", "ore": "blockSteel" },
|
||||||
|
"name": "blockSteel"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
||||||
"name": "plateIron"
|
"name": "plateIron"
|
||||||
|
@ -107,6 +111,10 @@
|
||||||
"ingredient": { "type": "forge:ore_dict", "ore": "ingotBrickNether" },
|
"ingredient": { "type": "forge:ore_dict", "ore": "ingotBrickNether" },
|
||||||
"name": "ingotBrickNether"
|
"name": "ingotBrickNether"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ingredient": { "item": "minecraft:obsidian", "data": 0 },
|
||||||
|
"name": "blockObsidian"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
{ "type": "forge:ore_dict", "ore": "plateIron" },
|
{ "type": "forge:ore_dict", "ore": "plateIron" },
|
||||||
|
@ -249,6 +257,20 @@
|
||||||
"ingredient": { "item": "immersiveengineering:metal_device1", "data": 6 },
|
"ingredient": { "item": "immersiveengineering:metal_device1", "data": 6 },
|
||||||
"name": "itemFluidPipe"
|
"name": "itemFluidPipe"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{ "type": "minecraft:item_exists", "item": "immersiveengineering:metal_device1" }
|
||||||
|
],
|
||||||
|
"ingredient": { "item": "immersiveengineering:metal_device1", "data": 1 },
|
||||||
|
"name": "itemExternalHeater"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{ "type": "minecraft:item_exists", "item": "immersiveengineering:metal_device0" }
|
||||||
|
],
|
||||||
|
"ingredient": { "item": "immersiveengineering:metal_device0", "data": 4 },
|
||||||
|
"name": "itemSteelBarrel"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{ "type": "engineersdecor:grc", "missing": ["immersiveengineering:stone_decoration"] }
|
{ "type": "engineersdecor:grc", "missing": ["immersiveengineering:stone_decoration"] }
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:small_mineral_smelter",
|
||||||
|
"required": ["immersiveengineering:metal_device1", "engineersdecor:panzerglass_block"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"SOS",
|
||||||
|
"GBO",
|
||||||
|
"HOH"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"H": {
|
||||||
|
"item": "#itemExternalHeater",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"G": {
|
||||||
|
"item": "engineersdecor:panzerglass_block",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "#blockSteel",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"B": {
|
||||||
|
"item": "#itemSteelBarrel",
|
||||||
|
"data": 0
|
||||||
|
},
|
||||||
|
"O": {
|
||||||
|
"item": "#blockObsidian",
|
||||||
|
"data": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:small_mineral_smelter",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:clinker_brick_slab",
|
||||||
|
"required": ["engineersdecor:clinker_brick_block"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" ",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": { "item": "engineersdecor:clinker_brick_block" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:clinker_brick_slab",
|
||||||
|
"count": 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:clinker_brick_stained_slab",
|
||||||
|
"required": ["engineersdecor:clinker_brick_stained_block"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" ",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": { "item": "engineersdecor:clinker_brick_stained_block" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:clinker_brick_stained_slab",
|
||||||
|
"count": 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,16 +3,16 @@
|
||||||
{
|
{
|
||||||
"type": "engineersdecor:grc",
|
"type": "engineersdecor:grc",
|
||||||
"result": "engineersdecor:halfslab_rebar_concrete",
|
"result": "engineersdecor:halfslab_rebar_concrete",
|
||||||
"required": ["engineersdecor:rebar_concrete"]
|
"required": ["engineersdecor:rebar_concrete_slab"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"type": "minecraft:crafting_shaped",
|
"type": "minecraft:crafting_shaped",
|
||||||
"pattern": [
|
"pattern": [
|
||||||
"S",
|
"SS",
|
||||||
"S"
|
"SS"
|
||||||
],
|
],
|
||||||
"key": {
|
"key": {
|
||||||
"S": { "item": "engineersdecor:rebar_concrete" }
|
"S": { "item": "engineersdecor:rebar_concrete_slab" }
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "engineersdecor:halfslab_rebar_concrete",
|
"item": "engineersdecor:halfslab_rebar_concrete",
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:panzerglass_slab",
|
||||||
|
"required": ["engineersdecor:panzerglass_block"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" ",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": { "item": "engineersdecor:panzerglass_block" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:panzerglass_slab",
|
||||||
|
"count": 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:rebar_concrete_slab",
|
||||||
|
"required": ["engineersdecor:rebar_concrete"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" ",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": { "item": "engineersdecor:rebar_concrete" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:rebar_concrete_slab",
|
||||||
|
"count": 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:rebar_concrete_tile_slab",
|
||||||
|
"required": ["engineersdecor:rebar_concrete_tile"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" ",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": { "item": "engineersdecor:rebar_concrete_tile" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:rebar_concrete_tile_slab",
|
||||||
|
"count": 6
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "engineersdecor:grc",
|
||||||
|
"result": "engineersdecor:slag_brick_slab",
|
||||||
|
"required": ["engineersdecor:slag_brick_block"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" ",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": { "item": "engineersdecor:slag_brick_block" }
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "engineersdecor:slag_brick_slab",
|
||||||
|
"count": 6
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 618 B |
After Width: | Height: | Size: 728 B |
|
@ -0,0 +1 @@
|
||||||
|
{ "animation":{ "frames": [0,1], "frametime":32, "interpolate":true }}
|
After Width: | Height: | Size: 940 B |
|
@ -0,0 +1 @@
|
||||||
|
{ "animation": { "frames": [0,1,2], "frametime": 8, "interpolate": true } }
|
After Width: | Height: | Size: 957 B |
|
@ -0,0 +1 @@
|
||||||
|
{ "animation": { "frames": [0,1,2], "frametime": 8, "interpolate": true } }
|
After Width: | Height: | Size: 606 B |
After Width: | Height: | Size: 562 B |
|
@ -2,8 +2,8 @@
|
||||||
org.gradle.daemon=false
|
org.gradle.daemon=false
|
||||||
org.gradle.jvmargs=-Xmx8G
|
org.gradle.jvmargs=-Xmx8G
|
||||||
version_minecraft=1.13.2
|
version_minecraft=1.13.2
|
||||||
version_forge_minecraft=1.13.2-25.0.214
|
version_forge_minecraft=1.13.2-25.0.219
|
||||||
version_engineersdecor=1.0.7-b5
|
version_engineersdecor=1.0.7-b6
|
||||||
#
|
#
|
||||||
# jar signing data loaded from signing.properties in the project root.
|
# jar signing data loaded from signing.properties in the project root.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||||
"1.13.2": {
|
"1.13.2": {
|
||||||
|
"1.0.7-b5": "[A] Added translation zh_cn (PR#33, XuyuEre)\n[M] Updated textures.\n[M] Updated 1st/3rd person item model rotations/translations.",
|
||||||
"1.0.7-b4": "[A] Added stained clinker brick block/stairs.",
|
"1.0.7-b4": "[A] Added stained clinker brick block/stairs.",
|
||||||
"1.0.7-b3": "[V] Version assignment: All features of v1.0.7-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-assigned.\n[A] Added \"Factory Area\" sign.\n[M] Sign background colors adapted.\n[M] EN lang file updated (PR#28, Voxelo).",
|
"1.0.7-b3": "[V] Version assignment: All features of v1.0.7-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-assigned.\n[A] Added \"Factory Area\" sign.\n[M] Sign background colors adapted.\n[M] EN lang file updated (PR#28, Voxelo).",
|
||||||
"1.0.4-b6": "[A] Added Small Electrical Furnace.\n[A] Added Small Waste Incinerator.\n[A] Experimental: Added fluid check valve.\n[A] Experimental: Added fluid redstone controlled valve.\n[A] Experimental: Added fluid redstone analog valve.\n[A] Experimental: Added passive fluid accumulator.",
|
"1.0.4-b6": "[A] Added Small Electrical Furnace.\n[A] Added Small Waste Incinerator.\n[A] Experimental: Added fluid check valve.\n[A] Experimental: Added fluid redstone controlled valve.\n[A] Experimental: Added fluid redstone analog valve.\n[A] Experimental: Added passive fluid accumulator.",
|
||||||
|
@ -16,6 +17,6 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.13.2-recommended": "",
|
"1.13.2-recommended": "",
|
||||||
"1.13.2-latest": "1.0.7-b4"
|
"1.13.2-latest": "1.0.7-b5"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,8 +10,11 @@ Mod sources for Minecraft version 1.13.2.
|
||||||
----
|
----
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
~ v1.0.7-b5 [A] Added translation zh_cn (PR#33, XuyuEre)
|
~ v1.0.7-b6 [A]
|
||||||
|
|
||||||
|
- v1.0.7-b5 [A] Added translation zh_cn (PR#33, XuyuEre)
|
||||||
[M] Updated textures.
|
[M] Updated textures.
|
||||||
|
[M] Updated 1st/3rd person item model rotations/translations.
|
||||||
|
|
||||||
- v1.0.7-b4 [A] Added stained clinker brick block/stairs.
|
- v1.0.7-b4 [A] Added stained clinker brick block/stairs.
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
org.gradle.daemon=false
|
org.gradle.daemon=false
|
||||||
org.gradle.jvmargs=-Xmx8G
|
org.gradle.jvmargs=-Xmx8G
|
||||||
version_minecraft=1.14.2
|
version_minecraft=1.14.2
|
||||||
version_forge_minecraft=1.14.2-26.0.55
|
version_forge_minecraft=1.14.2-26.0.63
|
||||||
version_fml_mappings=20190621-1.14.2
|
version_fml_mappings=20190621-1.14.2
|
||||||
version_engineersdecor=1.0.8-b2
|
version_engineersdecor=1.0.8-b3
|
||||||
#
|
#
|
||||||
# jar signing data loaded from signing.properties in the project root.
|
# jar signing data loaded from signing.properties in the project root.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||||
"1.14.2": {
|
"1.14.2": {
|
||||||
|
"1.0.8-b2": "[U] Updated to Forge BETA 1.14.2-26.0.63/20190621-1.14.2, code adapted to new mappings.\n[M] Updated 1st/3rd person item model rotations/translations.",
|
||||||
"1.0.8-b1": "[V] Feature set of 1.12 ported.\n[A] CTRL-SHIFT tooltips ported.\n[A] Ported stained clinker block/stairs.\n[M] Updated textures.\n[I] Issue: Scoped recipe constants still not working.",
|
"1.0.8-b1": "[V] Feature set of 1.12 ported.\n[A] CTRL-SHIFT tooltips ported.\n[A] Ported stained clinker block/stairs.\n[M] Updated textures.\n[I] Issue: Scoped recipe constants still not working.",
|
||||||
"1.0.7-b5": "[U] Updated to Forge BETA 1.14.2-26.0.35/20190608-1.14.2.\n[A] Factory dropper functionality ported.\n[A] Small lab furnace functionality ported.\n[A] Small electrical lab furnace functionality ported.\n[A] Small waste incinerator functionality ported.\n[A] Fluid valves, Passive Fluid Accumulator ported.\n[I] Issue: Scoped recipe constants still not working.",
|
"1.0.7-b5": "[U] Updated to Forge BETA 1.14.2-26.0.35/20190608-1.14.2.\n[A] Factory dropper functionality ported.\n[A] Small lab furnace functionality ported.\n[A] Small electrical lab furnace functionality ported.\n[A] Small waste incinerator functionality ported.\n[A] Fluid valves, Passive Fluid Accumulator ported.\n[I] Issue: Scoped recipe constants still not working.",
|
||||||
"1.0.7-b4": "[U] Updated to Forge BETA 1.14.2-26.0.32/20190608-1.14.2.\n[A] Sitting on the stool ported.\n[A] Ladder climbing speed boost ported.\n[A] Crafting table functionality ported.\n[I] Issue: Scoped recipe constants not working yet with the current Forge version (or somehow changed).",
|
"1.0.7-b4": "[U] Updated to Forge BETA 1.14.2-26.0.32/20190608-1.14.2.\n[A] Sitting on the stool ported.\n[A] Ladder climbing speed boost ported.\n[A] Crafting table functionality ported.\n[I] Issue: Scoped recipe constants not working yet with the current Forge version (or somehow changed).",
|
||||||
|
@ -8,6 +9,6 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.14.2-recommended": "",
|
"1.14.2-recommended": "",
|
||||||
"1.14.2-latest": "1.0.8-b1"
|
"1.14.2-latest": "1.0.8-b2"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,8 +10,11 @@ Mod sources for Minecraft version 1.14.2.
|
||||||
----
|
----
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
~ v1.0.8-b2 [U] Updated to Forge BETA 1.14.2-26.0.55/20190621-1.14.2,
|
~ v1.0.8-b3 [U]
|
||||||
|
|
||||||
|
- v1.0.8-b2 [U] Updated to Forge BETA 1.14.2-26.0.63/20190621-1.14.2,
|
||||||
code adapted to new mappings.
|
code adapted to new mappings.
|
||||||
|
[M] Updated 1st/3rd person item model rotations/translations.
|
||||||
|
|
||||||
- v1.0.8-b1 [V] Feature set of 1.12 ported.
|
- v1.0.8-b1 [V] Feature set of 1.12 ported.
|
||||||
[A] CTRL-SHIFT tooltips ported.
|
[A] CTRL-SHIFT tooltips ported.
|
||||||
|
|
2
Makefile
|
@ -33,7 +33,6 @@ update-json:
|
||||||
|
|
||||||
sanatize:
|
sanatize:
|
||||||
@cd 1.12; make -s sanatize
|
@cd 1.12; make -s sanatize
|
||||||
@cd 1.12; make -s port-languages
|
|
||||||
@cd 1.13; make -s sanatize
|
@cd 1.13; make -s sanatize
|
||||||
@cd 1.14; make -s sanatize
|
@cd 1.14; make -s sanatize
|
||||||
@make -s update-json
|
@make -s update-json
|
||||||
|
@ -43,6 +42,7 @@ compare:
|
||||||
@djs tasks.js compare-textures -v
|
@djs tasks.js compare-textures -v
|
||||||
|
|
||||||
migrate-from-112:
|
migrate-from-112:
|
||||||
|
@cd 1.12; make -s port-languages
|
||||||
@djs tasks.js migrate-textures -v
|
@djs tasks.js migrate-textures -v
|
||||||
|
|
||||||
# For reviewers: I am using a local repository for experimental changes,
|
# For reviewers: I am using a local repository for experimental changes,
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
"1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table."
|
"1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table."
|
||||||
},
|
},
|
||||||
"1.13.2": {
|
"1.13.2": {
|
||||||
|
"1.0.7-b5": "[A] Added translation zh_cn (PR#33, XuyuEre)\n[M] Updated textures.\n[M] Updated 1st/3rd person item model rotations/translations.",
|
||||||
"1.0.7-b4": "[A] Added stained clinker brick block/stairs.",
|
"1.0.7-b4": "[A] Added stained clinker brick block/stairs.",
|
||||||
"1.0.7-b3": "[V] Version assignment: All features of v1.0.7-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-assigned.\n[A] Added \"Factory Area\" sign.\n[M] Sign background colors adapted.\n[M] EN lang file updated (PR#28, Voxelo).",
|
"1.0.7-b3": "[V] Version assignment: All features of v1.0.7-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-assigned.\n[A] Added \"Factory Area\" sign.\n[M] Sign background colors adapted.\n[M] EN lang file updated (PR#28, Voxelo).",
|
||||||
"1.0.4-b6": "[A] Added Small Electrical Furnace.\n[A] Added Small Waste Incinerator.\n[A] Experimental: Added fluid check valve.\n[A] Experimental: Added fluid redstone controlled valve.\n[A] Experimental: Added fluid redstone analog valve.\n[A] Experimental: Added passive fluid accumulator.",
|
"1.0.4-b6": "[A] Added Small Electrical Furnace.\n[A] Added Small Waste Incinerator.\n[A] Experimental: Added fluid check valve.\n[A] Experimental: Added fluid redstone controlled valve.\n[A] Experimental: Added fluid redstone analog valve.\n[A] Experimental: Added passive fluid accumulator.",
|
||||||
|
@ -59,6 +60,7 @@
|
||||||
"1.0.0-a1": "[A] Initial port to 1.13.2 with Forge beta."
|
"1.0.0-a1": "[A] Initial port to 1.13.2 with Forge beta."
|
||||||
},
|
},
|
||||||
"1.14.2": {
|
"1.14.2": {
|
||||||
|
"1.0.8-b2": "[U] Updated to Forge BETA 1.14.2-26.0.63/20190621-1.14.2, code adapted to new mappings.\n[M] Updated 1st/3rd person item model rotations/translations.",
|
||||||
"1.0.8-b1": "[V] Feature set of 1.12 ported.\n[A] CTRL-SHIFT tooltips ported.\n[A] Ported stained clinker block/stairs.\n[M] Updated textures.\n[I] Issue: Scoped recipe constants still not working.",
|
"1.0.8-b1": "[V] Feature set of 1.12 ported.\n[A] CTRL-SHIFT tooltips ported.\n[A] Ported stained clinker block/stairs.\n[M] Updated textures.\n[I] Issue: Scoped recipe constants still not working.",
|
||||||
"1.0.7-b5": "[U] Updated to Forge BETA 1.14.2-26.0.35/20190608-1.14.2.\n[A] Factory dropper functionality ported.\n[A] Small lab furnace functionality ported.\n[A] Small electrical lab furnace functionality ported.\n[A] Small waste incinerator functionality ported.\n[A] Fluid valves, Passive Fluid Accumulator ported.\n[I] Issue: Scoped recipe constants still not working.",
|
"1.0.7-b5": "[U] Updated to Forge BETA 1.14.2-26.0.35/20190608-1.14.2.\n[A] Factory dropper functionality ported.\n[A] Small lab furnace functionality ported.\n[A] Small electrical lab furnace functionality ported.\n[A] Small waste incinerator functionality ported.\n[A] Fluid valves, Passive Fluid Accumulator ported.\n[I] Issue: Scoped recipe constants still not working.",
|
||||||
"1.0.7-b4": "[U] Updated to Forge BETA 1.14.2-26.0.32/20190608-1.14.2.\n[A] Sitting on the stool ported.\n[A] Ladder climbing speed boost ported.\n[A] Crafting table functionality ported.\n[I] Issue: Scoped recipe constants not working yet with the current Forge version (or somehow changed).",
|
"1.0.7-b4": "[U] Updated to Forge BETA 1.14.2-26.0.32/20190608-1.14.2.\n[A] Sitting on the stool ported.\n[A] Ladder climbing speed boost ported.\n[A] Crafting table functionality ported.\n[I] Issue: Scoped recipe constants not working yet with the current Forge version (or somehow changed).",
|
||||||
|
@ -68,8 +70,8 @@
|
||||||
"1.12.2-recommended": "1.0.8",
|
"1.12.2-recommended": "1.0.8",
|
||||||
"1.12.2-latest": "1.0.9-b2",
|
"1.12.2-latest": "1.0.9-b2",
|
||||||
"1.13.2-recommended": "",
|
"1.13.2-recommended": "",
|
||||||
"1.13.2-latest": "1.0.7-b4",
|
"1.13.2-latest": "1.0.7-b5",
|
||||||
"1.14.2-recommended": "",
|
"1.14.2-recommended": "",
|
||||||
"1.14.2-latest": "1.0.8-b1"
|
"1.14.2-latest": "1.0.8-b2"
|
||||||
}
|
}
|
||||||
}
|
}
|
52
readme.md
|
@ -38,15 +38,21 @@ looking manufacturing contraptions. Current feature set:
|
||||||
sides (e.g. with filtered hopper or whatever). Fits ideally into a conveyor belt
|
sides (e.g. with filtered hopper or whatever). Fits ideally into a conveyor belt
|
||||||
line/lane. Consumption and efficiency tunable via config.
|
line/lane. Consumption and efficiency tunable via config.
|
||||||
|
|
||||||
- Rebar (steel) reinforced concrete: Expensive but creeper-proof. Crafted 3x3 from
|
- *Factory dropper*: Dropper with GUI configurable drop force, direction, stack size,
|
||||||
four concrete blocks and five steel rods. Texture design oriented at the IE concrete,
|
trigger cool-down delay, and trigger logic. Three trigger slots ("filter slots") can
|
||||||
slightly darker, eight (position dependent) random texture variations with rust
|
be used as internal trigger. They emit an internal signal if their item is found in
|
||||||
traces. Also creaftable in form of *stairs* and *walls*. Like the IE contrete *tiles*,
|
in the dropper inventory (also at least the stack size of a trigger slot). Internal
|
||||||
you can craft rebar concrete tiles with corresponding stairs. Reverse recipes
|
triggers can be easily combined with the external redstone signal trigger using
|
||||||
available for all blocks crafted from rebar concrete.
|
logical *AND* or *OR* gates. If internal triggers match, the dropper will spit out
|
||||||
|
exactly the stacks in these slots. That allows to drop e.g. always nine lapis,
|
||||||
|
redstone, nuggets, etc on a conveyor to feed a compression metal press - instantly
|
||||||
|
and automatically after nine of these items have been inserted into the dropper.
|
||||||
|
|
||||||
- Concrete wall: Solid concrete wall (not the vanilla wall design), crafted 3x3
|
- *Small waste incinerator*: Buffered and delayed item disposal device. 16 fifo
|
||||||
from six IE concrete blocks (normal wall recipe).
|
slots are filled when new items are pushed in from any side. A GUI allows to
|
||||||
|
take out accidentally trashed items or put in items to get rid of. When the fifo
|
||||||
|
is full, the oldest stack will be disposed. The processing speed can be increased
|
||||||
|
by connecting electrical RF/FE power.
|
||||||
|
|
||||||
- *Clinker bricks*: Slightly darker and more colorful version of the vanilla brick
|
- *Clinker bricks*: Slightly darker and more colorful version of the vanilla brick
|
||||||
block. Eight position dependent texture variations are implemented to make the
|
block. Eight position dependent texture variations are implemented to make the
|
||||||
|
@ -61,6 +67,16 @@ looking manufacturing contraptions. Current feature set:
|
||||||
explosion resistance than bricks. Also available as stairs and wall, also with
|
explosion resistance than bricks. Also available as stairs and wall, also with
|
||||||
reverse recipes.
|
reverse recipes.
|
||||||
|
|
||||||
|
- Rebar (steel) reinforced concrete: Expensive but creeper-proof. Crafted 3x3 from
|
||||||
|
four concrete blocks and five steel rods. Texture design oriented at the IE concrete,
|
||||||
|
slightly darker, eight (position dependent) random texture variations with rust
|
||||||
|
traces. Also creaftable in form of *stairs* and *walls*. Like the IE contrete *tiles*,
|
||||||
|
you can craft rebar concrete tiles with corresponding stairs. Reverse recipes
|
||||||
|
available for all blocks crafted from rebar concrete.
|
||||||
|
|
||||||
|
- Concrete wall: Solid concrete wall (not the vanilla wall design), crafted 3x3
|
||||||
|
from six IE concrete blocks (normal wall recipe).
|
||||||
|
|
||||||
- *Treated wood ladder*: Crafted 3x3 with the known ladder pattern, items are
|
- *Treated wood ladder*: Crafted 3x3 with the known ladder pattern, items are
|
||||||
treated wood sticks. Climbing is faster if looking up/down and not sneaking.
|
treated wood sticks. Climbing is faster if looking up/down and not sneaking.
|
||||||
|
|
||||||
|
@ -117,22 +133,10 @@ looking manufacturing contraptions. Current feature set:
|
||||||
|
|
||||||
- *Industrial signs*: "Danger", "electrical hazard", etc.
|
- *Industrial signs*: "Danger", "electrical hazard", etc.
|
||||||
|
|
||||||
- *Small waste incinerator*: Buffered and delayed item disposal device. 16 fifo
|
- *Slab slices*: Decorative stackable thin slabs made of of IE metal sheets,
|
||||||
slots are filled when new items are pushed in from any side. A GUI allows to
|
concretes, treated wood. Useful e.g. for roofs or ramps. Left-clicking with
|
||||||
take out accidentally trashed items or put in items to get rid of. When the fifo
|
the same slab type in your hand while looking up/down removes slices again.
|
||||||
is full, the oldest stack will be disposed. The processing speed can be increased
|
Crafted 3x3 from four slabs.
|
||||||
by connecting electrical RF/FE power.
|
|
||||||
|
|
||||||
- *Factory dropper*: Dropper with GUI configurable drop force, direction, stack size,
|
|
||||||
trigger cool-down delay, and trigger logic. Three trigger slots ("filter slots") can
|
|
||||||
be used as internal trigger. They emit an internal signal if their item is found in
|
|
||||||
in the dropper inventory (also at least the stack size of a trigger slot). Internal
|
|
||||||
triggers can be easily combined with the external redstone signal trigger using
|
|
||||||
logical *AND* or *OR* gates. If internal triggers match, the dropper will spit out
|
|
||||||
exactly the stacks in these slots. That allows to drop e.g. always nine lapis,
|
|
||||||
redstone, nuggets, etc on a conveyor to feed a compression metal press - instantly
|
|
||||||
and automatically after nine of these items have been inserted into the dropper.
|
|
||||||
|
|
||||||
|
|
||||||
More to come slowly but steadily.
|
More to come slowly but steadily.
|
||||||
|
|
||||||
|
|