1.14/1.15: Added E-Furnace GUI process speed switch. Added Steel Mesh Fence Gate.

This commit is contained in:
stfwi 2020-03-13 18:14:40 +01:00
parent 6e8ecbff19
commit 27a957ba8d
83 changed files with 3490 additions and 336 deletions

View file

@ -1,7 +1,7 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": {
"1.0.19": "[R] Release based on v1.0.19-b4. Release-to-release changes: * Transfer fixes for Tree Cutter / Block Braker, and Factory hopper. * Cleanups, feature backports * Visual fixes and improvements\n[A] Backport of status display for Tree Cutter, Block Breaker and Solar Panel.",
"1.0.19": "[R] Release based on v1.0.19-b4. Release-to-release changes: * Transfer fixes for Tree Cutter / Block Breaker, and Factory hopper. * Cleanups, feature backports * Visual fixes and improvements\n[A] Backport of status display for Tree Cutter, Block Breaker and Solar Panel.",
"1.0.19-b4": "[A] Creative tab opt-out visibility handling added (issue #90, thx pimalel233).",
"1.0.19-b3": "[A] Factory Hopper: Added bottom item handler (CR#227).",
"1.0.19-b2": "[F] Fixed Floor Grating item pass-through jitters (thx Cid).\n[M] Removed obsolete recipe collision testing recipes.",

View file

@ -14,7 +14,7 @@ Mod sources for Minecraft version 1.12.2.
-------------------------------------------------------------------
- v1.0.19 [R] Release based on v1.0.19-b4. Release-to-release changes:
* Transfer fixes for Tree Cutter / Block Braker, and Factory hopper.
* Transfer fixes for Tree Cutter / Block Breaker, and Factory hopper.
* Cleanups, feature backports
* Visual fixes and improvements
-------------------------------------------------------------------

View file

@ -30,7 +30,7 @@ minecraft {
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.markers', ''
property 'forge.logging.console.level', 'debug'
mods {
engineersdecor {
@ -40,7 +40,7 @@ minecraft {
}
server {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.markers', ''
property 'forge.logging.console.level', 'debug'
mods {
engineersdecor {
@ -50,7 +50,7 @@ minecraft {
}
data {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.markers', ''
property 'forge.logging.console.level', 'debug'
args '--mod', 'engineersdecor', '--all', '--output', file('src/generated/resources/')
mods {

View file

@ -2,7 +2,7 @@
org.gradle.daemon=false
org.gradle.jvmargs=-Xmx8G
version_minecraft=1.14.4
version_forge_minecraft=1.14.4-28.2.2
version_forge_minecraft=1.14.4-28.2.3
version_fml_mappings=20190719-1.14.3
version_jei=1.14.4:6.0.0.10
version_engineersdecor=1.0.19-b5
version_engineersdecor=1.0.20-b1

View file

@ -1,6 +1,7 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.14.4": {
"1.0.20-b1": "[A] Electrical Furnace: Added four-position speed switch (off, 100%, 150%, 200%), power consumption increases at higher rate (off, 100%, 200%, 400%).\n[A] Added Steel Mesh Fence Gate (single or double height gate fitting to the Steel Mesh Fence).\n[M] Waste Incinerator processing speed tweaked.",
"1.0.19-b5": "[A] Added right-click display of power and progress information for Block Breaker, Solar Panel, and Tree Cutter.\n[A] Solar Panel power curve tuned.\n[A] Mod manual 1st edition release recipe added.\n[A] Factory Hopper: Resetting NBT when breaking with empty inventory (for stacking), enabled item cap for all sides.\n[M] Electrical Furnace model polished.",
"1.0.19-b4": "[A] Ported primary Immersive Engineering dependent recipes (alternative recipes will still work if IE is not installed).\n[M] Furni comparator output overrides reflect input slots and empty fuel state/power-cutoff.\n[M] Solar Panel config: Default value for internal battery capacity increased.\n[F] Block Placer: Shifted GUI player slots 1px to the right.\n[A] Added mod block tags for slabs, stairs, and walls (PR#89, thanks CrudeAustin for the data).\n[A] Added experimental Patchouli manual (creative only).\n[!] Skipped blacklisting Treated Wood Crafting Table slots for the inventorysorter mod due to potential startup crashes for single player games (issue #88 fix deferred).",
"1.0.19-b3": "[M] Config tweaks: Value limit ranges increased to facilitate modpacking.\n[A] Factory Hopper: Added bottom item handler (CR#227).\n[M] Block shapes refined.\n[F] Fixed duping bug (issue #87, thx Nachtflame)",
@ -49,6 +50,6 @@
},
"promos": {
"1.14.4-recommended": "",
"1.14.4-latest": "1.0.19-b5"
"1.14.4-latest": "1.0.20-b1"
}
}

View file

@ -11,6 +11,11 @@ Mod sources for Minecraft version 1.14.4.
## Version history
- v1.0.20-b1 [A] Electrical Furnace: Added four-position speed switch (off, 100%, 150%, 200%), power consumption
increases at higher rate (off, 100%, 200%, 400%).
[A] Added Steel Mesh Fence Gate (single or double height gate fitting to the Steel Mesh Fence).
[M] Waste Incinerator processing speed tweaked.
- v1.0.19-b5 [A] Added right-click display of power and progress information for Block Breaker, Solar Panel, and Tree Cutter.
[A] Solar Panel power curve tuned.
[A] Mod manual 1st edition release recipe added.

View file

@ -1,18 +0,0 @@
/*
* BluSunrize
* Copyright (c) 2017
*
* This code is licensed under "Blu's License of Common Sense"
* Details can be found in the license file in the root folder of this project
*/
package blusunrize.immersiveengineering.api.fluid;
import net.minecraft.util.Direction;
public interface IFluidPipe
{
boolean canOutputPressurized(boolean consumePower);
boolean hasOutputConnection(Direction side);
}

View file

@ -267,7 +267,7 @@ public class ModContent
public static final BlockDecor.WaterLoggable STEEL_TABLE = (BlockDecor.WaterLoggable)(new BlockDecor.WaterLoggable(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
Auxiliaries.getPixeledAABB(0,0,0, 16,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_table"));
@ -637,6 +637,12 @@ public class ModContent
1.5, 16, 0.25, 0, 16
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_mesh_fence"));
public static final BlockDecorDoubleGate STEEL_MESH_FENCE_GATE = (BlockDecorDoubleGate)(new BlockDecorDoubleGate(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
Auxiliaries.getPixeledAABB(0,0,6.5, 16,16,9.5)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_mesh_fence_gate"));
// -------------------------------------------------------------------------------------------------------------------
public static final BlockDecorTest TEST_BLOCK = (BlockDecorTest)(new BlockDecorTest(
@ -714,6 +720,7 @@ public class ModContent
FLOOR_EDGE_LIGHT_IRON,
STEEL_FLOOR_GRATING,
STEEL_MESH_FENCE,
STEEL_MESH_FENCE_GATE,
TREATED_WOOD_POLE,
TREATED_WOOD_POLE_HEAD,
TREATED_WOOD_POLE_SUPPORT,

View file

@ -0,0 +1,158 @@
/*
* @file BlockDecorDoubleGate.java
* @author Stefan Wilhelm (wile)
* @copyright (C) 2019 Stefan Wilhelm
* @license MIT (see https://opensource.org/licenses/MIT)
*
* Gate blocks that can be one or two segments high.
*/
package wile.engineersdecor.blocks;
import wile.engineersdecor.libmc.detail.Auxiliaries;
import net.minecraft.block.*;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.state.BooleanProperty;
import net.minecraft.state.IntegerProperty;
import net.minecraft.state.StateContainer;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.util.math.shapes.VoxelShapes;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;
import net.minecraft.pathfinding.PathType;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
public class BlockDecorDoubleGate extends BlockDecor.HorizontalWaterLoggable implements IDecorBlock
{
public static final IntegerProperty SEGMENT = IntegerProperty.create("segment", 0, 1);
public static final BooleanProperty OPEN = FenceGateBlock.OPEN;
public static final int SEGMENT_LOWER = 0;
public static final int SEGMENT_UPPER = 1;
protected final ArrayList<VoxelShape> collision_shapes_;
public BlockDecorDoubleGate(long config, Block.Properties properties, AxisAlignedBB aabb)
{ this(config, properties, new AxisAlignedBB[]{aabb}); }
public BlockDecorDoubleGate(long config, Block.Properties properties, AxisAlignedBB[] aabbs)
{
super(config, properties, aabbs);
AxisAlignedBB[] caabbs = new AxisAlignedBB[aabbs.length];
for(int i=0; i<caabbs.length; ++i) caabbs[i] = aabbs[i].expand(0, 0.5, 0);
collision_shapes_ = new ArrayList<VoxelShape>(Arrays.asList(
VoxelShapes.fullCube(),
VoxelShapes.fullCube(),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.NORTH, true)),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.SOUTH, true)),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.WEST, true)),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.EAST, true)),
VoxelShapes.fullCube(),
VoxelShapes.fullCube()
));
}
@Override
public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext selectionContext)
{ return state.get(OPEN) ? VoxelShapes.empty() : collision_shapes_.get(state.get(HORIZONTAL_FACING).getIndex() & 0x7); }
@Override
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder)
{ super.fillStateContainer(builder); builder.add(SEGMENT).add(OPEN); }
@Override
@Nullable
public BlockState getStateForPlacement(BlockItemUseContext context)
{ return getInitialState(super.getStateForPlacement(context), context.getWorld(), context.getPos()); }
@Override
@SuppressWarnings("deprecation")
public BlockState updatePostPlacement(BlockState state, Direction facing, BlockState facingState, IWorld world, BlockPos pos, BlockPos facingPos)
{ return getInitialState(super.updatePostPlacement(state, facing, facingState, world, pos, facingPos), world, pos); }
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if((rayTraceResult.getFace()==Direction.UP) || (rayTraceResult.getFace()==Direction.DOWN) && (player.getHeldItem(hand).getItem()==this.asItem())) return false;
if(world.isRemote) return true;
final boolean open = !state.get(OPEN);
world.setBlockState(pos, state.with(OPEN, open),2|8|16);
if(state.get(SEGMENT) == SEGMENT_UPPER) {
final BlockState adjacent = world.getBlockState(pos.down());
if(adjacent.getBlock()==this) world.setBlockState(pos.down(), adjacent.with(OPEN, open), 2|8|16);
} else {
final BlockState adjacent = world.getBlockState(pos.up());
if(adjacent.getBlock()==this) world.setBlockState(pos.up(), adjacent.with(OPEN, open), 2|8|16);
}
world.playSound(null, pos, open?SoundEvents.BLOCK_IRON_DOOR_OPEN:SoundEvents.BLOCK_IRON_DOOR_CLOSE, SoundCategory.BLOCKS, 0.7f, 1.4f);
return true;
}
@Override
@SuppressWarnings("deprecation")
public boolean allowsMovement(BlockState state, IBlockReader world, BlockPos pos, PathType type)
{ return state.get(OPEN); }
@Override
@SuppressWarnings("deprecation")
public void neighborChanged(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving)
{
if(world.isRemote) return;
boolean powered = false;
BlockState adjacent;
BlockPos adjacent_pos;
if(state.get(SEGMENT) == SEGMENT_UPPER) {
adjacent_pos = pos.down();
adjacent = world.getBlockState(adjacent_pos);
if(adjacent.getBlock()!=this) adjacent = null;
if(world.getRedstonePower(pos.up(), Direction.UP) > 0) {
powered = true;
} else if((adjacent!=null) && (world.isBlockPowered(pos.down(2)))) {
powered = true;
}
} else {
adjacent_pos = pos.up();
adjacent = world.getBlockState(adjacent_pos);
if(adjacent.getBlock()!=this) adjacent = null;
if(world.isBlockPowered(pos)) {
powered = true;
} else if((adjacent!=null) && (world.getRedstonePower(pos.up(2), Direction.UP) > 0)) {
powered = true;
}
}
boolean sound = false;
if(powered != state.get(OPEN)) {
world.setBlockState(pos, state.with(OPEN, powered), 2|8|16);
sound = true;
}
if((adjacent != null) && (powered != adjacent.get(OPEN))) {
world.setBlockState(adjacent_pos, adjacent.with(OPEN, powered), 2|8|16);
sound = true;
}
if(sound) {
world.playSound(null, pos, powered?SoundEvents.BLOCK_IRON_DOOR_OPEN:SoundEvents.BLOCK_IRON_DOOR_CLOSE, SoundCategory.BLOCKS, 0.7f, 1.4f);
}
}
// -------------------------------------------------------------------------------------------------------------------
private BlockState getInitialState(BlockState state, IWorld world, BlockPos pos)
{
final BlockState down = world.getBlockState(pos.down());
if(down.getBlock() == this) return state.with(SEGMENT, SEGMENT_UPPER).with(OPEN, down.get(OPEN)).with(HORIZONTAL_FACING, down.get(HORIZONTAL_FACING));
final BlockState up = world.getBlockState(pos.up());
if(up.getBlock() == this) return state.with(SEGMENT, SEGMENT_LOWER).with(OPEN, up.get(OPEN)).with(HORIZONTAL_FACING, up.get(HORIZONTAL_FACING));
return state.with(SEGMENT, SEGMENT_LOWER).with(OPEN, false);
}
}

View file

@ -8,6 +8,9 @@
*/
package wile.engineersdecor.blocks;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IWorldReader;
import wile.engineersdecor.libmc.blocks.StandardFenceBlock;
import net.minecraft.block.*;
@ -18,4 +21,9 @@ public class BlockDecorFence extends StandardFenceBlock implements IDecorBlock
public BlockDecorFence(long config, Block.Properties properties, double pole_width, double pole_height, double side_width, double side_max_y, double side_min_y)
{ super(config, properties, pole_width, pole_height, side_width, side_max_y, side_min_y); }
@Override
protected boolean attachesTo(BlockState facingState, IWorldReader world, BlockPos facingPos, Direction side)
{ return ((facingState.getBlock()) instanceof BlockDecorDoubleGate) || super.attachesTo(facingState, world, facingPos, side); }
}

View file

@ -113,7 +113,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
public static final int FIFO_INTERVAL = 20;
public static final int HEAT_CAPACITY = 200;
public static final int HEAT_INCREMENT = 20;
public static final int MAX_ENERGY_TRANSFER = 256;
public static final int MAX_ENERGY_TRANSFER = 1024;
public static final int MAX_ENERGY_BUFFER = 32000;
public static final int MAX_SPEED_SETTING = 2;
public static final int NUM_OF_SLOTS = 7;
@ -134,6 +134,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
private static int energy_consumption_ = DEFAULT_SCALED_ENERGY_CONSUMPTION;
private static int transfer_energy_consumption_ = DEFAULT_SCALED_ENERGY_CONSUMPTION / 8;
private static int proc_speed_percent_ = DEFAULT_SPEED_PERCENT;
private static double speed_setting_factor_[] = {0.0, 1.0, 1.5, 2.0};
public static void on_config(int speed_percent, int standard_energy_per_tick, boolean with_automatic_inventory_pulling)
{
@ -146,15 +147,16 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
// BTileEntity -----------------------------------------------------------------------------
private int burntime_left_;
private int proc_time_elapsed_;
private int proc_time_needed_;
private int energy_stored_;
private int field_max_energy_stored_;
private int field_isburning_;
private int speed_;
private int tick_timer_;
private int fifo_timer_;
private int burntime_left_ = 0;
private int proc_time_elapsed_ = 0;
private int proc_time_needed_ = 0;
private int energy_stored_ = 0;
private int field_max_energy_stored_ = 0;
private int field_isburning_ = 0;
private int speed_ = 1;
private int tick_timer_ = 0;
private int fifo_timer_ = 0;
private boolean enabled_ = false;
public BTileEntity()
{ this(ModContent.TET_SMALL_ELECTRICAL_FURNACE); }
@ -186,6 +188,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
proc_time_needed_ = nbt.getInt("CookTimeTotal");
energy_stored_ = nbt.getInt("Energy");
speed_ = nbt.getInt("SpeedSetting");
speed_ = (speed_ < 0) ? (1) : ((speed_>3) ? 3 : speed_);
}
protected void writenbt(CompoundNBT nbt)
@ -469,7 +472,12 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
if(transferItems(FIFO_INPUT_0_SLOT_NO, SMELTING_INPUT_SLOT_NO, 64)) dirty = true;
if(transferItems(FIFO_INPUT_1_SLOT_NO, FIFO_INPUT_0_SLOT_NO, 64)) { dirty = true; } else { shift_in = true; }
}
if((!(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty()) && (energy_stored_ >= energy_consumption_)) {
if(energy_stored_ < energy_consumption()) {
enabled_ = false;
} else if(energy_stored_ >= (MAX_ENERGY_BUFFER/2)) {
enabled_ = true;
}
if((!(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty()) && (enabled_) && (speed_>0) && (speed_<4)) {
IRecipe last_recipe = currentRecipe();
updateCurrentRecipe();
if(currentRecipe() != last_recipe) {
@ -487,7 +495,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
}
if(burning() && can_smelt) {
if(heat_up()) dirty = true;
proc_time_elapsed_ += (TICK_INTERVAL * proc_speed_percent_/100);
proc_time_elapsed_ += (int)(TICK_INTERVAL * proc_speed_percent_ * speed_setting_factor_[speed_] / 100);
if(proc_time_elapsed_ >= proc_time_needed_) {
proc_time_elapsed_ = 0;
proc_time_needed_ = getSmeltingTimeNeeded(world, stacks_.get(SMELTING_INPUT_SLOT_NO));
@ -511,7 +519,6 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
if(dirty) markDirty();
field_max_energy_stored_ = getMaxEnergyStored();
field_isburning_ = burning() ? 1 : 0;
//if(this.energy_stored_ < this.getMaxEnergyStored() / 5) this.energy_stored_ = this.getMaxEnergyStored();
}
// Furnace --------------------------------------------------------------------------------------
@ -597,15 +604,25 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
return dirty;
}
// returns TE dirty
int energy_consumption()
{
switch(speed_) {
case 1: return energy_consumption_;
case 2: return energy_consumption_ * 2;
case 3: return energy_consumption_ * 4;
default: return 0;
}
}
private boolean heat_up()
{
if(energy_stored_ < (energy_consumption_)) return false;
int p = energy_consumption();
if((p<=0) || (energy_stored_ < p)) return false;
if(burntime_left_ >= (HEAT_CAPACITY-HEAT_INCREMENT)) return false;
energy_stored_ -= energy_consumption_;
energy_stored_ -= p;
burntime_left_ += HEAT_INCREMENT;
this.markDirty();
return true;
return true; // returns TE dirty
}
private void sync_blockstate()
@ -731,7 +748,12 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
@Override
public void onClientPacketReceived(int windowId, PlayerEntity player, CompoundNBT nbt)
{}
{
if(!(inventory_ instanceof BTileEntity)) return;
BTileEntity te = (BTileEntity)inventory_;
if(nbt.contains("speed")) te.speed_ = MathHelper.clamp(nbt.getInt("speed"), 0, 3);
te.markDirty();
}
}
//--------------------------------------------------------------------------------------------------------------------
@ -773,6 +795,32 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
blit(x0+79, y0+30, 176, 15, 1+progress_px(17), 15);
int we = energy_px(32, 8);
if(we>0) blit(x0+88, y0+53, 185, 30, we, 13);
switch(getContainer().field(4)) {
case 0: blit(x0+144, y0+57, 180, 57, 6, 9); break;
case 1: blit(x0+142, y0+58, 190, 58, 9, 6); break;
case 2: blit(x0+144, y0+56, 200, 57, 6, 9); break;
case 3: blit(x0+143, y0+58, 210, 58, 9, 6); break;
default: break;
}
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int mouseButton)
{
BContainer container = (BContainer)getContainer();
int mx = (int)(mouseX - getGuiLeft() + .5), my = (int)(mouseY - getGuiTop() + .5);
if((!isPointInRegion(136, 48, 28, 28, mouseX, mouseY))) {
return super.mouseClicked(mouseX, mouseY, mouseButton);
} else if(isPointInRegion(144, 64, 6, 10, mouseX, mouseY)) {
container.onGuiAction("speed", 0);
} else if(isPointInRegion(134, 58, 10, 6, mouseX, mouseY)) {
container.onGuiAction("speed", 1);
} else if(isPointInRegion(144, 48, 6, 10, mouseX, mouseY)) {
container.onGuiAction("speed", 2);
} else if(isPointInRegion(150, 58, 10, 6, mouseX, mouseY)) {
container.onGuiAction("speed", 3);
}
return true;
}
private int progress_px(int pixels)

View file

@ -8,6 +8,8 @@
*/
package wile.engineersdecor.blocks;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShapes;
import wile.engineersdecor.ModContent;
import wile.engineersdecor.ModEngineersDecor;
import wile.engineersdecor.libmc.blocks.StandardBlocks;
@ -64,6 +66,10 @@ public class BlockDecorHopper extends StandardBlocks.Directed implements IDecorB
public boolean hasComparatorInputOverride(BlockState state)
{ return true; }
@Override
public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context)
{ return VoxelShapes.fullCube(); }
@Override
@SuppressWarnings("deprecation")
public int getComparatorInputOverride(BlockState blockState, World world, BlockPos pos)

View file

@ -1,5 +1,5 @@
/*
* @file BlockDecorDirected.java
* @file BlockDecorSolarPanel.java
* @author Stefan Wilhelm (wile)
* @copyright (C) 2019 Stefan Wilhelm
* @license MIT (see https://opensource.org/licenses/MIT)

View file

@ -168,6 +168,7 @@ public class BlockDecorWasteIncinerator extends StandardBlocks.BaseBlock impleme
public static final int NUM_OF_FIELDS = 1;
public static final int TICK_INTERVAL = 20;
public static final int ENERGIZED_TICK_INTERVAL = 5;
public static final int INCINERATION_STACK_DECREMENT = 4;
public static final int MAX_ENERGY_BUFFER = 16000;
public static final int MAX_ENERGY_TRANSFER = 256;
public static final int DEFAULT_ENERGY_CONSUMPTION = 16;
@ -192,7 +193,6 @@ public class BlockDecorWasteIncinerator extends StandardBlocks.BaseBlock impleme
private int energy_stored_;
protected NonNullList<ItemStack> stacks_ = NonNullList.<ItemStack>withSize(NUM_OF_SLOTS, ItemStack.EMPTY);
public BTileEntity()
{ this(ModContent.TET_WASTE_INCINERATOR); }
@ -505,7 +505,7 @@ public class BlockDecorWasteIncinerator extends StandardBlocks.BaseBlock impleme
ItemStack first_stack = stacks_.get(0);
boolean shift = !first_stack.isEmpty();
if(is_processing) {
processing_stack.shrink(1);
processing_stack.shrink(INCINERATION_STACK_DECREMENT);
if(processing_stack.getCount() <= 0) {
processing_stack = ItemStack.EMPTY;
is_processing = false;
@ -518,22 +518,11 @@ public class BlockDecorWasteIncinerator extends StandardBlocks.BaseBlock impleme
dirty = true;
}
if(shift) {
int max_shift_slot_no = BURN_SLOT_NO-1;
for(int i=1; i<BURN_SLOT_NO-1; ++i) { if(stacks_.get(i).isEmpty()) { max_shift_slot_no=i; break; } }
if(max_shift_slot_no < (BURN_SLOT_NO-1)) {
// re-stack
boolean stacked = false;
for(int i=1; i<=max_shift_slot_no; ++i) {
if(transferItems(i-1, i, getInventoryStackLimit())) {
dirty = true;
stacked = true;
break;
}
}
if(!stacked) {
shiftStacks(0, max_shift_slot_no);
}
} else if(!is_processing) {
boolean transferred = false;
for(int i=BURN_SLOT_NO-1; i>0; --i) {
transferred |= transferItems(i-1, i, getInventoryStackLimit());
}
if((!is_processing) && (!transferred)) {
shiftStacks(0, BURN_SLOT_NO);
dirty = true;
}

View file

@ -94,7 +94,7 @@ public class StandardFenceBlock extends WallBlock implements StandardBlocks.ISta
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder)
{ super.fillStateContainer(builder); }
private boolean attachesTo(BlockState facingState, IWorldReader world, BlockPos facingPos, Direction side)
protected boolean attachesTo(BlockState facingState, IWorldReader world, BlockPos facingPos, Direction side)
{
final Block block = facingState.getBlock();
if((block instanceof FenceGateBlock) || (block instanceof StandardFenceBlock) || (block instanceof VariantWallBlock)) return true;

View file

@ -58,10 +58,13 @@ public class LootTableGen extends LootTableProvider
final List<Block> blocks = block_listing.get();
blocks.forEach((block)->{
if((!(block instanceof StandardBlocks.IStandardBlock)) || (!(((StandardBlocks.IStandardBlock)block).hasDynamicDropList()))) {
System.out.println("Generating loot table for " + block.getRegistryName());
tables.put(
block.getLootTable(),
defaultBlockDrops(block.getRegistryName().getPath() + "_dlt", block)
.setParameterSet(LootParameterSets.BLOCK).build());
} else {
System.out.println("Dynamic drop list, skipping loot table for " + block.getRegistryName());
}
});
return tables;

View file

@ -0,0 +1,21 @@
{
"variants": {
"facing=north,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" },
"facing=north,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open" },
"facing=south,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" , "y":180 },
"facing=south,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open", "y":180 },
"facing=west,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" , "y":270 },
"facing=west,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open", "y":270 },
"facing=east,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" , "y":90 },
"facing=east,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open", "y":90 },
"facing=north,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" },
"facing=north,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open" },
"facing=south,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" , "y":180 },
"facing=south,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open", "y":180 },
"facing=west,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" , "y":270 },
"facing=west,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open", "y":270 },
"facing=east,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" , "y":90 },
"facing=east,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open", "y":90 }
}
}

View file

@ -151,6 +151,8 @@
"block.engineersdecor.steel_framed_window.help": "§6Steel framed triple glazed window. Well insulating. §r Does not connect to adjacent blocks like glass panes.",
"block.engineersdecor.steel_mesh_fence": "Steel Mesh Fence",
"block.engineersdecor.steel_mesh_fence.help": "§6Industrial style fence.§r\nDoes not connect do regular fences.",
"block.engineersdecor.steel_mesh_fence_gate": "Steel Mesh Fence Gate",
"block.engineersdecor.steel_mesh_fence_gate.help": "§6Industrial style fence gate that fits well to the Steel Mesh Fence.§r\nCan be placed as single or double size gate.",
"block.engineersdecor.small_lab_furnace": "Small Laboratory Furnace",
"block.engineersdecor.small_lab_furnace.help": "§6Small metal cased lab kiln.§r Solid fuel consuming, updraught. Slightly hotter and better isolated than a cobblestone furnace, therefore more efficient. Two auxiliary slots e.g. for storage. Two stack internal hopper fifos for input, output, and fuel. Place an external heater into a aux slot and connect power for electrical smelting speed boost.",
"block.engineersdecor.small_electrical_furnace": "Small Electrical Furnace",

View file

@ -151,6 +151,8 @@
"block.engineersdecor.steel_framed_window.help": "§6Стальной каркас окна с тройным остеклением. Хорошо изолирует. §r Не подключается к смежным блокам, таким как стеклянные панели.",
"block.engineersdecor.steel_mesh_fence": "Забор из стальной сетки",
"block.engineersdecor.steel_mesh_fence.help": "§6Забор в индустриальном стиле.§r\nНе стыкуется с обычными заборами.",
"block.engineersdecor.steel_mesh_fence_gate": "Steel Mesh Fence Gate",
"block.engineersdecor.steel_mesh_fence_gate.help": "§6Industrial style fence gate that fits well to the Steel Mesh Fence.§r\nCan be placed as single or double size gate.",
"block.engineersdecor.small_lab_furnace": "Компактная лабораторная печь",
"block.engineersdecor.small_lab_furnace.help": "§6Лабораторная печь в металлическом корпусе.§r Подача твёрдого топлива сверху. Немного горячее и изолированней каменной, поэтому быстрее. Два вспомогательных слота, например для хранения. Два слота-воронки для ввода, вывода, и топлива. Поместите внешний нагреватель в слот AUX и подключите питание для электрического повышения скорости обработки.",
"block.engineersdecor.small_electrical_furnace": "Компактная конвейерная электрическая печь",

View file

@ -151,6 +151,8 @@
"block.engineersdecor.steel_framed_window.help": "§6钢框三层玻璃窗。绝缘良好。§r不像玻璃板一样连接到相邻方块。",
"block.engineersdecor.steel_mesh_fence": "钢丝栅栏",
"block.engineersdecor.steel_mesh_fence.help": "§6工业式栅栏。§r\n不与普通栅栏连接。",
"block.engineersdecor.steel_mesh_fence_gate": "Steel Mesh Fence Gate",
"block.engineersdecor.steel_mesh_fence_gate.help": "§6Industrial style fence gate that fits well to the Steel Mesh Fence.§r\nCan be placed as single or double size gate.",
"block.engineersdecor.small_lab_furnace": "小型实验室炉",
"block.engineersdecor.small_lab_furnace.help": "§6小型金属壳实验室窑。§r消耗固体燃料向上排气。 比圆石炉稍微热一点,隔热性也更好,因此效率更高。 有两个用于储存的辅助格。两个堆叠的内部漏斗对输入、输出和燃料进行队列管理。 在辅助格放置一个外置加热器并通入电力可以加快熔炼速度。",
"block.engineersdecor.small_electrical_furnace": "小型电炉",

View file

@ -0,0 +1,267 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [3.125, 13.625, 9.4375],
"to": [12.8125, 13.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"south": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 9.625, 9.4375],
"to": [12.8125, 9.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"south": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 5.625, 9.4375],
"to": [12.8125, 5.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"south": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 1.625, 9.4375],
"to": [12.8125, 1.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"east": {"uv": [8, 14.02, 8.1875, 14.375], "texture": "#s"},
"south": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"west": {"uv": [7.8125, 14.02, 8, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 11.625, 9.625],
"to": [12.8125, 11.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"south": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 12.625, 9.875],
"to": [5.3125, 13.23, 10.1875],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 9.5, 10]},
"faces": {
"north": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"east": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"south": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"west": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 90, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 12.625, 9],
"to": [5.3125, 13.23, 9.3125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 9.5, 9.125]},
"faces": {
"north": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"east": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"south": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"west": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 90, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 7.625, 9.625],
"to": [12.9375, 7.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"south": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 3.625, 9.625],
"to": [12.9375, 3.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"south": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [12.25, 1, 9.25],
"to": [13, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"west": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.75, 15, 9.25],
"to": [12.25, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"south": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.75, 1, 9.25],
"to": [12.25, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, -5.5, 9.625]},
"faces": {
"north": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"east": {"uv": [7.625, 0, 8.375, 1], "texture": "#s"},
"south": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [7.625, 0, 8.375, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3, 1, 9.25],
"to": [3.75, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"east": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"south": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 270, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [11.75, 1.375, 9.5],
"to": [12.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [7.75, 1.375, 9.5],
"to": [8.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [3.75, 1.375, 9.5],
"to": [4.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [9.75, 1.375, 9.5],
"to": [10.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [5.75, 1.375, 9.5],
"to": [6.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1,267 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [12.625, 13.625, 0.125],
"to": [12.8125, 13.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"west": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 9.625, 0.125],
"to": [12.8125, 9.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"west": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 5.625, 0.125],
"to": [12.8125, 5.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"west": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 1.625, 0.125],
"to": [12.8125, 1.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.8125, 14.02, 8, 14.375], "texture": "#s"},
"east": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"south": {"uv": [8, 14.02, 8.1875, 14.375], "texture": "#s"},
"west": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 11.625, 0.125],
"to": [12.625, 11.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"west": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.0625, 12.625, 0.125],
"to": [12.375, 13.23, 2.3125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"east": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"south": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"west": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 180, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.9375, 12.625, 0.125],
"to": [13.25, 13.23, 2.3125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"east": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"south": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"west": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 180, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 7.625, 0.5],
"to": [12.625, 7.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"west": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 3.625, 0.5],
"to": [12.625, 3.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"west": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 1, 9.25],
"to": [13, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 15, 0.75],
"to": [13, 16, 9.25],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 1, 0.75],
"to": [13, 2, 9.25],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 1, 0],
"to": [13, 16, 0.75],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 180, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [12.5, 1.375, 8.75],
"to": [12.75, 15.855, 9.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 4.75],
"to": [12.75, 15.855, 5.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 0.75],
"to": [12.75, 15.855, 1.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 6.75],
"to": [12.75, 15.855, 7.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 2.75],
"to": [12.75, 15.855, 3.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1,319 @@
{
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence",
"t": "engineersdecor:block/fence/steel_mesh_top"
},
"elements": [
{
"from": [7.5, 0, 3],
"to": [8.5, 16, 4],
"faces": {
"north": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"east": {"uv": [12, 0, 13, 16], "texture": "#s"},
"south": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"west": {"uv": [3, 0, 4, 16], "texture": "#s"},
"up": {"uv": [7.5, 3, 8.5, 4], "texture": "#t"},
"down": {"uv": [7.5, 12, 8.5, 13], "texture": "#s"}
}
},
{
"from": [7.5, 0, 12],
"to": [8.5, 16, 13],
"faces": {
"north": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"east": {"uv": [3, 0, 4, 16], "texture": "#s"},
"south": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"west": {"uv": [12, 0, 13, 16], "texture": "#s"},
"up": {"uv": [7.5, 12, 8.5, 13], "texture": "#t"},
"down": {"uv": [7.5, 3, 8.5, 4], "texture": "#s"}
}
},
{
"from": [7.5, 15, 4],
"to": [8.5, 16, 12],
"faces": {
"east": {"uv": [4, 0, 12, 1], "texture": "#s"},
"west": {"uv": [4, 0, 12, 1], "texture": "#s"},
"up": {"uv": [7.5, 4, 8.5, 12], "texture": "#t"},
"down": {"uv": [7.5, 4, 8.5, 12], "texture": "#s"}
}
},
{
"from": [7.5, 7, 4],
"to": [8.5, 9, 5],
"faces": {
"east": {"uv": [11, 7, 12, 9], "texture": "#s"},
"south": {"uv": [7.5, 7, 8.5, 9], "texture": "#s"},
"west": {"uv": [4, 7, 5, 9], "texture": "#s"},
"up": {"uv": [7.5, 4, 8.5, 5], "texture": "#t"},
"down": {"uv": [7.5, 11, 8.5, 12], "texture": "#s"}
}
},
{
"from": [7.5, 0, 4],
"to": [8.5, 0.5, 12],
"faces": {
"east": {"uv": [4, 15.5, 12, 16], "texture": "#s"},
"west": {"uv": [4, 15.5, 12, 16], "texture": "#s"},
"up": {"uv": [7.5, 4, 8.5, 12], "texture": "#t"},
"down": {"uv": [7.5, 4, 8.5, 12], "texture": "#s"}
}
},
{
"from": [8, 4.125, 3.5],
"to": [8.125, 4.5, 12.5],
"faces": {
"east": {"uv": [3.5, 11.5, 12.5, 11.875], "texture": "#s"},
"west": {"uv": [3.5, 11.5, 12.5, 11.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 5.8125],
"to": [8.05, 15.375, 6.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [9.8125, 0.625, 10.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [5.8125, 0.625, 6.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 8.125, 3.5],
"to": [8.125, 8.5, 12.5],
"faces": {
"east": {"uv": [3.5, 7.5, 12.5, 7.875], "texture": "#s"},
"west": {"uv": [3.5, 7.5, 12.5, 7.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 9.8125],
"to": [8.05, 15.375, 10.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [5.8125, 0.625, 6.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [9.8125, 0.625, 10.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 12.125, 3.5],
"to": [8.125, 12.5, 12.5],
"faces": {
"east": {"uv": [3.5, 3.5, 12.5, 3.875], "texture": "#s"},
"west": {"uv": [3.5, 3.5, 12.5, 3.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [8, 2.125, 3.5],
"to": [8.125, 2.5, 12.5],
"faces": {
"east": {"uv": [3.5, 13.5, 12.5, 13.875], "texture": "#s"},
"west": {"uv": [3.5, 13.5, 12.5, 13.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 3.8125],
"to": [8.05, 15.375, 4.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [11.8125, 0.625, 12.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [3.8125, 0.625, 4.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 6.125, 3.5],
"to": [8.125, 6.5, 12.5],
"faces": {
"east": {"uv": [3.5, 9.5, 12.5, 9.875], "texture": "#s"},
"west": {"uv": [3.5, 9.5, 12.5, 9.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 7.8125],
"to": [8.05, 15.375, 8.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [7.8125, 0.625, 8.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [7.8125, 0.625, 8.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 10.125, 3.5],
"to": [8.125, 10.5, 12.5],
"faces": {
"east": {"uv": [3.5, 5.5, 12.5, 5.875], "texture": "#s"},
"west": {"uv": [3.5, 5.5, 12.5, 5.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 11.8125],
"to": [8.05, 15.375, 12.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [3.8125, 0.625, 4.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [11.8125, 0.625, 12.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 14.125, 3.5],
"to": [8.125, 14.5, 12.5],
"faces": {
"east": {"uv": [3.5, 1.5, 12.5, 1.875], "texture": "#s"},
"west": {"uv": [3.5, 1.5, 12.5, 1.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.875, 1.125, 3.5],
"to": [8, 1.5, 12.5],
"faces": {
"east": {"uv": [3.5, 14.5, 12.5, 14.875], "texture": "#s"},
"west": {"uv": [3.5, 14.5, 12.5, 14.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.875, 5.125, 3.5],
"to": [8, 5.5, 12.5],
"faces": {
"east": {"uv": [3.5, 10.5, 12.5, 10.875], "texture": "#s"},
"west": {"uv": [3.5, 10.5, 12.5, 10.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 6.8125],
"to": [8.05, 15.375, 7.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [8.8125, 0.625, 9.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [6.8125, 0.625, 7.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 9.125, 3.5],
"to": [8, 9.5, 12.5],
"faces": {
"east": {"uv": [3.5, 6.5, 12.5, 6.875], "texture": "#s"},
"west": {"uv": [3.5, 6.5, 12.5, 6.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 10.8125],
"to": [8.05, 15.375, 11.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [4.8125, 0.625, 5.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [10.8125, 0.625, 11.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 13.125, 3.5],
"to": [8, 13.5, 12.5],
"faces": {
"east": {"uv": [3.5, 2.5, 12.5, 2.875], "texture": "#s"},
"west": {"uv": [3.5, 2.5, 12.5, 2.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.875, 3.125, 3.5],
"to": [8, 3.5, 12.5],
"faces": {
"east": {"uv": [3.5, 12.5, 12.5, 12.875], "texture": "#s"},
"west": {"uv": [3.5, 12.5, 12.5, 12.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 4.8125],
"to": [8.05, 15.375, 5.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [10.8125, 0.625, 11.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [4.8125, 0.625, 5.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 7.125, 3.5],
"to": [8, 7.5, 12.5],
"faces": {
"east": {"uv": [3.5, 8.5, 12.5, 8.875], "texture": "#s"},
"west": {"uv": [3.5, 8.5, 12.5, 8.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 8.8125],
"to": [8.05, 15.375, 9.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [6.8125, 0.625, 7.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [8.8125, 0.625, 9.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 11.125, 3.5],
"to": [8, 11.5, 12.5],
"faces": {
"east": {"uv": [3.5, 4.5, 12.5, 4.875], "texture": "#s"},
"west": {"uv": [3.5, 4.5, 12.5, 4.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [9, 35, 0],
"translation": [0, 0, -1],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_righthand": {
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"gui": {
"rotation": [30, 135, 0],
"translation": [-0.25, 0.5, 0],
"scale": [0.7, 0.7, 0.7]
},
"fixed": {
"rotation": [0, 90, 0],
"translation": [0, 0, -0.25]
}
}
}

View file

@ -0,0 +1,220 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [3.125, 12.625, 9.4375],
"to": [12.8125, 12.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"south": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 8.625, 9.4375],
"to": [12.8125, 8.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"south": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 4.625, 9.4375],
"to": [12.8125, 4.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"south": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 0.625, 9.4375],
"to": [12.8125, 0.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"south": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 10.625, 9.625],
"to": [12.8125, 10.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"south": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 6.625, 9.625],
"to": [12.9375, 6.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"south": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 2.625, 9.625],
"to": [12.9375, 2.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"south": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [12.25, 0, 9.25],
"to": [13, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"west": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 90, "texture": "#s"}
}
},
{
"from": [3.75, 14, 9.25],
"to": [12.25, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [2.25, 0, 13.75, 1], "texture": "#s"},
"south": {"uv": [2.25, 0, 13.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3, 0, 9.25],
"to": [3.75, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"east": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"south": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 90, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [11.75, 0, 9.5],
"to": [12.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [7.75, 0, 9.5],
"to": [8.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [3.75, 0, 9.5],
"to": [4.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [9.75, 0, 9.5],
"to": [10.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [5.75, 0, 9.5],
"to": [6.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1,222 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [12.625, 12.625, 0.125],
"to": [12.8125, 12.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"west": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 8.625, 0.125],
"to": [12.8125, 8.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"west": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 4.625, 0.125],
"to": [12.8125, 4.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"west": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 0.625, 0.125],
"to": [12.8125, 0.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"west": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 10.625, 0.125],
"to": [12.625, 10.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"west": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 6.625, 0.5],
"to": [12.625, 6.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"west": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 2.625, 0.5],
"to": [12.625, 2.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"west": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 0, 9.25],
"to": [13, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 14, 0.75],
"to": [13, 15, 9.25],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 10.75], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 0, 0],
"to": [13, 15, 0.75],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 180, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [12.5, 0, 8.75],
"to": [12.75, 14.855, 9.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 4.75],
"to": [12.75, 14.855, 5.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 0.75],
"to": [12.75, 14.855, 1.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 6.75],
"to": [12.75, 14.855, 7.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 2.75],
"to": [12.75, 14.855, 3.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1 @@
{ "parent": "engineersdecor:block/fence/steel_mesh_fence_gate_inventory" }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

@ -0,0 +1,21 @@
{
"type": "minecraft:block",
"pools": [
{
"name": "steel_mesh_fence_gate_dlt",
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "engineersdecor:steel_mesh_fence_gate"
}
]
}
]
}

View file

@ -0,0 +1,18 @@
{
"name": "Gates and Doors",
"icon": "engineersdecor:steel_mesh_fence_gate",
"category": "buildingblocks",
"sortnum": 1060,
"pages": [
{
"type": "spotlight",
"title": "Steel Mesh Fence Gate",
"item": "engineersdecor:steel_mesh_fence_gate",
"text": "A fence gate fitting the style of the $(o)Steel Mesh Fence$(). It can be placed one block high for normal fencing, or doubled for higher cage fences, and will form a fence door accordingly.$(br)Redstone open/close signals are accepted for the bottom segment from all sides, for the top segment only from above."
},
{
"type": "text",
"text": ""
}
]
}

View file

@ -2,7 +2,7 @@
"name": "Ladders",
"icon": "engineersdecor:treated_wood_ladder",
"category": "buildingblocks",
"sortnum": 1070,
"sortnum": 1080,
"pages": [
{
"type": "spotlight",

View file

@ -2,7 +2,7 @@
"name": "Windows",
"icon": "engineersdecor:treated_wood_window",
"category": "buildingblocks",
"sortnum": 1060,
"sortnum": 1070,
"pages": [
{
"type": "spotlight",

View file

@ -20,7 +20,7 @@
},
{
"type": "text",
"text": ""
"text": "§nSpeed override switch$()$(br)A four-position switch in the bottom right area of the GUI allows to alter the processing speed of the furnace. Default is position 1 (normal). At high power expenses, you can alter this: $(br)$(li)Position 0: OFF$(li)Position 1: x1.0 -> RF x1$(li)Position 2: x1.5 -> RF x2$(li)Position 3: x2.0 -> RF x4$(br2)(Positions 0..4 are down, left, top, right)."
}
]
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "engineersdecor:optional",
"result": "engineersdecor:steel_mesh_fence_gate",
"required": ["engineersdecor:thin_steel_pole", "engineersdecor:steel_mesh_fence"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"PFP"
],
"key": {
"P": {
"item": "engineersdecor:thin_steel_pole"
},
"F": {
"item": "engineersdecor:steel_mesh_fence"
}
},
"result": {
"item": "engineersdecor:steel_mesh_fence_gate",
"count": 2
}
}

View file

@ -2,7 +2,7 @@
org.gradle.daemon=false
org.gradle.jvmargs=-Xmx8G
version_minecraft=1.15.2
version_forge_minecraft=1.15.2-31.1.18
version_fml_mappings=20191105-1.14.3
version_forge_minecraft=1.15.2-31.1.19
version_fml_mappings=20200225-1.15.1
version_jei=1.15.2:6.0.0.2
version_engineersdecor=1.0.19-b5
version_engineersdecor=1.0.20-b1

View file

@ -1,6 +1,7 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.15.2": {
"1.0.20-b1": "[A] Electrical Furnace: Added four-position speed switch (off, 100%, 150%, 200%), power consumption increases at higher rate (off, 100%, 200%, 400%).\n[A] Added Steel Mesh Fence Gate (single or double height gate fitting to the Steel Mesh Fence).\n[M] Waste Incinerator processing speed tweaked.\n[F] Fixed steel table visual glitch (thx Urbanxx001).\n[M] MCP/Forge mappings updated.",
"1.0.19-b5": "[A] Added right-click display of power and progress information for Block Breaker, Solar Panel, and Tree Cutter.\n[A] Solar Panel power curve tuned.\n[A] Mod manual 1st edition release recipe added.\n[A] Factory Hopper: Resetting NBT when breaking with empty inventory (for stacking), enabled item cap for all sides.\n[M] Electrical Furnace model polished.",
"1.0.19-b4": "[A] Ported primary Immersive Engineering dependent recipes (alternative recipes will still work if IE is not installed).\n[F] Blacklisted Treated Wood Crafting Table in inventorysorter mod (issue #88, thx Nachtflame).\n[M] Furni comparator output overrides reflect input slots and empty fuel state/power-cutoff.\n[M] Solar Panel config: Default value for internal battery capacity increased.\n[F] Block Placer: Shifted GUI player slots 1px to the right.\n[A] Added mod block tags for slabs, stairs, and walls (PR#89, thanks CrudeAustin for the data).\n[A] Added experimental Patchouli manual (creative only).",
"1.0.19-b3": "[M] Config tweaks: Value limit ranges increased to facilitate modpacking.\n[A] Factory Hopper: Added bottom item handler (CR#227).\n[M] Block shapes refined.\n[F] Fixed duping bug (issue #87, thx Nachtflame)",
@ -14,6 +15,6 @@
},
"promos": {
"1.15.2-recommended": "",
"1.15.2-latest": "1.0.19-b5"
"1.15.2-latest": "1.0.20-b1"
}
}

View file

@ -11,6 +11,13 @@ Mod sources for Minecraft version 1.15.1.
## Version history
- v1.0.20-b1 [A] Electrical Furnace: Added four-position speed switch (off, 100%, 150%, 200%), power consumption
increases at higher rate (off, 100%, 200%, 400%).
[A] Added Steel Mesh Fence Gate (single or double height gate fitting to the Steel Mesh Fence).
[M] Waste Incinerator processing speed tweaked.
[F] Fixed steel table visual glitch (thx Urbanxx001).
[M] MCP/Forge mappings updated.
- v1.0.19-b5 [A] Added right-click display of power and progress information for Block Breaker, Solar Panel, and Tree Cutter.
[A] Solar Panel power curve tuned.
[A] Mod manual 1st edition release recipe added.

View file

@ -1,18 +0,0 @@
/*
* BluSunrize
* Copyright (c) 2017
*
* This code is licensed under "Blu's License of Common Sense"
* Details can be found in the license file in the root folder of this project
*/
package blusunrize.immersiveengineering.api.fluid;
import net.minecraft.util.Direction;
public interface IFluidPipe
{
boolean canOutputPressurized(boolean consumePower);
boolean hasOutputConnection(Direction side);
}

View file

@ -195,42 +195,42 @@ public class ModContent
public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = (BlockDecorGlassBlock)(new BlockDecorGlassBlock(
BlockDecor.CFG_TRANSLUCENT,
Block.Properties.create(Material.GLASS, MaterialColor.AIR).hardnessAndResistance(5f, 2000f).sound(SoundType.METAL).func_226896_b_()
Block.Properties.create(Material.GLASS, MaterialColor.AIR).hardnessAndResistance(5f, 2000f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "panzerglass_block"));
public static final BlockDecorSlab PANZERGLASS_SLAB = (BlockDecorSlab)(new BlockDecorSlab(
BlockDecor.CFG_TRANSLUCENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(5f, 2000f).sound(SoundType.METAL).func_226896_b_()
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(5f, 2000f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "panzerglass_slab"));
// -------------------------------------------------------------------------------------------------------------------
public static final BlockDecorLadder METAL_RUNG_LADDER = (BlockDecorLadder)(new BlockDecorLadder(
BlockDecor.CFG_DEFAULT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1.0f, 25f).sound(SoundType.METAL).func_226896_b_()
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1.0f, 25f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "metal_rung_ladder"));
public static final BlockDecorLadder METAL_RUNG_STEPS = (BlockDecorLadder)(new BlockDecorLadder(
BlockDecor.CFG_DEFAULT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1.0f, 25f).sound(SoundType.METAL).func_226896_b_()
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1.0f, 25f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "metal_rung_steps"));
public static final BlockDecorLadder TREATED_WOOD_LADDER = (BlockDecorLadder)(new BlockDecorLadder(
BlockDecor.CFG_DEFAULT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1.0f, 25f).sound(SoundType.WOOD).func_226896_b_()
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1.0f, 25f).sound(SoundType.WOOD).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_ladder"));
// -------------------------------------------------------------------------------------------------------------------
public static final BlockDecor.WaterLoggable TREATED_WOOD_TABLE = (BlockDecor.WaterLoggable)(new BlockDecor.WaterLoggable(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(1,0,1, 15,15.9,15)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_table"));
public static final BlockDecorChair TREATED_WOOD_STOOL = (BlockDecorChair)(new BlockDecorChair(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(4,7,4, 12,8.8,12),
Auxiliaries.getPixeledAABB(7,0,7, 9,7,9),
@ -241,43 +241,43 @@ public class ModContent
public static final BlockDecor.WaterLoggable TREATED_WOOD_SIDE_TABLE = (BlockDecor.WaterLoggable)(new BlockDecor.WaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(2,0,2, 14,15.9,14)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_side_table"));
public static final BlockDecor.DirectedWaterLoggable TREATED_WOOD_WINDOWSILL = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_FACING_PLACEMENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(0.5,15,10.5, 15.5,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_windowsill"));
public static final BlockDecor.DirectedWaterLoggable TREATED_WOOD_BROAD_WINDOWSILL = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_FACING_PLACEMENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(0,14.5,4, 16,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_broad_windowsill"));
public static final BlockDecor.DirectedWaterLoggable INSET_LIGHT_IRON = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).lightValue(15),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).lightValue(15).notSolid(),
Auxiliaries.getPixeledAABB(5.2,5.2,0, 10.8,10.8,0.3)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "iron_inset_light"));
public static final BlockDecor.DirectedWaterLoggable FLOOR_EDGE_LIGHT_IRON = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).lightValue(15),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).lightValue(15).notSolid(),
Auxiliaries.getPixeledAABB(5,0,0, 11,2,0.5)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "iron_floor_edge_light"));
public static final BlockDecor.WaterLoggable STEEL_TABLE = (BlockDecor.WaterLoggable)(new BlockDecor.WaterLoggable(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(0,0,0, 16,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_table"));
public static final BlockDecorFloorGrating STEEL_FLOOR_GRATING = (BlockDecorFloorGrating)(new BlockDecorFloorGrating(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(0,14,0, 16,15.5,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_floor_grating"));
@ -285,13 +285,13 @@ public class ModContent
public static final BlockDecorWindow TREATED_WOOD_WINDOW = (BlockDecorWindow)(new BlockDecorWindow(
BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.GLASS),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.GLASS).notSolid(),
Auxiliaries.getPixeledAABB(0,0,7, 16,16,9)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_window"));
public static final BlockDecorWindow STEEL_FRAMED_WINDOW = (BlockDecorWindow)(new BlockDecorWindow(
BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.GLASS),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.GLASS).notSolid(),
Auxiliaries.getPixeledAABB(0,0,7.5, 16,16,8.5)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_framed_window"));
@ -299,49 +299,49 @@ public class ModContent
public static final BlockDecorStraightPole TREATED_WOOD_POLE = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_pole"));
public static final BlockDecorStraightPole TREATED_WOOD_POLE_HEAD = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_pole_head"));
public static final BlockDecorStraightPole TREATED_WOOD_POLE_SUPPORT = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2f, 15f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "treated_wood_pole_support"));
public static final BlockDecorStraightPole THIN_STEEL_POLE = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(6,6,0, 10,10,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "thin_steel_pole"));
public static final BlockDecorStraightPole THIN_STEEL_POLE_HEAD = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(6,6,0, 10,10,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "thin_steel_pole_head"));
public static final BlockDecorStraightPole THICK_STEEL_POLE = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(5,5,0, 11,11,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "thick_steel_pole"));
public static final BlockDecorStraightPole THICK_STEEL_POLE_HEAD = (BlockDecorStraightPole)(new BlockDecorStraightPole(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(5,5,0, 11,11,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "thick_steel_pole_head"));
public static final BlockDecorHorizontalSupport STEEL_DOUBLE_T_SUPPORT = (BlockDecorHorizontalSupport)(new BlockDecorHorizontalSupport(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(5,11,0, 11,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_double_t_support"));
@ -349,37 +349,37 @@ public class ModContent
public static final BlockDecor.DirectedWaterLoggable SIGN_MODLOGO = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1000f).sound(SoundType.WOOD).lightValue(1),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1000f).sound(SoundType.WOOD).lightValue(1).notSolid(),
Auxiliaries.getPixeledAABB(0,0,15.6, 16,16,16.0)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "sign_decor"));
public static final BlockDecor.DirectedWaterLoggable SIGN_HOTWIRE = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "sign_hotwire"));
public static final BlockDecor.DirectedWaterLoggable SIGN_DANGER = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "sign_danger"));
public static final BlockDecor.DirectedWaterLoggable SIGN_DEFENSE = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "sign_defense"));
public static final BlockDecor.DirectedWaterLoggable SIGN_FACTORY_AREA = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "sign_factoryarea"));
public static final BlockDecor.DirectedWaterLoggable SIGN_EXIT = (BlockDecor.DirectedWaterLoggable)(new BlockDecor.DirectedWaterLoggable(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 1f).sound(SoundType.WOOD).notSolid(),
Auxiliaries.getPixeledAABB(3,7,15.6, 13,13,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "sign_exit"));
@ -387,7 +387,7 @@ public class ModContent
public static final BlockDecorCraftingTable.CraftingTableBlock TREATED_WOOD_CRAFTING_TABLE = (BlockDecorCraftingTable.CraftingTableBlock)(new BlockDecorCraftingTable.CraftingTableBlock(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 15f).sound(SoundType.WOOD),
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 15f).sound(SoundType.WOOD).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(0,13,0, 16,16,16),
Auxiliaries.getPixeledAABB(1, 0,1, 15,13,15)
@ -396,7 +396,7 @@ public class ModContent
public static final BlockDecorFurnace SMALL_LAB_FURNACE = (BlockDecorFurnace)(new BlockDecorFurnace(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(1,0,1, 15, 1,15),
Auxiliaries.getPixeledAABB(0,1,1, 16,16,16),
@ -405,7 +405,7 @@ public class ModContent
public static final BlockDecorFurnaceElectrical SMALL_ELECTRICAL_FURNACE = (BlockDecorFurnaceElectrical)(new BlockDecorFurnaceElectrical(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(0, 0,0, 16,11,16),
Auxiliaries.getPixeledAABB(1,11,0, 15,12,16),
@ -416,14 +416,14 @@ public class ModContent
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "small_electrical_furnace"));
public static final BlockDecorDropper FACTORY_DROPPER = (BlockDecorDropper)(new BlockDecorDropper(
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(0,0,1, 16,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "factory_dropper"));
public static final BlockDecorPlacer FACTORY_PLACER = (BlockDecorPlacer)(new BlockDecorPlacer(
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(0,0,2, 16,16,16),
Auxiliaries.getPixeledAABB( 0,0,0, 1,16, 2),
@ -432,8 +432,8 @@ public class ModContent
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "factory_placer"));
public static final BlockDecorBreaker SMALL_BLOCK_BREAKER = (BlockDecorBreaker)(new BlockDecorBreaker(
BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(1,0,0, 15, 4, 7),
Auxiliaries.getPixeledAABB(1,0,7, 15,12,16),
@ -446,7 +446,7 @@ public class ModContent
public static final BlockDecorHopper FACTORY_HOPPER = (BlockDecorHopper)(new BlockDecorHopper(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),()->{
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),()->{
final AxisAlignedBB[] down_aabbs = new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB( 5, 0, 5, 11, 1,11),
Auxiliaries.getPixeledAABB( 4, 1, 4, 12, 7,12),
@ -498,13 +498,13 @@ public class ModContent
public static final BlockDecorMineralSmelter SMALL_MINERAL_SMELTER = (BlockDecorMineralSmelter)(new BlockDecorMineralSmelter(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "small_mineral_smelter"));
public static final BlockDecorSolarPanel SMALL_SOLAR_PANEL = (BlockDecorSolarPanel)(new BlockDecorSolarPanel(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(0,0,0, 16,2,16),
Auxiliaries.getPixeledAABB(6,1.5,3, 10,10.5,13),
@ -513,7 +513,7 @@ public class ModContent
public static final BlockDecorMilker SMALL_MILKING_MACHINE = (BlockDecorMilker)(new BlockDecorMilker(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB( 1, 1,0, 15,14,10),
Auxiliaries.getPixeledAABB( 0,14,0, 16,16,13),
@ -525,7 +525,7 @@ public class ModContent
public static final BlockDecorTreeCutter SMALL_TREE_CUTTER = (BlockDecorTreeCutter)(new BlockDecorTreeCutter(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB( 0,0, 0, 16,3,16),
Auxiliaries.getPixeledAABB( 0,3, 0, 3,8,16),
@ -539,7 +539,7 @@ public class ModContent
public static final BlockDecorPipeValve STRAIGHT_CHECK_VALVE = (BlockDecorPipeValve)(new BlockDecorPipeValve(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
BlockDecorPipeValve.CFG_CHECK_VALVE,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(2,2, 0, 14,14, 2),
Auxiliaries.getPixeledAABB(2,2,14, 14,14,16),
@ -551,7 +551,7 @@ public class ModContent
public static final BlockDecorPipeValve STRAIGHT_REDSTONE_VALVE = (BlockDecorPipeValve)(new BlockDecorPipeValve(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
BlockDecorPipeValve.CFG_REDSTONE_CONTROLLED_VALVE,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(2,2, 0, 14,14, 2),
Auxiliaries.getPixeledAABB(2,2,14, 14,14,16),
@ -563,7 +563,7 @@ public class ModContent
public static final BlockDecorPipeValve STRAIGHT_REDSTONE_ANALOG_VALVE = (BlockDecorPipeValve)(new BlockDecorPipeValve(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
BlockDecorPipeValve.CFG_REDSTONE_CONTROLLED_VALVE|BlockDecorPipeValve.CFG_ANALOG_VALVE,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(2,2, 0, 14,14, 2),
Auxiliaries.getPixeledAABB(2,2,14, 14,14,16),
@ -574,7 +574,7 @@ public class ModContent
public static final BlockDecorPassiveFluidAccumulator PASSIVE_FLUID_ACCUMULATOR = (BlockDecorPassiveFluidAccumulator)(new BlockDecorPassiveFluidAccumulator(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(3,3,0, 13,13, 1),
Auxiliaries.getPixeledAABB(0,0,1, 16,16,16)
@ -583,7 +583,7 @@ public class ModContent
public static final BlockDecorFluidFunnel SMALL_FLUID_FUNNEL = (BlockDecorFluidFunnel)(new BlockDecorFluidFunnel(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).func_226896_b_(),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
new AxisAlignedBB[]{
Auxiliaries.getPixeledAABB(0, 0,0, 16,14,16),
Auxiliaries.getPixeledAABB(1,14,1, 15,15,15),
@ -595,57 +595,63 @@ public class ModContent
public static final BlockDecorWall CONCRETE_WALL = (BlockDecorWall)(new BlockDecorWall(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.ROCK, MaterialColor.STONE).hardnessAndResistance(2f, 50f).sound(SoundType.STONE)
Block.Properties.create(Material.ROCK, MaterialColor.STONE).hardnessAndResistance(2f, 50f).sound(SoundType.STONE).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "concrete_wall"));
public static final BlockDecorHalfSlab HALFSLAB_CONCRETE = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.ROCK, MaterialColor.STONE).hardnessAndResistance(1f, 10f).sound(SoundType.STONE)
Block.Properties.create(Material.ROCK, MaterialColor.STONE).hardnessAndResistance(1f, 10f).sound(SoundType.STONE).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_concrete"));
public static final BlockDecorHalfSlab HALFSLAB_TREATEDWOOD = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 4f).sound(SoundType.WOOD)
Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(1f, 4f).sound(SoundType.WOOD).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_treated_wood"));
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALIRON = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL)
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_sheetmetal_iron"));
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALSTEEL = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL)
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_sheetmetal_steel"));
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALCOPPER = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL)
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_sheetmetal_copper"));
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALGOLD = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL)
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_sheetmetal_gold"));
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALALUMINIUM = (BlockDecorHalfSlab)(new BlockDecorHalfSlab(
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL)
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(1f, 10f).sound(SoundType.METAL).notSolid()
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "halfslab_sheetmetal_aluminum"));
// -------------------------------------------------------------------------------------------------------------------
public static final BlockDecorFence STEEL_MESH_FENCE = (BlockDecorFence)(new BlockDecorFence(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
1.5, 16, 0.25, 0, 16
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_mesh_fence"));
public static final BlockDecorDoubleGate STEEL_MESH_FENCE_GATE = (BlockDecorDoubleGate)(new BlockDecorDoubleGate(
BlockDecor.CFG_CUTOUT,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(2f, 15f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(0,0,6.5, 16,16,9.5)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "steel_mesh_fence_gate"));
// -------------------------------------------------------------------------------------------------------------------
public static final BlockDecorTest TEST_BLOCK = (BlockDecorTest)(new BlockDecorTest(
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK,
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(0f, 32000f).sound(SoundType.METAL),
Block.Properties.create(Material.IRON, MaterialColor.IRON).hardnessAndResistance(0f, 32000f).sound(SoundType.METAL).notSolid(),
Auxiliaries.getPixeledAABB(0,0,0, 16,16,16)
)).setRegistryName(new ResourceLocation(ModEngineersDecor.MODID, "test_block"));
@ -718,6 +724,7 @@ public class ModContent
FLOOR_EDGE_LIGHT_IRON,
STEEL_FLOOR_GRATING,
STEEL_MESH_FENCE,
STEEL_MESH_FENCE_GATE,
TREATED_WOOD_POLE,
TREATED_WOOD_POLE_HEAD,
TREATED_WOOD_POLE_SUPPORT,
@ -1001,13 +1008,13 @@ public class ModContent
if(block instanceof IStandardBlock) {
switch(((IStandardBlock)block).getRenderTypeHint()) {
case CUTOUT:
RenderTypeLookup.setRenderLayer(block, RenderType.func_228643_e_()/*cutout*/);
RenderTypeLookup.setRenderLayer(block, RenderType.getCutout());
break;
case CUTOUT_MIPPED:
RenderTypeLookup.setRenderLayer(block, RenderType.func_228641_d_()/*cutout_mipped*/);
RenderTypeLookup.setRenderLayer(block, RenderType.getCutoutMipped());
break;
case TRANSLUCENT:
RenderTypeLookup.setRenderLayer(block, RenderType.func_228645_f_()/*transparent*/);
RenderTypeLookup.setRenderLayer(block, RenderType.getTranslucent());
break;
case SOLID:
break;

View file

@ -113,11 +113,11 @@ public class BlockDecorBreaker extends BlockDecor.HorizontalWaterLoggable implem
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{
TileEntity te = world.getTileEntity(pos);
if(te instanceof BTileEntity) ((BTileEntity)te).state_message(player);
return true;
return ActionResultType.SUCCESS;
}
//--------------------------------------------------------------------------------------------------------------------

View file

@ -10,17 +10,18 @@ package wile.engineersdecor.blocks;
import wile.engineersdecor.ModContent;
import wile.engineersdecor.ModEngineersDecor;
import net.minecraft.world.server.ServerWorld;
import net.minecraft.world.IWorldReader;
import net.minecraft.world.World;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.*;
import net.minecraft.entity.monster.*;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.IPacket;
import net.minecraft.util.math.*;
import net.minecraft.world.IWorldReader;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.*;
import net.minecraft.world.World;
import net.minecraftforge.fml.network.FMLPlayMessages;
import net.minecraftforge.fml.network.NetworkHooks;
import java.util.List;
@ -45,11 +46,11 @@ public class BlockDecorChair extends BlockDecor.HorizontalWaterLoggable implemen
{ super(config, builder.tickRandomly(), unrotatedAABBs); }
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(sitting_enabled && (!world.isRemote)) { EntityChair.sit(world, player, pos); }
return true;
if(!sitting_enabled) return ActionResultType.PASS;
if(!world.isRemote) EntityChair.sit(world, player, pos);
return ActionResultType.SUCCESS;
}
@Override
@ -64,8 +65,7 @@ public class BlockDecorChair extends BlockDecor.HorizontalWaterLoggable implemen
{ return 10; }
@Override
@SuppressWarnings("deprecation")
public void tick(BlockState state, World world, BlockPos pos, Random rnd)
public void tick(BlockState state, ServerWorld world, BlockPos pos, Random rnd)
{
if((!sitting_enabled) || (sitting_probability < 1e-6)) return;
final List<LivingEntity> entities = world.getEntitiesWithinAABB(MobEntity.class, new AxisAlignedBB(pos).grow(2,1,2).expand(0,1,0), e->true);

View file

@ -93,15 +93,14 @@ public class BlockDecorCraftingTable
{ return new BlockDecorCraftingTable.CraftingTableTileEntity(); }
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof CraftingTableTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof CraftingTableTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -0,0 +1,155 @@
/*
* @file BlockDecorDoubleGate.java
* @author Stefan Wilhelm (wile)
* @copyright (C) 2019 Stefan Wilhelm
* @license MIT (see https://opensource.org/licenses/MIT)
*
* Gate blocks that can be one or two segments high.
*/
package wile.engineersdecor.blocks;
import wile.engineersdecor.libmc.detail.Auxiliaries;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;
import net.minecraft.state.BooleanProperty;
import net.minecraft.state.IntegerProperty;
import net.minecraft.state.StateContainer;
import net.minecraft.block.*;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.*;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.util.math.shapes.VoxelShapes;
import net.minecraft.pathfinding.PathType;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
public class BlockDecorDoubleGate extends BlockDecor.HorizontalWaterLoggable implements IDecorBlock
{
public static final IntegerProperty SEGMENT = IntegerProperty.create("segment", 0, 1);
public static final BooleanProperty OPEN = FenceGateBlock.OPEN;
public static final int SEGMENT_LOWER = 0;
public static final int SEGMENT_UPPER = 1;
protected final ArrayList<VoxelShape> collision_shapes_;
public BlockDecorDoubleGate(long config, Block.Properties properties, AxisAlignedBB aabb)
{ this(config, properties, new AxisAlignedBB[]{aabb}); }
public BlockDecorDoubleGate(long config, Block.Properties properties, AxisAlignedBB[] aabbs)
{
super(config, properties, aabbs);
AxisAlignedBB[] caabbs = new AxisAlignedBB[aabbs.length];
for(int i=0; i<caabbs.length; ++i) caabbs[i] = aabbs[i].expand(0, 0.5, 0);
collision_shapes_ = new ArrayList<VoxelShape>(Arrays.asList(
VoxelShapes.fullCube(),
VoxelShapes.fullCube(),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.NORTH, true)),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.SOUTH, true)),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.WEST, true)),
Auxiliaries.getUnionShape(Auxiliaries.getRotatedAABB(caabbs, Direction.EAST, true)),
VoxelShapes.fullCube(),
VoxelShapes.fullCube()
));
}
@Override
public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext selectionContext)
{ return state.get(OPEN) ? VoxelShapes.empty() : collision_shapes_.get(state.get(HORIZONTAL_FACING).getIndex() & 0x7); }
@Override
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder)
{ super.fillStateContainer(builder); builder.add(SEGMENT).add(OPEN); }
@Override
@Nullable
public BlockState getStateForPlacement(BlockItemUseContext context)
{ return getInitialState(super.getStateForPlacement(context), context.getWorld(), context.getPos()); }
@Override
@SuppressWarnings("deprecation")
public BlockState updatePostPlacement(BlockState state, Direction facing, BlockState facingState, IWorld world, BlockPos pos, BlockPos facingPos)
{ return getInitialState(super.updatePostPlacement(state, facing, facingState, world, pos, facingPos), world, pos); }
@Override
@SuppressWarnings("deprecation")
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if((rayTraceResult.getFace()==Direction.UP) || (rayTraceResult.getFace()==Direction.DOWN) && (player.getHeldItem(hand).getItem()==this.asItem())) return ActionResultType.PASS;
if(world.isRemote) return ActionResultType.SUCCESS;
final boolean open = !state.get(OPEN);
world.setBlockState(pos, state.with(OPEN, open),2|8|16);
if(state.get(SEGMENT) == SEGMENT_UPPER) {
final BlockState adjacent = world.getBlockState(pos.down());
if(adjacent.getBlock()==this) world.setBlockState(pos.down(), adjacent.with(OPEN, open), 2|8|16);
} else {
final BlockState adjacent = world.getBlockState(pos.up());
if(adjacent.getBlock()==this) world.setBlockState(pos.up(), adjacent.with(OPEN, open), 2|8|16);
}
world.playSound(null, pos, open?SoundEvents.BLOCK_IRON_DOOR_OPEN:SoundEvents.BLOCK_IRON_DOOR_CLOSE, SoundCategory.BLOCKS, 0.7f, 1.4f);
return ActionResultType.SUCCESS;
}
@Override
@SuppressWarnings("deprecation")
public boolean allowsMovement(BlockState state, IBlockReader world, BlockPos pos, PathType type)
{ return state.get(OPEN); }
@Override
@SuppressWarnings("deprecation")
public void neighborChanged(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving)
{
if(world.isRemote) return;
boolean powered = false;
BlockState adjacent;
BlockPos adjacent_pos;
if(state.get(SEGMENT) == SEGMENT_UPPER) {
adjacent_pos = pos.down();
adjacent = world.getBlockState(adjacent_pos);
if(adjacent.getBlock()!=this) adjacent = null;
if(world.getRedstonePower(pos.up(), Direction.UP) > 0) {
powered = true;
} else if((adjacent!=null) && (world.isBlockPowered(pos.down(2)))) {
powered = true;
}
} else {
adjacent_pos = pos.up();
adjacent = world.getBlockState(adjacent_pos);
if(adjacent.getBlock()!=this) adjacent = null;
if(world.isBlockPowered(pos)) {
powered = true;
} else if((adjacent!=null) && (world.getRedstonePower(pos.up(2), Direction.UP) > 0)) {
powered = true;
}
}
boolean sound = false;
if(powered != state.get(OPEN)) {
world.setBlockState(pos, state.with(OPEN, powered), 2|8|16);
sound = true;
}
if((adjacent != null) && (powered != adjacent.get(OPEN))) {
world.setBlockState(adjacent_pos, adjacent.with(OPEN, powered), 2|8|16);
sound = true;
}
if(sound) {
world.playSound(null, pos, powered?SoundEvents.BLOCK_IRON_DOOR_OPEN:SoundEvents.BLOCK_IRON_DOOR_CLOSE, SoundCategory.BLOCKS, 0.7f, 1.4f);
}
}
// -------------------------------------------------------------------------------------------------------------------
private BlockState getInitialState(BlockState state, IWorld world, BlockPos pos)
{
final BlockState down = world.getBlockState(pos.down());
if(down.getBlock() == this) return state.with(SEGMENT, SEGMENT_UPPER).with(OPEN, down.get(OPEN)).with(HORIZONTAL_FACING, down.get(HORIZONTAL_FACING));
final BlockState up = world.getBlockState(pos.up());
if(up.getBlock() == this) return state.with(SEGMENT, SEGMENT_LOWER).with(OPEN, up.get(OPEN)).with(HORIZONTAL_FACING, up.get(HORIZONTAL_FACING));
return state.with(SEGMENT, SEGMENT_LOWER).with(OPEN, false);
}
}

View file

@ -143,15 +143,14 @@ public class BlockDecorDropper extends BlockDecor.Directed implements IDecorBloc
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BlockDecorDropper.BTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof BlockDecorDropper.BTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -9,6 +9,9 @@
package wile.engineersdecor.blocks;
import wile.engineersdecor.libmc.blocks.StandardFenceBlock;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IWorldReader;
import net.minecraft.block.*;
@ -19,4 +22,8 @@ public class BlockDecorFence extends StandardFenceBlock implements IDecorBlock
public BlockDecorFence(long config, Block.Properties properties, double pole_width, double pole_height, double side_width, double side_max_y, double side_min_y)
{ super(config, properties, pole_width, pole_height, side_width, side_max_y, side_min_y); }
@Override
protected boolean attachesTo(BlockState facingState, IWorldReader world, BlockPos facingPos, Direction side)
{ return ((facingState.getBlock()) instanceof BlockDecorDoubleGate) || super.attachesTo(facingState, world, facingPos, side); }
}

View file

@ -25,6 +25,7 @@ import net.minecraft.fluid.IFluidState;
import net.minecraft.tileentity.ITickableTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.*;
@ -123,13 +124,12 @@ public class BlockDecorFluidFunnel extends BlockDecor implements IDecorBlock
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return false;
return FluidUtil.interactWithFluidHandler(player, hand, world, pos, rayTraceResult.getFace());
if(!(te instanceof BTileEntity)) return ActionResultType.FAIL;
return FluidUtil.interactWithFluidHandler(player, hand, world, pos, rayTraceResult.getFace()) ? ActionResultType.SUCCESS : ActionResultType.FAIL;
}
@Override

View file

@ -149,16 +149,15 @@ public class BlockDecorFurnace extends BlockDecor.Horizontal implements IDecorBl
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BlockDecorFurnace.BTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof BlockDecorFurnace.BTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
player.addStat(Stats.INTERACT_WITH_FURNACE);
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -68,15 +68,15 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
{ return new BlockDecorFurnaceElectrical.BTileEntity(); }
@Override
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BlockDecorFurnaceElectrical.BTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof BlockDecorFurnaceElectrical.BTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
player.addStat(Stats.INTERACT_WITH_FURNACE);
return true;
return ActionResultType.SUCCESS;
}
@Override
@ -112,7 +112,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
public static final int FIFO_INTERVAL = 20;
public static final int HEAT_CAPACITY = 200;
public static final int HEAT_INCREMENT = 20;
public static final int MAX_ENERGY_TRANSFER = 256;
public static final int MAX_ENERGY_TRANSFER = 1024;
public static final int MAX_ENERGY_BUFFER = 32000;
public static final int MAX_SPEED_SETTING = 2;
public static final int NUM_OF_SLOTS = 7;
@ -133,6 +133,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
private static int energy_consumption_ = DEFAULT_SCALED_ENERGY_CONSUMPTION;
private static int transfer_energy_consumption_ = DEFAULT_SCALED_ENERGY_CONSUMPTION / 8;
private static int proc_speed_percent_ = DEFAULT_SPEED_PERCENT;
private static double speed_setting_factor_[] = {0.0, 1.0, 1.5, 2.0};
public static void on_config(int speed_percent, int standard_energy_per_tick, boolean with_automatic_inventory_pulling)
{
@ -145,15 +146,16 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
// BTileEntity -----------------------------------------------------------------------------
private int burntime_left_;
private int proc_time_elapsed_;
private int proc_time_needed_;
private int energy_stored_;
private int field_max_energy_stored_;
private int field_isburning_;
private int speed_;
private int tick_timer_;
private int fifo_timer_;
private int burntime_left_ = 0;
private int proc_time_elapsed_ = 0;
private int proc_time_needed_ = 0;
private int energy_stored_ = 0;
private int field_max_energy_stored_ = 0;
private int field_isburning_ = 0;
private int speed_ = 1;
private int tick_timer_ = 0;
private int fifo_timer_ = 0;
private boolean enabled_ = false;
public BTileEntity()
{ this(ModContent.TET_SMALL_ELECTRICAL_FURNACE); }
@ -185,6 +187,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
proc_time_needed_ = nbt.getInt("CookTimeTotal");
energy_stored_ = nbt.getInt("Energy");
speed_ = nbt.getInt("SpeedSetting");
speed_ = (speed_ < 0) ? (1) : ((speed_>3) ? 3 : speed_);
}
protected void writenbt(CompoundNBT nbt)
@ -468,7 +471,12 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
if(transferItems(FIFO_INPUT_0_SLOT_NO, SMELTING_INPUT_SLOT_NO, 64)) dirty = true;
if(transferItems(FIFO_INPUT_1_SLOT_NO, FIFO_INPUT_0_SLOT_NO, 64)) { dirty = true; } else { shift_in = true; }
}
if((!(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty()) && (energy_stored_ >= energy_consumption_)) {
if(energy_stored_ < energy_consumption()) {
enabled_ = false;
} else if(energy_stored_ >= (MAX_ENERGY_BUFFER/2)) {
enabled_ = true;
}
if((!(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty()) && (enabled_) && (speed_>0) && (speed_<4)) {
IRecipe last_recipe = currentRecipe();
updateCurrentRecipe();
if(currentRecipe() != last_recipe) {
@ -486,7 +494,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
}
if(burning() && can_smelt) {
if(heat_up()) dirty = true;
proc_time_elapsed_ += (TICK_INTERVAL * proc_speed_percent_/100);
proc_time_elapsed_ += (int)(TICK_INTERVAL * proc_speed_percent_ * speed_setting_factor_[speed_] / 100);
if(proc_time_elapsed_ >= proc_time_needed_) {
proc_time_elapsed_ = 0;
proc_time_needed_ = getSmeltingTimeNeeded(world, stacks_.get(SMELTING_INPUT_SLOT_NO));
@ -510,7 +518,6 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
if(dirty) markDirty();
field_max_energy_stored_ = getMaxEnergyStored();
field_isburning_ = burning() ? 1 : 0;
//if(this.energy_stored_ < this.getMaxEnergyStored() / 5) this.energy_stored_ = this.getMaxEnergyStored();
}
// Furnace --------------------------------------------------------------------------------------
@ -596,15 +603,25 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
return dirty;
}
// returns TE dirty
int energy_consumption()
{
switch(speed_) {
case 1: return energy_consumption_;
case 2: return energy_consumption_ * 2;
case 3: return energy_consumption_ * 4;
default: return 0;
}
}
private boolean heat_up()
{
if(energy_stored_ < (energy_consumption_)) return false;
int p = energy_consumption();
if((p<=0) || (energy_stored_ < p)) return false;
if(burntime_left_ >= (HEAT_CAPACITY-HEAT_INCREMENT)) return false;
energy_stored_ -= energy_consumption_;
energy_stored_ -= p;
burntime_left_ += HEAT_INCREMENT;
this.markDirty();
return true;
return true; // returns TE dirty
}
private void sync_blockstate()
@ -728,9 +745,13 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
public void onServerPacketReceived(int windowId, CompoundNBT nbt)
{}
@Override
public void onClientPacketReceived(int windowId, PlayerEntity player, CompoundNBT nbt)
{}
{
if(!(inventory_ instanceof BTileEntity)) return;
BTileEntity te = (BTileEntity)inventory_;
if(nbt.contains("speed")) te.speed_ = MathHelper.clamp(nbt.getInt("speed"), 0, 3);
te.markDirty();
}
}
//--------------------------------------------------------------------------------------------------------------------
@ -773,9 +794,35 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace implements ID
blit(x0+79, y0+30, 176, 15, 1+progress_px(17), 15);
int we = energy_px(32, 8);
if(we>0) blit(x0+88, y0+53, 185, 30, we, 13);
switch(getContainer().field(4)) {
case 0: blit(x0+144, y0+57, 180, 57, 6, 9); break;
case 1: blit(x0+142, y0+58, 190, 58, 9, 6); break;
case 2: blit(x0+144, y0+56, 200, 57, 6, 9); break;
case 3: blit(x0+143, y0+58, 210, 58, 9, 6); break;
default: break;
}
RenderSystem.disableBlend();
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int mouseButton)
{
BContainer container = (BContainer)getContainer();
int mx = (int)(mouseX - getGuiLeft() + .5), my = (int)(mouseY - getGuiTop() + .5);
if((!isPointInRegion(136, 48, 28, 28, mouseX, mouseY))) {
return super.mouseClicked(mouseX, mouseY, mouseButton);
} else if(isPointInRegion(144, 64, 6, 10, mouseX, mouseY)) {
container.onGuiAction("speed", 0);
} else if(isPointInRegion(134, 58, 10, 6, mouseX, mouseY)) {
container.onGuiAction("speed", 1);
} else if(isPointInRegion(144, 48, 6, 10, mouseX, mouseY)) {
container.onGuiAction("speed", 2);
} else if(isPointInRegion(150, 58, 10, 6, mouseX, mouseY)) {
container.onGuiAction("speed", 3);
}
return true;
}
private int progress_px(int pixels)
{ final int tc=getContainer().field(2), T=getContainer().field(3); return ((T>0) && (tc>0)) ? (tc * pixels / T) : (0); }

View file

@ -8,6 +8,8 @@
*/
package wile.engineersdecor.blocks;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShapes;
import wile.engineersdecor.ModContent;
import wile.engineersdecor.ModEngineersDecor;
import wile.engineersdecor.libmc.detail.Inventories;
@ -58,6 +60,10 @@ public class BlockDecorHopper extends BlockDecor.Directed implements IDecorBlock
public BlockDecorHopper(long config, Block.Properties builder, final Supplier<ArrayList<VoxelShape>> shape_supplier)
{ super(config, builder, shape_supplier); }
@Override
public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context)
{ return VoxelShapes.fullCube(); }
@Override
@SuppressWarnings("deprecation")
public boolean hasComparatorInputOverride(BlockState state)
@ -121,15 +127,14 @@ public class BlockDecorHopper extends BlockDecor.Directed implements IDecorBlock
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof BTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -86,7 +86,7 @@ public class BlockDecorLadder extends LadderBlock implements IDecorBlock
// Player update event, forwarded from the main mod instance.
public static void onPlayerUpdateEvent(final PlayerEntity player)
{
if((without_speed_boost_) || (player.onGround) || (!player.isOnLadder()) || (player.func_225608_bj_()/*isSneaking()*/) || (player.isSpectator())) return;
if((without_speed_boost_) || (player.onGround) || (!player.isOnLadder()) || (player.isShiftKeyDown()) || (player.isSpectator())) return;
double lvy = player.getLookVec().y;
if(Math.abs(lvy) < 0.94) return;
final BlockPos pos = player.getPosition();

View file

@ -93,15 +93,14 @@ public class BlockDecorMilker extends BlockDecor.Horizontal implements IDecorBlo
{ return new BTileEntity(); }
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
BTileEntity te = getTe(world, pos);
if(te==null) return true;
if(te==null) return ActionResultType.FAIL;
final ItemStack in_stack = player.getHeldItem(hand);
final ItemStack out_stack = BTileEntity.milk_filled_container_item(in_stack);
if(out_stack.isEmpty() && (te.fluid_handler()!=null)) return FluidUtil.interactWithFluidHandler(player, hand, te.fluid_handler());
if(out_stack.isEmpty() && (te.fluid_handler()!=null)) return FluidUtil.interactWithFluidHandler(player, hand, te.fluid_handler()) ? ActionResultType.SUCCESS : ActionResultType.FAIL;
boolean drained = false;
IItemHandler player_inventory = new PlayerMainInvWrapper(player.inventory);
if(te.fluid_level() >= BTileEntity.BUCKET_SIZE) {
@ -122,7 +121,7 @@ public class BlockDecorMilker extends BlockDecor.Horizontal implements IDecorBlo
if(drained) {
world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL, SoundCategory.BLOCKS, 0.8f, 1f);
}
return true;
return ActionResultType.SUCCESS;
}
@Nullable
@ -697,7 +696,7 @@ public class BlockDecorMilker extends BlockDecor.Horizontal implements IDecorBlo
log("shouldContinueExecuting() -> already aborted");
return false;
} else if(creature.getNavigator().noPath()) {
if((!creature.getNavigator().setPath(creature.getNavigator().func_225466_a(target_pos_.getX(), target_pos_.getY(), target_pos_.getZ(), 0), movementSpeed))) {
if((!creature.getNavigator().setPath(creature.getNavigator().getPathToPos(target_pos_.getX(), target_pos_.getY(), target_pos_.getZ(), 0), movementSpeed))) {
log("shouldContinueExecuting() -> abort, no path");
abort();
return false;

View file

@ -111,13 +111,12 @@ public class BlockDecorMineralSmelter extends BlockDecor.Horizontal implements I
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(player.func_225608_bj_()/*isSneaking()*/) return false;
if(player.isShiftKeyDown()) return ActionResultType.PASS;
if(world.isRemote) return ActionResultType.SUCCESS;
BTileEntity te = getTe(world, pos);
if(te==null) return true;
if(te==null) return ActionResultType.FAIL;
final ItemStack stack = player.getHeldItem(hand);
boolean dirty = false;
if(te.accepts_lava_container(stack)) {
@ -161,7 +160,7 @@ public class BlockDecorMineralSmelter extends BlockDecor.Horizontal implements I
dirty = true;
}
if(dirty) player.inventory.markDirty();
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -23,10 +23,11 @@ import net.minecraft.tileentity.TileEntityType;
import net.minecraft.tileentity.ITickableTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.Hand;
import net.minecraft.util.math.MathHelper;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.Direction;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
@ -56,13 +57,13 @@ public class BlockDecorPassiveFluidAccumulator extends BlockDecor.Directed imple
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return true;
if(!(te instanceof BTileEntity)) return ActionResultType.FAIL;
((BTileEntity)te).send_device_stats(player);
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -125,15 +125,14 @@ public class BlockDecorPlacer extends BlockDecor.Directed implements IDecorBlock
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof BTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -24,6 +24,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.ITickableTileEntity;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
@ -61,12 +62,11 @@ public class BlockDecorSolarPanel extends BlockDecor implements IDecorBlock
{ return new BlockDecorSolarPanel.BTileEntity(); }
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{
TileEntity te = world.getTileEntity(pos);
if(te instanceof BTileEntity) ((BTileEntity)te).state_message(player);
return true;
return ActionResultType.SUCCESS;
}
//--------------------------------------------------------------------------------------------------------------------
@ -211,7 +211,7 @@ public class BlockDecorSolarPanel extends BlockDecor implements IDecorBlock
BlockState nstate = state.with(EXPOSITION, e);
if(nstate != state) world.setBlockState(pos, nstate, 1|2);
final double eff = (1.0-((world.getRainStrength(1f)*0.6)+(world.getThunderStrength(1f)*0.3)));
final double ll = ((double)(world.func_225524_e_().getLightEngine(LightType.SKY).getLightFor(getPos())))/15;
final double ll = ((double)(world.getLightManager().getLightEngine(LightType.SKY).getLightFor(getPos())))/15;
final double rf = Math.sin((Math.PI/2) * Math.sqrt(((double)(((theta<0)||(theta>180))?(0):((theta>90)?(180-theta):(theta))))/90));
current_production_ = (int)(Math.min(rf*rf*eff*ll, 1) * peak_power_per_tick_);
accumulated_power_ = Math.min(accumulated_power_ + (current_production_*(TICK_INTERVAL*ACCUMULATION_INTERVAL)), max_power_storage_);

View file

@ -21,6 +21,7 @@ import net.minecraft.tileentity.ITickableTileEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.fluid.Fluids;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Hand;
import net.minecraft.util.Direction;
import net.minecraft.util.math.MathHelper;
@ -79,12 +80,12 @@ public class BlockDecorTest extends BlockDecor.Directed implements Auxiliaries.I
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{
TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return false;
if(!(te instanceof BTileEntity)) return ActionResultType.SUCCESS;
((BTileEntity)te).activated(player, hand, hit);
return true;
return ActionResultType.SUCCESS;
}
//--------------------------------------------------------------------------------------------------------------------

View file

@ -82,12 +82,11 @@ public class BlockDecorTreeCutter extends BlockDecor.Horizontal implements IDeco
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{
TileEntity te = world.getTileEntity(pos);
if(te instanceof BTileEntity) ((BTileEntity)te).state_message(player);
return true;
return ActionResultType.SUCCESS;
}
//--------------------------------------------------------------------------------------------------------------------

View file

@ -134,15 +134,14 @@ public class BlockDecorWasteIncinerator extends BlockDecor implements IDecorBloc
}
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return true;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return true;
if(!(te instanceof BTileEntity)) return ActionResultType.FAIL;
if((!(player instanceof ServerPlayerEntity) && (!(player instanceof FakePlayer)))) return ActionResultType.FAIL;
NetworkHooks.openGui((ServerPlayerEntity)player,(INamedContainerProvider)te);
return true;
return ActionResultType.SUCCESS;
}
@Override
@ -166,6 +165,7 @@ public class BlockDecorWasteIncinerator extends BlockDecor implements IDecorBloc
public static final int NUM_OF_FIELDS = 1;
public static final int TICK_INTERVAL = 20;
public static final int ENERGIZED_TICK_INTERVAL = 5;
public static final int INCINERATION_STACK_DECREMENT = 4;
public static final int MAX_ENERGY_BUFFER = 16000;
public static final int MAX_ENERGY_TRANSFER = 256;
public static final int DEFAULT_ENERGY_CONSUMPTION = 16;
@ -190,7 +190,6 @@ public class BlockDecorWasteIncinerator extends BlockDecor implements IDecorBloc
private int energy_stored_;
protected NonNullList<ItemStack> stacks_ = NonNullList.<ItemStack>withSize(NUM_OF_SLOTS, ItemStack.EMPTY);
public BTileEntity()
{ this(ModContent.TET_WASTE_INCINERATOR); }
@ -503,7 +502,7 @@ public class BlockDecorWasteIncinerator extends BlockDecor implements IDecorBloc
ItemStack first_stack = stacks_.get(0);
boolean shift = !first_stack.isEmpty();
if(is_processing) {
processing_stack.shrink(1);
processing_stack.shrink(INCINERATION_STACK_DECREMENT);
if(processing_stack.getCount() <= 0) {
processing_stack = ItemStack.EMPTY;
is_processing = false;
@ -516,22 +515,11 @@ public class BlockDecorWasteIncinerator extends BlockDecor implements IDecorBloc
dirty = true;
}
if(shift) {
int max_shift_slot_no = BURN_SLOT_NO-1;
for(int i=1; i<BURN_SLOT_NO-1; ++i) { if(stacks_.get(i).isEmpty()) { max_shift_slot_no=i; break; } }
if(max_shift_slot_no < (BURN_SLOT_NO-1)) {
// re-stack
boolean stacked = false;
for(int i=1; i<=max_shift_slot_no; ++i) {
if(transferItems(i-1, i, getInventoryStackLimit())) {
dirty = true;
stacked = true;
break;
}
}
if(!stacked) {
shiftStacks(0, max_shift_slot_no);
}
} else if(!is_processing) {
boolean transferred = false;
for(int i=BURN_SLOT_NO-1; i>0; --i) {
transferred |= transferItems(i-1, i, getInventoryStackLimit());
}
if((!is_processing) && (!transferred)) {
shiftStacks(0, BURN_SLOT_NO);
dirty = true;
}

View file

@ -82,9 +82,6 @@ public class ModRenderers
{ super(dispatcher); }
@Override
public void func_225616_a_(final BlockDecorCraftingTable.CraftingTableTileEntity te, float f2, MatrixStack mxs, IRenderTypeBuffer buf, int i5, int i6)
{ render(te, f2, mxs, buf, i5, i6); }
@SuppressWarnings("deprecation")
public void render(final BlockDecorCraftingTable.CraftingTableTileEntity te, float unused1, MatrixStack mxs, IRenderTypeBuffer buf, int i5, int i6)
{
@ -102,17 +99,14 @@ public class ModRenderers
float oy = 0.5f;
float ry = ((yrotations[di]+180) + ((prnd*60)-30)) % 360;
if(stack.isEmpty()) return;
mxs.func_227860_a_(); // mxs.push()
mxs.func_227861_a_(0.5+ox, 0.5+oy, 0.5+oz); // mxs.translate()
mxs.func_227863_a_(Vector3f.field_229179_b_.func_229187_a_(90.0f)); // mxs.transform(Vector3f.x_plus.rotation(90))
mxs.func_227863_a_(Vector3f.field_229183_f_.func_229187_a_(ry)); // mxs.transform(Vector3f.z_plus.rotation(ry))
mxs.func_227861_a_(rndo, rndo, 0); // mxs.translate()
mxs.func_227862_a_(scaler, scaler, scaler); // mxs.scale()
Minecraft.getInstance().getItemRenderer().func_229110_a_(stack, net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.FIXED, i5, i6, mxs, buf);
mxs.func_227865_b_(); // mxs.pop()
mxs.push();
mxs.translate(0.5+ox, 0.5+oy, 0.5+oz);
mxs.rotate(Vector3f.XP.rotationDegrees(90.0f));
mxs.rotate(Vector3f.ZP.rotationDegrees(ry));
mxs.translate(rndo, rndo, 0);
mxs.scale(scaler, scaler, scaler);
Minecraft.getInstance().getItemRenderer().renderItem(stack, net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.FIXED, i5, i6, mxs, buf);
mxs.pop(); // mxs.pop()
}
} catch(Throwable e) {
if(--tesr_error_counter<=0) {

View file

@ -138,29 +138,28 @@ public class SlabSliceBlock extends StandardBlocks.WaterLoggable implements Stan
{ return new ArrayList<ItemStack>(Collections.singletonList(new ItemStack(this.asItem(), num_slabs_contained_in_parts_[state.get(PARTS) & 0xf]))); }
@Override
@SuppressWarnings("deprecation")
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult)
{
Direction face = rayTraceResult.getFace();
final ItemStack stack = player.getHeldItem(hand);
if(stack.isEmpty() || (Block.getBlockFromItem(stack.getItem()) != this)) return false;
if((face != Direction.UP) && (face != Direction.DOWN)) return false;
if(stack.isEmpty() || (Block.getBlockFromItem(stack.getItem()) != this)) return ActionResultType.PASS;
if((face != Direction.UP) && (face != Direction.DOWN)) return ActionResultType.PASS;
int parts = state.get(PARTS);
if((face != Direction.UP) && (parts > 7)) {
world.setBlockState(pos, state.with(PARTS, parts-1), 3);
} else if((face != Direction.DOWN) && (parts < 7)) {
world.setBlockState(pos, state.with(PARTS, parts+1), 3);
} else {
return (parts != 7);
return (parts != 7) ? ActionResultType.SUCCESS : ActionResultType.PASS;
}
if(world.isRemote) return true;
if(world.isRemote) return ActionResultType.SUCCESS;
if(!player.isCreative()) {
stack.shrink(1);
if(player.inventory != null) player.inventory.markDirty();
}
SoundType st = this.getSoundType(state, world, pos, null);
world.playSound(null, pos, st.getPlaceSound(), SoundCategory.BLOCKS, (st.getVolume()+1f)/2.5f, 0.9f*st.getPitch());
return true;
return ActionResultType.SUCCESS;
}
@Override

View file

@ -101,28 +101,16 @@ public class StandardBlocks
vshape = shape;
}
///////////// --------------------------------------------------------------------------------------------------------
// 1.15 transition
@Override
@SuppressWarnings("deprecation")
public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{ return ActionResultType.PASS; }
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit)
{ return false; }
@Deprecated
public ActionResultType func_225533_a_(BlockState p_225533_1_, World p_225533_2_, BlockPos p_225533_3_, PlayerEntity p_225533_4_, Hand p_225533_5_, BlockRayTraceResult p_225533_6_)
{
return onBlockActivated(p_225533_1_,p_225533_2_,p_225533_3_,p_225533_4_,p_225533_5_,p_225533_6_) ? ActionResultType.SUCCESS : ActionResultType.PASS;
}
@Deprecated
public void func_225534_a_(BlockState p_225534_1_, ServerWorld p_225534_2_, BlockPos p_225534_3_, Random p_225534_4_)
{ tick(p_225534_1_,p_225534_2_,p_225534_3_,p_225534_4_); }
public void tick(BlockState state, World world, BlockPos pos, Random rnd)
@Override
@SuppressWarnings("deprecation")
public void tick(BlockState state, ServerWorld world, BlockPos pos, Random rnd)
{}
// 1.15 /transition
///////////// --------------------------------------------------------------------------------------------------------
@Override
@OnlyIn(Dist.CLIENT)
public void addInformation(ItemStack stack, @Nullable IBlockReader world, List<ITextComponent> tooltip, ITooltipFlag flag)
@ -319,7 +307,7 @@ public class StandardBlocks
// default: placement on the face the player clicking
}
if((config & CFG_OPPOSITE_PLACEMENT)!=0) facing = facing.getOpposite();
if(((config & CFG_FLIP_PLACEMENT_SHIFTCLICK) != 0) && (context.getPlayer().func_225608_bj_()/*isSneaking()*/)) facing = facing.getOpposite();
if(((config & CFG_FLIP_PLACEMENT_SHIFTCLICK) != 0) && (context.getPlayer().isShiftKeyDown())) facing = facing.getOpposite();
return super.getStateForPlacement(context).with(FACING, facing);
}
}
@ -380,7 +368,7 @@ public class StandardBlocks
facing = ((facing==Direction.UP)||(facing==Direction.DOWN)) ? (context.getPlacementHorizontalFacing()) : facing;
}
if((config & CFG_OPPOSITE_PLACEMENT)!=0) facing = facing.getOpposite();
if(((config & CFG_FLIP_PLACEMENT_SHIFTCLICK) != 0) && (context.getPlayer().func_225608_bj_()/*isSneaking()*/)) facing = facing.getOpposite();
if(((config & CFG_FLIP_PLACEMENT_SHIFTCLICK) != 0) && (context.getPlayer().isShiftKeyDown())) facing = facing.getOpposite();
return super.getStateForPlacement(context).with(HORIZONTAL_FACING, facing);
}

View file

@ -96,7 +96,7 @@ public class StandardFenceBlock extends WallBlock implements StandardBlocks.ISta
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder)
{ super.fillStateContainer(builder); }
private boolean attachesTo(BlockState facingState, IWorldReader world, BlockPos facingPos, Direction side)
protected boolean attachesTo(BlockState facingState, IWorldReader world, BlockPos facingPos, Direction side)
{
final Block block = facingState.getBlock();
if((block instanceof FenceGateBlock) || (block instanceof StandardFenceBlock) || (block instanceof VariantWallBlock)) return true;

View file

@ -85,7 +85,7 @@ public class LootTableGen extends LootTableProvider
ItemLootEntry.Builder iltb = ItemLootEntry.builder(block);
iltb.acceptFunction(CopyName.builder(Source.BLOCK_ENTITY));
if(block.hasTileEntity(block.getDefaultState())) {
iltb.acceptFunction(CopyNbt.func_215881_a(CopyNbt.Source.BLOCK_ENTITY));
iltb.acceptFunction(CopyNbt.builder(CopyNbt.Source.BLOCK_ENTITY));
}
return LootTable.builder().addLootPool(LootPool.builder().name(rl_path).rolls(ConstantRange.of(1)).addEntry(iltb));
}

View file

@ -79,15 +79,15 @@ public class Auxiliaries
@OnlyIn(Dist.CLIENT)
public static final boolean isShiftDown()
{
return (InputMappings.isKeyDown(SidedProxy.mc().func_228018_at_()/*getMainWindow()*/.getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT) ||
InputMappings.isKeyDown(SidedProxy.mc().func_228018_at_()/*getMainWindow()*/.getHandle(), GLFW.GLFW_KEY_RIGHT_SHIFT));
return (InputMappings.isKeyDown(SidedProxy.mc().getMainWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT) ||
InputMappings.isKeyDown(SidedProxy.mc().getMainWindow().getHandle(), GLFW.GLFW_KEY_RIGHT_SHIFT));
}
@OnlyIn(Dist.CLIENT)
public static final boolean isCtrlDown()
{
return (InputMappings.isKeyDown(SidedProxy.mc().func_228018_at_()/*getMainWindow()*/.getHandle(), GLFW.GLFW_KEY_LEFT_CONTROL) ||
InputMappings.isKeyDown(SidedProxy.mc().func_228018_at_()/*getMainWindow()*/.getHandle(), GLFW.GLFW_KEY_RIGHT_CONTROL));
return (InputMappings.isKeyDown(SidedProxy.mc().getMainWindow().getHandle(), GLFW.GLFW_KEY_LEFT_CONTROL) ||
InputMappings.isKeyDown(SidedProxy.mc().getMainWindow().getHandle(), GLFW.GLFW_KEY_RIGHT_CONTROL));
}
// -------------------------------------------------------------------------------------------------------------------

View file

@ -89,7 +89,7 @@ public class Overlay
if(deadline() < System.currentTimeMillis()) return;
String txt = text();
if(txt.isEmpty()) return;
final MainWindow win = mc.func_228018_at_()/*getMainWindow()*/;
final MainWindow win = mc.getMainWindow();
final FontRenderer fr = mc.fontRenderer;
final boolean was_unicode = fr.getBidiFlag();
try {

View file

@ -0,0 +1,21 @@
{
"variants": {
"facing=north,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" },
"facing=north,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open" },
"facing=south,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" , "y":180 },
"facing=south,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open", "y":180 },
"facing=west,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" , "y":270 },
"facing=west,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open", "y":270 },
"facing=east,open=false,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model" , "y":90 },
"facing=east,open=true,segment=0": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_bottom_model_open", "y":90 },
"facing=north,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" },
"facing=north,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open" },
"facing=south,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" , "y":180 },
"facing=south,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open", "y":180 },
"facing=west,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" , "y":270 },
"facing=west,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open", "y":270 },
"facing=east,open=false,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model" , "y":90 },
"facing=east,open=true,segment=1": { "model": "engineersdecor:block/fence/steel_mesh_fence_gate_top_model_open", "y":90 }
}
}

View file

@ -151,6 +151,8 @@
"block.engineersdecor.steel_framed_window.help": "§6Steel framed triple glazed window. Well insulating. §r Does not connect to adjacent blocks like glass panes.",
"block.engineersdecor.steel_mesh_fence": "Steel Mesh Fence",
"block.engineersdecor.steel_mesh_fence.help": "§6Industrial style fence.§r\nDoes not connect do regular fences.",
"block.engineersdecor.steel_mesh_fence_gate": "Steel Mesh Fence Gate",
"block.engineersdecor.steel_mesh_fence_gate.help": "§6Industrial style fence gate that fits well to the Steel Mesh Fence.§r\nCan be placed as single or double size gate.",
"block.engineersdecor.small_lab_furnace": "Small Laboratory Furnace",
"block.engineersdecor.small_lab_furnace.help": "§6Small metal cased lab kiln.§r Solid fuel consuming, updraught. Slightly hotter and better isolated than a cobblestone furnace, therefore more efficient. Two auxiliary slots e.g. for storage. Two stack internal hopper fifos for input, output, and fuel. Place an external heater into a aux slot and connect power for electrical smelting speed boost.",
"block.engineersdecor.small_electrical_furnace": "Small Electrical Furnace",

View file

@ -151,6 +151,8 @@
"block.engineersdecor.steel_framed_window.help": "§6Стальной каркас окна с тройным остеклением. Хорошо изолирует. §r Не подключается к смежным блокам, таким как стеклянные панели.",
"block.engineersdecor.steel_mesh_fence": "Забор из стальной сетки",
"block.engineersdecor.steel_mesh_fence.help": "§6Забор в индустриальном стиле.§r\nНе стыкуется с обычными заборами.",
"block.engineersdecor.steel_mesh_fence_gate": "Steel Mesh Fence Gate",
"block.engineersdecor.steel_mesh_fence_gate.help": "§6Industrial style fence gate that fits well to the Steel Mesh Fence.§r\nCan be placed as single or double size gate.",
"block.engineersdecor.small_lab_furnace": "Компактная лабораторная печь",
"block.engineersdecor.small_lab_furnace.help": "§6Лабораторная печь в металлическом корпусе.§r Подача твёрдого топлива сверху. Немного горячее и изолированней каменной, поэтому быстрее. Два вспомогательных слота, например для хранения. Два слота-воронки для ввода, вывода, и топлива. Поместите внешний нагреватель в слот AUX и подключите питание для электрического повышения скорости обработки.",
"block.engineersdecor.small_electrical_furnace": "Компактная конвейерная электрическая печь",

View file

@ -151,6 +151,8 @@
"block.engineersdecor.steel_framed_window.help": "§6钢框三层玻璃窗。绝缘良好。§r不像玻璃板一样连接到相邻方块。",
"block.engineersdecor.steel_mesh_fence": "钢丝栅栏",
"block.engineersdecor.steel_mesh_fence.help": "§6工业式栅栏。§r\n不与普通栅栏连接。",
"block.engineersdecor.steel_mesh_fence_gate": "Steel Mesh Fence Gate",
"block.engineersdecor.steel_mesh_fence_gate.help": "§6Industrial style fence gate that fits well to the Steel Mesh Fence.§r\nCan be placed as single or double size gate.",
"block.engineersdecor.small_lab_furnace": "小型实验室炉",
"block.engineersdecor.small_lab_furnace.help": "§6小型金属壳实验室窑。§r消耗固体燃料向上排气。 比圆石炉稍微热一点,隔热性也更好,因此效率更高。 有两个用于储存的辅助格。两个堆叠的内部漏斗对输入、输出和燃料进行队列管理。 在辅助格放置一个外置加热器并通入电力可以加快熔炼速度。",
"block.engineersdecor.small_electrical_furnace": "小型电炉",

View file

@ -0,0 +1,267 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [3.125, 13.625, 9.4375],
"to": [12.8125, 13.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"south": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 9.625, 9.4375],
"to": [12.8125, 9.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"south": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 5.625, 9.4375],
"to": [12.8125, 5.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"south": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 1.625, 9.4375],
"to": [12.8125, 1.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"east": {"uv": [8, 14.02, 8.1875, 14.375], "texture": "#s"},
"south": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"west": {"uv": [7.8125, 14.02, 8, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 11.625, 9.625],
"to": [12.8125, 11.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"south": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 12.625, 9.875],
"to": [5.3125, 13.23, 10.1875],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 9.5, 10]},
"faces": {
"north": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"east": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"south": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"west": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 90, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 12.625, 9],
"to": [5.3125, 13.23, 9.3125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 9.5, 9.125]},
"faces": {
"north": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"east": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"south": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"west": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 90, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 7.625, 9.625],
"to": [12.9375, 7.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"south": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 3.625, 9.625],
"to": [12.9375, 3.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"south": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [12.25, 1, 9.25],
"to": [13, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"west": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.75, 15, 9.25],
"to": [12.25, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"south": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.75, 1, 9.25],
"to": [12.25, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, -5.5, 9.625]},
"faces": {
"north": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"east": {"uv": [7.625, 0, 8.375, 1], "texture": "#s"},
"south": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [7.625, 0, 8.375, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3, 1, 9.25],
"to": [3.75, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"east": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"south": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 270, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [11.75, 1.375, 9.5],
"to": [12.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [7.75, 1.375, 9.5],
"to": [8.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [3.75, 1.375, 9.5],
"to": [4.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [9.75, 1.375, 9.5],
"to": [10.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [5.75, 1.375, 9.5],
"to": [6.125, 15.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 8.5, 9.625]},
"faces": {
"north": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1,267 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [12.625, 13.625, 0.125],
"to": [12.8125, 13.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"west": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 9.625, 0.125],
"to": [12.8125, 9.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"west": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 5.625, 0.125],
"to": [12.8125, 5.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"west": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 1.625, 0.125],
"to": [12.8125, 1.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.8125, 14.02, 8, 14.375], "texture": "#s"},
"east": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"south": {"uv": [8, 14.02, 8.1875, 14.375], "texture": "#s"},
"west": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 11.625, 0.125],
"to": [12.625, 11.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"west": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.0625, 12.625, 0.125],
"to": [12.375, 13.23, 2.3125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"east": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"south": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"west": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 180, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.9375, 12.625, 0.125],
"to": [13.25, 13.23, 2.3125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [10, 2.77, 10.1875, 3.375], "texture": "#s"},
"east": {"uv": [10.6875, 2.77, 12.875, 3.375], "texture": "#s"},
"south": {"uv": [5.8125, 2.77, 6, 3.375], "texture": "#s"},
"west": {"uv": [3.125, 2.77, 5.3125, 3.375], "texture": "#s"},
"up": {"uv": [3.125, 10, 5.3125, 10.1875], "rotation": 180, "texture": "#s"},
"down": {"uv": [3.125, 5.8125, 5.3125, 6], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 7.625, 0.5],
"to": [12.625, 7.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"west": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 3.625, 0.5],
"to": [12.625, 3.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"west": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 1, 9.25],
"to": [13, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 15, 0.75],
"to": [13, 16, 9.25],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 1, 0.75],
"to": [13, 2, 9.25],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"east": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 1, 0],
"to": [13, 16, 0.75],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 180, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"},
"down": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 270, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"},
"down": {"uv": [0, 5.5, 3, 6.5], "texture": "#t"}
}
},
{
"from": [12.5, 1.375, 8.75],
"to": [12.75, 15.855, 9.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 4.75],
"to": [12.75, 15.855, 5.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 0.75],
"to": [12.75, 15.855, 1.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 6.75],
"to": [12.75, 15.855, 7.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 1.375, 2.75],
"to": [12.75, 15.855, 3.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 8.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1,319 @@
{
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence",
"t": "engineersdecor:block/fence/steel_mesh_top"
},
"elements": [
{
"from": [7.5, 0, 3],
"to": [8.5, 16, 4],
"faces": {
"north": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"east": {"uv": [12, 0, 13, 16], "texture": "#s"},
"south": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"west": {"uv": [3, 0, 4, 16], "texture": "#s"},
"up": {"uv": [7.5, 3, 8.5, 4], "texture": "#t"},
"down": {"uv": [7.5, 12, 8.5, 13], "texture": "#s"}
}
},
{
"from": [7.5, 0, 12],
"to": [8.5, 16, 13],
"faces": {
"north": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"east": {"uv": [3, 0, 4, 16], "texture": "#s"},
"south": {"uv": [7.5, 0, 8.5, 16], "texture": "#s"},
"west": {"uv": [12, 0, 13, 16], "texture": "#s"},
"up": {"uv": [7.5, 12, 8.5, 13], "texture": "#t"},
"down": {"uv": [7.5, 3, 8.5, 4], "texture": "#s"}
}
},
{
"from": [7.5, 15, 4],
"to": [8.5, 16, 12],
"faces": {
"east": {"uv": [4, 0, 12, 1], "texture": "#s"},
"west": {"uv": [4, 0, 12, 1], "texture": "#s"},
"up": {"uv": [7.5, 4, 8.5, 12], "texture": "#t"},
"down": {"uv": [7.5, 4, 8.5, 12], "texture": "#s"}
}
},
{
"from": [7.5, 7, 4],
"to": [8.5, 9, 5],
"faces": {
"east": {"uv": [11, 7, 12, 9], "texture": "#s"},
"south": {"uv": [7.5, 7, 8.5, 9], "texture": "#s"},
"west": {"uv": [4, 7, 5, 9], "texture": "#s"},
"up": {"uv": [7.5, 4, 8.5, 5], "texture": "#t"},
"down": {"uv": [7.5, 11, 8.5, 12], "texture": "#s"}
}
},
{
"from": [7.5, 0, 4],
"to": [8.5, 0.5, 12],
"faces": {
"east": {"uv": [4, 15.5, 12, 16], "texture": "#s"},
"west": {"uv": [4, 15.5, 12, 16], "texture": "#s"},
"up": {"uv": [7.5, 4, 8.5, 12], "texture": "#t"},
"down": {"uv": [7.5, 4, 8.5, 12], "texture": "#s"}
}
},
{
"from": [8, 4.125, 3.5],
"to": [8.125, 4.5, 12.5],
"faces": {
"east": {"uv": [3.5, 11.5, 12.5, 11.875], "texture": "#s"},
"west": {"uv": [3.5, 11.5, 12.5, 11.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 5.8125],
"to": [8.05, 15.375, 6.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [9.8125, 0.625, 10.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [5.8125, 0.625, 6.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 8.125, 3.5],
"to": [8.125, 8.5, 12.5],
"faces": {
"east": {"uv": [3.5, 7.5, 12.5, 7.875], "texture": "#s"},
"west": {"uv": [3.5, 7.5, 12.5, 7.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 9.8125],
"to": [8.05, 15.375, 10.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [5.8125, 0.625, 6.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [9.8125, 0.625, 10.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 12.125, 3.5],
"to": [8.125, 12.5, 12.5],
"faces": {
"east": {"uv": [3.5, 3.5, 12.5, 3.875], "texture": "#s"},
"west": {"uv": [3.5, 3.5, 12.5, 3.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [8, 2.125, 3.5],
"to": [8.125, 2.5, 12.5],
"faces": {
"east": {"uv": [3.5, 13.5, 12.5, 13.875], "texture": "#s"},
"west": {"uv": [3.5, 13.5, 12.5, 13.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 3.8125],
"to": [8.05, 15.375, 4.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [11.8125, 0.625, 12.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [3.8125, 0.625, 4.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 6.125, 3.5],
"to": [8.125, 6.5, 12.5],
"faces": {
"east": {"uv": [3.5, 9.5, 12.5, 9.875], "texture": "#s"},
"west": {"uv": [3.5, 9.5, 12.5, 9.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 7.8125],
"to": [8.05, 15.375, 8.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [7.8125, 0.625, 8.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [7.8125, 0.625, 8.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 10.125, 3.5],
"to": [8.125, 10.5, 12.5],
"faces": {
"east": {"uv": [3.5, 5.5, 12.5, 5.875], "texture": "#s"},
"west": {"uv": [3.5, 5.5, 12.5, 5.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 11.8125],
"to": [8.05, 15.375, 12.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [3.8125, 0.625, 4.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [11.8125, 0.625, 12.1875, 16], "texture": "#s"}
}
},
{
"from": [8, 14.125, 3.5],
"to": [8.125, 14.5, 12.5],
"faces": {
"east": {"uv": [3.5, 1.5, 12.5, 1.875], "texture": "#s"},
"west": {"uv": [3.5, 1.5, 12.5, 1.875], "texture": "#s"},
"up": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#t"},
"down": {"uv": [8, 3.5, 8.125, 12.5], "texture": "#s"}
}
},
{
"from": [7.875, 1.125, 3.5],
"to": [8, 1.5, 12.5],
"faces": {
"east": {"uv": [3.5, 14.5, 12.5, 14.875], "texture": "#s"},
"west": {"uv": [3.5, 14.5, 12.5, 14.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.875, 5.125, 3.5],
"to": [8, 5.5, 12.5],
"faces": {
"east": {"uv": [3.5, 10.5, 12.5, 10.875], "texture": "#s"},
"west": {"uv": [3.5, 10.5, 12.5, 10.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 6.8125],
"to": [8.05, 15.375, 7.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [8.8125, 0.625, 9.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [6.8125, 0.625, 7.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 9.125, 3.5],
"to": [8, 9.5, 12.5],
"faces": {
"east": {"uv": [3.5, 6.5, 12.5, 6.875], "texture": "#s"},
"west": {"uv": [3.5, 6.5, 12.5, 6.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 10.8125],
"to": [8.05, 15.375, 11.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [4.8125, 0.625, 5.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [10.8125, 0.625, 11.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 13.125, 3.5],
"to": [8, 13.5, 12.5],
"faces": {
"east": {"uv": [3.5, 2.5, 12.5, 2.875], "texture": "#s"},
"west": {"uv": [3.5, 2.5, 12.5, 2.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.875, 3.125, 3.5],
"to": [8, 3.5, 12.5],
"faces": {
"east": {"uv": [3.5, 12.5, 12.5, 12.875], "texture": "#s"},
"west": {"uv": [3.5, 12.5, 12.5, 12.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 4.8125],
"to": [8.05, 15.375, 5.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [10.8125, 0.625, 11.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [4.8125, 0.625, 5.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 7.125, 3.5],
"to": [8, 7.5, 12.5],
"faces": {
"east": {"uv": [3.5, 8.5, 12.5, 8.875], "texture": "#s"},
"west": {"uv": [3.5, 8.5, 12.5, 8.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
},
{
"from": [7.925, 0, 8.8125],
"to": [8.05, 15.375, 9.1875],
"faces": {
"north": {"uv": [7.95, 0.625, 8.075, 16], "texture": "#s"},
"east": {"uv": [6.8125, 0.625, 7.1875, 16], "texture": "#s"},
"south": {"uv": [7.925, 0.625, 8.05, 16], "texture": "#t"},
"west": {"uv": [8.8125, 0.625, 9.1875, 16], "texture": "#s"}
}
},
{
"from": [7.875, 11.125, 3.5],
"to": [8, 11.5, 12.5],
"faces": {
"east": {"uv": [3.5, 4.5, 12.5, 4.875], "texture": "#s"},
"west": {"uv": [3.5, 4.5, 12.5, 4.875], "texture": "#s"},
"up": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#t"},
"down": {"uv": [7.875, 3.5, 8, 12.5], "texture": "#s"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [9, 35, 0],
"translation": [0, 0, -1],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_righthand": {
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"gui": {
"rotation": [30, 135, 0],
"translation": [-0.25, 0.5, 0],
"scale": [0.7, 0.7, 0.7]
},
"fixed": {
"rotation": [0, 90, 0],
"translation": [0, 0, -0.25]
}
}
}

View file

@ -0,0 +1,220 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [3.125, 12.625, 9.4375],
"to": [12.8125, 12.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"south": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 8.625, 9.4375],
"to": [12.8125, 8.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"south": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 4.625, 9.4375],
"to": [12.8125, 4.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"south": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 0.625, 9.4375],
"to": [12.8125, 0.98, 9.625],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"south": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.125, 10.625, 9.625],
"to": [12.8125, 10.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"south": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 6.625, 9.625],
"to": [12.9375, 6.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"south": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3.5, 2.625, 9.625],
"to": [12.9375, 2.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"south": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 90, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 270, "texture": "#s"}
}
},
{
"from": [12.25, 0, 9.25],
"to": [13, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"west": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 90, "texture": "#s"}
}
},
{
"from": [3.75, 14, 9.25],
"to": [12.25, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [2.25, 0, 13.75, 1], "texture": "#s"},
"south": {"uv": [2.25, 0, 13.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 90, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 270, "texture": "#s"}
}
},
{
"from": [3, 0, 9.25],
"to": [3.75, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"east": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"south": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 90, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [11.75, 0, 9.5],
"to": [12.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [7.75, 0, 9.5],
"to": [8.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [3.75, 0, 9.5],
"to": [4.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [9.75, 0, 9.5],
"to": [10.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [5.75, 0, 9.5],
"to": [6.125, 14.855, 9.75],
"rotation": {"angle": 0, "axis": "y", "origin": [3.375, 7.5, 9.625]},
"faces": {
"north": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"south": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"},
"west": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1,222 @@
{
"textures": {
"p": "engineersdecor:block/fence/steel_mesh_pole_side",
"t": "engineersdecor:block/fence/steel_mesh_top",
"particle": "engineersdecor:block/fence/steel_mesh_fence",
"s": "engineersdecor:block/fence/steel_mesh_fence"
},
"elements": [
{
"from": [12.625, 12.625, 0.125],
"to": [12.8125, 12.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 2.02, 15.5, 2.375], "texture": "#s"},
"west": {"uv": [0.5, 2.02, 15.9375, 2.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 8.625, 0.125],
"to": [12.8125, 8.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 6.02, 15.5, 6.375], "texture": "#s"},
"west": {"uv": [0.5, 6.02, 15.9375, 6.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 4.625, 0.125],
"to": [12.8125, 4.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 10.02, 15.5, 10.375], "texture": "#s"},
"west": {"uv": [0.5, 10.02, 15.9375, 10.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.625, 0.625, 0.125],
"to": [12.8125, 0.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 14.02, 15.5, 14.375], "texture": "#s"},
"west": {"uv": [0.5, 14.02, 15.9375, 14.375], "texture": "#s"},
"up": {"uv": [7.8125, 0.0625, 8, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.8125, 0.5, 8, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 10.625, 0.125],
"to": [12.625, 10.98, 9.8125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 4.02, 15.5, 4.375], "texture": "#s"},
"west": {"uv": [0.5, 4.02, 15.9375, 4.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 6.625, 0.5],
"to": [12.625, 6.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 8.02, 15.5, 8.375], "texture": "#s"},
"west": {"uv": [0.5, 8.02, 15.9375, 8.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.4375, 2.625, 0.5],
"to": [12.625, 2.98, 9.9375],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [0.0625, 12.02, 15.5, 12.375], "texture": "#s"},
"west": {"uv": [0.5, 12.02, 15.9375, 12.375], "texture": "#s"},
"up": {"uv": [8, 0.0625, 8.1875, 15.5], "rotation": 180, "texture": "#s"},
"down": {"uv": [8, 0.5, 8.1875, 15.9375], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 0, 9.25],
"to": [13, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"up": {"uv": [7.625, 1.5, 8.375, 2.25], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 14, 0.75],
"to": [13, 15, 9.25],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"east": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"west": {"uv": [2.25, 0, 10.75, 1], "texture": "#s"},
"up": {"uv": [7.625, 2.25, 8.375, 10.75], "rotation": 180, "texture": "#s"},
"down": {"uv": [7.625, 2.25, 8.375, 13.75], "rotation": 180, "texture": "#s"}
}
},
{
"from": [12.25, 0, 0],
"to": [13, 15, 0.75],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"east": {"uv": [13.75, 0, 14.5, 15], "texture": "#s"},
"south": {"uv": [7.625, 0, 8.375, 15], "texture": "#s"},
"west": {"uv": [1.5, 0, 2.25, 15], "texture": "#s"},
"up": {"uv": [7.625, 13.75, 8.375, 14.5], "rotation": 180, "texture": "#s"}
}
},
{
"from": [13, 0, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0, 0, 6.5],
"to": [3, 16, 9.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]},
"faces": {
"north": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"south": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#p"},
"up": {"uv": [6.5, 6.5, 9.5, 9.5], "rotation": 90, "texture": "#t"}
}
},
{
"from": [0.5, 0, 9.5],
"to": [3, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [13, 0, 9.5],
"to": [15.5, 16, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
"faces": {
"east": {"uv": [6, 0, 7, 16], "texture": "#p"},
"south": {"uv": [0, 0, 3, 16], "texture": "#p"},
"west": {"uv": [10, 0, 11, 16], "texture": "#p"},
"up": {"uv": [6, 12, 9, 13], "texture": "#t"}
}
},
{
"from": [12.5, 0, 8.75],
"to": [12.75, 14.855, 9.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [3.875, 0.145, 4.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [11.75, 0.145, 12.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 4.75],
"to": [12.75, 14.855, 5.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [7.875, 0.145, 8.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [7.75, 0.145, 8.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 0.75],
"to": [12.75, 14.855, 1.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [11.875, 0.145, 12.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [3.75, 0.145, 4.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 6.75],
"to": [12.75, 14.855, 7.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [5.875, 0.145, 6.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [9.75, 0.145, 10.125, 15], "texture": "#s"}
}
},
{
"from": [12.5, 0, 2.75],
"to": [12.75, 14.855, 3.125],
"rotation": {"angle": 0, "axis": "y", "origin": [12.625, 7.5, 9.625]},
"faces": {
"north": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"east": {"uv": [9.875, 0.145, 10.25, 15], "texture": "#s"},
"south": {"uv": [7.875, 0.145, 8.125, 15], "texture": "#s"},
"west": {"uv": [5.75, 0.145, 6.125, 15], "texture": "#s"}
}
}
]
}

View file

@ -0,0 +1 @@
{ "parent": "engineersdecor:block/fence/steel_mesh_fence_gate_inventory" }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

@ -0,0 +1,21 @@
{
"type": "minecraft:block",
"pools": [
{
"name": "steel_mesh_fence_gate_dlt",
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "engineersdecor:steel_mesh_fence_gate"
}
]
}
]
}

View file

@ -0,0 +1,18 @@
{
"name": "Gates and Doors",
"icon": "engineersdecor:steel_mesh_fence_gate",
"category": "buildingblocks",
"sortnum": 1060,
"pages": [
{
"type": "spotlight",
"title": "Steel Mesh Fence Gate",
"item": "engineersdecor:steel_mesh_fence_gate",
"text": "A fence gate fitting the style of the $(o)Steel Mesh Fence$(). It can be placed one block high for normal fencing, or doubled for higher cage fences, and will form a fence door accordingly.$(br)Redstone open/close signals are accepted for the bottom segment from all sides, for the top segment only from above."
},
{
"type": "text",
"text": ""
}
]
}

View file

@ -2,7 +2,7 @@
"name": "Ladders",
"icon": "engineersdecor:treated_wood_ladder",
"category": "buildingblocks",
"sortnum": 1070,
"sortnum": 1080,
"pages": [
{
"type": "spotlight",

View file

@ -2,7 +2,7 @@
"name": "Windows",
"icon": "engineersdecor:treated_wood_window",
"category": "buildingblocks",
"sortnum": 1060,
"sortnum": 1070,
"pages": [
{
"type": "spotlight",

View file

@ -20,7 +20,7 @@
},
{
"type": "text",
"text": ""
"text": "§nSpeed override switch$()$(br)A four-position switch in the bottom right area of the GUI allows to alter the processing speed of the furnace. Default is position 1 (normal). At high power expenses, you can alter this: $(br)$(li)Position 0: OFF$(li)Position 1: x1.0 -> RF x1$(li)Position 2: x1.5 -> RF x2$(li)Position 3: x2.0 -> RF x4$(br2)(Positions 0..4 are down, left, top, right)."
}
]
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "engineersdecor:optional",
"result": "engineersdecor:steel_mesh_fence_gate",
"required": ["engineersdecor:thin_steel_pole", "engineersdecor:steel_mesh_fence"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"PFP"
],
"key": {
"P": {
"item": "engineersdecor:thin_steel_pole"
},
"F": {
"item": "engineersdecor:steel_mesh_fence"
}
},
"result": {
"item": "engineersdecor:steel_mesh_fence_gate",
"count": 2
}
}

View file

@ -41,10 +41,6 @@ compare:
@djs tasks.js compare-blockstates -v
@djs tasks.js compare-textures -v
migrate-from-112:
@cd 1.12; make -s port-languages
@djs tasks.js migrate-textures -v
# For reviewers: I am using a local repository for experimental changes,
# this target copies the local working tree to the location of the
# repository that you cloned.

View file

@ -4,12 +4,12 @@
"1.12.2-recommended": "1.0.19",
"1.12.2-latest": "1.0.19",
"1.14.4-recommended": "",
"1.14.4-latest": "1.0.19-b5",
"1.14.4-latest": "1.0.20-b1",
"1.15.2-recommended": "",
"1.15.2-latest": "1.0.19-b5"
"1.15.2-latest": "1.0.20-b1"
},
"1.12.2": {
"1.0.19": "[R] Release based on v1.0.19-b4. Release-to-release changes: * Transfer fixes for Tree Cutter / Block Braker, and Factory hopper. * Cleanups, feature backports * Visual fixes and improvements\n[A] Backport of status display for Tree Cutter, Block Breaker and Solar Panel.",
"1.0.19": "[R] Release based on v1.0.19-b4. Release-to-release changes: * Transfer fixes for Tree Cutter / Block Breaker, and Factory hopper. * Cleanups, feature backports * Visual fixes and improvements\n[A] Backport of status display for Tree Cutter, Block Breaker and Solar Panel.",
"1.0.19-b4": "[A] Creative tab opt-out visibility handling added (issue #90, thx pimalel233).",
"1.0.19-b3": "[A] Factory Hopper: Added bottom item handler (CR#227).",
"1.0.19-b2": "[F] Fixed Floor Grating item pass-through jitters (thx Cid).\n[M] Removed obsolete recipe collision testing recipes.",
@ -89,6 +89,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.14.4": {
"1.0.20-b1": "[A] Electrical Furnace: Added four-position speed switch (off, 100%, 150%, 200%), power consumption increases at higher rate (off, 100%, 200%, 400%).\n[A] Added Steel Mesh Fence Gate (single or double height gate fitting to the Steel Mesh Fence).\n[M] Waste Incinerator processing speed tweaked.",
"1.0.19-b5": "[A] Added right-click display of power and progress information for Block Breaker, Solar Panel, and Tree Cutter.\n[A] Solar Panel power curve tuned.\n[A] Mod manual 1st edition release recipe added.\n[A] Factory Hopper: Resetting NBT when breaking with empty inventory (for stacking), enabled item cap for all sides.\n[M] Electrical Furnace model polished.",
"1.0.19-b4": "[A] Ported primary Immersive Engineering dependent recipes (alternative recipes will still work if IE is not installed).\n[M] Furni comparator output overrides reflect input slots and empty fuel state/power-cutoff.\n[M] Solar Panel config: Default value for internal battery capacity increased.\n[F] Block Placer: Shifted GUI player slots 1px to the right.\n[A] Added mod block tags for slabs, stairs, and walls (PR#89, thanks CrudeAustin for the data).\n[A] Added experimental Patchouli manual (creative only).\n[!] Skipped blacklisting Treated Wood Crafting Table slots for the inventorysorter mod due to potential startup crashes for single player games (issue #88 fix deferred).",
"1.0.19-b3": "[M] Config tweaks: Value limit ranges increased to facilitate modpacking.\n[A] Factory Hopper: Added bottom item handler (CR#227).\n[M] Block shapes refined.\n[F] Fixed duping bug (issue #87, thx Nachtflame)",
@ -136,6 +137,7 @@
"1.0.7-b3": "[A] Initial 1.14.2 port of decorative blocks."
},
"1.15.2": {
"1.0.20-b1": "[A] Electrical Furnace: Added four-position speed switch (off, 100%, 150%, 200%), power consumption increases at higher rate (off, 100%, 200%, 400%).\n[A] Added Steel Mesh Fence Gate (single or double height gate fitting to the Steel Mesh Fence).\n[M] Waste Incinerator processing speed tweaked.\n[F] Fixed steel table visual glitch (thx Urbanxx001).\n[M] MCP/Forge mappings updated.",
"1.0.19-b5": "[A] Added right-click display of power and progress information for Block Breaker, Solar Panel, and Tree Cutter.\n[A] Solar Panel power curve tuned.\n[A] Mod manual 1st edition release recipe added.\n[A] Factory Hopper: Resetting NBT when breaking with empty inventory (for stacking), enabled item cap for all sides.\n[M] Electrical Furnace model polished.",
"1.0.19-b4": "[A] Ported primary Immersive Engineering dependent recipes (alternative recipes will still work if IE is not installed).\n[F] Blacklisted Treated Wood Crafting Table in inventorysorter mod (issue #88, thx Nachtflame).\n[M] Furni comparator output overrides reflect input slots and empty fuel state/power-cutoff.\n[M] Solar Panel config: Default value for internal battery capacity increased.\n[F] Block Placer: Shifted GUI player slots 1px to the right.\n[A] Added mod block tags for slabs, stairs, and walls (PR#89, thanks CrudeAustin for the data).\n[A] Added experimental Patchouli manual (creative only).",
"1.0.19-b3": "[M] Config tweaks: Value limit ranges increased to facilitate modpacking.\n[A] Factory Hopper: Added bottom item handler (CR#227).\n[M] Block shapes refined.\n[F] Fixed duping bug (issue #87, thx Nachtflame)",