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
version_minecraft=1.12.2
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.
#

View file

@ -1,6 +1,7 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"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-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",
@ -16,6 +17,6 @@
},
"promos": {
"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
- 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.
[A] Added treated wood window sill.
[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.util.math.BlockPos;
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.NetworkRegistry;
import wile.engineersdecor.blocks.BlockDecorCraftingTable;
import wile.engineersdecor.blocks.BlockDecorLadder;
import wile.engineersdecor.detail.ModConfig;
import wile.engineersdecor.blocks.ModBlocks;
import net.minecraftforge.client.event.ModelRegistryEvent;
@ -63,13 +66,13 @@ public class ModEngineersDecor
public interface IProxy
{
default void preInit(FMLPreInitializationEvent e) {}
default void init(FMLInitializationEvent e) {}
default void postInit(FMLPostInitializationEvent e) {}
default void preInit(final FMLPreInitializationEvent e) {}
default void init(final FMLInitializationEvent e) {}
default void postInit(final FMLPostInitializationEvent e) {}
}
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event)
public void preInit(final FMLPreInitializationEvent event)
{
logger = event.getModLog();
logger.info(MODNAME + ": Version " + MODMCVERSION + "-" + MODVERSION + ( (MODBUILDID=="@"+"MOD_BUILDID"+"@") ? "" : (" "+MODBUILDID) ) + ".");
@ -79,33 +82,34 @@ public class ModEngineersDecor
logger.info(MODNAME + ": Found valid fingerprint " + MODFINGERPRINT + ".");
}
proxy.preInit(event);
MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());
}
@Mod.EventHandler
public void init(FMLInitializationEvent event)
public void init(final FMLInitializationEvent event)
{
proxy.init(event);
NetworkRegistry.INSTANCE.registerGuiHandler(this, new ModEngineersDecor.GuiHandler());
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event)
public void postInit(final FMLPostInitializationEvent event)
{ ModConfig.onPostInit(event); proxy.postInit(event); }
@Mod.EventBusSubscriber
public static final class RegistrationSubscriptions
{
@SubscribeEvent
public static void registerBlocks(RegistryEvent.Register<Block> event)
public static void registerBlocks(final RegistryEvent.Register<Block> event)
{ ModBlocks.registerBlocks(event); }
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event)
public static void registerItems(final RegistryEvent.Register<Item> event)
{ ModBlocks.registerItemBlocks(event); }
@SideOnly(Side.CLIENT)
@SubscribeEvent
public static void registerModels(ModelRegistryEvent event)
public static void registerModels(final ModelRegistryEvent event)
{ 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_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_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_SHIFT = 8L;
@ -79,7 +79,13 @@ public class BlockDecor extends Block
@Override
@SideOnly(Side.CLIENT)
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
@SuppressWarnings("deprecation")
@ -89,17 +95,21 @@ public class BlockDecor extends Block
@Override
@SuppressWarnings("deprecation")
public boolean isNormalCube(IBlockState state)
{ return ((config & CFG_CUTOUT)==0); }
{ return ((config & (CFG_CUTOUT|CFG_TRANSLUCENT))==0); }
@Override
@SuppressWarnings("deprecation")
public boolean isOpaqueCube(IBlockState state)
{ return ((config & CFG_CUTOUT)==0); }
{ return ((config & (CFG_CUTOUT|CFG_TRANSLUCENT))==0); }
@Override
public boolean canSpawnInBlock()
{ return false; }
@Override
public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
{ return true; }
@Override
@SuppressWarnings("deprecation")
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)
{ 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.util.Mirror;
import net.minecraft.util.Rotation;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.AxisAlignedBB;
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.Nullable;
import java.util.ArrayList;
@ -65,6 +62,10 @@ public class BlockDecorDirected extends BlockDecor
public boolean isNormalCube(IBlockState state)
{ return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override
@SuppressWarnings("deprecation")
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)
{ return getBoundingBox(state, world, pos); }
@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getRenderLayer()
{ return BlockRenderLayer.CUTOUT; }
@Override
public IBlockState getStateFromMeta(int meta)
{ 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)
{ return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override
@SuppressWarnings("deprecation")
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
@ -74,11 +78,11 @@ public class BlockDecorGlassBlock extends BlockDecor
@Override
@SuppressWarnings("deprecation")
public boolean isFullCube(IBlockState state)
{ return true; }
{ return false; }
@Override
@SuppressWarnings("deprecation")
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.material.EnumPushReaction;
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.util.math.MathHelper;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import wile.engineersdecor.ModEngineersDecor;
@ -77,6 +80,10 @@ public class BlockDecorLadder extends BlockLadder
public boolean canSpawnInBlock()
{ return false; }
@Override
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{ return false; }
@Override
@SuppressWarnings("deprecation")
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);
}
// 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);
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)
{ 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)
{
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 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 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 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(
"treated_wood_pole",
@ -68,6 +69,7 @@ public class ModBlocks
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
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|BlockDecor.CFG_LOOK_PLACEMENT,
@ -96,6 +98,13 @@ public class ModBlocks
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 BlockDecorStairs IRON_SHEET_ROOF = new BlockDecorStairs("iron_sheet_roof", IRON_SHEET_ROOF_FULLBLOCK.getDefaultState());
@ -106,6 +115,7 @@ public class ModBlocks
CLINKER_BRICK_WALL,
SLAG_BRICK_BLOCK,
SLAG_BRICK_STAIRS,
SLAG_BRICK_WALL,
REBAR_CONCRETE_BLOCK,
REBAR_CONCRETE_STAIRS,
REBAR_CONCRETE_WALL,
@ -119,6 +129,7 @@ public class ModBlocks
TREATED_WOOD_POLE,
TREATED_WOOD_TABLE,
TREATED_WOOD_STOOL,
TREATED_WOOD_WINDOW,
TREATED_WOOD_WINDOWSILL,
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.clinker_brick_wall.name=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.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.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.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.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\
Useful to light up places where electrical light installations are problematic.\
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.help=§6Simple window decoration.
#-----------------------------------------------------------------------------------------------------------

View file

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

View file

@ -1,5 +1,4 @@
{
"credit": "I made this with the Blockbench",
"parent": "block/cube",
"textures": {
"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",
"textures": {
"particle": "engineersdecor:blocks/iestyle/steel_texture",

View file

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

View file

@ -1,5 +1,5 @@
{
"credit": "I made this with the Blockbench",
"ambientocclusion": false,
"textures": {
"side": "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": {
"particle": "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",
"textures": {
"side": "engineersdecor:blocks/iestyle/ironsheet_roof",

View file

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

View file

@ -1,5 +1,4 @@
{
"credit": "I made this with the Blockbench",
"parent": "block/block",
"ambientocclusion": false,
"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_branch != "develop") && (git_branch != "master")) {
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.");
} 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.");
}
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/",
"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-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",
@ -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.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.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.",
@ -22,8 +24,8 @@
},
"promos": {
"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-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
four concrete blocks and five steel rods. Texture design oriented at the IE concrete,
slightly darker, eight (position dependent) random texture variations with rust
traces. Also creaftable in form of *stairs* and *walls*.
traces. Also creaftable in form of *stairs* and *walls*. Like the IE contrete tiles,
you can craft rebar concrete tiles with corresponding stairs. Reverse recipes
available for all blocks crafted from rebar concrete.
- Concrete wall: Solid concrete wall (not the vanilla wall design), crafted 3x3
from six IE concrete blocks (normal wall recipe).
@ -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
combination of bricks and nether bricks around (actually, anything where 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
is a reverse recipe to get three clinker brick blocks back from four stairs.
vanilla bricks. Also available as stairs and wall, crafted as usual. There
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
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
with reverse recipe.
explosion resistance than bricks. Also available as stairs and wall, also with
reverse recipes.
- *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
@ -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 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.
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
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
with three treated wood slabs and four treated wood poles. Guess the pattern.