1.12.2: Treated wood window added. Model files auto-sanatized. Explicit spwan-in-block prevention.

This commit is contained in:
stfwi 2019-03-17 13:19:44 +01:00
parent 9f6bb3262b
commit 0cb6deb97c
41 changed files with 500 additions and 53 deletions

View file

@ -3,7 +3,7 @@ org.gradle.daemon=false
org.gradle.jvmargs=-Xmx8G org.gradle.jvmargs=-Xmx8G
version_minecraft=1.12.2 version_minecraft=1.12.2
version_forge=14.23.5.2768 version_forge=14.23.5.2768
version_engineersdecor=1.0.2-b2 version_engineersdecor=1.0.2-b3
# #
# jar signing data loaded from signing.properties in the project root. # jar signing data loaded from signing.properties in the project root.
# #

View file

@ -1,6 +1,7 @@
{ {
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": { "1.12.2": {
"1.0.2-b3": "[A] Added slag brick wall.\n[A] Added wall decomposition recipes.\n[A] Added treated wood window.\n[M] Climbing/descending mod ladders is faster when looking up or down and not sneaking.\n[M] Panzer glass material definition changed.\n[M] Explicitly preventing spawning in and on \"non-full\" blocks of the mod.",
"1.0.2-b2": "[A] Added rebar concrete tile stairs.\n[A] Added treated wood window sill.\n[A] Added decomposition recipes for stairs and tiles.\n[M] Changed stair recipe yield quantity from 9 to 6.", "1.0.2-b2": "[A] Added rebar concrete tile stairs.\n[A] Added treated wood window sill.\n[A] Added decomposition recipes for stairs and tiles.\n[M] Changed stair recipe yield quantity from 9 to 6.",
"1.0.2-b1": "[A] Added rebar concrete tile.\n[A] Added panzer glass (explosion-resistant reinforced glass).\n[M] Treated wood crafting table supports shift-click to transfer stacks between player inventory and crafting table storage (thanks majijn for the hint).", "1.0.2-b1": "[A] Added rebar concrete tile.\n[A] Added panzer glass (explosion-resistant reinforced glass).\n[M] Treated wood crafting table supports shift-click to transfer stacks between player inventory and crafting table storage (thanks majijn for the hint).",
"1.0.1": "[R] Release based on v1.0.1-b4 * Treated wood crafting table * Clinker brick wall * Treated wood stool * Inset spot light * Recipe fixes * Logo updated", "1.0.1": "[R] Release based on v1.0.1-b4 * Treated wood crafting table * Clinker brick wall * Treated wood stool * Inset spot light * Recipe fixes * Logo updated",
@ -16,6 +17,6 @@
}, },
"promos": { "promos": {
"1.12.2-recommended": "1.0.1", "1.12.2-recommended": "1.0.1",
"1.12.2-latest": "1.0.2-b2" "1.12.2-latest": "1.0.2-b3"
} }
} }

View file

@ -10,6 +10,15 @@ Mod sources for Minecraft version 1.12.2.
---- ----
## Revision history ## Revision history
- v1.0.2-b3 [A] Added slag brick wall.
[A] Added wall decomposition recipes.
[A] Added treated wood window.
[M] Climbing/descending mod ladders is faster when
looking up or down and not sneaking.
[M] Panzer glass material definition changed.
[M] Explicitly preventing spawning in and on "non-full"
blocks of the mod.
- v1.0.2-b2 [A] Added rebar concrete tile stairs. - v1.0.2-b2 [A] Added rebar concrete tile stairs.
[A] Added treated wood window sill. [A] Added treated wood window sill.
[A] Added decomposition recipes for stairs and tiles. [A] Added decomposition recipes for stairs and tiles.

View file

@ -13,9 +13,12 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.fml.common.network.IGuiHandler; import net.minecraftforge.fml.common.network.IGuiHandler;
import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.NetworkRegistry;
import wile.engineersdecor.blocks.BlockDecorCraftingTable; import wile.engineersdecor.blocks.BlockDecorCraftingTable;
import wile.engineersdecor.blocks.BlockDecorLadder;
import wile.engineersdecor.detail.ModConfig; import wile.engineersdecor.detail.ModConfig;
import wile.engineersdecor.blocks.ModBlocks; import wile.engineersdecor.blocks.ModBlocks;
import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.event.ModelRegistryEvent;
@ -63,13 +66,13 @@ public class ModEngineersDecor
public interface IProxy public interface IProxy
{ {
default void preInit(FMLPreInitializationEvent e) {} default void preInit(final FMLPreInitializationEvent e) {}
default void init(FMLInitializationEvent e) {} default void init(final FMLInitializationEvent e) {}
default void postInit(FMLPostInitializationEvent e) {} default void postInit(final FMLPostInitializationEvent e) {}
} }
@Mod.EventHandler @Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) public void preInit(final FMLPreInitializationEvent event)
{ {
logger = event.getModLog(); logger = event.getModLog();
logger.info(MODNAME + ": Version " + MODMCVERSION + "-" + MODVERSION + ( (MODBUILDID=="@"+"MOD_BUILDID"+"@") ? "" : (" "+MODBUILDID) ) + "."); logger.info(MODNAME + ": Version " + MODMCVERSION + "-" + MODVERSION + ( (MODBUILDID=="@"+"MOD_BUILDID"+"@") ? "" : (" "+MODBUILDID) ) + ".");
@ -79,33 +82,34 @@ public class ModEngineersDecor
logger.info(MODNAME + ": Found valid fingerprint " + MODFINGERPRINT + "."); logger.info(MODNAME + ": Found valid fingerprint " + MODFINGERPRINT + ".");
} }
proxy.preInit(event); proxy.preInit(event);
MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());
} }
@Mod.EventHandler @Mod.EventHandler
public void init(FMLInitializationEvent event) public void init(final FMLInitializationEvent event)
{ {
proxy.init(event); proxy.init(event);
NetworkRegistry.INSTANCE.registerGuiHandler(this, new ModEngineersDecor.GuiHandler()); NetworkRegistry.INSTANCE.registerGuiHandler(this, new ModEngineersDecor.GuiHandler());
} }
@Mod.EventHandler @Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) public void postInit(final FMLPostInitializationEvent event)
{ ModConfig.onPostInit(event); proxy.postInit(event); } { ModConfig.onPostInit(event); proxy.postInit(event); }
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public static final class RegistrationSubscriptions public static final class RegistrationSubscriptions
{ {
@SubscribeEvent @SubscribeEvent
public static void registerBlocks(RegistryEvent.Register<Block> event) public static void registerBlocks(final RegistryEvent.Register<Block> event)
{ ModBlocks.registerBlocks(event); } { ModBlocks.registerBlocks(event); }
@SubscribeEvent @SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) public static void registerItems(final RegistryEvent.Register<Item> event)
{ ModBlocks.registerItemBlocks(event); } { ModBlocks.registerItemBlocks(event); }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@SubscribeEvent @SubscribeEvent
public static void registerModels(ModelRegistryEvent event) public static void registerModels(final ModelRegistryEvent event)
{ ModBlocks.initModels(); } { ModBlocks.initModels(); }
} }
@ -145,4 +149,17 @@ public class ModEngineersDecor
} }
@Mod.EventBusSubscriber
public static class PlayerEventHandler
{
@SubscribeEvent
public void update(final LivingEvent.LivingUpdateEvent event)
{
if(!(event.getEntity() instanceof EntityPlayer)) return;
final EntityPlayer player = (EntityPlayer)event.getEntity();
if(player.world == null) return;
if(player.isOnLadder()) BlockDecorLadder.onPlayerUpdateEvent(player);
}
}
} }

View file

@ -47,7 +47,7 @@ public class BlockDecor extends Block
public static final long CFG_LOOK_PLACEMENT = 0x0000000000000004L; // placed in direction the player is looking when placing. public static final long CFG_LOOK_PLACEMENT = 0x0000000000000004L; // placed in direction the player is looking when placing.
public static final long CFG_FACING_PLACEMENT = 0x0000000000000008L; // placed on the facing the player has clicked. public static final long CFG_FACING_PLACEMENT = 0x0000000000000008L; // placed on the facing the player has clicked.
public static final long CFG_OPPOSITE_PLACEMENT = 0x0000000000000020L; // placed placed in the opposite direction of the face the player clicked. public static final long CFG_OPPOSITE_PLACEMENT = 0x0000000000000020L; // placed placed in the opposite direction of the face the player clicked.
public static final long CFG_TRANSLUCENT = 0x0000000000000040L; // indicates a block/pane is glass like (transparent, etc)
public static final long CFG_LIGHT_VALUE_MASK = 0x0000000000000f00L; // fixed value for getLightValue() public static final long CFG_LIGHT_VALUE_MASK = 0x0000000000000f00L; // fixed value for getLightValue()
public static final long CFG_LIGHT_VALUE_SHIFT = 8L; public static final long CFG_LIGHT_VALUE_SHIFT = 8L;
@ -79,7 +79,13 @@ public class BlockDecor extends Block
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public BlockRenderLayer getRenderLayer() public BlockRenderLayer getRenderLayer()
{ return ((config & CFG_CUTOUT)!=0) ? BlockRenderLayer.CUTOUT : BlockRenderLayer.SOLID; } { return ((config & CFG_CUTOUT)!=0) ? (BlockRenderLayer.CUTOUT) : ( ((config & CFG_TRANSLUCENT)!=0) ? (BlockRenderLayer.TRANSLUCENT) : (BlockRenderLayer.SOLID)); }
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("deprecation")
public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
{ return true; }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@ -89,17 +95,21 @@ public class BlockDecor extends Block
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public boolean isNormalCube(IBlockState state) public boolean isNormalCube(IBlockState state)
{ return ((config & CFG_CUTOUT)==0); } { return ((config & (CFG_CUTOUT|CFG_TRANSLUCENT))==0); }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public boolean isOpaqueCube(IBlockState state) public boolean isOpaqueCube(IBlockState state)
{ return ((config & CFG_CUTOUT)==0); } { return ((config & (CFG_CUTOUT|CFG_TRANSLUCENT))==0); }
@Override @Override
public boolean canSpawnInBlock() public boolean canSpawnInBlock()
{ return false; } { return false; }
@Override
public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
{ return true; }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public EnumPushReaction getPushReaction(IBlockState state) public EnumPushReaction getPushReaction(IBlockState state)
@ -166,7 +176,4 @@ public class BlockDecor extends Block
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
{ return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand); } { return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand); }
@Override
public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
{ return true; }
} }

View file

@ -21,12 +21,9 @@ import net.minecraft.world.World;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.util.Mirror; import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation; import net.minecraft.util.Rotation;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
@ -65,6 +62,10 @@ public class BlockDecorDirected extends BlockDecor
public boolean isNormalCube(IBlockState state) public boolean isNormalCube(IBlockState state)
{ return false; } { return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face) public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
@ -80,11 +81,6 @@ public class BlockDecorDirected extends BlockDecor
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
{ return getBoundingBox(state, world, pos); } { return getBoundingBox(state, world, pos); }
@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getRenderLayer()
{ return BlockRenderLayer.CUTOUT; }
@Override @Override
public IBlockState getStateFromMeta(int meta) public IBlockState getStateFromMeta(int meta)
{ return this.getDefaultState().withProperty(FACING, EnumFacing.byIndex(meta & 0x7)); } { return this.getDefaultState().withProperty(FACING, EnumFacing.byIndex(meta & 0x7)); }

View file

@ -56,6 +56,10 @@ public class BlockDecorGlassBlock extends BlockDecor
public boolean isOpaqueCube(IBlockState state) public boolean isOpaqueCube(IBlockState state)
{ return false; } { return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face) public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
@ -74,11 +78,11 @@ public class BlockDecorGlassBlock extends BlockDecor
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public boolean isFullCube(IBlockState state) public boolean isFullCube(IBlockState state)
{ return true; } { return false; }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public boolean isNormalCube(IBlockState state) public boolean isNormalCube(IBlockState state)
{ return true; } { return false; }
} }

View file

@ -16,7 +16,10 @@ import net.minecraft.block.BlockLadder;
import net.minecraft.block.SoundType; import net.minecraft.block.SoundType;
import net.minecraft.block.material.EnumPushReaction; import net.minecraft.block.material.EnumPushReaction;
import net.minecraft.client.util.ITooltipFlag; import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.MoverType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import wile.engineersdecor.ModEngineersDecor; import wile.engineersdecor.ModEngineersDecor;
@ -77,6 +80,10 @@ public class BlockDecorLadder extends BlockLadder
public boolean canSpawnInBlock() public boolean canSpawnInBlock()
{ return false; } { return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public EnumPushReaction getPushReaction(IBlockState state) public EnumPushReaction getPushReaction(IBlockState state)
@ -103,4 +110,18 @@ public class BlockDecorLadder extends BlockLadder
return (!isExceptBlockForAttachWithPiston(state.getBlock())) && (state.getBlockFaceShape(world, pos, side) == BlockFaceShape.SOLID); return (!isExceptBlockForAttachWithPiston(state.getBlock())) && (state.getBlockFaceShape(world, pos, side) == BlockFaceShape.SOLID);
} }
// Player update event, forwarded from the main mod instance.
public static void onPlayerUpdateEvent(final EntityPlayer player)
{
if(!player.isOnLadder() || (player.isSneaking()) || (player.isSpectator())) return;
if((Math.abs(player.motionY) < 0.1) || (Math.abs(player.motionY) > 0.7) || ((player.getLookVec().y > 0) != (player.motionY > 0))) return;
if(Math.abs(player.getLookVec().y) < 0.9) return;
final BlockPos pos = new BlockPos(player.posX, player.posY, player.posZ);
if(!(player.world.getBlockState(pos).getBlock() instanceof BlockDecorLadder)) return;
player.fallDistance = 0;
player.motionY = (player.motionY < -0.25) ? (-0.7) : ((player.motionY > 0.25) ? (0.7) : (player.motionY));
player.motionX = MathHelper.clamp(player.motionX, -0.15, 0.15);
player.motionZ = MathHelper.clamp(player.motionX, -0.15, 0.15);
player.move(MoverType.PLAYER, player.motionX, player.motionY, player.motionZ);
}
} }

View file

@ -22,4 +22,9 @@ public class BlockDecorStairs extends net.minecraft.block.BlockStairs
setRegistryName(ModEngineersDecor.MODID, registryName); setRegistryName(ModEngineersDecor.MODID, registryName);
setTranslationKey(ModEngineersDecor.MODID + "." + registryName); setTranslationKey(ModEngineersDecor.MODID + "." + registryName);
} }
@Override
public boolean canSpawnInBlock()
{ return false; }
} }

View file

@ -118,6 +118,14 @@ public class BlockDecorWall extends BlockDecor
public boolean isNormalCube(IBlockState state) public boolean isNormalCube(IBlockState state)
{ return false; } { return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override
public boolean canSpawnInBlock()
{ return false; }
private boolean canConnectTo(IBlockAccess world, BlockPos pos, BlockPos other, EnumFacing facing) private boolean canConnectTo(IBlockAccess world, BlockPos pos, BlockPos other, EnumFacing facing)
{ {
final IBlockState state = world.getBlockState(other); final IBlockState state = world.getBlockState(other);

View file

@ -41,6 +41,7 @@ public class ModBlocks
public static final BlockDecorFull SLAG_BRICK_BLOCK = new BlockDecorFull("slag_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE); public static final BlockDecorFull SLAG_BRICK_BLOCK = new BlockDecorFull("slag_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE);
public static final BlockDecorStairs SLAG_BRICK_STAIRS = new BlockDecorStairs("slag_brick_stairs", SLAG_BRICK_BLOCK.getDefaultState()); public static final BlockDecorStairs SLAG_BRICK_STAIRS = new BlockDecorStairs("slag_brick_stairs", SLAG_BRICK_BLOCK.getDefaultState());
public static final BlockDecorWall SLAG_BRICK_WALL = new BlockDecorWall("slag_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE);
public static final BlockDecorFull REBAR_CONCRETE_BLOCK = new BlockDecorFull("rebar_concrete", 0, Material.ROCK, 8f, 2000f, SoundType.STONE); public static final BlockDecorFull REBAR_CONCRETE_BLOCK = new BlockDecorFull("rebar_concrete", 0, Material.ROCK, 8f, 2000f, SoundType.STONE);
public static final BlockDecorStairs REBAR_CONCRETE_STAIRS = new BlockDecorStairs("rebar_concrete_stairs", REBAR_CONCRETE_BLOCK.getDefaultState()); public static final BlockDecorStairs REBAR_CONCRETE_STAIRS = new BlockDecorStairs("rebar_concrete_stairs", REBAR_CONCRETE_BLOCK.getDefaultState());
@ -54,7 +55,7 @@ public class ModBlocks
public static final BlockDecorLadder METAL_RUNG_STEPS = new BlockDecorLadder("metal_rung_steps", 0, Material.IRON, 1.0f, 25f, SoundType.METAL); public static final BlockDecorLadder METAL_RUNG_STEPS = new BlockDecorLadder("metal_rung_steps", 0, Material.IRON, 1.0f, 25f, SoundType.METAL);
public static final BlockDecorLadder TREATED_WOOD_LADDER = new BlockDecorLadder("treated_wood_ladder", 0, Material.WOOD, 1.0f, 15f, SoundType.WOOD); public static final BlockDecorLadder TREATED_WOOD_LADDER = new BlockDecorLadder("treated_wood_ladder", 0, Material.WOOD, 1.0f, 15f, SoundType.WOOD);
public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.ROCK, 3f, 2000f, SoundType.GLASS); public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.GLASS, 0.8f, 2000f, SoundType.GLASS);
public static final BlockDecorDirected TREATED_WOOD_POLE = new BlockDecorDirected( public static final BlockDecorDirected TREATED_WOOD_POLE = new BlockDecorDirected(
"treated_wood_pole", "treated_wood_pole",
@ -68,6 +69,7 @@ public class ModBlocks
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT, BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Material.WOOD, 1.0f, 15f, SoundType.WOOD Material.WOOD, 1.0f, 15f, SoundType.WOOD
); );
public static final BlockDecorChair TREATED_WOOD_STOOL = new BlockDecorChair( public static final BlockDecorChair TREATED_WOOD_STOOL = new BlockDecorChair(
"treated_wood_stool", "treated_wood_stool",
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT, BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
@ -96,6 +98,13 @@ public class ModBlocks
ModAuxiliaries.getPixeledAABB(0.5,15,10.5, 15.5,16,16) ModAuxiliaries.getPixeledAABB(0.5,15,10.5, 15.5,16,16)
); );
public static final BlockDecorDirected TREATED_WOOD_WINDOW = new BlockDecorDirected(
"treated_wood_window",
BlockDecor.CFG_TRANSLUCENT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Material.WOOD, 0.5f, 15f, SoundType.GLASS,
ModAuxiliaries.getPixeledAABB(0,0,7, 16,16,9)
);
public static final BlockDecorFull IRON_SHEET_ROOF_FULLBLOCK = new BlockDecorFull("iron_sheet_roof_block", 0, Material.IRON, 1.8f, 25f, SoundType.METAL); public static final BlockDecorFull IRON_SHEET_ROOF_FULLBLOCK = new BlockDecorFull("iron_sheet_roof_block", 0, Material.IRON, 1.8f, 25f, SoundType.METAL);
public static final BlockDecorStairs IRON_SHEET_ROOF = new BlockDecorStairs("iron_sheet_roof", IRON_SHEET_ROOF_FULLBLOCK.getDefaultState()); public static final BlockDecorStairs IRON_SHEET_ROOF = new BlockDecorStairs("iron_sheet_roof", IRON_SHEET_ROOF_FULLBLOCK.getDefaultState());
@ -106,6 +115,7 @@ public class ModBlocks
CLINKER_BRICK_WALL, CLINKER_BRICK_WALL,
SLAG_BRICK_BLOCK, SLAG_BRICK_BLOCK,
SLAG_BRICK_STAIRS, SLAG_BRICK_STAIRS,
SLAG_BRICK_WALL,
REBAR_CONCRETE_BLOCK, REBAR_CONCRETE_BLOCK,
REBAR_CONCRETE_STAIRS, REBAR_CONCRETE_STAIRS,
REBAR_CONCRETE_WALL, REBAR_CONCRETE_WALL,
@ -119,6 +129,7 @@ public class ModBlocks
TREATED_WOOD_POLE, TREATED_WOOD_POLE,
TREATED_WOOD_TABLE, TREATED_WOOD_TABLE,
TREATED_WOOD_STOOL, TREATED_WOOD_STOOL,
TREATED_WOOD_WINDOW,
TREATED_WOOD_WINDOWSILL, TREATED_WOOD_WINDOWSILL,
INSET_LIGHT_IRON, INSET_LIGHT_IRON,
}; };

View file

@ -0,0 +1,20 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:wall/slag_brick_wall_default",
"textures": {
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall",
"postside": "engineersdecor:blocks/slag_brick/slag_brick_pole_side",
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
}
},
"variants": {
"inventory": { "model": "engineersdecor:wall/slag_brick_wall_inventory" },
"up" : { "false":{}, "true": {"submodel": {"clinker_wall_up" : {"model": "engineersdecor:wall/slag_brick_wall_post" }}} },
"north": { "false":{}, "true": {"submodel": {"clinker_wall_north" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 0 }}} },
"east" : { "false":{}, "true": {"submodel": {"clinker_wall_east" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 90 }}} },
"south": { "false":{}, "true": {"submodel": {"clinker_wall_south" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 180 }}} },
"west" : { "false":{}, "true": {"submodel": {"clinker_wall_west" : {"model": "engineersdecor:wall/slag_brick_wall_side", "uvlock": true, "y": 270 }}} }
}
}

View file

@ -0,0 +1,11 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:furniture/treated_wood_window_model"
},
"variants": {
"normal": [{}],
"facing": { "north": {"y":0}, "south": {"y":0}, "west": {"y":90}, "east": {"y":90}, "up": {"x":90}, "down": {"x":90} },
"inventory": [{}]
}
}

View file

@ -29,13 +29,15 @@ tile.engineersdecor.concrete_wall.name=Concrete wall
tile.engineersdecor.concrete_wall.help=§6Wall made of solid concrete. tile.engineersdecor.concrete_wall.help=§6Wall made of solid concrete.
tile.engineersdecor.clinker_brick_wall.name=Clinker brick wall tile.engineersdecor.clinker_brick_wall.name=Clinker brick wall
tile.engineersdecor.clinker_brick_wall.help=§6Simplistic clinker brick wall. tile.engineersdecor.clinker_brick_wall.help=§6Simplistic clinker brick wall.
tile.engineersdecor.slag_brick_wall.name=Slag brick wall
tile.engineersdecor.slag_brick_wall.help=§6Simplistic slag brick wall.
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.metal_rung_ladder.name=Metal rung ladder tile.engineersdecor.metal_rung_ladder.name=Metal rung ladder
tile.engineersdecor.metal_rung_ladder.help=§6Typical industrial wall ladder, consisting of horizontal metal rod rungs. tile.engineersdecor.metal_rung_ladder.help=§6Typical industrial wall ladder, consisting of horizontal metal rod rungs.§r Look up/down to climb faster.
tile.engineersdecor.metal_rung_steps.name=Staggered metal steps tile.engineersdecor.metal_rung_steps.name=Staggered metal steps
tile.engineersdecor.metal_rung_steps.help=§6Staggered rod rungs affixed to a wall, allowing to climb up, fall down, and so on. tile.engineersdecor.metal_rung_steps.help=§6Staggered rod rungs affixed to a wall, allowing to climb up, fall down, and so on.§r Look up/down to climb faster.
tile.engineersdecor.treated_wood_ladder.name=Treated wood ladder tile.engineersdecor.treated_wood_ladder.name=Treated wood ladder
tile.engineersdecor.treated_wood_ladder.help=§6Weather-proof wooden ladder. tile.engineersdecor.treated_wood_ladder.help=§6Weather-proof wooden ladder.§r Look up/down to climb faster.
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.clinker_brick_stairs.name=Clinker brick stairs tile.engineersdecor.clinker_brick_stairs.name=Clinker brick stairs
tile.engineersdecor.clinker_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block. tile.engineersdecor.clinker_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block.
@ -61,6 +63,8 @@ tile.engineersdecor.iron_inset_light.name=Inset light
tile.engineersdecor.iron_inset_light.help=§6Small glowstone light source, sunk into the floor, ceiling or wall.§r\n\ tile.engineersdecor.iron_inset_light.help=§6Small glowstone light source, sunk into the floor, ceiling or wall.§r\n\
Useful to light up places where electrical light installations are problematic.\ Useful to light up places where electrical light installations are problematic.\
Light level like a torch. Light level like a torch.
tile.engineersdecor.treated_wood_window.name=Treated wood window
tile.engineersdecor.treated_wood_window.help=§6Wood framed tripple glazed window. Well insulating.
tile.engineersdecor.treated_wood_windowsill.name=Treated wood window sill tile.engineersdecor.treated_wood_windowsill.name=Treated wood window sill
tile.engineersdecor.treated_wood_windowsill.help=§6Simple window decoration. tile.engineersdecor.treated_wood_windowsill.help=§6Simple window decoration.
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------

View file

@ -1,5 +1,4 @@
{ {
"credit": "I made this with the Blockbench",
"parent": "block/cube", "parent": "block/cube",
"textures": { "textures": {
"o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture", "o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture",

View file

@ -1,5 +1,4 @@
{ {
"credit": "I made this with the Blockbench",
"parent": "block/cube", "parent": "block/cube",
"textures": { "textures": {
"o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture", "o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture",

View file

@ -0,0 +1,111 @@
{
"parent": "block/cube",
"ambientocclusion": false,
"textures": {
"glass": "engineersdecor:blocks/glass/panzerglass_block_texture0",
"frame": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
"particle": "engineersdecor:blocks/iestyle/treated_wood_rough_texture"
},
"elements": [
{
"from": [1, 1, 7.25],
"to": [15, 15, 8.75],
"faces": {
"north": {"uv": [1, 1, 15, 15], "texture": "#glass"},
"south": {"uv": [1, 1, 15, 15], "texture": "#glass"}
}
},
{
"from": [0, 1, 6.5],
"to": [1, 15, 9.5],
"faces": {
"north": {"uv": [15, 1, 16, 15], "texture": "#frame"},
"east": {"uv": [6.5, 1, 9.5, 15], "texture": "#frame"},
"south": {"uv": [0, 1, 1, 15], "texture": "#frame"},
"west": {"uv": [6.5, 1, 9.5, 15], "texture": "#frame"}
}
},
{
"from": [15, 1, 6.5],
"to": [16, 15, 9.5],
"faces": {
"north": {"uv": [0, 1, 1, 15], "texture": "#frame"},
"east": {"uv": [6.5, 1, 9.5, 15], "texture": "#frame"},
"south": {"uv": [15, 1, 16, 15], "texture": "#frame"},
"west": {"uv": [6.5, 1, 9.5, 15], "texture": "#frame"}
}
},
{
"from": [1, 15, 6.5],
"to": [15, 16, 9.5],
"faces": {
"north": {"uv": [1, 0, 15, 1], "texture": "#frame"},
"south": {"uv": [1, 0, 15, 1], "texture": "#frame"},
"up": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"},
"down": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"}
}
},
{
"from": [1, 0, 6.5],
"to": [15, 1, 9.5],
"faces": {
"north": {"uv": [1, 15, 15, 16], "texture": "#frame"},
"south": {"uv": [1, 15, 15, 16], "texture": "#frame"},
"up": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"},
"down": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"}
}
},
{
"from": [0, 15, 6.5],
"to": [1, 16, 9.5],
"faces": {
"north": {"uv": [15, 0, 16, 1], "texture": "#frame"},
"south": {"uv": [0, 0, 1, 1], "texture": "#frame"},
"west": {"uv": [6.5, 0, 9.5, 1], "texture": "#frame"},
"up": {"uv": [0, 6.5, 1, 9.5], "texture": "#frame"}
}
},
{
"from": [15, 15, 6.5],
"to": [16, 16, 9.5],
"faces": {
"north": {"uv": [0, 0, 1, 1], "texture": "#frame"},
"east": {"uv": [6.5, 0, 9.5, 1], "texture": "#frame"},
"south": {"uv": [15, 0, 16, 1], "texture": "#frame"},
"up": {"uv": [15, 6.5, 16, 9.5], "texture": "#frame"}
}
},
{
"from": [15, 0, 6.5],
"to": [16, 1, 9.5],
"faces": {
"north": {"uv": [0, 15, 1, 16], "texture": "#frame"},
"east": {"uv": [6.5, 15, 9.5, 16], "texture": "#frame"},
"south": {"uv": [15, 15, 16, 16], "texture": "#frame"},
"down": {"uv": [15, 6.5, 16, 9.5], "texture": "#frame"}
}
},
{
"from": [0, 0, 6.5],
"to": [1, 1, 9.5],
"faces": {
"north": {"uv": [15, 15, 16, 16], "texture": "#frame"},
"south": {"uv": [0, 15, 1, 16], "texture": "#frame"},
"west": {"uv": [6.5, 15, 9.5, 16], "texture": "#frame"},
"down": {"uv": [0, 6.5, 1, 9.5], "texture": "#frame"}
}
}
],
"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]
}
}
}

View file

@ -1,5 +1,4 @@
{ {
"credit": "I made this with the Blockbench",
"parent": "block/cube", "parent": "block/cube",
"textures": { "textures": {
"particle": "engineersdecor:blocks/iestyle/steel_texture", "particle": "engineersdecor:blocks/iestyle/steel_texture",

View file

@ -1,5 +1,4 @@
{ {
"credit": "I made this with the Blockbench",
"parent": "block/cube", "parent": "block/cube",
"textures": { "textures": {
"o": "engineersdecor:blocks/iestyle/steel_texture", "o": "engineersdecor:blocks/iestyle/steel_texture",

View file

@ -1,5 +1,5 @@
{ {
"credit": "I made this with the Blockbench", "ambientocclusion": false,
"textures": { "textures": {
"side": "engineersdecor:blocks/iestyle/ironsheet_roof", "side": "engineersdecor:blocks/iestyle/ironsheet_roof",
"particle": "engineersdecor:blocks/iestyle/ironsheet_roof", "particle": "engineersdecor:blocks/iestyle/ironsheet_roof",

View file

@ -1,5 +1,5 @@
{ {
"credit": "I made this with the Blockbench", "ambientocclusion": false,
"textures": { "textures": {
"particle": "engineersdecor:blocks/iestyle/ironsheet_roof", "particle": "engineersdecor:blocks/iestyle/ironsheet_roof",
"side": "engineersdecor:blocks/iestyle/ironsheet_roof", "side": "engineersdecor:blocks/iestyle/ironsheet_roof",

View file

@ -1,5 +1,5 @@
{ {
"credit": "I made this with the Blockbench", "ambientocclusion": false,
"parent": "block/block", "parent": "block/block",
"textures": { "textures": {
"side": "engineersdecor:blocks/iestyle/ironsheet_roof", "side": "engineersdecor:blocks/iestyle/ironsheet_roof",

View file

@ -1,5 +1,4 @@
{ {
"credit": "I made this with the Blockbench",
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {

View file

@ -1,5 +1,4 @@
{ {
"credit": "I made this with the Blockbench",
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {

View file

@ -0,0 +1,9 @@
{
"textures": {
"wall": "engineersdecor:blocks/slag_brick/slag_brick_texture0",
"particle": "engineersdecor:blocks/slag_brick/slag_brick_texture0"
},
"elements": [{
"from": [7.9, 7.9, 7.9], "to": [8, 8, 8], "faces": { "down": {"texture": "#wall"} }
}]
}

View file

@ -0,0 +1,47 @@
{
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall",
"particle": "engineersdecor:blocks/slag_brick/slag_brick_wall",
"top": "engineersdecor:blocks/slag_brick/slag_brick_top"
},
"elements": [
{
"name": "Full wall",
"from": [4.5, 0, 0],
"to": [11.5, 12, 16],
"faces": {
"north": {"uv": [3.97, 4, 10.97, 16], "texture": "#wall", "cullface": "north"},
"east": {"uv": [0, 4, 16, 16], "texture": "#wall"},
"south": {"uv": [4, 4, 11, 16], "texture": "#wall", "cullface": "south"},
"west": {"uv": [0, 4, 16, 16], "texture": "#wall"},
"up": {"uv": [4.5, 0, 11.5, 16], "texture": "#top"},
"down": {"uv": [4.5, 0, 11.5, 16], "texture": "#wall", "cullface": "down"}
}
},
{
"name": "Full wall",
"from": [4.5, 12, 0],
"to": [11.5, 16, 16],
"faces": {
"north": {"uv": [4.5, 0, 11.5, 4], "texture": "#wall", "cullface": "north"},
"east": {"uv": [0, 0, 16, 4], "texture": "#wall"},
"south": {"uv": [4.5, 0, 11.5, 4], "texture": "#wall", "cullface": "south"},
"west": {"uv": [0, 0, 16, 4], "texture": "#wall"},
"up": {"uv": [4.5, 0, 11.5, 16], "texture": "#top"},
"down": {"uv": [4.5, 0, 11.5, 16], "texture": "#wall", "cullface": "down"}
}
}
],
"display": {
"gui": {
"rotation": [30, 135, 0],
"scale": [0.625, 0.625, 0.625]
},
"fixed": {
"rotation": [0, 90, 0],
"scale": [0.5, 0.5, 0.5]
}
}
}

View file

@ -0,0 +1,23 @@
{
"credit": "I made this with the Blockbench",
"textures": {
"postside": "engineersdecor:blocks/slag_brick/slag_brick_pole_side",
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
},
"elements": [
{
"name": "Center post",
"from": [4, 0, 4],
"to": [12, 16, 12],
"faces": {
"north": {"texture": "#postside"},
"east": {"texture": "#postside"},
"south": {"texture": "#postside"},
"west": {"texture": "#postside"},
"up": {"texture": "#top", "cullface": "up"},
"down": {"texture": "#top"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"credit": "I made this with the Blockbench",
"textures": {
"wall": "engineersdecor:blocks/slag_brick/slag_brick_wall",
"top": "engineersdecor:blocks/slag_brick/slag_brick_top",
"particle": "engineersdecor:blocks/slag_brick/slag_brick_top"
},
"elements": [
{
"from": [4.125, 0, 0],
"to": [11.875, 15.98, 8],
"faces": {
"north": {"texture": "#wall", "cullface": "north"},
"east": {"texture": "#wall"},
"west": {"texture": "#wall"},
"up": {"texture": "#top"},
"down": {"texture": "#top"}
}
}
]
}

View file

@ -0,0 +1,23 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_block"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"WW",
"WW"
],
"key": {
"W": {
"item": "engineersdecor:clinker_brick_wall",
"data": 0
}
},
"result": {
"item": "engineersdecor:clinker_brick_block",
"count": 4
}
}

View file

@ -0,0 +1,23 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"WW",
"WW"
],
"key": {
"W": {
"item": "engineersdecor:rebar_concrete_wall",
"data": 0
}
},
"result": {
"item": "engineersdecor:rebar_concrete",
"count": 4
}
}

View file

@ -0,0 +1,24 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_wall"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
" ",
"BBB",
"BBB"
],
"key": {
"B": {
"item": "engineersdecor:slag_brick_block",
"data": 0
}
},
"result": {
"item": "engineersdecor:slag_brick_wall",
"count": 6
}
}

View file

@ -0,0 +1,23 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_block"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"WW",
"WW"
],
"key": {
"W": {
"item": "engineersdecor:slag_brick_wall",
"data": 0
}
},
"result": {
"item": "engineersdecor:slag_brick_block",
"count": 4
}
}

View file

@ -0,0 +1,29 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:treated_wood_window",
"required": ["immersiveengineering:material"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"WGW",
"GGG",
"WGW"
],
"key": {
"W": {
"item": "#slabTreatedWood",
"data": 0
},
"G": {
"item": "#paneGlass",
"data": 0
}
},
"result": {
"item": "engineersdecor:treated_wood_window",
"count": 9
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 521 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 508 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

View file

@ -26,9 +26,9 @@ tasks["dist-check"] = function() {
if(git_remote.replace(/[\s]/g,"").indexOf("git@github.com:stfwi/engineers-decor.git(push)") < 0) fails.push("Not the reference repository."); if(git_remote.replace(/[\s]/g,"").indexOf("git@github.com:stfwi/engineers-decor.git(push)") < 0) fails.push("Not the reference repository.");
if((git_branch != "develop") && (git_branch != "master")) { if((git_branch != "develop") && (git_branch != "master")) {
fails.push("No valid branch for dist. (branch:'"+git_branch+"')"); fails.push("No valid branch for dist. (branch:'"+git_branch+"')");
} else if((git_branch == "develop") && (version_engineersdecor.replace(/[^ab\.-]/g,"")=="")) { } else if((git_branch == "develop") && (version_engineersdecor.replace(/[^ab]/g,"")=="")) {
fails.push("Cannot make release dist on develop branch."); fails.push("Cannot make release dist on develop branch.");
} else if((git_branch == "master") && (version_engineersdecor.replace(/[^ab\.-]/g,"")!="")) { } else if((git_branch == "master") && (version_engineersdecor.replace(/[^ab]/g,"")!="")) {
fails.push("Cannot make beta dist on master branch."); fails.push("Cannot make beta dist on master branch.");
} }
if(git_diff !== "") fails.push("Not everything committed to the GIT repository."); if(git_diff !== "") fails.push("Not everything committed to the GIT repository.");

View file

@ -1,6 +1,7 @@
{ {
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": { "1.12.2": {
"1.0.2-b3": "[A] Added slag brick wall.\n[A] Added wall decomposition recipes.\n[A] Added treated wood window.\n[M] Climbing/descending mod ladders is faster when looking up or down and not sneaking.\n[M] Panzer glass material definition changed.\n[M] Explicitly preventing spawning in and on \"non-full\" blocks of the mod.",
"1.0.2-b2": "[A] Added rebar concrete tile stairs.\n[A] Added treated wood window sill.\n[A] Added decomposition recipes for stairs and tiles.\n[M] Changed stair recipe yield quantity from 9 to 6.", "1.0.2-b2": "[A] Added rebar concrete tile stairs.\n[A] Added treated wood window sill.\n[A] Added decomposition recipes for stairs and tiles.\n[M] Changed stair recipe yield quantity from 9 to 6.",
"1.0.2-b1": "[A] Added rebar concrete tile.\n[A] Added panzer glass (explosion-resistant reinforced glass).\n[M] Treated wood crafting table supports shift-click to transfer stacks between player inventory and crafting table storage (thanks majijn for the hint).", "1.0.2-b1": "[A] Added rebar concrete tile.\n[A] Added panzer glass (explosion-resistant reinforced glass).\n[M] Treated wood crafting table supports shift-click to transfer stacks between player inventory and crafting table storage (thanks majijn for the hint).",
"1.0.1": "[R] Release based on v1.0.1-b4 * Treated wood crafting table * Clinker brick wall * Treated wood stool * Inset spot light * Recipe fixes * Logo updated", "1.0.1": "[R] Release based on v1.0.1-b4 * Treated wood crafting table * Clinker brick wall * Treated wood stool * Inset spot light * Recipe fixes * Logo updated",
@ -15,6 +16,7 @@
"1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table." "1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table."
}, },
"1.13.2": { "1.13.2": {
"1.0.2-b2": "[A] Added wall decomposition recipes.\n[A] Added slag brick wall.\n[M] Climbing/descending mod ladders is faster when looking up or down and not sneaking.\n[M] Panzer glass material definition changed.",
"1.0.2-b1": "[A] Added Treated wood crafting table.\n[A] Added decomposition recipes for stairs and tiles.\n[N] Note: All v1.0.2-b1-mc1.12.2 blocks are ported to 1.13.2 (alpha -^ beta version).\n[N] Note: Until IE is out for 1.13.2, the recipes are temporary with vanilla items.", "1.0.2-b1": "[A] Added Treated wood crafting table.\n[A] Added decomposition recipes for stairs and tiles.\n[N] Note: All v1.0.2-b1-mc1.12.2 blocks are ported to 1.13.2 (alpha -^ beta version).\n[N] Note: Until IE is out for 1.13.2, the recipes are temporary with vanilla items.",
"1.0.0-a3": "[A] Added iron inset light.\n[A] Added rebar concrete tile.\n[A] Added rebar concrete tile stairs.\n[A] Added clinker brick wall.\n[A] Added treated wood stool.\n[A] Added treated window sill.", "1.0.0-a3": "[A] Added iron inset light.\n[A] Added rebar concrete tile.\n[A] Added rebar concrete tile stairs.\n[A] Added clinker brick wall.\n[A] Added treated wood stool.\n[A] Added treated window sill.",
"1.0.0-a2": "[A] Added panzer glass.", "1.0.0-a2": "[A] Added panzer glass.",
@ -22,8 +24,8 @@
}, },
"promos": { "promos": {
"1.12.2-recommended": "1.0.1", "1.12.2-recommended": "1.0.1",
"1.12.2-latest": "1.0.2-b2", "1.12.2-latest": "1.0.2-b3",
"1.13.2-recommended": "", "1.13.2-recommended": "",
"1.13.2-latest": "1.0.2-b1" "1.13.2-latest": "1.0.2-b2"
} }
} }

View file

@ -23,7 +23,9 @@ no tile entities or user interactions are used. Current feature set:
- Rebar (steel) reinforced concrete: Expensive but creeper-proof. Crafted 3x3 from - Rebar (steel) reinforced concrete: Expensive but creeper-proof. Crafted 3x3 from
four concrete blocks and five steel rods. Texture design oriented at the IE concrete, four concrete blocks and five steel rods. Texture design oriented at the IE concrete,
slightly darker, eight (position dependent) random texture variations with rust slightly darker, eight (position dependent) random texture variations with rust
traces. Also creaftable in form of *stairs* and *walls*. traces. Also creaftable in form of *stairs* and *walls*. Like the IE contrete tiles,
you can craft rebar concrete tiles with corresponding stairs. Reverse recipes
available for all blocks crafted from rebar concrete.
- Concrete wall: Solid concrete wall (not the vanilla wall design), crafted 3x3 - Concrete wall: Solid concrete wall (not the vanilla wall design), crafted 3x3
from six IE concrete blocks (normal wall recipe). from six IE concrete blocks (normal wall recipe).
@ -33,13 +35,13 @@ no tile entities or user interactions are used. Current feature set:
wall look more "alive". Crafted 3x3 with a brick block in the centre and any wall look more "alive". Crafted 3x3 with a brick block in the centre and any
combination of bricks and nether bricks around (actually, anything where the combination of bricks and nether bricks around (actually, anything where the
ore dictionary says it's a "brick ingot"). Higher explosion resistance than the ore dictionary says it's a "brick ingot"). Higher explosion resistance than the
vanilla brick wall. Also available as stairs and wall, crafted as usual. There vanilla bricks. Also available as stairs and wall, crafted as usual. There
is a reverse recipe to get three clinker brick blocks back from four stairs. is a reverse recipe to get three clinker brick blocks back from stairs or walls.
- *Slag bricks*: Gray-brownish brick, also eight texture variations. Crafted 3x3 - *Slag bricks*: Gray-brownish brick, also eight texture variations. Crafted 3x3
from slag in the centre and any kind of bricks ("brick ingot") around. Has a higher from slag in the centre and any kind of bricks ("brick ingot") around. Has a higher
explosion resistance than the vanilla brick wall. Also available as stairs, also explosion resistance than bricks. Also available as stairs and wall, also with
with reverse recipe. reverse recipes.
- *Treated wood crafting table*: 3x3 crafting table with IE style GUI and a model - *Treated wood crafting table*: 3x3 crafting table with IE style GUI and a model
fitting better in the engineer's workshop. Keeps its inventory, has eight additional fitting better in the engineer's workshop. Keeps its inventory, has eight additional
@ -47,13 +49,15 @@ no tile entities or user interactions are used. Current feature set:
treated wood planks and one vanilla crafting table. treated wood planks and one vanilla crafting table.
- *Treated wood ladder*: Crafted 3x3 with the known ladder pattern, items are - *Treated wood ladder*: Crafted 3x3 with the known ladder pattern, items are
treated wood sticks. treated wood sticks. Climbing is faster if looking up/down and not sneaking.
- *Metal rung ladder*: Industrial wall-fixed ladder with horizontal bent rods. - *Metal rung ladder*: Industrial wall-fixed ladder with horizontal bent rods.
Crafted 3x3 with five iron or steel rods in a "U" pattern. Crafted 3x3 with five iron or steel rods in a "U" pattern. Climbing is faster
if looking up/down and not sneaking.
- *Staggered metal steps*: Industrial wall-fixed sparse ladder with steps in a - *Staggered metal steps*: Industrial wall-fixed sparse ladder with steps in a
zip pattern. Crafted 3x3 with six iron or steel rods in a zip pattern. zip pattern. Crafted 3x3 with six iron or steel rods in a zip pattern. Climbing
is faster when looking up/down and not sneaking.
- *Treated wood table*: Four leg table made out of treated wood. Crafted 3x3 - *Treated wood table*: Four leg table made out of treated wood. Crafted 3x3
with three treated wood slabs and four treated wood poles. Guess the pattern. with three treated wood slabs and four treated wood poles. Guess the pattern.