Fixed furnace init issue. Prepared slabs with texture variations for testing.
This commit is contained in:
parent
0a310c4261
commit
792bdce3e1
35 changed files with 586 additions and 92 deletions
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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<ItemStack> 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.<ItemStack>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_);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<String> 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;
|
||||
|
|
|
@ -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<String> 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());
|
||||
}
|
||||
}
|
|
@ -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,
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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=Бетонная стена
|
||||
|
|
|
@ -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=水泥墙
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue