Added treated wood crafting table. Added treated wood stool.
This commit is contained in:
parent
839a56f4cc
commit
5614310fb6
22 changed files with 615 additions and 27 deletions
|
@ -3,7 +3,7 @@ org.gradle.daemon=false
|
|||
org.gradle.jvmargs=-Xmx8G
|
||||
version_minecraft=1.12.2
|
||||
version_forge=14.23.5.2768
|
||||
version_engineersdecor=1.0.1-b1
|
||||
version_engineersdecor=1.0.1-b2
|
||||
#
|
||||
# jar signing data loaded from signing.properties in the project root.
|
||||
#
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||
"1.12.2": {
|
||||
"1.0.1-b2": "[F] Fixed ladder bounding boxes to allow climbing connected trap doors (issue #6, thanks to Forgilageord).",
|
||||
"1.0.1-b2": "[A] Added treated wood crafting table.\n[A] Added treated stool.\n[F] Fixed ladder bounding boxes to allow climbing connected trap doors (issue #6, thanks to Forgilageord).\n[M] Improved wall-block connections (wall elements only connect to other walls or gates, as well as to solid blocks if these blocks are in a straight line with at least two wall elements).\n[M] Decor walls are defined \"solid\" on top, so that e.g. torches and redstone tracks can be placed on them.",
|
||||
"1.0.1-b1": "[F] Fixed missing condition for ie:stone_deco in recipe constants.\n[A] Added clinker brick wall.",
|
||||
"1.0.0": "[R] Release based on v1.0.0-b4",
|
||||
"1.0.0-b4": "[F] Fixed vanished recipe for the rebar concrete wall.\n[A] Concrete wall, material: IE concrete.",
|
||||
|
|
|
@ -10,8 +10,15 @@ Mod sources for Minecraft version 1.12.2.
|
|||
----
|
||||
## Revision history
|
||||
|
||||
- v1.0.1-b2 [F] Fixed ladder bounding boxes to allow climbing connected trap doors
|
||||
- v1.0.1-b2 [A] Added treated wood crafting table.
|
||||
[A] Added treated stool.
|
||||
[F] Fixed ladder bounding boxes to allow climbing connected trap doors
|
||||
(issue #6, thanks to Forgilageord).
|
||||
[M] Improved wall-block connections (wall elements only connect to other
|
||||
walls or gates, as well as to solid blocks if these blocks are in
|
||||
a straight line with at least two wall elements).
|
||||
[M] Decor walls are defined "solid" on top, so that e.g. torches and
|
||||
redstone tracks can be placed on them.
|
||||
|
||||
- v1.0.1-b1 [F] Fixed missing condition for ie:stone_deco in recipe constants.
|
||||
[A] Added clinker brick wall.
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
*/
|
||||
package wile.engineersdecor;
|
||||
|
||||
import net.minecraft.client.multiplayer.WorldClient;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.common.network.IGuiHandler;
|
||||
import net.minecraftforge.fml.common.network.NetworkRegistry;
|
||||
import wile.engineersdecor.blocks.BlockDecorCraftingTable;
|
||||
import wile.engineersdecor.detail.ModConfig;
|
||||
import wile.engineersdecor.blocks.ModBlocks;
|
||||
import net.minecraftforge.client.event.ModelRegistryEvent;
|
||||
|
@ -75,7 +83,10 @@ public class ModEngineersDecor
|
|||
|
||||
@Mod.EventHandler
|
||||
public void init(FMLInitializationEvent event)
|
||||
{ proxy.init(event); }
|
||||
{
|
||||
proxy.init(event);
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(this, new ModEngineersDecor.GuiHandler());
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
public void postInit(FMLPostInitializationEvent event)
|
||||
|
@ -105,4 +116,35 @@ public class ModEngineersDecor
|
|||
{ return new ItemStack(ModBlocks.TREATED_WOOD_LADDER); }
|
||||
});
|
||||
|
||||
public static final class GuiHandler implements IGuiHandler
|
||||
{
|
||||
public static final int GUIID_CRAFTING_TABLE = 213101;
|
||||
|
||||
@Override
|
||||
public Object getServerGuiElement(final int guiid, final EntityPlayer player, final World world, int x, int y, int z)
|
||||
{
|
||||
final BlockPos pos = new BlockPos(x,y,z);
|
||||
final TileEntity te = world.getTileEntity(pos);
|
||||
switch(guiid) {
|
||||
case GUIID_CRAFTING_TABLE:
|
||||
return (te instanceof BlockDecorCraftingTable.BEntity) ? (new BlockDecorCraftingTable.BContainer(player.inventory, world, pos)) : null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Object getClientGuiElement(final int guiid, final EntityPlayer player, final World world, int x, int y, int z)
|
||||
{
|
||||
final BlockPos pos = new BlockPos(x,y,z);
|
||||
final TileEntity te = (world instanceof WorldClient) ? world.getTileEntity(pos) : null;
|
||||
switch(guiid) {
|
||||
case GUIID_CRAFTING_TABLE:
|
||||
return (te instanceof BlockDecorCraftingTable.BEntity) ? (new BlockDecorCraftingTable.BGuiCrafting(player.inventory, world, pos)) : null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* @file BlockDecorFull.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Full block characteristics class.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
public class BlockDecorChair extends BlockDecorDirected
|
||||
{
|
||||
public BlockDecorChair(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||
{
|
||||
super(registryName, config, material, hardness, resistance, sound, unrotatedAABB);
|
||||
setLightOpacity(0);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
/*
|
||||
* @file BlockDecorFull.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Full block characteristics class.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.*;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
public class BlockDecorCraftingTable extends BlockDecorDirected
|
||||
{
|
||||
public BlockDecorCraftingTable(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||
{
|
||||
super(registryName, config, material, hardness, resistance, sound, unrotatedAABB);
|
||||
setLightOpacity(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
|
||||
{ return getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); }
|
||||
|
||||
@Override
|
||||
public boolean hasTileEntity(IBlockState state)
|
||||
{ return true; }
|
||||
|
||||
@Nullable
|
||||
public TileEntity createTileEntity(World world, IBlockState state)
|
||||
{ return new BlockDecorCraftingTable.BEntity(); }
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
|
||||
{
|
||||
if(world.isRemote) return true;
|
||||
player.openGui(ModEngineersDecor.instance, ModEngineersDecor.GuiHandler.GUIID_CRAFTING_TABLE, world, pos.getX(), pos.getY(), pos.getZ());
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
// TE
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
public static class BEntity extends TileEntity
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
// Container
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
public static class BContainer extends ContainerWorkbench
|
||||
{
|
||||
private World world;
|
||||
private BlockPos pos;
|
||||
private EntityPlayer player;
|
||||
|
||||
public BContainer(InventoryPlayer inv, World world, BlockPos pos)
|
||||
{
|
||||
super(inv, world, pos);
|
||||
this.world = world;
|
||||
this.pos = pos;
|
||||
this.player = inv.player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer playerIn)
|
||||
{ return (world.getBlockState(this.pos).getBlock() instanceof BlockDecorCraftingTable) && (playerIn.getDistanceSq(this.pos) <= 8*8); }
|
||||
|
||||
@Override
|
||||
public void onCraftMatrixChanged(IInventory inv)
|
||||
{
|
||||
try {
|
||||
slotChangedCraftingGrid(this.world, player, this.craftMatrix, this.craftResult);
|
||||
} catch(Throwable exc) {
|
||||
ModEngineersDecor.logger.error("Recipe failed:", exc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
// GUI
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static class BGuiCrafting extends GuiContainer
|
||||
{
|
||||
public BGuiCrafting(InventoryPlayer playerInventory, World world, BlockPos pos)
|
||||
{ super(new BContainer(playerInventory, world, pos)); }
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float partialTicks)
|
||||
{ super.drawScreen(mouseX, mouseY, partialTicks); renderHoveredToolTip(mouseX, mouseY); }
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
||||
{}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
|
||||
{
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
this.mc.getTextureManager().bindTexture(new ResourceLocation(ModEngineersDecor.MODID, "textures/gui/treated_wood_crafting_table.png"));
|
||||
drawTexturedModalRect(((this.width - this.xSize)/2), ((this.height - this.ySize)/2), 0, 0, this.xSize, this.ySize);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -105,7 +105,7 @@ public class BlockDecorWall extends BlockDecor
|
|||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
|
||||
public boolean isPassable(IBlockAccess world, BlockPos pos)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
|
@ -118,13 +118,15 @@ public class BlockDecorWall extends BlockDecor
|
|||
public boolean isNormalCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
private boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing p_176253_3_)
|
||||
private boolean canConnectTo(IBlockAccess world, BlockPos pos, BlockPos other, EnumFacing facing)
|
||||
{
|
||||
IBlockState iblockstate = worldIn.getBlockState(pos);
|
||||
Block block = iblockstate.getBlock();
|
||||
BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, p_176253_3_);
|
||||
boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE_THICK || blockfaceshape == BlockFaceShape.MIDDLE_POLE && block instanceof BlockFenceGate;
|
||||
return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag;
|
||||
final IBlockState state = world.getBlockState(other);
|
||||
final Block block = state.getBlock();
|
||||
if((block instanceof BlockDecorWall) || (block instanceof BlockFenceGate)) return true;
|
||||
if(world.getBlockState(pos.offset(facing)).getBlock()!=this) return false;
|
||||
if(block instanceof BlockFence) return true;
|
||||
final BlockFaceShape shp = state.getBlockFaceShape(world, other, facing);
|
||||
return (shp == BlockFaceShape.SOLID) && (!isExcepBlockForAttachWithPiston(block));
|
||||
}
|
||||
|
||||
protected static boolean isExcepBlockForAttachWithPiston(Block b)
|
||||
|
@ -148,12 +150,12 @@ public class BlockDecorWall extends BlockDecor
|
|||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
|
||||
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{
|
||||
boolean n = canWallConnectTo(worldIn, pos, EnumFacing.NORTH);
|
||||
boolean e = canWallConnectTo(worldIn, pos, EnumFacing.EAST);
|
||||
boolean s = canWallConnectTo(worldIn, pos, EnumFacing.SOUTH);
|
||||
boolean w = canWallConnectTo(worldIn, pos, EnumFacing.WEST);
|
||||
boolean n = canWallConnectTo(world, pos, EnumFacing.NORTH);
|
||||
boolean e = canWallConnectTo(world, pos, EnumFacing.EAST);
|
||||
boolean s = canWallConnectTo(world, pos, EnumFacing.SOUTH);
|
||||
boolean w = canWallConnectTo(world, pos, EnumFacing.WEST);
|
||||
boolean nopole = (n && s && !e && !w) || (!n && !s && e && w);
|
||||
return state.withProperty(UP,!nopole).withProperty(NORTH, n).withProperty(EAST, e).withProperty(SOUTH, s).withProperty(WEST, w);
|
||||
}
|
||||
|
@ -164,17 +166,13 @@ public class BlockDecorWall extends BlockDecor
|
|||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face)
|
||||
{ return ((face!=EnumFacing.UP) && (face!=EnumFacing.DOWN)) ? (BlockFaceShape.MIDDLE_POLE_THICK) : (BlockFaceShape.CENTER_BIG); }
|
||||
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
|
||||
{ return (face==EnumFacing.UP) ? (BlockFaceShape.SOLID) : ((face!=EnumFacing.DOWN) ? (BlockFaceShape.MIDDLE_POLE_THICK) : (BlockFaceShape.CENTER_BIG)); }
|
||||
|
||||
@Override
|
||||
public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
|
||||
{ return canConnectTo(world, pos.offset(facing), facing.getOpposite()); }
|
||||
{ return canConnectTo(world, pos, pos.offset(facing), facing.getOpposite()); }
|
||||
|
||||
private boolean canWallConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
|
||||
{
|
||||
BlockPos other = pos.offset(facing);
|
||||
Block block = world.getBlockState(other).getBlock();
|
||||
return block.canBeConnectedTo(world, other, facing.getOpposite()) || canConnectTo(world, other, facing.getOpposite());
|
||||
}
|
||||
{ return canConnectTo(world, pos, pos.offset(facing), facing.getOpposite()); }
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import net.minecraft.block.material.Material;
|
|||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.fml.common.Loader;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||
import wile.engineersdecor.detail.ModConfig;
|
||||
|
@ -66,6 +67,21 @@ public class ModBlocks
|
|||
BlockDecor.CFG_CUTOUT,
|
||||
Material.WOOD, 1.0f, 15f, SoundType.WOOD
|
||||
);
|
||||
public static final BlockDecorChair TREATED_WOOD_STOOL = new BlockDecorChair(
|
||||
"treated_wood_stool",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
|
||||
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
|
||||
ModAuxiliaries.getPixeledAABB(4.1,0,4.1, 11.8,8.8,11.8)
|
||||
);
|
||||
|
||||
public static final BlockDecorCraftingTable TREATED_WOOD_CRAFTING_TABLE = new BlockDecorCraftingTable(
|
||||
"treated_wood_crafting_table",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
|
||||
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
|
||||
ModAuxiliaries.getPixeledAABB(0.5,0,3, 15.5,15.125,15.5)
|
||||
);
|
||||
|
||||
|
||||
|
||||
public static final BlockDecorStairs IRON_SHEET_ROOF = new BlockDecorStairs("iron_sheet_roof", IRON_SHEET_ROOF_FULLBLOCK.getDefaultState());
|
||||
|
||||
|
@ -83,6 +99,8 @@ public class ModBlocks
|
|||
REBAR_CONCRETE_STAIRS,
|
||||
REBAR_CONCRETE_WALL,
|
||||
CLINKER_BRICK_WALL,
|
||||
TREATED_WOOD_STOOL,
|
||||
TREATED_WOOD_CRAFTING_TABLE,
|
||||
};
|
||||
|
||||
private static final Block ieDependentBlocks[] = {
|
||||
|
@ -113,6 +131,8 @@ public class ModBlocks
|
|||
for(Block e:allBlocks) registeredBlocks.add(e);
|
||||
for(Block e:registeredBlocks) event.getRegistry().register(e);
|
||||
ModEngineersDecor.logger.info("Registered " + Integer.toString(registeredBlocks.size()) + " blocks.");
|
||||
// TEs
|
||||
GameRegistry.registerTileEntity(BlockDecorCraftingTable.BEntity.class, new ResourceLocation(ModEngineersDecor.MODID, "te_crafting_table"));
|
||||
}
|
||||
|
||||
// Invoked from ClientProxy.registerModels()
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:crafting_table/treated_wood_crafting_table_model"
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing": { "north": {"y":0}, "south": {"y":180}, "west": {"y":-90}, "east": {"y":90}, "up":{}, "down":{} }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:furniture/treated_wood_stool_model",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/treated_wood_framed_texture"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing": { "north": {"y":0}, "south": {"y":0}, "west": {"y":90}, "east": {"y":90}, "up":{}, "down":{} }
|
||||
}
|
||||
}
|
|
@ -60,7 +60,11 @@ tile.engineersdecor.treated_wood_pole.help=§6Straight pole fragment with the di
|
|||
# Furniture
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.treated_wood_table.name=Treated wood table
|
||||
tile.engineersdecor.treated_wood_table.help=§6Robust four-legged wood table.
|
||||
tile.engineersdecor.treated_wood_table.help=§6Robust four-legged wood table.§r\n Indoor and outdoor use.
|
||||
tile.engineersdecor.treated_wood_stool.name=Treated wood stool
|
||||
tile.engineersdecor.treated_wood_stool.help=§6Robust wood stool.§r\n Indoor and outdoor use.
|
||||
tile.engineersdecor.treated_wood_crafting_table.name=Treated wood crafting table
|
||||
tile.engineersdecor.treated_wood_crafting_table.help=§6Robust and weather-proof.§r
|
||||
|
||||
# EOF
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -0,0 +1,116 @@
|
|||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"side": "engineersdecor:blocks/crafting_table/treated_wood_crafting_table_side",
|
||||
"top": "engineersdecor:blocks/crafting_table/treated_wood_crafting_table_top",
|
||||
"particle": "engineersdecor:blocks/crafting_table/treated_wood_crafting_table_top",
|
||||
"front": "engineersdecor:blocks/crafting_table/treated_wood_crafting_table_front",
|
||||
"wood": "engineersdecor:blocks/iestyle/treated_wood"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0.5, 0, 3],
|
||||
"to": [2.5, 13.25, 6],
|
||||
"faces": {
|
||||
"north": {"uv": [13.5, 2.75, 15.5, 16], "texture": "#front"},
|
||||
"east": {"uv": [10, 2, 13, 16], "texture": "#side"},
|
||||
"south": {"uv": [0.5, 2.75, 2.375, 16], "texture": "#side"},
|
||||
"west": {"uv": [0, 2, 3, 16], "texture": "#side"},
|
||||
"down": {"uv": [0.5, 10, 2.375, 13], "texture": "#wood"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 0, 3],
|
||||
"to": [15.5, 13.25, 15.75],
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 2.75, 8.5, 16], "texture": "#front"},
|
||||
"east": {"uv": [0, 2, 13, 16], "texture": "#side"},
|
||||
"south": {"uv": [5, 2, 13, 16], "texture": "#side"},
|
||||
"west": {"uv": [0, 2, 13, 16], "texture": "#side"},
|
||||
"down": {"uv": [7.5, 0.25, 15.5, 13], "texture": "#wood"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.5, 0, 12.75],
|
||||
"to": [2.5, 13.25, 15.5],
|
||||
"faces": {
|
||||
"north": {"uv": [9, 2, 10.875, 15.25], "texture": "#side"},
|
||||
"east": {"uv": [0, 2, 3, 16], "texture": "#side"},
|
||||
"south": {"uv": [0, 2, 1.875, 16], "texture": "#side"},
|
||||
"west": {"uv": [10, 2, 13, 16], "texture": "#side"},
|
||||
"down": {"uv": [0.5, 0.25, 2.375, 3.25], "texture": "#wood"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.5, 0, 6],
|
||||
"to": [2.5, 2, 12.75],
|
||||
"faces": {
|
||||
"east": {"uv": [3.25, 14, 10, 16], "texture": "#side"},
|
||||
"west": {"uv": [3, 14, 9.75, 16], "texture": "#side"},
|
||||
"up": {"uv": [0.5, 6, 2.375, 12.75], "texture": "#side"},
|
||||
"down": {"uv": [0.5, 3.25, 2.375, 10], "texture": "#wood"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.5, 11.25, 6],
|
||||
"to": [2.5, 13.25, 12.75],
|
||||
"faces": {
|
||||
"east": {"uv": [3, 2, 9.75, 4], "texture": "#side"},
|
||||
"west": {"uv": [2, 2, 8.75, 4], "texture": "#side"},
|
||||
"down": {"uv": [0.5, 3.25, 2.375, 10], "texture": "#side"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.125, 13.25, 1.125],
|
||||
"to": [15.875, 13.375, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0.125, 0.625, 15.875, 1.75], "texture": "#top"},
|
||||
"east": {"uv": [1, 0, 15.125, 1.125], "texture": "#top"},
|
||||
"south": {"uv": [0, 0, 15.75, 1.125], "texture": "#top"},
|
||||
"west": {"uv": [1, 0, 15.125, 1.125], "texture": "#top"},
|
||||
"down": {"uv": [0.125, 0, 15.875, 14.125], "texture": "#wood"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 13.375, 1],
|
||||
"to": [16, 15.125, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 1.75], "texture": "#top"},
|
||||
"east": {"uv": [1, 0, 15.25, 1.75], "texture": "#top"},
|
||||
"south": {"uv": [0, 0, 16, 1.75], "texture": "#top"},
|
||||
"west": {"uv": [0, 0, 14.25, 1.75], "texture": "#top"},
|
||||
"up": {"uv": [0, 1.75, 16, 16], "texture": "#top"},
|
||||
"down": {"uv": [0, 2, 13, 16], "texture": "#side"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.125, 15.125, 1.125],
|
||||
"to": [15.875, 15.25, 15.875],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0.75, 16, 0.875], "texture": "#top"},
|
||||
"east": {"uv": [0, 0.75, 14.125, 0.875], "texture": "#top"},
|
||||
"south": {"uv": [0, 0.75, 16, 0.875], "texture": "#top"},
|
||||
"west": {"uv": [1.875, 0.75, 16, 0.875], "texture": "#top"},
|
||||
"up": {"uv": [0.125, 1.125, 15.875, 15.875], "texture": "#top"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [0, 1, 2, 3, 4,
|
||||
{
|
||||
"name": "group",
|
||||
"children": [5, 6, 7]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/treated_wood_framed_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7, 0, 7],
|
||||
"to": [9, 7, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 9, 9, 16], "texture": "#o"},
|
||||
"east": {"uv": [7, 9, 9, 16], "texture": "#o"},
|
||||
"south": {"uv": [7, 9, 9, 16], "texture": "#o"},
|
||||
"west": {"uv": [7, 9, 9, 16], "texture": "#o"},
|
||||
"down": {"uv": [7, 7, 9, 9], "texture": "#o", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9.375, 0.375, 7.5],
|
||||
"to": [10.375, 4.375, 8.5],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [10.5, 2.375, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 7, 4],
|
||||
"to": [12, 8.875, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 7.125, 12, 9], "texture": "#o"},
|
||||
"east": {"uv": [4, 7.125, 12, 9], "texture": "#o"},
|
||||
"south": {"uv": [4, 7.125, 12, 9], "texture": "#o"},
|
||||
"west": {"uv": [4, 7.125, 12, 9], "texture": "#o"},
|
||||
"up": {"uv": [4, 4, 12, 12], "texture": "#o"},
|
||||
"down": {"uv": [4, 4, 12, 12], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 8.875, 4.125],
|
||||
"to": [11.875, 9, 11.875],
|
||||
"faces": {
|
||||
"north": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"east": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"south": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"west": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"up": {"uv": [0.25, 0.25, 15.75, 15.75], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 0, 7],
|
||||
"to": [12, 1, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 15, 7, 16], "texture": "#o"},
|
||||
"east": {"uv": [7, 15, 9, 16], "texture": "#o"},
|
||||
"south": {"uv": [9, 15, 12, 16], "texture": "#o"},
|
||||
"up": {"uv": [9, 7, 12, 9], "texture": "#o"},
|
||||
"down": {"uv": [9, 7, 12, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 0, 7],
|
||||
"to": [7, 1, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [9, 15, 12, 16], "texture": "#o"},
|
||||
"south": {"uv": [4, 15, 7, 16], "texture": "#o"},
|
||||
"west": {"uv": [7, 15, 9, 16], "texture": "#o"},
|
||||
"up": {"uv": [4, 7, 7, 9], "texture": "#o"},
|
||||
"down": {"uv": [4, 7, 7, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 0, 4],
|
||||
"to": [9, 1, 7],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 15, 9, 16], "texture": "#o"},
|
||||
"east": {"uv": [9, 15, 12, 16], "texture": "#o"},
|
||||
"west": {"uv": [4, 15, 7, 16], "texture": "#o"},
|
||||
"up": {"uv": [7, 4, 9, 7], "rotation": 270, "texture": "#o"},
|
||||
"down": {"uv": [7, 9, 9, 12], "rotation": 90, "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 0, 9],
|
||||
"to": [9, 1, 12],
|
||||
"faces": {
|
||||
"east": {"uv": [4, 15, 7, 16], "texture": "#o"},
|
||||
"south": {"uv": [7, 15, 9, 16], "texture": "#o"},
|
||||
"west": {"uv": [9, 15, 12, 16], "texture": "#o"},
|
||||
"up": {"uv": [7, 9, 9, 12], "rotation": 270, "texture": "#o"},
|
||||
"down": {"uv": [7, 4, 9, 7], "rotation": 90, "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.625, 0.375, 7.5],
|
||||
"to": [6.625, 4.375, 8.5],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [5.5, 2.375, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 0.375, 9.375],
|
||||
"to": [8.5, 4.375, 10.375],
|
||||
"rotation": {"angle": -45, "axis": "x", "origin": [8, 2.375, 10.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 0.375, 5.625],
|
||||
"to": [8.5, 4.375, 6.625],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [8, 2.375, 5.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -136,6 +136,16 @@
|
|||
"data": 5
|
||||
},
|
||||
"name": "blockConcreteIe"
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "type": "minecraft:item_exists", "item": "immersiveengineering:wooden_device0" }
|
||||
],
|
||||
"ingredient": {
|
||||
"item": "immersiveengineering:wooden_device0",
|
||||
"data": 0
|
||||
},
|
||||
"name": "crateTreatedWood"
|
||||
}
|
||||
|
||||
]
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:treated_wood_crafting_table",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"SS",
|
||||
"PC"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "#slabTreatedWood",
|
||||
"data": 0
|
||||
},
|
||||
"P": {
|
||||
"item": "#plankTreatedWood",
|
||||
"data": 0
|
||||
},
|
||||
"C": {
|
||||
"item": "#crateTreatedWood",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:treated_wood_crafting_table",
|
||||
"count": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:treated_wood_stool",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"WWW",
|
||||
" S "
|
||||
],
|
||||
"key": {
|
||||
"W": {
|
||||
"item": "#slabTreatedWood",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "engineersdecor:treated_wood_pole",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:treated_wood_stool",
|
||||
"count": 1
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 816 B |
Binary file not shown.
After Width: | Height: | Size: 755 B |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 9.1 KiB |
|
@ -12,7 +12,9 @@ Mod components derived/inspired by IE:
|
|||
- Style color scheme of treated wood/steel/concrete to match IE color scheme.
|
||||
- Recipe _constants.json file (for using IE items as ingredients)
|
||||
|
||||
IE components referenced in this mod:
|
||||
IE components used in this mod:
|
||||
|
||||
- immersiveengineering:textures/block/stone_decoration_concrete.png (for IE
|
||||
concrete wall).
|
||||
|
||||
- Image pattern of wooden GUIs (background, slots, etc.).
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||
"1.12.2": {
|
||||
"1.0.1-b2": "[A] Added treated wood crafting table.\n[A] Added treated stool.\n[F] Fixed ladder bounding boxes to allow climbing connected trap doors (issue #6, thanks to Forgilageord).\n[M] Improved wall-block connections (wall elements only connect to other walls or gates, as well as to solid blocks if these blocks are in a straight line with at least two wall elements).\n[M] Decor walls are defined \"solid\" on top, so that e.g. torches and redstone tracks can be placed on them.",
|
||||
"1.0.1-b1": "[F] Fixed missing condition for ie:stone_deco in recipe constants.\n[A] Added clinker brick wall.",
|
||||
"1.0.0": "[R] Release based on v1.0.0-b4",
|
||||
"1.0.0-b4": "[F] Fixed vanished recipe for the rebar concrete wall.\n[A] Concrete wall, material: IE concrete.",
|
||||
|
@ -13,7 +14,7 @@
|
|||
},
|
||||
"promos": {
|
||||
"1.12.2-recommended": "1.0.0",
|
||||
"1.12.2-latest": "1.0.1-b1",
|
||||
"1.12.2-latest": "1.0.1-b2",
|
||||
"1.13.2-recommended": "",
|
||||
"1.13.2-latest": "1.0.0-a1"
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue