diff --git a/1.12/gradle.properties b/1.12/gradle.properties index ee11ec5..d996b7a 100644 --- a/1.12/gradle.properties +++ b/1.12/gradle.properties @@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx8G version_minecraft=1.12.2 version_forge=14.23.5.2768 version_jei=4.10.0.198 -version_engineersdecor=1.0.9-b1 +version_engineersdecor=1.0.9-b2 diff --git a/1.12/readme.md b/1.12/readme.md index 9272019..3aa7814 100644 --- a/1.12/readme.md +++ b/1.12/readme.md @@ -10,6 +10,12 @@ Mod sources for Minecraft version 1.12.2. ---- ## Version history + ~ v1.0.9-b2 [A] Added slabs for Clinker Brick, Slag Brick, Rebar Concrete, + and Stained Clinker. Texture variations like the base blocks. + Allow fast pick-up (see tooltip help or config). + [F] Fixed lab/electrical furnace initialisation issue (first item + inserted was smelted directly). + - v1.0.9-b1 [U] Lang file ru_ru updated (PR#31, yaroslav4167). [M] Block hardness adaptions (issue #32). diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnace.java b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnace.java index ce61559..7ffe43d 100644 --- a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnace.java +++ b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnace.java @@ -465,6 +465,7 @@ public class BlockDecorFurnace extends BlockDecorDirected private int proc_time_needed_; private int boost_energy_; // small, not saved in nbt. private boolean heater_inserted_ = false; + protected ItemStack current_smelting_input_stack_ = ItemStack.EMPTY; protected NonNullList stacks_; public static void on_config(int speed_percent, int fuel_efficiency_percent, int boost_energy_per_tick) @@ -482,10 +483,11 @@ public class BlockDecorFurnace extends BlockDecorDirected protected void reset() { stacks_ = NonNullList.withSize(NUM_OF_SLOTS, ItemStack.EMPTY); + current_smelting_input_stack_ = ItemStack.EMPTY; proc_time_elapsed_ = 0; proc_time_needed_ = 0; burntime_left_ = 0; - fuel_burntime_ = 0; + fuel_burntime_ = -1; fifo_timer_ = 0; tick_timer_ = 0; } @@ -496,16 +498,17 @@ public class BlockDecorFurnace extends BlockDecorDirected ItemStackHelper.loadAllItems(compound, this.stacks_); while(this.stacks_.size() < NUM_OF_SLOTS) this.stacks_.add(ItemStack.EMPTY); burntime_left_ = compound.getInteger("BurnTime"); - proc_time_elapsed_ = compound.getInteger("CookTime"); - proc_time_needed_ = compound.getInteger("CookTimeTotal"); - fuel_burntime_ = getItemBurnTime(stacks_.get(SMELTING_FUEL_SLOT_NO)); + proc_time_needed_ = MathHelper.clamp(compound.getInteger("CookTimeTotal"), 10, 65535); + proc_time_elapsed_ = MathHelper.clamp(compound.getInteger("CookTime"), 0, proc_time_needed_); + fuel_burntime_ = compound.getInteger("FuelBurnTime"); } protected void writenbt(NBTTagCompound compound) { compound.setInteger("BurnTime", MathHelper.clamp(burntime_left_,0 , MAX_BURNTIME)); compound.setInteger("CookTime", MathHelper.clamp(proc_time_elapsed_, 0, MAX_BURNTIME)); - compound.setInteger("CookTimeTotal", MathHelper.clamp(proc_time_needed_, 0, MAX_BURNTIME)); + compound.setInteger("CookTimeTotal", MathHelper.clamp(proc_time_needed_, 10, MAX_BURNTIME)); + compound.setInteger("FuelBurnTime", MathHelper.clamp(fuel_burntime_, 0, MAX_BURNTIME)); ItemStackHelper.saveAllItems(compound, stacks_); } @@ -688,8 +691,9 @@ public class BlockDecorFurnace extends BlockDecorDirected protected boolean canSmelt() { - if(stacks_.get(SMELTING_INPUT_SLOT_NO).isEmpty()) return false; - final ItemStack recipe_result_items = BRecipes.instance().getSmeltingResult(stacks_.get(SMELTING_INPUT_SLOT_NO)); + final ItemStack in_stack = stacks_.get(SMELTING_INPUT_SLOT_NO); + if(in_stack.isEmpty()) return false; + final ItemStack recipe_result_items = BRecipes.instance().getSmeltingResult(in_stack); if(recipe_result_items.isEmpty()) return false; final ItemStack result_stack = stacks_.get(SMELTING_OUTPUT_SLOT_NO); if(result_stack.isEmpty()) return true; @@ -807,6 +811,7 @@ public class BlockDecorFurnace extends BlockDecorDirected tick_timer_ = TICK_INTERVAL; final boolean was_burning = isBurning(); if(was_burning) burntime_left_ -= TICK_INTERVAL; + if(fuel_burntime_ < 0) fuel_burntime_ = getItemBurnTime(stacks_.get(SMELTING_FUEL_SLOT_NO)); if(burntime_left_ < 0) burntime_left_ = 0; if(world.isRemote) return; boolean dirty = false; @@ -823,9 +828,16 @@ public class BlockDecorFurnace extends BlockDecorDirected || (stacks_.get(AUX_0_SLOT_NO).getItem()==ExtItems.IE_EXTERNAL_HEATER) || (stacks_.get(AUX_1_SLOT_NO).getItem()==ExtItems.IE_EXTERNAL_HEATER); } - ItemStack fuel = stacks_.get(SMELTING_FUEL_SLOT_NO); - if(isBurning() || (!fuel.isEmpty()) && (!(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty())) { - if(!isBurning() && canSmelt()) { + final ItemStack fuel = stacks_.get(SMELTING_FUEL_SLOT_NO); + final ItemStack last_inp_stack = current_smelting_input_stack_; + current_smelting_input_stack_ = stacks_.get(SMELTING_INPUT_SLOT_NO); + if(isBurning() || (!fuel.isEmpty()) && (!current_smelting_input_stack_.isEmpty())) { + if(!current_smelting_input_stack_.isItemEqual(last_inp_stack)) { + proc_time_elapsed_ = 0; + proc_time_needed_ = getCookTime(current_smelting_input_stack_); + } + final boolean can_smelt = canSmelt(); + if(can_smelt && (burntime_left_ <= 0)) { // Refuel burntime_left_ = (int)MathHelper.clamp((proc_fuel_efficiency_ * getItemBurnTime(fuel)), 0, MAX_BURNTIME); fuel_burntime_ = (burntime_left_ * proc_speed_interval_) / VANILLA_FURNACE_SPEED_INTERVAL; if(isBurning()) { @@ -837,17 +849,17 @@ public class BlockDecorFurnace extends BlockDecorDirected } } } - if(isBurning() && canSmelt()) { + if((burntime_left_ > 0) && can_smelt) { // Smelting process proc_time_elapsed_ += TICK_INTERVAL; if(heater_inserted_ && (boost_energy_ >= boost_energy_consumption)) { boost_energy_ = 0; proc_time_elapsed_ += TICK_INTERVAL; } if(proc_time_elapsed_ >= proc_time_needed_) { proc_time_elapsed_ = 0; - proc_time_needed_ = getCookTime(stacks_.get(SMELTING_INPUT_SLOT_NO)); + proc_time_needed_ = getCookTime(current_smelting_input_stack_); smeltItem(); dirty = true; } } else { - proc_time_elapsed_ = 0; + proc_time_elapsed_ = MathHelper.clamp(proc_time_elapsed_-2, 0, proc_time_needed_); } } else if(!isBurning() && (proc_time_elapsed_ > 0)) { proc_time_elapsed_ = MathHelper.clamp(proc_time_elapsed_-2, 0, proc_time_needed_); diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnaceElectrical.java b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnaceElectrical.java index e73ff59..a10f9a3 100644 --- a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnaceElectrical.java +++ b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorFurnaceElectrical.java @@ -682,9 +682,15 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace if(transferItems(FIFO_INPUT_0_SLOT_NO, SMELTING_INPUT_SLOT_NO, 64)) dirty = true; if(transferItems(FIFO_INPUT_1_SLOT_NO, FIFO_INPUT_0_SLOT_NO, 64)) { dirty = true; } else { shift_in = true; } } - if((!(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty()) && (energy_stored_ >= energy_consumption_)) { + final ItemStack last_inp_stack = current_smelting_input_stack_; + current_smelting_input_stack_ = stacks_.get(SMELTING_INPUT_SLOT_NO); + if((!current_smelting_input_stack_.isEmpty()) && (energy_stored_ >= energy_consumption_)) { + if(!current_smelting_input_stack_.isItemEqual(current_smelting_input_stack_)) { + proc_time_elapsed_ = 0; + proc_time_needed_ = getCookTime(current_smelting_input_stack_); + } final boolean can_smelt = canSmelt(); - if((!can_smelt) && (BRecipes.instance().getSmeltingResult(stacks_.get(SMELTING_INPUT_SLOT_NO)).isEmpty())) { + if((!can_smelt) && (BRecipes.instance().getSmeltingResult(current_smelting_input_stack_).isEmpty())) { // bypass if(transferItems(SMELTING_INPUT_SLOT_NO, SMELTING_OUTPUT_SLOT_NO, 1)) dirty = true; } else { @@ -697,7 +703,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace proc_time_elapsed_ += (TICK_INTERVAL * proc_speed_percent_/100); if(proc_time_elapsed_ >= proc_time_needed_) { proc_time_elapsed_ = 0; - proc_time_needed_ = getCookTime(stacks_.get(SMELTING_INPUT_SLOT_NO)); + proc_time_needed_ = getCookTime(current_smelting_input_stack_); smeltItem(); dirty = true; shift_out = true; diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorHalfSlab.java b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorHalfSlab.java index 879012e..0715551 100644 --- a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorHalfSlab.java +++ b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorHalfSlab.java @@ -4,10 +4,13 @@ * @copyright (C) 2019 Stefan Wilhelm * @license MIT (see https://opensource.org/licenses/MIT) * - * Half slab characteristics class. + * Half slab ("slab slices") characteristics class. Actually + * it's now a quater slab, but who cares. */ package wile.engineersdecor.blocks; +import wile.engineersdecor.detail.ModAuxiliaries; +import wile.engineersdecor.detail.ModConfig; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; @@ -26,15 +29,17 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; -import net.minecraft.world.IBlockAccess; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraft.client.util.ITooltipFlag; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import java.util.List; public class BlockDecorHalfSlab extends BlockDecor @@ -61,6 +66,16 @@ public class BlockDecorHalfSlab extends BlockDecor protected boolean is_cube(IBlockState state) { return state.getValue(PARTS) == 0x07; } + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) + { + if(!ModAuxiliaries.Tooltip.addInformation(stack, world, tooltip, flag, true)) return; + if(!ModConfig.optout.without_direct_slab_pickup) { + ModAuxiliaries.Tooltip.addInformation("engineersdecor.tooltip.slabpickup", "engineersdecor.tooltip.slabpickup", tooltip, flag, true); + } + } + @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getRenderLayer() @@ -167,7 +182,7 @@ public class BlockDecorHalfSlab extends BlockDecor @Override public void onBlockClicked(World world, BlockPos pos, EntityPlayer player) { - if(world.isRemote) return; + if((world.isRemote) || (ModConfig.optout.without_direct_slab_pickup)) return; final ItemStack stack = player.getHeldItemMainhand(); if(stack.isEmpty() || (Block.getBlockFromItem(stack.getItem()) != this)) return; if(stack.getCount() >= stack.getMaxStackSize()) return; diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorSlab.java b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorSlab.java new file mode 100644 index 0000000..bcf2ae9 --- /dev/null +++ b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorSlab.java @@ -0,0 +1,201 @@ +/* + * @file BlockDecorSlab.java + * @author Stefan Wilhelm (wile) + * @copyright (C) 2019 Stefan Wilhelm + * @license MIT (see https://opensource.org/licenses/MIT) + * + * Standard half block horizontal slab characteristics class. + */ +package wile.engineersdecor.blocks; + +import wile.engineersdecor.detail.ModAuxiliaries; +import wile.engineersdecor.detail.ModConfig; +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockFaceShape; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.EnumHand; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.IBlockAccess; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + + +public class BlockDecorSlab extends BlockDecor +{ + public static final PropertyInteger PARTS = PropertyInteger.create("parts", 0, 2); + public static final PropertyInteger TEXTURE_VARIANT = PropertyInteger.create("tvariant", 0, 7); + + protected static final AxisAlignedBB AABBs[] = { + new AxisAlignedBB(0, 0./16, 0, 1, 8./16, 1), // bottom slab + new AxisAlignedBB(0, 8./16, 0, 1, 16./16, 1), // top slab + new AxisAlignedBB(0, 0./16, 0, 1, 16./16, 1), // both slabs + new AxisAlignedBB(0, 0./16, 0, 1, 16./16, 1) // << 2bit fill + }; + protected static final int num_slabs_contained_in_parts_[] = { 1,1,2,2 }; + + public BlockDecorSlab(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound) + { super(registryName, config, material, hardness, resistance, sound); } + + protected boolean is_cube(IBlockState state) + { return state.getValue(PARTS) >= 2; } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) + { + if(!ModAuxiliaries.Tooltip.addInformation(stack, world, tooltip, flag, true)) return; + if(!ModConfig.optout.without_direct_slab_pickup) { + ModAuxiliaries.Tooltip.addInformation("engineersdecor.tooltip.slabpickup", "engineersdecor.tooltip.slabpickup", tooltip, flag, true); + } + } + + @Override + @SideOnly(Side.CLIENT) + public BlockRenderLayer getRenderLayer() + { return (((config & CFG_TRANSLUCENT)!=0) ? (BlockRenderLayer.TRANSLUCENT) : (BlockRenderLayer.CUTOUT)); } + + @Override + @SuppressWarnings("deprecation") + public IBlockState getStateFromMeta(int meta) + { return getDefaultState().withProperty(PARTS, MathHelper.clamp(meta, 0, 2)); } + + @Override + public int getMetaFromState(IBlockState state) + { return state.getValue(PARTS); } + + @Override + public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) + { + long prnd = pos.toLong(); prnd = (prnd>>29) ^ (prnd>>17) ^ (prnd>>9) ^ (prnd>>4) ^ pos.getX() ^ pos.getY() ^ pos.getZ(); + return state.withProperty(TEXTURE_VARIANT, ((int)prnd) & 0x7); + } + + @Override + protected BlockStateContainer createBlockState() + { return new BlockStateContainer(this, PARTS, TEXTURE_VARIANT); } + + @Override + @SuppressWarnings("deprecation") + public boolean isOpaqueCube(IBlockState state) + { return ((config & CFG_TRANSLUCENT)==0) && is_cube(state); } + + @Override + @SuppressWarnings("deprecation") + public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face) + { return (state.getValue(PARTS) >= 2) ? BlockFaceShape.SOLID : BlockFaceShape.UNDEFINED; } + + @Override + @SuppressWarnings("deprecation") + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) + { return AABBs[state.getValue(PARTS) & 0x3]; } + + @Override + @Nullable + public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) + { return getBoundingBox(state, world, pos); } + + @Override + @SuppressWarnings("deprecation") + public boolean isFullCube(IBlockState state) + { return is_cube(state); } + + @Override + @SuppressWarnings("deprecation") + public boolean isNormalCube(IBlockState state) + { return is_cube(state); } + + @Override + @SuppressWarnings("deprecation") + public boolean canEntitySpawn(IBlockState state, Entity entity) + { return false; } + + @Override + public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, ItemStack stack) + { spawnAsEntity(world, pos, new ItemStack(Item.getItemFromBlock(this), num_slabs_contained_in_parts_[state.getValue(PARTS) & 0x3])); } + + @Override + public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side) + { return world.getBlockState(pos).getBlock() != this; } + + @Override + @SuppressWarnings("deprecation") + public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) + { return getDefaultState().withProperty(PARTS, ((facing==EnumFacing.UP) || ((facing!=EnumFacing.DOWN) && (hitY < 0.6))) ? 0 : 1); } + + @Override + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) + { + final ItemStack stack = player.getHeldItem(hand); + if(stack.isEmpty() || (Block.getBlockFromItem(stack.getItem()) != this)) return false; + int parts = state.getValue(PARTS); + if(((facing == EnumFacing.UP) && (parts == 0)) || ((facing == EnumFacing.DOWN) && (parts == 1))) { + world.setBlockState(pos, state.withProperty(PARTS, 2), 3); + } else { + return false; // "not handled" -> let parent decide if a new slab has to be placed on top/bottom. + } + if(world.isRemote) return true; + if(!player.isCreative()) { + stack.shrink(1); + if(player.inventory != null) player.inventory.markDirty(); + } + SoundType st = this.getSoundType(state, world, pos, null); + world.playSound(null, pos, st.getPlaceSound(), SoundCategory.BLOCKS, (st.getVolume()+1f)/2.5f, 0.9f*st.getPitch()); + return true; + } + + @Override + public void onBlockClicked(World world, BlockPos pos, EntityPlayer player) + { + if((world.isRemote) || (ModConfig.optout.without_direct_slab_pickup)) return; + final ItemStack stack = player.getHeldItemMainhand(); + if(stack.isEmpty() || (Block.getBlockFromItem(stack.getItem()) != this)) return; + if(stack.getCount() >= stack.getMaxStackSize()) return; + Vec3d lv = player.getLookVec(); + EnumFacing facing = EnumFacing.getFacingFromVector((float)lv.x, (float)lv.y, (float)lv.z); + if((facing != EnumFacing.UP) && (facing != EnumFacing.DOWN)) return; + IBlockState state = world.getBlockState(pos); + if(state.getBlock() != this) return; + int parts = state.getValue(PARTS); + if(facing == EnumFacing.DOWN) { + if(parts == 2) { + world.setBlockState(pos, state.withProperty(PARTS, 0), 3); + } else { + world.setBlockToAir(pos); + } + } else if(facing == EnumFacing.UP) { + if(parts == 2) { + world.setBlockState(pos, state.withProperty(PARTS, 1), 3); + } else { + world.setBlockToAir(pos); + } + } + if(!player.isCreative()) { + stack.grow(1); + if(player.inventory != null) player.inventory.markDirty(); // @todo: check if inventory can actually be null + } + SoundType st = this.getSoundType(state, world, pos, null); + world.playSound(player, pos, st.getPlaceSound(), SoundCategory.BLOCKS, (st.getVolume()+1f)/2.5f, 0.9f*st.getPitch()); + } +} diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java b/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java index 3b6a90b..ba759be 100644 --- a/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java +++ b/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java @@ -44,19 +44,25 @@ public class ModBlocks public static final BlockDecorFull CLINKER_BRICK_BLOCK = new BlockDecorFull("clinker_brick_block", 0, Material.ROCK, 2f, 15f, 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, 2f, 20f, SoundType.STONE); + public static final BlockDecorSlab CLINKER_BRICK_SLAB = new BlockDecorSlab("clinker_brick_slab", BlockDecor.CFG_DEFAULT, Material.ROCK, 2f, 20f, SoundType.STONE); public static final BlockDecorFull CLINKER_BRICK_STAINED_BLOCK = new BlockDecorFull("clinker_brick_stained_block", 0, Material.ROCK, 2f, 15f, SoundType.STONE); public static final BlockDecorStairs CLINKER_BRICK_STAINED_STAIRS = new BlockDecorStairs("clinker_brick_stained_stairs", CLINKER_BRICK_STAINED_BLOCK.getDefaultState()); + public static final BlockDecorSlab CLINKER_BRICK_STAINED_SLAB = new BlockDecorSlab("clinker_brick_stained_slab", BlockDecor.CFG_DEFAULT, Material.ROCK, 2f, 20f, SoundType.STONE); public static final BlockDecorFull SLAG_BRICK_BLOCK = new BlockDecorFull("slag_brick_block", 0, Material.ROCK, 2f, 15f, 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, 2f, 15f, SoundType.STONE); + public static final BlockDecorSlab SLAG_BRICK_SLAB = new BlockDecorSlab("slag_brick_slab", BlockDecor.CFG_DEFAULT, Material.ROCK, 2f, 15f, SoundType.STONE); public static final BlockDecorFull REBAR_CONCRETE_BLOCK = new BlockDecorFull("rebar_concrete", 0, Material.ROCK, 5f, 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, 5f, 2000f, SoundType.STONE); + public static final BlockDecorSlab REBAR_CONCRETE_SLAB = new BlockDecorSlab("rebar_concrete_slab", BlockDecor.CFG_DEFAULT, Material.ROCK, 5f, 2000f, SoundType.STONE); + public static final BlockDecorFull REBAR_CONCRETE_TILE = new BlockDecorFull("rebar_concrete_tile", 0, Material.ROCK, 5f, 2000f, SoundType.STONE); public static final BlockDecorStairs REBAR_CONCRETE_TILE_STAIRS = new BlockDecorStairs("rebar_concrete_tile_stairs", REBAR_CONCRETE_TILE.getDefaultState()); + public static final BlockDecorSlab REBAR_CONCRETE_TILE_SLAB = new BlockDecorSlab("rebar_concrete_tile_slab", BlockDecor.CFG_DEFAULT, Material.ROCK, 5f, 2000f, SoundType.STONE); public static final BlockDecorWall CONCRETE_WALL = new BlockDecorWall("concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 5f, 20f, SoundType.STONE); @@ -64,7 +70,9 @@ public class ModBlocks public static final BlockDecorLadder METAL_RUNG_STEPS = new BlockDecorLadder("metal_rung_steps", 0, Material.IRON, 0.5f, 20f, SoundType.METAL); public static final BlockDecorLadder TREATED_WOOD_LADDER = new BlockDecorLadder("treated_wood_ladder", 0, Material.WOOD, 0.5f, 10f, SoundType.WOOD); - public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.GLASS, 0.8f, 2000f, SoundType.GLASS); + public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.GLASS, 1f, 2000f, SoundType.GLASS); + public static final BlockDecorSlab PANZERGLASS_SLAB = new BlockDecorSlab("panzerglass_slab", BlockDecor.CFG_TRANSLUCENT, Material.GLASS, 1f, 2000f, SoundType.GLASS); + public static final BlockDecorStraightPole TREATED_WOOD_POLE = new BlockDecorStraightPole( "treated_wood_pole", @@ -361,17 +369,22 @@ public class ModBlocks STRAIGHT_CHECK_VALVE, STRAIGHT_REDSTONE_VALVE, STRAIGHT_REDSTONE_ANALOG_VALVE, STRAIGHT_PIPE_VALVE_TEI, PASSIVE_FLUID_ACCUMULATOR, PASSIVE_FLUID_ACCUMULATOR_TEI, CLINKER_BRICK_BLOCK, + CLINKER_BRICK_SLAB, CLINKER_BRICK_STAIRS, CLINKER_BRICK_WALL, CLINKER_BRICK_STAINED_BLOCK, + CLINKER_BRICK_STAINED_SLAB, CLINKER_BRICK_STAINED_STAIRS, SLAG_BRICK_BLOCK, + SLAG_BRICK_SLAB, SLAG_BRICK_STAIRS, SLAG_BRICK_WALL, REBAR_CONCRETE_BLOCK, + REBAR_CONCRETE_SLAB, REBAR_CONCRETE_STAIRS, REBAR_CONCRETE_WALL, REBAR_CONCRETE_TILE, + REBAR_CONCRETE_TILE_SLAB, REBAR_CONCRETE_TILE_STAIRS, CONCRETE_WALL, PANZERGLASS_BLOCK, @@ -397,15 +410,11 @@ public class ModBlocks private static final Object dev_content[] = { SIGN_MINDSTEP, + PANZERGLASS_SLAB, // check if another class is needed due to is_side_visible // handling not sure yet ... - HALFSLAB_REBARCONCRETE, - HALFSLAB_CONCRETE, - HALFSLAB_TREATEDWOOD, - HALFSLAB_SHEETMETALIRON, - HALFSLAB_SHEETMETALSTEEL, - HALFSLAB_SHEETMETALCOPPER, - HALFSLAB_SHEETMETALGOLD, - HALFSLAB_SHEETMETALALUMINIUM, + HALFSLAB_REBARCONCRETE, HALFSLAB_CONCRETE, HALFSLAB_TREATEDWOOD, + HALFSLAB_SHEETMETALIRON, HALFSLAB_SHEETMETALSTEEL, HALFSLAB_SHEETMETALCOPPER, + HALFSLAB_SHEETMETALGOLD, HALFSLAB_SHEETMETALALUMINIUM, }; //-------------------------------------------------------------------------------------------------------------------- diff --git a/1.12/src/main/java/wile/engineersdecor/detail/ModConfig.java b/1.12/src/main/java/wile/engineersdecor/detail/ModConfig.java index 03ac8e1..3a1ba81 100644 --- a/1.12/src/main/java/wile/engineersdecor/detail/ModConfig.java +++ b/1.12/src/main/java/wile/engineersdecor/detail/ModConfig.java @@ -162,11 +162,21 @@ public class ModConfig @Config.RequiresMcRestart public boolean without_factory_dropper = false; + @Config.Comment({"Disable horizontal half-block slab."}) + @Config.Name("Without slabs") + @Config.RequiresMcRestart + public boolean without_slabs = false; + @Config.Comment({"Disable stackable 1/8 block slices."}) @Config.Name("Without slab slices") @Config.RequiresMcRestart public boolean without_halfslabs = false; + @Config.Comment({"Disable directly picking up layers from slabs and slab " + + "slices by left clicking while looking up/down."}) + @Config.Name("Without slab pickup") + public boolean without_direct_slab_pickup = false; + @Config.Comment({"Disable poles of any material."}) @Config.Name("Without poles") @Config.RequiresMcRestart @@ -385,6 +395,7 @@ public class ModConfig if(block instanceof BlockDecorPipeValve) return optout.without_valves; if(block instanceof BlockDecorHorizontalSupport) return optout.without_hsupports; // Type based evaluation where later filters may match, too + if(optout.without_slabs && (block instanceof BlockDecorSlab)) return true; if(optout.without_stairs && (block instanceof BlockDecorStairs)) return true; if(optout.without_walls && (block instanceof BlockDecorWall)) return true; if(optout.without_poles && (block instanceof BlockDecorStraightPole)) return true; diff --git a/1.12/src/main/resources/assets/engineersdecor/blockstates/clinker_brick_slab.json b/1.12/src/main/resources/assets/engineersdecor/blockstates/clinker_brick_slab.json new file mode 100644 index 0000000..2f654f8 --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/blockstates/clinker_brick_slab.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "engineersdecor:slab/slab_s0_model", + "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0" } + }, + "variants": { + "normal": [{}], + "inventory": [{}], + "parts": { + "0" : { "model": "engineersdecor:slab/slab_s0_model" }, + "1" : { "model": "engineersdecor:slab/slab_s1_model" }, + "2" : { "model": "engineersdecor:slab/slab_s2_model" } + }, + "tvariant": { + "0":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"}}, + "1":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture1"}}, + "2":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture2"}}, + "3":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture3"}}, + "4":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture4"}}, + "5":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture5"}}, + "6":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture6"}}, + "7":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture7"}} + } + } +} diff --git a/1.12/src/main/resources/assets/engineersdecor/blockstates/clinker_brick_stained_slab.json b/1.12/src/main/resources/assets/engineersdecor/blockstates/clinker_brick_stained_slab.json new file mode 100644 index 0000000..16111a6 --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/blockstates/clinker_brick_stained_slab.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "engineersdecor:slab/slab_s0_model", + "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture0" } + }, + "variants": { + "normal": [{}], + "inventory": [{}], + "parts": { + "0" : { "model": "engineersdecor:slab/slab_s0_model" }, + "1" : { "model": "engineersdecor:slab/slab_s1_model" }, + "2" : { "model": "engineersdecor:slab/slab_s2_model" } + }, + "tvariant": { + "0":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture0"}}, + "1":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture1"}}, + "2":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture2"}}, + "3":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture3"}}, + "4":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture4"}}, + "5":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture5"}}, + "6":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture6"}}, + "7":{"textures":{"all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture7"}} + } + } +} diff --git a/1.12/src/main/resources/assets/engineersdecor/blockstates/panzerglass_slab.json b/1.12/src/main/resources/assets/engineersdecor/blockstates/panzerglass_slab.json new file mode 100644 index 0000000..f215960 --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/blockstates/panzerglass_slab.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "engineersdecor:slab/slab_s0_model", + "textures": { "all": "engineersdecor:blocks/glass/panzerglass_block_texture0" } + }, + "variants": { + "normal": [{}], + "inventory": [{}], + "parts": { + "0" : { "model": "engineersdecor:slab/slab_s0_model" }, + "1" : { "model": "engineersdecor:slab/slab_s1_model" }, + "2" : { "model": "engineersdecor:slab/slab_s2_model" } + }, + "tvariant": { + "0":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture0"}}, + "1":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture1"}}, + "2":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture2"}}, + "3":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture3"}}, + "4":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture0"}}, + "5":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture1"}}, + "6":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture2"}}, + "7":{"textures":{"all": "engineersdecor:blocks/glass/panzerglass_block_texture3"}} + } + } +} diff --git a/1.12/src/main/resources/assets/engineersdecor/blockstates/rebar_concrete_slab.json b/1.12/src/main/resources/assets/engineersdecor/blockstates/rebar_concrete_slab.json new file mode 100644 index 0000000..5d03258 --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/blockstates/rebar_concrete_slab.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "engineersdecor:slab/slab_s0_model", + "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture0" } + }, + "variants": { + "normal": [{}], + "inventory": [{}], + "parts": { + "0" : { "model": "engineersdecor:slab/slab_s0_model" }, + "1" : { "model": "engineersdecor:slab/slab_s1_model" }, + "2" : { "model": "engineersdecor:slab/slab_s2_model" } + }, + "tvariant": { + "0":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture0"}}, + "1":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture1"}}, + "2":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture2"}}, + "3":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture3"}}, + "4":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture4"}}, + "5":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture5"}}, + "6":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture6"}}, + "7":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_texture7"}} + } + } +} diff --git a/1.12/src/main/resources/assets/engineersdecor/blockstates/rebar_concrete_tile_slab.json b/1.12/src/main/resources/assets/engineersdecor/blockstates/rebar_concrete_tile_slab.json new file mode 100644 index 0000000..f0ba1ff --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/blockstates/rebar_concrete_tile_slab.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "engineersdecor:slab/slab_s0_model", + "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0" } + }, + "variants": { + "normal": [{}], + "inventory": [{}], + "parts": { + "0" : { "model": "engineersdecor:slab/slab_s0_model" }, + "1" : { "model": "engineersdecor:slab/slab_s1_model" }, + "2" : { "model": "engineersdecor:slab/slab_s2_model" } + }, + "tvariant": { + "0":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture0"}}, + "1":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture1"}}, + "2":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture2"}}, + "3":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture3"}}, + "4":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture4"}}, + "5":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture5"}}, + "6":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture6"}}, + "7":{"textures":{"all": "engineersdecor:blocks/concrete/rebar_concrete_tile_texture7"}} + } + } +} diff --git a/1.12/src/main/resources/assets/engineersdecor/blockstates/slag_brick_slab.json b/1.12/src/main/resources/assets/engineersdecor/blockstates/slag_brick_slab.json new file mode 100644 index 0000000..a579b5f --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/blockstates/slag_brick_slab.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "engineersdecor:slab/slab_s0_model", + "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture0" } + }, + "variants": { + "normal": [{}], + "inventory": [{}], + "parts": { + "0" : { "model": "engineersdecor:slab/slab_s0_model" }, + "1" : { "model": "engineersdecor:slab/slab_s1_model" }, + "2" : { "model": "engineersdecor:slab/slab_s2_model" } + }, + "tvariant": { + "0":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture0"}}, + "1":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture1"}}, + "2":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture2"}}, + "3":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture3"}}, + "4":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture4"}}, + "5":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture5"}}, + "6":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture6"}}, + "7":{"textures":{"all": "engineersdecor:blocks/slag_brick/slag_brick_texture7"}} + } + } +} diff --git a/1.12/src/main/resources/assets/engineersdecor/lang/en_us.lang b/1.12/src/main/resources/assets/engineersdecor/lang/en_us.lang index 9585494..1c51c1c 100644 --- a/1.12/src/main/resources/assets/engineersdecor/lang/en_us.lang +++ b/1.12/src/main/resources/assets/engineersdecor/lang/en_us.lang @@ -8,7 +8,7 @@ itemGroup.tabengineersdecor=Engineer's Decor engineersdecor.config.title=Engineer's Decor Config engineersdecor.tooltip.hint.extended=§6[§9SHIFT§r More Info§6]§r engineersdecor.tooltip.hint.help=§6[§9CTRL-SHIFT§r Help§6]§r - +engineersdecor.tooltip.slabpickup.help=§rFast pickup by left-clicking while looking up/down and holding this slab. #----------------------------------------------------------------------------------------------------------- # Stone/"ceramic material" based blocks #----------------------------------------------------------------------------------------------------------- @@ -25,6 +25,19 @@ tile.engineersdecor.panzerglass_block.help=§6Reinforced glass block.§r Expensi 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.clinker_brick_slab.name=Clinker Brick Slab +tile.engineersdecor.clinker_brick_slab.help=§6Slab made from a Clinker Block.§r\nLooks slightly darker and more color intensive than the vanilla brick. +tile.engineersdecor.clinker_brick_stained_slab.name=Stained Clinker Brick Slab +tile.engineersdecor.clinker_brick_stained_slab.help=§6Slab made from a Stained Clinker Block. +tile.engineersdecor.slag_brick_slab.name=Slag Brick Slab +tile.engineersdecor.slag_brick_slab.help=§6A gray-brown brick slab. +tile.engineersdecor.rebar_concrete_slab.name=Rebar Concrete Slab +tile.engineersdecor.rebar_concrete_slab.help=§6Steel reinforced concrete slab.§r Expensive but Creeper-proof like obsidian. +tile.engineersdecor.rebar_concrete_tile_slab.name=Rebar Concrete Tile Slab +tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian. +tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab +tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible. +#----------------------------------------------------------------------------------------------------------- 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 diff --git a/1.12/src/main/resources/assets/engineersdecor/lang/ru_ru.lang b/1.12/src/main/resources/assets/engineersdecor/lang/ru_ru.lang index 2f951db..4a71c2c 100644 --- a/1.12/src/main/resources/assets/engineersdecor/lang/ru_ru.lang +++ b/1.12/src/main/resources/assets/engineersdecor/lang/ru_ru.lang @@ -8,7 +8,7 @@ itemGroup.tabengineersdecor=Engineer's Decor engineersdecor.config.title=Engineer's Decor конфигурация engineersdecor.tooltip.hint.extended=§6[§9SHIFT§r Больше информации§6]§r engineersdecor.tooltip.hint.help=§6[§9CTRL-SHIFT§r Помощь§6]§r - +#engineersdecor.tooltip.slabpickup.help=§rFast pickup by left-clicking while looking up/down and holding this slab. #----------------------------------------------------------------------------------------------------------- # Stone/"ceramic material" based blocks #----------------------------------------------------------------------------------------------------------- @@ -25,6 +25,19 @@ tile.engineersdecor.panzerglass_block.help=§6Усиленный стеклоб tile.engineersdecor.rebar_concrete_tile.name=Железобетонная плита tile.engineersdecor.rebar_concrete_tile.help=§6Стальная железобетонная плитка.§r Дорогая, но взрывоустойчивая, как обсидиан. #----------------------------------------------------------------------------------------------------------- +tile.engineersdecor.clinker_brick_slab.name=Clinker Brick Slab +#tile.engineersdecor.clinker_brick_slab.help=§6Slab made from a Clinker Block.§r\nLooks slightly darker and more color intensive than the vanilla brick. +tile.engineersdecor.clinker_brick_stained_slab.name=Stained Clinker Brick Slab +#tile.engineersdecor.clinker_brick_stained_slab.help=§6Slab made from a Stained Clinker Block. +tile.engineersdecor.slag_brick_slab.name=Slag Brick Slab +#tile.engineersdecor.slag_brick_slab.help=§6A gray-brown brick slab. +tile.engineersdecor.rebar_concrete_slab.name=Rebar Concrete Slab +#tile.engineersdecor.rebar_concrete_slab.help=§6Steel reinforced concrete slab.§r Expensive but Creeper-proof like obsidian. +tile.engineersdecor.rebar_concrete_tile_slab.name=Rebar Concrete Tile Slab +#tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian. +tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab +#tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible. +#----------------------------------------------------------------------------------------------------------- tile.engineersdecor.rebar_concrete_wall.name=Железобетонная стена tile.engineersdecor.rebar_concrete_wall.help=§6Стальная железобетонная стена.§r Дорогая, но взрывоустойчивая, как обсидиан. tile.engineersdecor.concrete_wall.name=Бетонная стена diff --git a/1.12/src/main/resources/assets/engineersdecor/lang/zh_cn.lang b/1.12/src/main/resources/assets/engineersdecor/lang/zh_cn.lang index 77060d2..1b88f35 100644 --- a/1.12/src/main/resources/assets/engineersdecor/lang/zh_cn.lang +++ b/1.12/src/main/resources/assets/engineersdecor/lang/zh_cn.lang @@ -8,7 +8,7 @@ itemGroup.tabengineersdecor=工程师的装饰 engineersdecor.config.title=工程师的装饰配置 engineersdecor.tooltip.hint.extended=§6[按§9SHIFT§r获取更多信息§6]§r engineersdecor.tooltip.hint.help=§6[按§9CTRL-SHIFT§r获取帮助§6]§r - +#engineersdecor.tooltip.slabpickup.help=§rFast pickup by left-clicking while looking up/down and holding this slab. #----------------------------------------------------------------------------------------------------------- # Stone/"ceramic material" based blocks #----------------------------------------------------------------------------------------------------------- @@ -25,6 +25,19 @@ tile.engineersdecor.panzerglass_block.name=Panzer Glass Block 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.clinker_brick_slab.name=Clinker Brick Slab +#tile.engineersdecor.clinker_brick_slab.help=§6Slab made from a Clinker Block.§r\nLooks slightly darker and more color intensive than the vanilla brick. +tile.engineersdecor.clinker_brick_stained_slab.name=Stained Clinker Brick Slab +#tile.engineersdecor.clinker_brick_stained_slab.help=§6Slab made from a Stained Clinker Block. +tile.engineersdecor.slag_brick_slab.name=Slag Brick Slab +#tile.engineersdecor.slag_brick_slab.help=§6A gray-brown brick slab. +tile.engineersdecor.rebar_concrete_slab.name=Rebar Concrete Slab +#tile.engineersdecor.rebar_concrete_slab.help=§6Steel reinforced concrete slab.§r Expensive but Creeper-proof like obsidian. +tile.engineersdecor.rebar_concrete_tile_slab.name=Rebar Concrete Tile Slab +#tile.engineersdecor.rebar_concrete_tile_slab.help=§6Steel reinforced concrete tile slab.§r Expensive but Creeper-proof like obsidian. +tile.engineersdecor.panzerglass_slab.name=Panzer Glass Slab +#tile.engineersdecor.panzerglass_slab.help=§6Reinforced glass slab.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible. +#----------------------------------------------------------------------------------------------------------- tile.engineersdecor.rebar_concrete_wall.name=钢筋混凝土墙 tile.engineersdecor.rebar_concrete_wall.help=§6钢筋混凝土墙.§r 昂贵,但像黑曜石一样防苦力怕. tile.engineersdecor.concrete_wall.name=水泥墙 diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s0_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s0_model.json index bc6e770..58a7664 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s0_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s0_model.json @@ -2,6 +2,7 @@ "parent": "block/cube", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 2, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s1_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s1_model.json index 8b658ae..dec38ae 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s1_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s1_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 4, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s2_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s2_model.json index 86a0657..0f37c36 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s2_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s2_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 6, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s3_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s3_model.json index 2d9492c..35b9bc2 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s3_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s3_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 8, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s4_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s4_model.json index e3288fe..55c81bb 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s4_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s4_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 10, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s5_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s5_model.json index 3534de5..309c3ad 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s5_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s5_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 12, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s6_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s6_model.json index 7aa1e3e..364c546 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s6_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s6_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 14, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s7_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s7_model.json index a9d646b..97f570f 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s7_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s7_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 0, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s8_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s8_model.json index 1be83a3..74ed584 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s8_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s8_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 2, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s9_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s9_model.json index 308cb88..b5c7554 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s9_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_s9_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 4, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sa_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sa_model.json index 76367b4..a4fc4f0 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sa_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sa_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 6, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sb_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sb_model.json index d4417c5..3bdc001 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sb_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sb_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 8, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sc_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sc_model.json index 0cfb7f9..e1414f5 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sc_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sc_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 10, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sd_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sd_model.json index 59178ef..526737a 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sd_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_sd_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 12, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_se_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_se_model.json index c0ff07f..02665ee 100644 --- a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_se_model.json +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/halfslab_se_model.json @@ -2,6 +2,7 @@ "parent": "engineersdecor:block/slab/halfslab_s0_model", "textures": { "particle": "#all", + "side": "#all", "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" }, "elements": [ @@ -9,10 +10,10 @@ "from": [0, 14, 0], "to": [16, 16, 16], "faces": { - "north": {"texture": "#all"}, - "east": {"texture": "#all"}, - "south": {"texture": "#all"}, - "west": {"texture": "#all"}, + "north": {"texture": "#side"}, + "east": {"texture": "#side"}, + "south": {"texture": "#side"}, + "west": {"texture": "#side"}, "up": {"texture": "#all"}, "down": {"texture": "#all"} } diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s0_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s0_model.json new file mode 100644 index 0000000..ec7563a --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s0_model.json @@ -0,0 +1,8 @@ +{ + "parent": "engineersdecor:block/slab/halfslab_s3_model", + "textures": { + "particle": "#all", + "side": "#all", + "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" + } +} \ No newline at end of file diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s1_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s1_model.json new file mode 100644 index 0000000..06d0027 --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s1_model.json @@ -0,0 +1,8 @@ +{ + "parent": "engineersdecor:block/slab/halfslab_sb_model", + "textures": { + "particle": "#all", + "side": "#all", + "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" + } +} \ No newline at end of file diff --git a/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s2_model.json b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s2_model.json new file mode 100644 index 0000000..8ebea76 --- /dev/null +++ b/1.12/src/main/resources/assets/engineersdecor/models/block/slab/slab_s2_model.json @@ -0,0 +1,8 @@ +{ + "parent": "engineersdecor:block/slab/halfslab_s7_model", + "textures": { + "particle": "#all", + "side": "#all", + "all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture" + } +} \ No newline at end of file