v1.0.2-mc1.12.2 release merge.

This commit is contained in:
stfwi 2019-03-22 15:12:49 +01:00
commit 4b217f1626
81 changed files with 1117 additions and 143 deletions

1
.gitignore vendored
View file

@ -30,3 +30,4 @@ src/main/resources/assets/minecraft
.gimp
*.xcf
desktop.ini
/*.txt

1
1.12/.gitignore vendored
View file

@ -30,3 +30,4 @@ src/main/resources/assets/minecraft
.gimp
*.xcf
desktop.ini
/*.txt

View file

@ -67,7 +67,8 @@ install: $(MOD_JAR) |
@rm -f "$(SERVER_INSTALL_DIR)/mods/${MOD_JAR_PREFIX}"*.jar
@[ -d "$(SERVER_INSTALL_DIR)/mods" ] && cp -f "$(MOD_JAR)" "$(SERVER_INSTALL_DIR)/mods/"
start-server: install
start-server:
-@make -s install
@echo "[1.12] Starting local dedicated server ..."
@cd "$(SERVER_INSTALL_DIR)" && java -jar forge-1.12.2-14.23.5.2768-universal.jar nogui

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.1
version_engineersdecor=1.0.2
#
# jar signing data loaded from signing.properties in the project root.
#

View file

@ -1,6 +1,10 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": {
"1.0.2": "[R] Release based on v1.0.2-b3 * Fixes: Spawning. * Crafting table: Shift-click. * Ladders: Faster climbing/descending. * Concrete: Rebar tiles, tile stairs. * Treated wood: window, windowsill. * Slag brick: wall. * Panzer glass: added. * Recipes: Adaptions, added decompositions.",
"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",
"1.0.1-b4": "[M] Crafting table keeps inventory and has eight storage slots.\n[M] Adapted inset light strength and harvest tool.\n[M] Crafting table recipe adapted.",
"1.0.1-b3": "[A] Added inset light (glowstone-metal, light level like torch, can be used as floor/ceiling/wall light).\n[M] Crafting table model updated (issue #7, thanks majijn).\n[M] Logo image updated.",
@ -13,7 +17,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."
},
"promos": {
"1.12.2-recommended": "1.0.1",
"1.12.2-latest": "1.0.1"
"1.12.2-recommended": "1.0.2",
"1.12.2-latest": "1.0.2"
}
}

View file

@ -10,6 +10,38 @@ Mod sources for Minecraft version 1.12.2.
----
## Revision history
-------------------------------------------------------------------
- v1.0.2 [R] Release based on v1.0.2-b3
* Fixes: Spawning.
* Crafting table: Shift-click.
* Ladders: Faster climbing/descending.
* Concrete: Rebar tiles, tile stairs.
* Treated wood: window, windowsill.
* Slag brick: wall.
* Panzer glass: added.
* Recipes: Adaptions, added decompositions.
-------------------------------------------------------------------
- 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.
[M] Changed stair recipe yield quantity from 9 to 6.
- v1.0.2-b1 [A] Added rebar concrete tile.
[A] Added panzer glass (explosion-resistant reinforced glass).
[M] Treated wood crafting table supports shift-click to transfer
stacks between player inventory and crafting table storage
(thanks majijn for the hint).
-------------------------------------------------------------------
- v1.0.1 [R] Release based on v1.0.1-b4
* Treated wood crafting table

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

@ -41,13 +41,15 @@ public class BlockDecor extends Block
// The config combines some aspects of blocks, allowing to define different behaviour at construction time, without excessive polymorphy.
// It's an old school flag set as it is used internally only and shall not have as littlt impact on performance as possible.
public final long config;
public static final long CFG_DEFAULT = 0x0000000000000000L; // no special config
public static final long CFG_CUTOUT = 0x0000000000000001L; // cutout rendering
public static final long CFG_HORIZIONTAL = 0x0000000000000002L; // horizontal block, affects bounding box calculation at construction time
public static final long CFG_HORIZIONTAL_PLACEMENT = 0x0000000000000004L; // placed in the horizontzal direction the player is looking when placing.
public static final long CFG_OPPOSITE_PLACEMENT = 0x0000000000000008L; // placed placed in the opposite direction of the face the player clicked.
public static final long CFG_LIGHT_VALUE_MASK = 0x00000000000000f0L; // fixed value for getLightValue()
public static final long CFG_LIGHT_VALUE_SHIFT = 4L;
public static final long CFG_DEFAULT = 0x0000000000000000L; // no special config
public static final long CFG_CUTOUT = 0x0000000000000001L; // cutout rendering
public static final long CFG_HORIZIONTAL = 0x0000000000000002L; // horizontal block, affects bounding box calculation at construction time and placement
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;
public BlockDecor(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
{
@ -77,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")
@ -87,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)
@ -164,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

@ -158,10 +158,6 @@ public class BlockDecorCraftingTable extends BlockDecorDirected
renderHoveredToolTip(mouseX, mouseY);
}
@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
{}
@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{
@ -251,19 +247,18 @@ public class BlockDecorCraftingTable extends BlockDecorDirected
@Override
public ItemStack transferStackInSlot(EntityPlayer playerIn, int index)
{
ItemStack stack = ItemStack.EMPTY;
Slot slot = this.inventorySlots.get(index);
if((slot == null) || (!slot.getHasStack())) return stack;
if((slot == null) || (!slot.getHasStack())) return ItemStack.EMPTY;
ItemStack slotstack = slot.getStack();
stack = slotstack.copy();
ItemStack stack = slotstack.copy();
if(index == 0) {
slotstack.getItem().onCreated(slotstack, this.world, playerIn);
if(!this.mergeItemStack(slotstack, 10, 46, true)) return ItemStack.EMPTY;
slot.onSlotChange(slotstack, stack);
} else if (index >= 10 && (index < 37)) {
if(!this.mergeItemStack(slotstack, 37, 46, false)) return ItemStack.EMPTY;
} else if((index >= 37) && (index < 46)) {
if(!this.mergeItemStack(slotstack, 10, 37, false)) return ItemStack.EMPTY;
} else if(index >= 10 && (index < 46)) {
if(!this.mergeItemStack(slotstack, 46, 54, false)) return ItemStack.EMPTY;
} else if((index >= 46) && (index < 54)) {
if(!this.mergeItemStack(slotstack, 10, 46, false)) return ItemStack.EMPTY;
} else if(!this.mergeItemStack(slotstack, 10, 46, false)) {
return ItemStack.EMPTY;
}
@ -374,18 +369,6 @@ public class BlockDecorCraftingTable extends BlockDecorDirected
public NBTTagCompound writeToNBT(NBTTagCompound compound)
{ super.writeToNBT(compound); writenbt(compound); return compound; }
//@Override
//public NBTTagCompound getUpdateTag()
//{ return writeToNBT(new NBTTagCompound()); }
//@Override
//public SPacketUpdateTileEntity getUpdatePacket()
//{ return new SPacketUpdateTileEntity(getPos(), 0x1, getUpdateTag()); }
//
//@Override
//public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
//{ readFromNBT(pkt.getNbtCompound()); super.onDataPacket(net, pkt); }
// IWorldNamable ---------------------------------------------------------------------------
@Override

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)); }
@ -105,16 +101,31 @@ public class BlockDecorDirected extends BlockDecor
public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
{ return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING))); }
@Override
@SuppressWarnings("deprecation")
public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side)
{
if(!super.canPlaceBlockOnSide(world, pos, side)) return false;
return !(((config & (CFG_HORIZIONTAL|CFG_LOOK_PLACEMENT))==(CFG_HORIZIONTAL)) && ((side==EnumFacing.UP)||(side==EnumFacing.DOWN)));
}
@Override
@SuppressWarnings("deprecation")
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
{
if((config & CFG_HORIZIONTAL_PLACEMENT)!=0) {
// placement in direction the player is facing
return getDefaultState().withProperty(FACING, placer.getHorizontalFacing());
if((config & (CFG_HORIZIONTAL|CFG_LOOK_PLACEMENT)) == (CFG_HORIZIONTAL|CFG_LOOK_PLACEMENT)) {
// horizontal placement in direction the player is looking
facing = placer.getHorizontalFacing();
} else if((config & (CFG_HORIZIONTAL|CFG_LOOK_PLACEMENT)) == (CFG_HORIZIONTAL)) {
// horizontal placement on a face
facing = ((facing==EnumFacing.UP)||(facing==EnumFacing.DOWN)) ? (EnumFacing.NORTH) : facing;
} else if((config & CFG_LOOK_PLACEMENT)!=0) {
// placement in direction the player is looking, with up and down
facing = EnumFacing.getDirectionFromEntityLiving(pos, placer);
} else {
// default: placement on the face the player clicking
return getDefaultState().withProperty(FACING, ((config & CFG_OPPOSITE_PLACEMENT)==0) ? facing : facing.getOpposite());
}
if((config & CFG_OPPOSITE_PLACEMENT)!=0) facing = facing.getOpposite();
return getDefaultState().withProperty(FACING, facing);
}
}

View file

@ -0,0 +1,88 @@
/*
* @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.BlockFaceShape;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.world.IBlockAccess;
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;
public class BlockDecorGlassBlock extends BlockDecor
{
public BlockDecorGlassBlock(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
{
super(registryName, config, material, hardness, resistance, sound);
setLightOpacity(0);
}
@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getRenderLayer()
{ return BlockRenderLayer.TRANSLUCENT; }
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("deprecation")
public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
{
final IBlockState neighbourState = world.getBlockState(pos.offset(side));
return ((neighbourState==null) || (!(neighbourState.getBlock() instanceof BlockDecorGlassBlock)));
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("deprecation")
public float getAmbientOcclusionLightValue(IBlockState state)
{ return 1.0F; }
@Override
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)
{ return BlockFaceShape.SOLID; }
@Override
@SuppressWarnings("deprecation")
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
{ return FULL_BLOCK_AABB; }
@Override
@Nullable
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
{ return FULL_BLOCK_AABB; }
@Override
@SuppressWarnings("deprecation")
public boolean isFullCube(IBlockState state)
{ return false; }
@Override
@SuppressWarnings("deprecation")
public boolean isNormalCube(IBlockState state)
{ 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

@ -16,7 +16,6 @@ import net.minecraft.block.SoundType;
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;
@ -38,45 +37,49 @@ public class ModBlocks
{
public static final BlockDecorFull CLINKER_BRICK_BLOCK = new BlockDecorFull("clinker_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE);
public static final BlockDecorStairs CLINKER_BRICK_STAIRS = new BlockDecorStairs("clinker_brick_stairs", CLINKER_BRICK_BLOCK.getDefaultState());
public static final BlockDecorWall CLINKER_BRICK_WALL = new BlockDecorWall("clinker_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 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 BlockDecorWall SLAG_BRICK_WALL = new BlockDecorWall("slag_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE);
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 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 BlockDecorWall REBAR_CONCRETE_WALL = new BlockDecorWall("rebar_concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 2000f, SoundType.STONE);
public static final BlockDecorFull REBAR_CONCRETE_TILE = new BlockDecorFull("rebar_concrete_tile", 0, Material.ROCK, 8f, 2000f, SoundType.STONE);
public static final BlockDecorStairs REBAR_CONCRETE_TILE_STAIRS = new BlockDecorStairs("rebar_concrete_tile_stairs", REBAR_CONCRETE_TILE.getDefaultState());
public static final BlockDecorWall CONCRETE_WALL = new BlockDecorWall("concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE);
public static final BlockDecorLadder METAL_RUNG_LADDER = new BlockDecorLadder("metal_rung_ladder", 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 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 BlockDecorWall REBAR_CONCRETE_WALL = new BlockDecorWall("rebar_concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 2000f, SoundType.STONE);
public static final BlockDecorWall CONCRETE_WALL = new BlockDecorWall("concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE);
public static final BlockDecorWall CLINKER_BRICK_WALL = new BlockDecorWall("clinker_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE);
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",
BlockDecor.CFG_CUTOUT,
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT,
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
ModAuxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16)
);
public static final BlockDecor TREATED_WOOD_TABLE = new BlockDecor(
"treated_wood_table",
BlockDecor.CFG_CUTOUT,
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_PLACEMENT|BlockDecor.CFG_HORIZIONTAL,
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
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,
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
ModAuxiliaries.getPixeledAABB(0.0,0,0, 16,15.9,16)
);
@ -88,31 +91,49 @@ public class ModBlocks
ModAuxiliaries.getPixeledAABB(5.2,5.2,15.7, 10.8,10.8,16.0)
);
public static final BlockDecorDirected TREATED_WOOD_WINDOWSILL = new BlockDecorDirected(
"treated_wood_windowsill",
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_FACING_PLACEMENT,
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
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());
private static final Block modBlocks[] = {
SLAG_BRICK_BLOCK,
TREATED_WOOD_CRAFTING_TABLE,
CLINKER_BRICK_BLOCK,
METAL_RUNG_LADDER,
METAL_RUNG_STEPS,
TREATED_WOOD_LADDER,
CLINKER_BRICK_STAIRS,
CLINKER_BRICK_WALL,
SLAG_BRICK_BLOCK,
SLAG_BRICK_STAIRS,
TREATED_WOOD_POLE,
TREATED_WOOD_TABLE,
SLAG_BRICK_WALL,
REBAR_CONCRETE_BLOCK,
REBAR_CONCRETE_STAIRS,
REBAR_CONCRETE_WALL,
CLINKER_BRICK_WALL,
REBAR_CONCRETE_TILE,
REBAR_CONCRETE_TILE_STAIRS,
CONCRETE_WALL,
PANZERGLASS_BLOCK,
METAL_RUNG_LADDER,
METAL_RUNG_STEPS,
TREATED_WOOD_LADDER,
TREATED_WOOD_POLE,
TREATED_WOOD_TABLE,
TREATED_WOOD_STOOL,
TREATED_WOOD_CRAFTING_TABLE,
TREATED_WOOD_WINDOW,
TREATED_WOOD_WINDOWSILL,
INSET_LIGHT_IRON,
};
private static final Block ieDependentBlocks[] = {
CONCRETE_WALL
};
private static final Block devBlocks[] = {
IRON_SHEET_ROOF, // model looks not good enough yet
};
@ -129,10 +150,7 @@ public class ModBlocks
// Config based registry selection
ArrayList<Block> allBlocks = new ArrayList<>();
Collections.addAll(allBlocks, modBlocks);
if(Loader.isModLoaded("immersiveengineering")) {
ModEngineersDecor.logger.info("Immersive Engineering installed, registering dependent blocks...");
Collections.addAll(allBlocks, ieDependentBlocks);
}
//if(Loader.isModLoaded("immersiveengineering")){}
if(ModConfig.zmisc.with_experimental) Collections.addAll(allBlocks, devBlocks);
for(Block e:allBlocks) registeredBlocks.add(e);
for(Block e:registeredBlocks) event.getRegistry().register(e);

View file

@ -0,0 +1,19 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:glass/panzerglass_block_model",
"textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture0" }
},
"variants": {
"normal": [
{ "textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture0" } },
{ "textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture1" } },
{ "textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture2" } },
{ "textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture3" } }
],
"inventory": {
"model": "engineersdecor:glass/panzerglass_block_model",
"textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture_inventory" }
}
}
}

View file

@ -0,0 +1,20 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:decor_full_block_model",
"textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0" }
},
"variants": {
"normal": [
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture1" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture2" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture3" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture4" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture5" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture6" } },
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture7" } }
],
"inventory": [{}]
}
}

View file

@ -0,0 +1,56 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:stairs/decor_straight_stairs_model",
"textures": {
"particle": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0",
"bottom": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0",
"top": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0",
"side": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0"
}
},
"variants": {
"normal": [{}],
"inventory": [{}],
"facing=east,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model" },
"facing=west,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
"facing=west,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
"facing=north,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
"facing=west,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
"facing=north,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true }
}
}

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

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

View file

@ -18,25 +18,26 @@ tile.engineersdecor.slag_brick_block.name=Slag brick
tile.engineersdecor.slag_brick_block.help=§6A gray-brown brick block with position dependent texture variations.
tile.engineersdecor.rebar_concrete.name=Rebar concrete
tile.engineersdecor.rebar_concrete.help=§6Steel reinforced concrete block.§r Expensive but Creeper-proof like obsidian.
tile.engineersdecor.panzerglass_block.name=Panzer glass
tile.engineersdecor.panzerglass_block.help=§6Reinforced glass block.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible, multi texture for seemless look.
tile.engineersdecor.rebar_concrete_tile.name=Rebar concrete tile
tile.engineersdecor.rebar_concrete_tile.help=§6Steel reinforced concrete tile.§r Expensive but Creeper-proof like obsidian.
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.rebar_concrete_wall.name=Rebar concrete wall
tile.engineersdecor.rebar_concrete_wall.help=§6Steel reinforced concrete wall.§r Expensive but Creeper-proof like obsidian.
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.
#-----------------------------------------------------------------------------------------------------------
# Ladder blocks
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.
#-----------------------------------------------------------------------------------------------------------
# Stairs and roofs
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.
@ -44,31 +45,31 @@ tile.engineersdecor.slag_brick_stairs.name=Clinker brick stairs
tile.engineersdecor.slag_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block.
tile.engineersdecor.rebar_concrete_stairs.name=Rebar concrete stairs
tile.engineersdecor.rebar_concrete_stairs.help=§6Steel reinforced concrete stairs.§r Expensive but Creeper-proof like obsidian.
tile.engineersdecor.iron_sheet_roof.name=Iron sheet metal roof
tile.engineersdecor.iron_sheet_roof.help=§6Well, it's a roof.
#-----------------------------------------------------------------------------------------------------------
# Poles and supports
tile.engineersdecor.rebar_concrete_tile_stairs.name=Rebar concrete tile stairs
tile.engineersdecor.rebar_concrete_tile_stairs.help=§6Steel reinforced concrete tile stairs.§r Expensive but Creeper-proof like obsidian.
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.treated_wood_pole.name=Straight treated wood pole
tile.engineersdecor.treated_wood_pole.help=§6Straight pole fragment with the diameter of a wire relay.§r\n\
Can be useful as alternative to the wire posts if special special lengths are needed, \
or as support for structures.
#-----------------------------------------------------------------------------------------------------------
# Furniture
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.treated_wood_table.name=Treated wood table
tile.engineersdecor.treated_wood_table.help=§6Robust four-legged wood table.§r Indoor and outdoor use.
tile.engineersdecor.treated_wood_stool.name=Treated wood stool
tile.engineersdecor.treated_wood_stool.help=§6Robust wood stool.§r 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.
tile.engineersdecor.treated_wood_crafting_table.help=§6Robust and weather-proof. Eight storage slots. Keeps inventory.
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.
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.iron_sheet_roof.name=Iron sheet metal roof
tile.engineersdecor.iron_sheet_roof.help=§6Well, it's a roof.
#-----------------------------------------------------------------------------------------------------------
# EOF
#-----------------------------------------------------------------------------------------------------------

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

@ -0,0 +1,78 @@
{
"parent": "block/cube",
"textures": {
"o": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
"particle": "engineersdecor:blocks/iestyle/treated_wood_rough_texture"
},
"elements": [
{
"from": [2, 11.75, 14.375],
"to": [3, 15.75, 15.375],
"rotation": {"angle": -45, "axis": "x", "origin": [2.5, 13, 14.125]},
"faces": {
"north": {"uv": [6, 3, 7, 7], "texture": "#o"},
"east": {"uv": [1.375, 3, 2.375, 7], "texture": "#o"},
"south": {"uv": [9, 3, 10, 7], "texture": "#o"},
"west": {"uv": [13.625, 3, 14.625, 7], "texture": "#o"}
}
},
{
"from": [13, 11.75, 14.375],
"to": [14, 15.75, 15.375],
"rotation": {"angle": -45, "axis": "x", "origin": [13.5, 13, 14.125]},
"faces": {
"north": {"uv": [4, 3, 5, 7], "texture": "#o"},
"east": {"uv": [1.375, 3, 2.375, 7], "texture": "#o"},
"south": {"uv": [11, 3, 12, 7], "texture": "#o"},
"west": {"uv": [13.625, 3, 14.625, 7], "texture": "#o"}
}
},
{
"from": [0.5, 15, 10.5],
"to": [15.5, 16, 16],
"faces": {
"north": {"uv": [0.5, 0, 15.5, 1], "texture": "#o"},
"east": {"uv": [0, 0, 5.5, 1], "texture": "#o"},
"south": {"uv": [0.5, 0, 15.5, 1], "texture": "#o"},
"west": {"uv": [10.5, 0, 16, 1], "texture": "#o"},
"up": {"uv": [0.5, 10.5, 15.5, 16], "texture": "#o"},
"down": {"uv": [0.5, 0, 15.5, 5.5], "texture": "#o"}
}
},
{
"from": [1.875, 12, 15],
"to": [3.125, 15, 16],
"faces": {
"north": {"uv": [14, 1, 15, 4], "texture": "#o"},
"east": {"uv": [0, 1, 1, 4], "texture": "#o"},
"south": {"uv": [1, 1, 2, 4], "texture": "#o"},
"west": {"uv": [15, 1, 16, 4], "texture": "#o"},
"down": {"uv": [1, 0, 2, 1], "texture": "#o"}
}
},
{
"from": [12.875, 12, 15],
"to": [14.125, 15, 16],
"faces": {
"north": {"uv": [2, 1, 3, 4], "texture": "#o"},
"east": {"uv": [0, 1, 1, 4], "texture": "#o"},
"south": {"uv": [13, 1, 14, 4], "texture": "#o"},
"west": {"uv": [15, 1, 16, 4], "texture": "#o"},
"down": {"uv": [13, 0, 14, 1], "texture": "#o"}
}
}
],
"display": {
"ground": {
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.9, 0.9, 0.9],
"translation": [ 3, -8, -3]
},
"fixed": {
"scale": [0.5, 0.5, 0.5]
}
}
}

View file

@ -0,0 +1 @@
{ "parent": "block/cube_all", "textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture0" } }

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

@ -184,7 +184,20 @@
},
"name": "paneGlass"
},
{
"ingredient": {
"type": "forge:ore_dict",
"ore": "blockGlass"
},
"name": "blockGlass"
},
{
"ingredient": {
"item": "minecraft:diamond",
"data": 0
},
"name": "itemDiamond"
},
{
"ingredient": {
"item": "minecraft:crafting_table",
@ -192,7 +205,6 @@
},
"name": "itemCraftingTable"
},
{
"ingredient": [
{

View file

@ -19,6 +19,6 @@
},
"result": {
"item": "engineersdecor:clinker_brick_stairs",
"count": 9
"count": 6
}
}

View file

@ -18,6 +18,6 @@
},
"result": {
"item": "engineersdecor:clinker_brick_block",
"count": 3
"count": 4
}
}

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,33 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:panzerglass_block",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SGS",
"GDG",
"SGS"
],
"key": {
"G": {
"item": "#blockGlass",
"data": 0
},
"S": {
"item": "#stickSteel",
"data": 0
},
"D": {
"item": "#itemDiamond",
"data": 0
}
},
"result": {
"item": "engineersdecor:panzerglass_block",
"count": 8
}
}

View file

@ -19,6 +19,6 @@
},
"result": {
"item": "engineersdecor:rebar_concrete_stairs",
"count": 9
"count": 6
}
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,24 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_tile_stairs"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"C ",
"CC ",
"CCC"
],
"key": {
"C": {
"item": "engineersdecor:rebar_concrete_tile",
"data": 0
}
},
"result": {
"item": "engineersdecor:rebar_concrete_tile_stairs",
"count": 6
}
}

View file

@ -0,0 +1,23 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_tile"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": {
"item": "engineersdecor:rebar_concrete_tile_stairs",
"data": 0
}
},
"result": {
"item": "engineersdecor:rebar_concrete_tile",
"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

@ -19,6 +19,6 @@
},
"result": {
"item": "engineersdecor:slag_brick_stairs",
"count": 9
"count": 6
}
}

View file

@ -0,0 +1,23 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_block"
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": {
"item": "engineersdecor:slag_brick_stairs",
"data": 0
}
},
"result": {
"item": "engineersdecor:slag_brick_block",
"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
}
}

View file

@ -0,0 +1,29 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:treated_wood_windowsill",
"required": ["immersiveengineering:material"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"WWW",
"S S",
" "
],
"key": {
"W": {
"item": "#slabTreatedWood",
"data": 0
},
"S": {
"item": "#stickTreatedWood",
"data": 0
}
},
"result": {
"item": "engineersdecor:treated_wood_windowsill",
"count": 2
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 521 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

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(/[^\w\.-]/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(/[^\w\.-]/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.");
@ -305,7 +305,7 @@ tasks["update-json"] = function() {
// Condense log entries sepatated with newlines to one line for each version
for(var i=readme.length-1; i>0; --i) {
var line = readme[i].replace(/^\s+/,"");
if(line.search(/^-/) < 0) {
if(line.search(/^[-~]/) < 0) {
readme[i-1] += "\n" + line;
readme[i] = "";
}
@ -317,6 +317,7 @@ tasks["update-json"] = function() {
var line = readme[i].replace(/^[\sv-]+/g,"").trim();
var ver = line.substr(0, line.search(" ")).trim().toLowerCase();
var txt = line.substr(line.search(" ")).trim();
if(ver.search("~")===0) continue;
if(history[ver] !== undefined) throw new Error("Double definition of version '" + ver + "' in the readme revision history.");
history[ver] = txt;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 KiB

After

Width:  |  Height:  |  Size: 307 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 284 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View file

@ -1,6 +1,10 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": {
"1.0.2": "[R] Release based on v1.0.2-b3 * Fixes: Spawning. * Crafting table: Shift-click. * Ladders: Faster climbing/descending. * Concrete: Rebar tiles, tile stairs. * Treated wood: window, windowsill. * Slag brick: wall. * Panzer glass: added. * Recipes: Adaptions, added decompositions.",
"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",
"1.0.1-b4": "[M] Crafting table keeps inventory and has eight storage slots.\n[M] Adapted inset light strength and harvest tool.\n[M] Crafting table recipe adapted.",
"1.0.1-b3": "[A] Added inset light (glowstone-metal, light level like torch, can be used as floor/ceiling/wall light).\n[M] Crafting table model updated (issue #7, thanks majijn).\n[M] Logo image updated.",
@ -13,12 +17,16 @@
"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.",
"1.0.0-a1": "[A] Initial port to 1.13.2 with Forge beta."
},
"promos": {
"1.12.2-recommended": "1.0.1",
"1.12.2-latest": "1.0.1",
"1.12.2-recommended": "1.0.2",
"1.12.2-latest": "1.0.2",
"1.13.2-recommended": "",
"1.13.2-latest": "1.0.0-a1"
"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.
@ -66,6 +70,10 @@ no tile entities or user interactions are used. Current feature set:
Can be used e.g. for structural support or wire relay post, where the height
of the IE wire posts does not match.
- *Panzer glass*: Reinforced, dark gray tinted glass block. Explosion-proof.
Faint structural lines are visible, multiple texture variations for seemless
look. Crafted 3x3 with four metal rods, four glass blocks, and one diamond.
More to come slowly but steadily.
----

View file

@ -48,16 +48,17 @@ tasks["sync-main-repository"] = function() {
sys.shell("rm -rf documentation meta");
sys.shell("rm -f .gitignore credits.md license Makefile readme.md tasks.js");
cd_main("1.12"); sys.shell("rm -rf meta src gradle");
cd_main("1.13"); sys.shell("rm -rf meta src gradle");
//cd_main("1.13"); sys.shell("rm -rf meta src gradle");
cd_dev();
sys.shell("cp -f .gitignore credits.md license Makefile readme.md tasks.js \"" + main_repo_local + "/\"")
sys.shell("cp -r documentation meta \"" + main_repo_local + "/\"")
cd_dev("1.12");
sys.shell("cp -f build.gradle gradle.properties gradlew gradlew.bat Makefile readme.md tasks.js signing.* \"" + main_repo_local + "/1.12/\"")
sys.shell("cp -f .gitignore build.gradle gradle.properties gradlew gradlew.bat Makefile readme.md tasks.js signing.* \"" + main_repo_local + "/1.12/\"")
sys.shell("cp -r src gradle meta \"" + main_repo_local + "/1.12/\"")
cd_dev("1.13");
sys.shell("cp -f build.gradle gradle.properties gradlew gradlew.bat Makefile readme.md tasks.js signing.* \"" + main_repo_local + "/1.13/\"")
sys.shell("cp -r src gradle meta \"" + main_repo_local + "/1.13/\"")
//@todo uncomment after alpha code cleanup.
//cd_dev("1.13");
//sys.shell("cp -f .gitignore build.gradle gradle.properties gradlew gradlew.bat Makefile readme.md tasks.js signing.* \"" + main_repo_local + "/1.13/\"")
//sys.shell("cp -r src gradle meta \"" + main_repo_local + "/1.13/\"")
cd_main();
print("Main repository changes:");
print(sys.shell("git status -s"))