Release merge v1.0.9-mc1.12.2.
|
@ -28,7 +28,7 @@ wildcardr=$(foreach d,$(wildcard $1*),$(call wildcardr,$d/,$2) $(filter $(subst
|
|||
#
|
||||
# Targets
|
||||
#
|
||||
.PHONY: default mod init clean clean-all all run install sanatize dist-check dist start-server
|
||||
.PHONY: default mod init clean clean-all mrproper all run install sanatize dist-check dist start-server port-languages
|
||||
|
||||
default: mod
|
||||
|
||||
|
@ -46,8 +46,17 @@ clean:
|
|||
clean-all: clean
|
||||
@echo "[1.12] Cleaning using gradle ..."
|
||||
@rm -f dist/*
|
||||
@rm -rf run/logs/
|
||||
@rm -rf run/crash-reports/
|
||||
@$(GRADLE) clean cleanCache
|
||||
|
||||
mrproper: clean-all
|
||||
@rm -f meta/*.*
|
||||
@rm -rf run/
|
||||
@rm -rf out/
|
||||
@rm -f .project
|
||||
@rm -f .classpath
|
||||
|
||||
init:
|
||||
@echo "[1.12] Initialising eclipse workspace using gradle ..."
|
||||
@$(GRADLE) setupDecompWorkspace
|
||||
|
@ -90,3 +99,7 @@ dist: sanatize dist-check clean-all mod
|
|||
@mkdir -p dist
|
||||
@cp build/libs/$(MOD_JAR_PREFIX)* dist/
|
||||
@djs tasks.js dist
|
||||
|
||||
port-languages:
|
||||
@echo "[1.12] Porting language files to 1.13/1.14 ..."
|
||||
@djs tasks.js port-languages
|
||||
|
|
|
@ -24,6 +24,11 @@ archivesBaseName = "engineersdecor-${version_minecraft}"
|
|||
|
||||
def signing = { ->
|
||||
def sp = new Properties()
|
||||
sp.keystore_file = project.keystore_file
|
||||
sp.keystore_alias = project.keystore_alias
|
||||
sp.keystore_pass = project.keystore_pass
|
||||
sp.keystore_keypass = project.keystore_keypass
|
||||
sp.fingerprint_sha1 = project.fingerprint_sha1
|
||||
if(file("signing.properties").exists()) file("signing.properties").withInputStream { sp.load(it) }
|
||||
return sp
|
||||
}()
|
||||
|
|
|
@ -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.8
|
||||
version_engineersdecor=1.0.9
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
{
|
||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||
"1.12.2": {
|
||||
"1.0.9": "[R] Release based on v1.0.9-b3. Release-to-release changes: * Slabs for clinker, concrete, slag bricks. * Slab slices for sheet metals, treated wood, and concretes. * Language updates. * Block hardness adaptions. * 1st/3rd person item model fixes. * Furnace initialisation issue fixed.",
|
||||
"1.0.9-b3": "[A] Added missing recipes for slabs.\n[A] Added slab slices for IE sheet metals, treated wood, and concretes (stackable \"quater-slabs\").\n[M] Updated 1st/3rd person item model rotations/translations.\n[M] Hardness of valves and furni slightly increased.",
|
||||
"1.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).\n[F] Fixed lab/electrical furnace initialisation issue (first item inserted was smelted directly).",
|
||||
"1.0.9-b1": "[U] Lang file ru_ru updated (PR#31, yaroslav4167).\n[M] Block hardness adaptions (issue #32).",
|
||||
"1.0.8": "[R] Release based on v1.0.8-b2. Release-to-release changes: * Added factory area sign. * Added stained clinker. * Config opt-out fixes, detailed feature selection possible now. * Recipe adaptions and fixes. * Lang files updated.\n[A] Added stained clinker brick block/stairs. Can be mixed with \"normal\" clinkers.\n[A] Added opt-out option for CTRL-SHIFT tooltips.\n[M] Recipe condition requirements updated, recipes categorized.",
|
||||
"1.0.8-b2": "[F] Config opt-out fixed (thx IronPiston for the report #30).\n[A] Added opt-out config for detailed including/excluding of features (using registry name wildcard matching).",
|
||||
"1.0.8-b1": "[A] Added \"Factory area\" sign.\n[M] Electrical furnace recipe changed (hoppers to conveyors).\n[A] Opt-out config options added.\n[F] Lang file fixes for en_us (Angela, PR#29).",
|
||||
|
@ -43,7 +47,7 @@
|
|||
"1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table."
|
||||
},
|
||||
"promos": {
|
||||
"1.12.2-recommended": "1.0.8",
|
||||
"1.12.2-latest": "1.0.8"
|
||||
"1.12.2-recommended": "1.0.9",
|
||||
"1.12.2-latest": "1.0.9"
|
||||
}
|
||||
}
|
|
@ -8,7 +8,32 @@ Mod sources for Minecraft version 1.12.2.
|
|||
- Compiled mod distribution channel is curseforge: https://www.curseforge.com/minecraft/mc-mods/engineers-decor/files.
|
||||
|
||||
----
|
||||
## Revision history
|
||||
## Version history
|
||||
|
||||
-------------------------------------------------------------------
|
||||
- v1.0.9 [R] Release based on v1.0.9-b3. Release-to-release changes:
|
||||
* Slabs for clinker, concrete, slag bricks.
|
||||
* Slab slices for sheet metals, treated wood, and concretes.
|
||||
* Language updates.
|
||||
* Block hardness adaptions.
|
||||
* 1st/3rd person item model fixes.
|
||||
* Furnace initialisation issue fixed.
|
||||
-------------------------------------------------------------------
|
||||
|
||||
- v1.0.9-b3 [A] Added missing recipes for slabs.
|
||||
[A] Added slab slices for IE sheet metals, treated wood,
|
||||
and concretes (stackable "quater-slabs").
|
||||
[M] Updated 1st/3rd person item model rotations/translations.
|
||||
[M] Hardness of valves and furni slightly increased.
|
||||
|
||||
- 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).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
- v1.0.8 [R] Release based on v1.0.8-b2. Release-to-release changes:
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
*/
|
||||
package wile.engineersdecor;
|
||||
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import wile.engineersdecor.detail.*;
|
||||
import wile.engineersdecor.blocks.*;
|
||||
import wile.engineersdecor.items.*;
|
||||
|
@ -21,6 +20,7 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.common.network.IGuiHandler;
|
||||
|
@ -78,6 +78,7 @@ public class ModEngineersDecor
|
|||
default void init(final FMLInitializationEvent e) {}
|
||||
default void postInit(final FMLPostInitializationEvent e) {}
|
||||
default World getWorlClientSide() { return null; }
|
||||
default EntityPlayer getPlayerClientSide() { return null; }
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* @file BlockDecorFull.java
|
||||
* @file BlockDecor.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
|
@ -30,6 +30,8 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.util.*;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import javax.annotation.Nonnull;
|
||||
|
@ -58,9 +60,15 @@ public class BlockDecor extends Block
|
|||
public static final long CFG_ANALOG = 0x0000000000040000L; // Denotes if a component has analog behaviour
|
||||
public static final long CFG_HARD_IE_DEPENDENT = 0x8000000000000000L; // Defines that this block abolutely needs IE to be installed.
|
||||
|
||||
protected final AxisAlignedBB aabb;
|
||||
protected final AxisAlignedBB[] aabb;
|
||||
|
||||
public BlockDecor(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
|
||||
{ this(registryName, config, material, hardness, resistance, sound, (new AxisAlignedBB[]{FULL_BLOCK_AABB})); }
|
||||
|
||||
public BlockDecor(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nullable AxisAlignedBB boundingbox)
|
||||
{ this(registryName, config, material, hardness, resistance, sound, (boundingbox==null) ? (new AxisAlignedBB[]{FULL_BLOCK_AABB}) : (new AxisAlignedBB[]{boundingbox})); }
|
||||
|
||||
public BlockDecor(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB[] boundingboxes)
|
||||
{
|
||||
super((material!=null) ? (material) : (Material.IRON));
|
||||
setCreativeTab(ModEngineersDecor.CREATIVE_TAB_ENGINEERSDECOR);
|
||||
|
@ -74,12 +82,9 @@ public class BlockDecor extends Block
|
|||
// @todo double check that instance variable
|
||||
// not sure here ... if((config & CFG_TRANSLUCENT) != 0) this.translucent = true;
|
||||
this.config = config;
|
||||
this.aabb = (boundingbox==null) ? (FULL_BLOCK_AABB) : (boundingbox);
|
||||
this.aabb = boundingboxes;
|
||||
}
|
||||
|
||||
public BlockDecor(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
|
||||
{ this(registryName, config, material, hardness, resistance, sound, null); }
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag)
|
||||
|
@ -166,12 +171,19 @@ public class BlockDecor extends Block
|
|||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{ return aabb; }
|
||||
{ return aabb[0]; }
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos)
|
||||
{ return state.getBoundingBox(worldIn, pos).offset(pos); }
|
||||
public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World world, BlockPos pos)
|
||||
{ return state.getBoundingBox(world, pos).offset(pos); }
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState)
|
||||
{
|
||||
addCollisionBoxToList(pos, entityBox, collidingBoxes, getBoundingBox(state, world, pos));
|
||||
for(int i=1; i<aabb.length; ++i) addCollisionBoxToList(pos, entityBox, collidingBoxes, aabb[i]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTileEntity(IBlockState state)
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* @file BlockDecorDirectedHorizontal.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Smaller directed block with direction set narrowed
|
||||
* to horizontal directions.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.BlockHorizontal;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.PropertyDirection;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.Mirror;
|
||||
import net.minecraft.util.Rotation;
|
||||
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 javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
public class BlockDecorDirectedHorizontal extends BlockDecorDirected
|
||||
{
|
||||
public static final PropertyDirection FACING = BlockHorizontal.FACING;
|
||||
|
||||
public BlockDecorDirectedHorizontal(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||
{ super(registryName, config|CFG_HORIZIONTAL, material, hardness, resistance, sound, unrotatedAABB); }
|
||||
|
||||
@Override
|
||||
public IBlockState getStateFromMeta(int meta)
|
||||
{ return this.getDefaultState().withProperty(FACING, EnumFacing.byHorizontalIndex(meta & 0x3)); }
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state)
|
||||
{ return state.getValue(FACING).getHorizontalIndex(); }
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState()
|
||||
{ return new BlockStateContainer(this, FACING); }
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{ return AABBs.get(state.getValue(FACING).getIndex() & 0x7); }
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{ return getBoundingBox(state, world, pos); }
|
||||
|
||||
@Override
|
||||
public IBlockState withRotation(IBlockState state, Rotation rot)
|
||||
{ return state; }
|
||||
|
||||
@Override
|
||||
public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
|
||||
{ return state; }
|
||||
|
||||
@Override
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||
{
|
||||
if((config & CFG_LOOK_PLACEMENT) != 0) {
|
||||
// horizontal placement in direction the player is looking
|
||||
facing = placer.getHorizontalFacing();
|
||||
} else {
|
||||
// horizontal placement on a face
|
||||
facing = ((facing==EnumFacing.UP)||(facing==EnumFacing.DOWN)) ? (placer.getHorizontalFacing()) : facing;
|
||||
}
|
||||
if((config & CFG_OPPOSITE_PLACEMENT)!=0) facing = facing.getOpposite();
|
||||
if(((config & CFG_FLIP_PLACEMENT_SHIFTCLICK) != 0) && (placer.isSneaking())) facing = facing.getOpposite();
|
||||
return getDefaultState().withProperty(FACING, facing);
|
||||
}
|
||||
|
||||
}
|
|
@ -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,716 @@
|
|||
/*
|
||||
* @file BlockDecorMineralSmelter.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Small highly insulated stone liquification furnace
|
||||
* (magmatic phase).
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.state.BlockFaceShape;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraft.block.properties.PropertyInteger;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.Explosion;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.inventory.*;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.*;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidTankProperties;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.HashSet;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
|
||||
public class BlockDecorMineralSmelter extends BlockDecorDirectedHorizontal
|
||||
{
|
||||
public static final int PHASE_MAX = 3;
|
||||
public static final PropertyInteger PHASE = PropertyInteger.create("phase", 0, PHASE_MAX);
|
||||
|
||||
public BlockDecorMineralSmelter(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||
{
|
||||
super(registryName, config, material, hardness, resistance, sound, unrotatedAABB);
|
||||
setLightOpacity(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState()
|
||||
{ return new BlockStateContainer(this, FACING, PHASE); }
|
||||
|
||||
@Override
|
||||
public IBlockState getStateFromMeta(int meta)
|
||||
{ return super.getStateFromMeta(meta).withProperty(PHASE, (meta>>2) & 0x3); }
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state)
|
||||
{ return super.getMetaFromState(state) | (state.getValue(PHASE)<<2); }
|
||||
|
||||
@Override
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||
{ return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand).withProperty(PHASE, 0); }
|
||||
|
||||
@Override
|
||||
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
|
||||
{ return BlockFaceShape.SOLID; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean hasComparatorInputOverride(IBlockState state)
|
||||
{ return true; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos)
|
||||
{ return MathHelper.clamp((state.getValue(PHASE)*5), 0, 15); }
|
||||
|
||||
@Override
|
||||
public boolean hasTileEntity(IBlockState state)
|
||||
{ return true; }
|
||||
|
||||
@Nullable
|
||||
public TileEntity createTileEntity(World world, IBlockState state)
|
||||
{ return new BlockDecorMineralSmelter.BTileEntity(); }
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
|
||||
{}
|
||||
|
||||
@Override
|
||||
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
{
|
||||
if(world.isRemote) return true;
|
||||
BTileEntity te = getTe(world, pos);
|
||||
if(te==null) return super.removedByPlayer(state, world, pos, player, willHarvest);
|
||||
ItemStack st = ItemStack.EMPTY;
|
||||
if(!te.getStackInSlot(1).isEmpty()) {
|
||||
st = te.getStackInSlot(1).copy();
|
||||
} else if(!te.getStackInSlot(0).isEmpty()) {
|
||||
st = te.getStackInSlot(0).copy();
|
||||
}
|
||||
te.reset_process();
|
||||
ItemStack stack = new ItemStack(this, 1);
|
||||
world.spawnEntity(new EntityItem(world, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, stack));
|
||||
world.setBlockToAir(pos);
|
||||
world.removeTileEntity(pos);
|
||||
if(!st.isEmpty()) {
|
||||
st.setCount(1);
|
||||
world.spawnEntity(new EntityItem(world, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, st));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockExploded(World world, BlockPos pos, Explosion explosion)
|
||||
{
|
||||
if(world.isRemote) return;
|
||||
BTileEntity te = getTe(world, pos);
|
||||
if(te==null) return;
|
||||
te.reset_process();
|
||||
super.onBlockExploded(world, pos, explosion);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
|
||||
{
|
||||
if(world.isRemote) return true;
|
||||
if(player.isSneaking()) return false;
|
||||
BTileEntity te = getTe(world, pos);
|
||||
if(te==null) return true;
|
||||
final ItemStack stack = player.getHeldItem(hand);
|
||||
boolean dirty = false;
|
||||
if(te.accepts_lava_container(stack)) {
|
||||
if(stack.isItemEqualIgnoreDurability(BTileEntity.BUCKET_STACK)) { // check how this works with item capabilities or so
|
||||
if(te.fluid_level() >= BTileEntity.MAX_BUCKET_EXTRACT_FLUID_LEVEL) {
|
||||
if(stack.getCount() > 1) {
|
||||
int target_stack_index = -1;
|
||||
for(int i=0; i<player.inventory.getSizeInventory(); ++i) {
|
||||
if(player.inventory.getStackInSlot(i).isEmpty()) {
|
||||
target_stack_index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(target_stack_index >= 0) {
|
||||
te.reset_process();
|
||||
stack.shrink(1);
|
||||
player.setHeldItem(hand, stack);
|
||||
player.inventory.setInventorySlotContents(target_stack_index, BTileEntity.LAVA_BUCKET_STACK.copy());
|
||||
world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL_LAVA, SoundCategory.BLOCKS, 1f, 1f);
|
||||
dirty = true;
|
||||
}
|
||||
} else {
|
||||
te.reset_process();
|
||||
player.setHeldItem(hand, BTileEntity.LAVA_BUCKET_STACK.copy());
|
||||
world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL_LAVA, SoundCategory.BLOCKS, 1f, 1f);
|
||||
dirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if(stack.getItem() == Items.AIR) {
|
||||
final ItemStack istack = te.getStackInSlot(1).copy();
|
||||
if(te.phase() > BTileEntity.PHASE_WARMUP) player.setFire(1);
|
||||
if(!istack.isEmpty()) {
|
||||
istack.setCount(1);
|
||||
player.setHeldItem(hand, istack);
|
||||
te.reset_process();
|
||||
dirty = true;
|
||||
}
|
||||
} else if(te.insert(stack.copy(),false)) {
|
||||
stack.shrink(1);
|
||||
dirty = true;
|
||||
}
|
||||
if(dirty) player.inventory.markDirty();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rnd)
|
||||
{
|
||||
if(state.getBlock()!=this) return;
|
||||
EnumParticleTypes particle = EnumParticleTypes.SMOKE_NORMAL;
|
||||
switch(state.getValue(PHASE)) {
|
||||
case BTileEntity.PHASE_WARMUP:
|
||||
return;
|
||||
case BTileEntity.PHASE_HOT:
|
||||
if(rnd.nextInt(10) > 4) return;
|
||||
break;
|
||||
case BTileEntity.PHASE_MAGMABLOCK:
|
||||
if(rnd.nextInt(10) > 7) return;
|
||||
particle = EnumParticleTypes.SMOKE_LARGE;
|
||||
break;
|
||||
case BTileEntity.PHASE_LAVA:
|
||||
if(rnd.nextInt(10) > 2) return;
|
||||
particle = EnumParticleTypes.LAVA;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
final double x=0.5+pos.getX(), y=0.5+pos.getY(), z=0.5+pos.getZ();
|
||||
final double xr=rnd.nextDouble()*0.4-0.2, yr=rnd.nextDouble()*0.5, zr=rnd.nextDouble()*0.4-0.2;
|
||||
world.spawnParticle(particle, x+xr, y+yr, z+zr, 0.0, 0.0, 0.0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private BTileEntity getTe(World world, BlockPos pos)
|
||||
{ final TileEntity te=world.getTileEntity(pos); return (!(te instanceof BTileEntity)) ? (null) : ((BTileEntity)te); }
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
// Tile entity
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
public static class BTileEntity extends TileEntity implements ITickable, ISidedInventory, IEnergyStorage
|
||||
{
|
||||
public static final int TICK_INTERVAL = 20;
|
||||
public static final int MAX_FLUID_LEVEL = 1000;
|
||||
public static final int MAX_BUCKET_EXTRACT_FLUID_LEVEL = 900;
|
||||
public static final int MAX_ENERGY_BUFFER = 32000;
|
||||
public static final int MAX_ENERGY_TRANSFER = 8192;
|
||||
public static final int DEFAULT_ENERGY_CONSUMPTION = 92;
|
||||
public static final int DEFAULT_HEATUP_RATE = 2; // -> 50s for one smelting process
|
||||
public static final int PHASE_WARMUP = 0;
|
||||
public static final int PHASE_HOT = 1;
|
||||
public static final int PHASE_MAGMABLOCK = 2;
|
||||
public static final int PHASE_LAVA = 3;
|
||||
private static final ItemStack MAGMA_STACK = new ItemStack(Blocks.MAGMA);
|
||||
private static final ItemStack BUCKET_STACK = new ItemStack(Items.BUCKET);
|
||||
private static final ItemStack LAVA_BUCKET_STACK = new ItemStack(Items.LAVA_BUCKET);
|
||||
private static int energy_consumption = DEFAULT_ENERGY_CONSUMPTION;
|
||||
private static int heatup_rate = DEFAULT_HEATUP_RATE;
|
||||
private static int cooldown_rate = 1;
|
||||
private static Set<Item> accepted_minerals = new HashSet<Item>();
|
||||
private static Set<Item> accepted_lava_contrainers = new HashSet<Item>();
|
||||
|
||||
private int tick_timer_;
|
||||
private int energy_stored_;
|
||||
private int progress_;
|
||||
private int fluid_level_;
|
||||
private boolean force_block_update_;
|
||||
private NonNullList<ItemStack> stacks_ = NonNullList.<ItemStack>withSize(2, ItemStack.EMPTY);
|
||||
|
||||
static {
|
||||
// Mineals: No Nether brick (made of Netherrack),
|
||||
// no glazed terracotta, no obsidian, no stairs, slabs etc.
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.COBBLESTONE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.STONE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.SANDSTONE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.PRISMARINE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.END_STONE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.MOSSY_COBBLESTONE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.RED_SANDSTONE));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.QUARTZ_BLOCK));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.BRICK_BLOCK));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.END_BRICKS));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.HARDENED_CLAY));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.STAINED_HARDENED_CLAY));
|
||||
accepted_minerals.add(Item.getItemFromBlock(Blocks.STONEBRICK));
|
||||
// Lava containers
|
||||
accepted_lava_contrainers.add(Items.BUCKET);
|
||||
}
|
||||
|
||||
public static void on_config(int energy_consumption, int heatup_per_second)
|
||||
{
|
||||
energy_consumption = MathHelper.clamp(energy_consumption, 32, 4096);
|
||||
heatup_rate = MathHelper.clamp(heatup_per_second, 1, 5);
|
||||
cooldown_rate = MathHelper.clamp(heatup_per_second/2, 1, 5);
|
||||
ModEngineersDecor.logger.info("Config mineal smelter energy consumption:" + energy_consumption + "rf/t, heat-up rate: " + heatup_rate + "%/s.");
|
||||
}
|
||||
|
||||
public BTileEntity()
|
||||
{ reset_process(); }
|
||||
|
||||
public int progress()
|
||||
{ return progress_; }
|
||||
|
||||
public int phase()
|
||||
{
|
||||
if(progress_ >= 100) return PHASE_LAVA;
|
||||
if(progress_ >= 90) return PHASE_MAGMABLOCK;
|
||||
if(progress_ >= 5) return PHASE_HOT;
|
||||
return PHASE_WARMUP;
|
||||
}
|
||||
|
||||
public int fluid_level()
|
||||
{ return fluid_level_; }
|
||||
|
||||
public int fluid_level_drain(int amount)
|
||||
{ amount = MathHelper.clamp(amount, 0, fluid_level_); fluid_level_ -= amount; return amount; }
|
||||
|
||||
public int comparator_signal()
|
||||
{ return phase() * 5; } // -> 0..15
|
||||
|
||||
private boolean accepts_lava_container(ItemStack stack)
|
||||
{ return accepted_lava_contrainers.contains(stack.getItem()); }
|
||||
|
||||
private boolean accepts_input(ItemStack stack)
|
||||
{
|
||||
if(!stacks_.get(0).isEmpty()) return false;
|
||||
if(fluid_level() > MAX_BUCKET_EXTRACT_FLUID_LEVEL) {
|
||||
return accepts_lava_container(stack);
|
||||
} else {
|
||||
return accepted_minerals.contains(stack.getItem());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean insert(final ItemStack stack, boolean simulate)
|
||||
{
|
||||
if(stack.isEmpty() || (!accepts_input(stack))) return false;
|
||||
if(!simulate) {
|
||||
ItemStack st = stack.copy();
|
||||
st.setCount(st.getMaxStackSize());
|
||||
stacks_.set(0, st);
|
||||
if(!accepts_lava_container(stack)) progress_ = 0;
|
||||
force_block_update_ = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public ItemStack extract(boolean simulate)
|
||||
{
|
||||
ItemStack stack = stacks_.get(1).copy();
|
||||
if(stack.isEmpty()) return ItemStack.EMPTY;
|
||||
if(!simulate) reset_process();
|
||||
return stack;
|
||||
}
|
||||
|
||||
protected void reset_process()
|
||||
{
|
||||
stacks_ = NonNullList.<ItemStack>withSize(2, ItemStack.EMPTY);
|
||||
force_block_update_ = true;
|
||||
fluid_level_ = 0;
|
||||
tick_timer_ = 0;
|
||||
progress_ = 0;
|
||||
}
|
||||
|
||||
public void readnbt(NBTTagCompound nbt)
|
||||
{
|
||||
energy_stored_ = nbt.getInteger("energy");
|
||||
progress_ = nbt.getInteger("progress");
|
||||
fluid_level_ = nbt.getInteger("fluidlevel");
|
||||
ItemStackHelper.loadAllItems(nbt, stacks_);
|
||||
if(stacks_.size() != 1) reset_process();
|
||||
}
|
||||
|
||||
protected void writenbt(NBTTagCompound nbt)
|
||||
{
|
||||
nbt.setInteger("energy", MathHelper.clamp(energy_stored_,0 , MAX_ENERGY_BUFFER));
|
||||
nbt.setInteger("progress", MathHelper.clamp(progress_,0 , 100));
|
||||
nbt.setInteger("fluidlevel", MathHelper.clamp(fluid_level_,0 , MAX_FLUID_LEVEL));
|
||||
ItemStackHelper.saveAllItems(nbt, stacks_);
|
||||
}
|
||||
|
||||
// TileEntity ------------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public boolean shouldRefresh(World world, BlockPos pos, IBlockState os, IBlockState ns)
|
||||
{ return (os.getBlock() != ns.getBlock()) || (!(ns.getBlock() instanceof BlockDecorMineralSmelter)); }
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound compound)
|
||||
{ super.readFromNBT(compound); readnbt(compound); }
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeToNBT(NBTTagCompound compound)
|
||||
{ super.writeToNBT(compound); writenbt(compound); return compound; }
|
||||
|
||||
// IWorldNamable ---------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{ final Block block=getBlockType(); return (block!=null) ? (block.getTranslationKey() + ".name") : (""); }
|
||||
|
||||
@Override
|
||||
public boolean hasCustomName()
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
public ITextComponent getDisplayName()
|
||||
{ return new TextComponentTranslation(getName(), new Object[0]); }
|
||||
|
||||
// IInventory ------------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public int getSizeInventory()
|
||||
{ return stacks_.size(); }
|
||||
|
||||
@Override
|
||||
public boolean isEmpty()
|
||||
{ for(ItemStack stack: stacks_) { if(!stack.isEmpty()) return false; } return true; }
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int index)
|
||||
{ return ((index >= 0) && (index < getSizeInventory())) ? stacks_.get(index) : ItemStack.EMPTY; }
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int index, int count)
|
||||
{ return ItemStackHelper.getAndSplit(stacks_, index, count); }
|
||||
|
||||
@Override
|
||||
public ItemStack removeStackFromSlot(int index)
|
||||
{ return ItemStackHelper.getAndRemove(stacks_, index); }
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int index, ItemStack stack)
|
||||
{ if(stack.getCount()>getInventoryStackLimit()){stack.setCount(getInventoryStackLimit());} stacks_.set(index, stack); markDirty(); }
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit()
|
||||
{ return 1; }
|
||||
|
||||
@Override
|
||||
public void markDirty()
|
||||
{ super.markDirty(); }
|
||||
|
||||
@Override
|
||||
public boolean isUsableByPlayer(EntityPlayer player)
|
||||
{ return ((world.getTileEntity(pos) == this) && (player.getDistanceSq(pos.getX()+0.5d, pos.getY()+0.5d, pos.getZ()+0.5d) <= 64.0d)); }
|
||||
|
||||
@Override
|
||||
public void openInventory(EntityPlayer player)
|
||||
{}
|
||||
|
||||
@Override
|
||||
public void closeInventory(EntityPlayer player)
|
||||
{ markDirty(); }
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int index, ItemStack stack)
|
||||
{ return ((index==0) && accepts_input(stack)) || (index==1); }
|
||||
|
||||
@Override
|
||||
public int getField(int id)
|
||||
{ return 0; }
|
||||
|
||||
@Override
|
||||
public void setField(int id, int value)
|
||||
{}
|
||||
|
||||
@Override
|
||||
public int getFieldCount()
|
||||
{ return 0; }
|
||||
|
||||
@Override
|
||||
public void clear()
|
||||
{ reset_process(); }
|
||||
|
||||
// ISidedInventory ----------------------------------------------------------------------------
|
||||
|
||||
private static final int[] SIDED_INV_SLOTS = new int[] {0,1};
|
||||
|
||||
@Override
|
||||
public int[] getSlotsForFace(EnumFacing side)
|
||||
{ return SIDED_INV_SLOTS; }
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int index, ItemStack stack, EnumFacing direction)
|
||||
{ return (index==0) && isItemValidForSlot(index, stack); }
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction)
|
||||
{ return (index==1) && (!stacks_.get(1).isEmpty()); }
|
||||
|
||||
// IEnergyStorage ----------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public boolean canExtract()
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
public boolean canReceive()
|
||||
{ return true; }
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored()
|
||||
{ return MAX_ENERGY_BUFFER; }
|
||||
|
||||
@Override
|
||||
public int getEnergyStored()
|
||||
{ return energy_stored_; }
|
||||
|
||||
@Override
|
||||
public int extractEnergy(int maxExtract, boolean simulate)
|
||||
{ return 0; }
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(int maxReceive, boolean simulate)
|
||||
{
|
||||
if(energy_stored_ >= MAX_ENERGY_BUFFER) return 0;
|
||||
int n = Math.min(maxReceive, (MAX_ENERGY_BUFFER - energy_stored_));
|
||||
if(n > MAX_ENERGY_TRANSFER) n = MAX_ENERGY_TRANSFER;
|
||||
if(!simulate) {energy_stored_ += n; markDirty(); }
|
||||
return n;
|
||||
}
|
||||
|
||||
// IItemHandler --------------------------------------------------------------------------------
|
||||
|
||||
protected static class BItemHandler implements IItemHandler
|
||||
{
|
||||
private BTileEntity te;
|
||||
|
||||
BItemHandler(BTileEntity te)
|
||||
{ this.te = te; }
|
||||
|
||||
@Override
|
||||
public int getSlots()
|
||||
{ return 2; }
|
||||
|
||||
@Override
|
||||
public int getSlotLimit(int index)
|
||||
{ return te.getInventoryStackLimit(); }
|
||||
|
||||
@Override
|
||||
public boolean isItemValid(int slot, @Nonnull ItemStack stack)
|
||||
{ return te.isItemValidForSlot(slot, stack); }
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public ItemStack insertItem(int index, @Nonnull ItemStack stack, boolean simulate)
|
||||
{
|
||||
ItemStack rstack = stack.copy();
|
||||
if((index!=0) || (!te.insert(stack.copy(), simulate))) return rstack;
|
||||
rstack.shrink(1);
|
||||
return rstack;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public ItemStack extractItem(int index, int amount, boolean simulate)
|
||||
{ return (index!=1) ? ItemStack.EMPTY : te.extract(simulate); }
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public ItemStack getStackInSlot(int index)
|
||||
{ return te.getStackInSlot(index); }
|
||||
}
|
||||
|
||||
private BItemHandler item_handler_ = new BItemHandler(this);
|
||||
|
||||
// IFluidHandler --------------------------------------------------------------------------------
|
||||
|
||||
private static class BFluidHandler implements IFluidHandler, IFluidTankProperties
|
||||
{
|
||||
private final FluidStack lava;
|
||||
private final BTileEntity te;
|
||||
private final IFluidTankProperties[] props_ = {this};
|
||||
BFluidHandler(BTileEntity te) { this.te=te; lava = new FluidStack(FluidRegistry.LAVA, 1); }
|
||||
@Override @Nullable public FluidStack getContents() { return new FluidStack(lava, te.fluid_level()); }
|
||||
@Override public IFluidTankProperties[] getTankProperties() { return props_; }
|
||||
@Override public int fill(FluidStack resource, boolean doFill) { return 0; }
|
||||
@Override public int getCapacity() { return 1000; }
|
||||
@Override public boolean canFill() { return false; }
|
||||
@Override public boolean canDrain() { return true; }
|
||||
@Override public boolean canFillFluidType(FluidStack fluidStack) { return false; }
|
||||
@Override public boolean canDrainFluidType(FluidStack fluidStack) { return fluidStack.isFluidEqual(lava); }
|
||||
|
||||
@Override @Nullable public FluidStack drain(FluidStack resource, boolean doDrain)
|
||||
{
|
||||
if((te.fluid_level() <= 0) || (!resource.isFluidEqual(lava))) return null;
|
||||
FluidStack fs = getContents();
|
||||
if(doDrain) te.fluid_level_drain(fs.amount);
|
||||
return fs;
|
||||
}
|
||||
|
||||
@Override @Nullable public FluidStack drain(int maxDrain, boolean doDrain)
|
||||
{
|
||||
if(te.fluid_level() <= 0) return null;
|
||||
maxDrain = (doDrain) ? (te.fluid_level_drain(maxDrain)) : (Math.min(maxDrain, te.fluid_level()));
|
||||
return new FluidStack(FluidRegistry.LAVA, maxDrain);
|
||||
}
|
||||
}
|
||||
|
||||
private final BFluidHandler fluid_handler_ = new BFluidHandler(this);
|
||||
|
||||
// Capability export ----------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(Capability<?> cap, EnumFacing facing)
|
||||
{ return ((cap==CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||
|| (cap==CapabilityEnergy.ENERGY)
|
||||
|| (cap==CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
|| (super.hasCapability(cap, facing))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
@Nullable
|
||||
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
|
||||
{
|
||||
if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||
return (T)item_handler_;
|
||||
} else if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
|
||||
return (T)fluid_handler_;
|
||||
} else if(capability == CapabilityEnergy.ENERGY) {
|
||||
return (T)this;
|
||||
} else {
|
||||
return super.getCapability(capability, facing);
|
||||
}
|
||||
}
|
||||
|
||||
// ITickable ------------------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
if(world.isRemote) return;
|
||||
if(--tick_timer_ > 0) return;
|
||||
tick_timer_ = TICK_INTERVAL;
|
||||
boolean dirty = false;
|
||||
final int last_phase = phase();
|
||||
final ItemStack istack = stacks_.get(0);
|
||||
if(istack.isEmpty() && (fluid_level()==0)) {
|
||||
progress_ = 0;
|
||||
} else if((energy_stored_ <= 0) || (world.isBlockPowered(pos))) {
|
||||
progress_ = MathHelper.clamp(progress_-cooldown_rate, 0,100);
|
||||
} else if(progress_ >= 100) {
|
||||
progress_ = 100;
|
||||
energy_stored_ = MathHelper.clamp(energy_stored_-((energy_consumption*TICK_INTERVAL)/20), 0, MAX_ENERGY_BUFFER);
|
||||
} else {
|
||||
energy_stored_ = MathHelper.clamp(energy_stored_-(energy_consumption*TICK_INTERVAL), 0, MAX_ENERGY_BUFFER);
|
||||
progress_ = MathHelper.clamp(progress_+heatup_rate, 0, 100);
|
||||
}
|
||||
int new_phase = phase();
|
||||
boolean is_lava_container = accepts_lava_container(istack);
|
||||
if(is_lava_container || (new_phase != last_phase)) {
|
||||
if(is_lava_container) {
|
||||
// That stays in the slot until its extracted or somone takes it out.
|
||||
if(istack.isItemEqual(BUCKET_STACK)) {
|
||||
if(!stacks_.get(1).isItemEqual(LAVA_BUCKET_STACK)) {
|
||||
if(fluid_level() >= MAX_BUCKET_EXTRACT_FLUID_LEVEL) {
|
||||
stacks_.set(1, LAVA_BUCKET_STACK);
|
||||
world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL_LAVA, SoundCategory.BLOCKS, 0.2f, 1.3f);
|
||||
} else {
|
||||
stacks_.set(1, istack.copy());
|
||||
}
|
||||
dirty = true;
|
||||
}
|
||||
} else {
|
||||
stacks_.set(1, istack.copy());
|
||||
// Out stack -> Somehow the filled container or container with fluid+fluid_level().
|
||||
}
|
||||
} else if(new_phase > last_phase) {
|
||||
switch(new_phase) {
|
||||
case PHASE_LAVA:
|
||||
fluid_level_ = MAX_FLUID_LEVEL;
|
||||
stacks_.set(1, ItemStack.EMPTY);
|
||||
stacks_.set(0, ItemStack.EMPTY);
|
||||
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_AMBIENT, SoundCategory.BLOCKS, 0.2f, 1.0f);
|
||||
dirty = true;
|
||||
break;
|
||||
case PHASE_MAGMABLOCK:
|
||||
stacks_.set(1, MAGMA_STACK.copy());
|
||||
world.playSound(null, pos, SoundEvents.BLOCK_FIRE_AMBIENT, SoundCategory.BLOCKS, 0.2f, 0.8f);
|
||||
dirty = true;
|
||||
break;
|
||||
case PHASE_HOT:
|
||||
world.playSound(null, pos, SoundEvents.BLOCK_FIRE_AMBIENT, SoundCategory.BLOCKS, 0.2f, 0.8f);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(new_phase) {
|
||||
case PHASE_MAGMABLOCK:
|
||||
stacks_.set(0, (fluid_level_ >= MAX_BUCKET_EXTRACT_FLUID_LEVEL) ? (MAGMA_STACK.copy()) : (ItemStack.EMPTY));
|
||||
stacks_.set(1, stacks_.get(0).copy());
|
||||
fluid_level_ = 0;
|
||||
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_EXTINGUISH, SoundCategory.BLOCKS, 0.5f, 1.1f);
|
||||
dirty = true;
|
||||
break;
|
||||
case PHASE_HOT:
|
||||
if(istack.isItemEqual(MAGMA_STACK)) {
|
||||
stacks_.set(1, new ItemStack(Blocks.OBSIDIAN));
|
||||
} else {
|
||||
stacks_.set(1, new ItemStack(Blocks.COBBLESTONE));
|
||||
}
|
||||
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_EXTINGUISH, SoundCategory.BLOCKS, 0.3f, 0.9f);
|
||||
dirty = true;
|
||||
break;
|
||||
case PHASE_WARMUP:
|
||||
world.playSound(null, pos, SoundEvents.BLOCK_LAVA_EXTINGUISH, SoundCategory.BLOCKS, 0.3f, 0.7f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
IBlockState state = world.getBlockState(pos);
|
||||
if((state.getBlock() instanceof BlockDecorMineralSmelter) && (force_block_update_ || (state.getValue(PHASE) != new_phase))) {
|
||||
state = state.withProperty(PHASE, new_phase);
|
||||
world.setBlockState(pos, state,3|16);
|
||||
world.notifyNeighborsOfStateChange(pos, state.getBlock(),false);
|
||||
force_block_update_ = false;
|
||||
}
|
||||
if(dirty) markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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",
|
||||
|
@ -90,28 +98,28 @@ public class ModBlocks
|
|||
public static final BlockDecorStraightPole THIN_STEEL_POLE = new BlockDecorStraightPole(
|
||||
"thin_steel_pole",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT,
|
||||
Material.IRON, 1.0f, 15f, SoundType.METAL,
|
||||
Material.IRON, 2.0f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(6,6,0, 10,10,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorStraightPole THIN_STEEL_POLE_HEAD = new BlockDecorStraightPole(
|
||||
"thin_steel_pole_head",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
|
||||
Material.IRON, 1.0f, 15f, SoundType.METAL,
|
||||
Material.IRON, 2.0f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(6,6,0, 10,10,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorStraightPole THICK_STEEL_POLE = new BlockDecorStraightPole(
|
||||
"thick_steel_pole",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT,
|
||||
Material.IRON, 1.0f, 15f, SoundType.METAL,
|
||||
Material.IRON, 2.0f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(5,5,0, 11,11,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorStraightPole THICK_STEEL_POLE_HEAD = new BlockDecorStraightPole(
|
||||
"thick_steel_pole_head",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME,
|
||||
Material.IRON, 1.0f, 15f, SoundType.METAL,
|
||||
Material.IRON, 2.0f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(5,5,0, 11,11,16)
|
||||
);
|
||||
|
||||
|
@ -129,6 +137,13 @@ public class ModBlocks
|
|||
ModAuxiliaries.getPixeledAABB(4.1,0,4.1, 11.8,8.8,11.8)
|
||||
);
|
||||
|
||||
public static final BlockDecor TREATED_WOOD_SIDE_TABLE = new BlockDecor(
|
||||
"treated_wood_side_table",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
|
||||
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
|
||||
ModAuxiliaries.getPixeledAABB(2,0,2, 14,15.9,14)
|
||||
);
|
||||
|
||||
public static final BlockDecorCraftingTable TREATED_WOOD_CRAFTING_TABLE = new BlockDecorCraftingTable(
|
||||
"treated_wood_crafting_table",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
|
||||
|
@ -139,7 +154,7 @@ public class ModBlocks
|
|||
public static final BlockDecorDirected INSET_LIGHT_IRON = new BlockDecorDirected(
|
||||
"iron_inset_light",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT|(14<<BlockDecor.CFG_LIGHT_VALUE_SHIFT),
|
||||
Material.IRON, 0.3f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(5.2,5.2,15.7, 10.8,10.8,16.0)
|
||||
);
|
||||
|
||||
|
@ -168,14 +183,14 @@ public class ModBlocks
|
|||
"small_lab_furnace",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|
|
||||
BlockDecor.CFG_ELECTRICAL,
|
||||
Material.IRON, 0.35f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(1,0,1, 15,15,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorFurnaceElectrical SMALL_ELECTRICAL_FURNACE = new BlockDecorFurnaceElectrical(
|
||||
"small_electrical_furnace",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_ELECTRICAL,
|
||||
Material.IRON, 0.35f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||
);
|
||||
|
||||
|
@ -189,7 +204,7 @@ public class ModBlocks
|
|||
public static final BlockDecorHorizontalSupport STEEL_DOUBLE_T_SUPPORT = new BlockDecorHorizontalSupport(
|
||||
"steel_double_t_support",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_LOOK_PLACEMENT,
|
||||
Material.IRON, 0.5f, 15f, SoundType.METAL,
|
||||
Material.IRON, 2.0f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(5,11,0, 11,16,16)
|
||||
);
|
||||
|
||||
|
@ -197,7 +212,7 @@ public class ModBlocks
|
|||
"straight_pipe_valve",
|
||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||
BlockDecor.CFG_CUTOUT,
|
||||
Material.IRON, 0.35f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||
);
|
||||
|
||||
|
@ -205,7 +220,7 @@ public class ModBlocks
|
|||
"straight_pipe_valve_redstone",
|
||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
||||
Material.IRON, 0.35f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||
);
|
||||
|
||||
|
@ -213,7 +228,7 @@ public class ModBlocks
|
|||
"straight_pipe_valve_redstone_analog",
|
||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_REDSTONE_CONTROLLED|BlockDecor.CFG_ANALOG,
|
||||
Material.IRON, 0.35f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16)
|
||||
);
|
||||
|
||||
|
@ -221,10 +236,31 @@ public class ModBlocks
|
|||
"passive_fluid_accumulator",
|
||||
BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_OPPOSITE_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_SHIFTCLICK|
|
||||
BlockDecor.CFG_CUTOUT,
|
||||
Material.IRON, 0.35f, 15f, SoundType.METAL,
|
||||
Material.IRON, 0.7f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorWasteIncinerator SMALL_WASTE_INCINERATOR = new BlockDecorWasteIncinerator(
|
||||
"small_waste_incinerator",
|
||||
BlockDecor.CFG_DEFAULT|BlockDecor.CFG_ELECTRICAL,
|
||||
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorDropper FACTORY_DROPPER = new BlockDecorDropper(
|
||||
"factory_dropper",
|
||||
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
||||
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,15)
|
||||
);
|
||||
|
||||
public static final BlockDecorMineralSmelter SMALL_MINERAL_SMELTER = new BlockDecorMineralSmelter(
|
||||
"small_mineral_smelter",
|
||||
BlockDecor.CFG_LOOK_PLACEMENT,
|
||||
Material.IRON, 1f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(1.1,0,1.1, 14.9,16,14.9)
|
||||
);
|
||||
|
||||
public static final BlockDecorDirected SIGN_HOTWIRE = new BlockDecorDirected(
|
||||
"sign_hotwire",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT|(1<<BlockDecor.CFG_LIGHT_VALUE_SHIFT),
|
||||
|
@ -253,20 +289,6 @@ public class ModBlocks
|
|||
ModAuxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorWasteIncinerator SMALL_WASTE_INCINERATOR = new BlockDecorWasteIncinerator(
|
||||
"small_waste_incinerator",
|
||||
BlockDecor.CFG_DEFAULT|BlockDecor.CFG_ELECTRICAL,
|
||||
Material.IRON, 0.3f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,16)
|
||||
);
|
||||
|
||||
public static final BlockDecorDropper FACTORY_DROPPER = new BlockDecorDropper(
|
||||
"factory_dropper",
|
||||
BlockDecor.CFG_LOOK_PLACEMENT|BlockDecor.CFG_REDSTONE_CONTROLLED,
|
||||
Material.IRON, 0.3f, 15f, SoundType.METAL,
|
||||
ModAuxiliaries.getPixeledAABB(0,0,0, 16,16,15)
|
||||
);
|
||||
|
||||
public static final BlockDecorDirected SIGN_FACTORY_AREA = new BlockDecorDirected(
|
||||
"sign_factoryarea",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT,
|
||||
|
@ -282,37 +304,37 @@ public class ModBlocks
|
|||
public static final BlockDecorHalfSlab HALFSLAB_CONCRETE = new BlockDecorHalfSlab(
|
||||
"halfslab_concrete",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.ROCK, 0.4f, 10f, SoundType.STONE
|
||||
Material.ROCK, 1.0f, 10f, SoundType.STONE
|
||||
);
|
||||
public static final BlockDecorHalfSlab HALFSLAB_TREATEDWOOD = new BlockDecorHalfSlab(
|
||||
"halfslab_treated_wood",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.WOOD, 0.4f, 4f, SoundType.WOOD
|
||||
Material.WOOD, 0.6f, 4f, SoundType.WOOD
|
||||
);
|
||||
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALIRON = new BlockDecorHalfSlab(
|
||||
"halfslab_sheetmetal_iron",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.IRON, 0.4f, 10f, SoundType.METAL
|
||||
Material.IRON, 0.8f, 10f, SoundType.METAL
|
||||
);
|
||||
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALSTEEL = new BlockDecorHalfSlab(
|
||||
"halfslab_sheetmetal_steel",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.IRON, 0.4f, 10f, SoundType.METAL
|
||||
Material.IRON, 0.8f, 10f, SoundType.METAL
|
||||
);
|
||||
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALCOPPER = new BlockDecorHalfSlab(
|
||||
"halfslab_sheetmetal_copper",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.IRON, 0.4f, 10f, SoundType.METAL
|
||||
Material.IRON, 0.8f, 10f, SoundType.METAL
|
||||
);
|
||||
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALGOLD = new BlockDecorHalfSlab(
|
||||
"halfslab_sheetmetal_gold",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.IRON, 0.4f, 10f, SoundType.METAL
|
||||
Material.IRON, 0.6f, 10f, SoundType.METAL
|
||||
);
|
||||
public static final BlockDecorHalfSlab HALFSLAB_SHEETMETALALUMINIUM = new BlockDecorHalfSlab(
|
||||
"halfslab_sheetmetal_aluminum",
|
||||
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HARD_IE_DEPENDENT,
|
||||
Material.IRON, 0.4f, 10f, SoundType.METAL
|
||||
Material.IRON, 0.6f, 10f, SoundType.METAL
|
||||
);
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -348,6 +370,10 @@ public class ModBlocks
|
|||
BlockDecorDropper.BTileEntity.class, "te_factory_dropper"
|
||||
);
|
||||
|
||||
private static final TileEntityRegistrationData SMALL_MINERAL_SMELTER_TEI = new TileEntityRegistrationData(
|
||||
BlockDecorMineralSmelter.BTileEntity.class, "te_small_mineral_smelter"
|
||||
);
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
//-- Registration list
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -361,17 +387,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,
|
||||
|
@ -393,19 +424,16 @@ public class ModBlocks
|
|||
THICK_STEEL_POLE_HEAD,
|
||||
STEEL_DOUBLE_T_SUPPORT,
|
||||
SIGN_HOTWIRE, SIGN_DANGER, SIGN_DEFENSE, SIGN_FACTORY_AREA, SIGN_MODLOGO,
|
||||
TREATED_WOOD_SIDE_TABLE,
|
||||
HALFSLAB_REBARCONCRETE, HALFSLAB_CONCRETE, HALFSLAB_TREATEDWOOD,
|
||||
HALFSLAB_SHEETMETALIRON, HALFSLAB_SHEETMETALSTEEL, HALFSLAB_SHEETMETALCOPPER,
|
||||
HALFSLAB_SHEETMETALGOLD, HALFSLAB_SHEETMETALALUMINIUM,
|
||||
};
|
||||
|
||||
private static final Object dev_content[] = {
|
||||
SMALL_MINERAL_SMELTER, SMALL_MINERAL_SMELTER_TEI,
|
||||
PANZERGLASS_SLAB, // check if another class is needed due to is_side_visible
|
||||
SIGN_MINDSTEP,
|
||||
// handling not sure yet ...
|
||||
HALFSLAB_REBARCONCRETE,
|
||||
HALFSLAB_CONCRETE,
|
||||
HALFSLAB_TREATEDWOOD,
|
||||
HALFSLAB_SHEETMETALIRON,
|
||||
HALFSLAB_SHEETMETALSTEEL,
|
||||
HALFSLAB_SHEETMETALCOPPER,
|
||||
HALFSLAB_SHEETMETALGOLD,
|
||||
HALFSLAB_SHEETMETALALUMINIUM,
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
*/
|
||||
package wile.engineersdecor.detail;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.client.model.obj.OBJLoader;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
|
@ -23,4 +24,9 @@ public class ClientProxy implements ModEngineersDecor.IProxy
|
|||
@Override
|
||||
public World getWorlClientSide()
|
||||
{ return Minecraft.getMinecraft().world; }
|
||||
|
||||
@Override
|
||||
public EntityPlayer getPlayerClientSide()
|
||||
{ return Minecraft.getMinecraft().player; }
|
||||
|
||||
}
|
||||
|
|
|
@ -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"}}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:furnace/small_mineral_smelter_model"
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing": { "north": {"y":0}, "south": {"y":180}, "west": {"y":-90}, "east": {"y":90} },
|
||||
"phase": {
|
||||
"0":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s0" } },
|
||||
"1":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s1" } },
|
||||
"2":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s2" } },
|
||||
"3":{ "textures":{ "front":"engineersdecor:blocks/furnace/small_mineral_smelter_front_s3" } }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:furniture/treated_wood_side_table_model"
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -5,10 +5,9 @@
|
|||
#
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
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 +24,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
|
||||
|
@ -80,6 +92,8 @@ tile.engineersdecor.treated_wood_crafting_table.help=§6Robust and weather-proof
|
|||
Click up/down arrow buttons for crafting history selection, output slot for item placement, X-button \
|
||||
to clear crafting grid and history. Shift-click stack: player-to-storage stack transfer when crafting \
|
||||
grid empty, otherwise player-to-grid stack transfer. Automatically distributes the clicked stack.
|
||||
tile.engineersdecor.treated_wood_side_table.name=Treated Wood Side Table
|
||||
tile.engineersdecor.treated_wood_side_table.help=§6Needed after the work's done.
|
||||
tile.engineersdecor.iron_inset_light.name=Inset Light
|
||||
tile.engineersdecor.iron_inset_light.help=§6Small glowstone light source, sunk into the floor, ceiling or wall.§r\n\
|
||||
Useful to light up places where electrical light installations are problematic.\
|
||||
|
@ -132,6 +146,11 @@ tile.engineersdecor.factory_dropper.help=§6Dropper suitable for advanced factor
|
|||
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
||||
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
||||
simultaneously. Click on all elements in the GUI to see how it works.
|
||||
tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||
tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulation electrical stone melting furnace.§r\n\
|
||||
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||
miniturized device size the process is rather inefficient - much time and \
|
||||
energy is needed to liquefy a stone block.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
||||
tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||
|
@ -162,6 +181,52 @@ tile.engineersdecor.halfslab_sheetmetal_gold.name=Gold Sheet Metal Slice
|
|||
tile.engineersdecor.halfslab_sheetmetal_gold.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_aluminum.name=Aluminum Sheet Metal Slice
|
||||
tile.engineersdecor.halfslab_sheetmetal_aluminum.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
engineersdecor.config.title=Engineer's Decor Config
|
||||
engineersdecor.config.pattern_excludes=Pattern excludes
|
||||
engineersdecor.config.pattern_includes=Pattern includes
|
||||
engineersdecor.config.without_clinker_bricks=Without clinker bricks
|
||||
engineersdecor.config.without_slag_bricks=Without slag bricks
|
||||
engineersdecor.config.without_rebar_concrete=Without rebar concrete
|
||||
engineersdecor.config.without_walls=Without walls
|
||||
engineersdecor.config.without_stairs=Without stairs
|
||||
engineersdecor.config.without_ie_concrete_wall=Without concrete wall
|
||||
engineersdecor.config.without_panzer_glass=Without panzer glass
|
||||
engineersdecor.config.without_crafting_table=Without crafting table
|
||||
engineersdecor.config.without_lab_furnace=Without lab furnace
|
||||
engineersdecor.config.without_electrical_furnace=Without electrical furnace
|
||||
engineersdecor.config.without_treated_wood_furniture=Without tr. wood furniture
|
||||
engineersdecor.config.without_windows=Without windows
|
||||
engineersdecor.config.without_light_sources=Without lights
|
||||
engineersdecor.config.without_ladders=Without ladders
|
||||
engineersdecor.config.without_chair_sitting=Without chair sitting
|
||||
engineersdecor.config.without_mob_chair_sitting=Without chair mob sitting
|
||||
engineersdecor.config.without_ladder_speed_boost=Without ladder speed boost
|
||||
engineersdecor.config.without_crafting_table_history=Without crafting table history
|
||||
engineersdecor.config.without_valves=Without valves
|
||||
engineersdecor.config.without_passive_fluid_accumulator=Without fluid accumulator
|
||||
engineersdecor.config.without_waste_incinerator=Without waste incinerator
|
||||
engineersdecor.config.without_sign_plates=Without signs
|
||||
engineersdecor.config.without_factory_dropper=Without factory dropper
|
||||
engineersdecor.config.without_slabs=Without slabs
|
||||
engineersdecor.config.without_halfslabs=Without slab slices
|
||||
engineersdecor.config.without_direct_slab_pickup=Without slab pickup
|
||||
engineersdecor.config.without_poles=Without poles
|
||||
engineersdecor.config.without_hsupports=Without h. supports
|
||||
engineersdecor.config.without_tooltips=Without tooltips
|
||||
engineersdecor.config.without_recipes=Without recipes
|
||||
engineersdecor.config.furnace_smelting_speed_percent=Furnace: Smelting speed %
|
||||
engineersdecor.config.furnace_fuel_efficiency_percent=Furnace: Fuel efficiency %
|
||||
engineersdecor.config.furnace_boost_energy_consumption=Furnace: Boost energy
|
||||
engineersdecor.config.chair_mob_sitting_probability_percent=Chairs: Sitting chance %
|
||||
engineersdecor.config.chair_mob_standup_probability_percent="Chairs: Stand up chance %"
|
||||
engineersdecor.config.with_crafting_quickmove_buttons=Crafting table: Move buttons
|
||||
engineersdecor.config.pipevalve_max_flowrate=Valves: Max flow rate
|
||||
engineersdecor.config.pipevalve_redstone_gain=Valves: Redstone slope
|
||||
engineersdecor.config.e_furnace_speed_percent=E-furnace: Smelting speed %
|
||||
engineersdecor.config.e_furnace_power_consumption=E-furnace: Power consumption
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# EOF
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -5,17 +5,16 @@
|
|||
#
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
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
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.clinker_brick_block.name=Клинкерный кирпич
|
||||
tile.engineersdecor.clinker_brick_block.help=§6Кирпичный блок с вариациями текстуры, зависящими от положения.§r\nВыглядит немного темнее и интенсивнее, чем ванильный кирпичный блок.
|
||||
tile.engineersdecor.clinker_brick_stained_block.name=Stained Clinker Brick Block
|
||||
#tile.engineersdecor.clinker_brick_stained_block.help=§6A brick block with position dependent texture variations.§r\nLooks slightly darker and more color intensive than the vanilla brick block. Has more visible traces of grime or stain.
|
||||
tile.engineersdecor.clinker_brick_stained_block.name=Грязный клинкерный кирпич
|
||||
tile.engineersdecor.clinker_brick_stained_block.help=§6Кирпичный блок с вариациями текстуры, зависящими от положения.§r\nВыглядит немного темнее и интенсивнее, чем ванильный кирпичный блок. Имеет более заметные следы грязи или пятен.
|
||||
tile.engineersdecor.slag_brick_block.name=Шлакоблок
|
||||
tile.engineersdecor.slag_brick_block.help=§6Серо-коричневый кирпичный блок с зависимыми от положения вариациями текстуры.
|
||||
tile.engineersdecor.rebar_concrete.name=Железобетон
|
||||
|
@ -25,6 +24,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=Бетонная стена
|
||||
|
@ -43,8 +55,8 @@ tile.engineersdecor.treated_wood_ladder.help=§6Погодоустойчивая
|
|||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.clinker_brick_stairs.name=Клинкерная кирпичная лестница
|
||||
tile.engineersdecor.clinker_brick_stairs.help=§6По цвету выглядит немного темнее и интенсивнее, чем ванильный кирпичный блок
|
||||
tile.engineersdecor.clinker_brick_stained_stairs.name=Stained Clinker Brick Stairs
|
||||
#tile.engineersdecor.clinker_brick_stained_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block. Has more visible traces of grime or stain.
|
||||
tile.engineersdecor.clinker_brick_stained_stairs.name=Грязная кирпичная лестница
|
||||
tile.engineersdecor.clinker_brick_stained_stairs.help=§6Выглядит немного темнее и интенсивнее, чем ванильный кирпичный блок. Имеет более заметные следы грязи или пятен.
|
||||
tile.engineersdecor.slag_brick_stairs.name=Клинкерная кирпичная лестница
|
||||
tile.engineersdecor.slag_brick_stairs.help=§6По цвету выглядит немного темнее и интенсивнее, чем ванильный кирпичный блок.
|
||||
tile.engineersdecor.rebar_concrete_stairs.name=Железобетонная лестница
|
||||
|
@ -57,19 +69,19 @@ tile.engineersdecor.treated_wood_pole.help=§6Надёжный столб с д
|
|||
Может быть полезен в качестве альтернативы электро-столбам, если требуется особая специальная длина, \
|
||||
или как опора для конструкций.
|
||||
tile.engineersdecor.treated_wood_pole_head.name=Прямой обработанный деревянный столб верхняя часть/основание
|
||||
#tile.engineersdecor.treated_wood_pole_head.help=§6Wooden part fitting as foot or head of straight poles.
|
||||
tile.engineersdecor.treated_wood_pole_head.help=§6Деревянная часть, подходит как основание или наконечник прямых столбов.
|
||||
tile.engineersdecor.treated_wood_pole_support.name=Прямой обработанный деревянный столб
|
||||
#tile.engineersdecor.treated_wood_pole_support.help=§6Heavy duty wooden support part fitting as foot or head of straight poles.
|
||||
tile.engineersdecor.thick_steel_pole.name=Straight thick steel pole
|
||||
#tile.engineersdecor.thick_steel_pole.help=§6Straight hollow pole fragment (6x6x16) for structural support purposes.
|
||||
tile.engineersdecor.thin_steel_pole.name=Straight thin steel pole
|
||||
#tile.engineersdecor.thin_steel_pole.help=§6Straight hollow pole fragment (4x4x16) for structural support purposes.
|
||||
tile.engineersdecor.thin_steel_pole_head.name=Straight thin steel pole head/foot
|
||||
#tile.engineersdecor.thin_steel_pole_head.help=§6Steel part fitting as foot or head of the thin steel pole (4x4x16).
|
||||
tile.engineersdecor.thick_steel_pole_head.name=Straight thick steel pole head/foot
|
||||
#tile.engineersdecor.thick_steel_pole_head.help=§6Steel part fitting as foot or head of the thick steel pole (6x6x16).
|
||||
tile.engineersdecor.steel_double_t_support.name=Steel double T support
|
||||
#tile.engineersdecor.steel_double_t_support.help=§6Horizontal ceiling support bream fragment.
|
||||
tile.engineersdecor.treated_wood_pole_support.help=§6Усиленная деревянная опорная часть, подходит как основание или наконечник прямых столбов.
|
||||
tile.engineersdecor.thick_steel_pole.name=Прямой толстый стальной столб
|
||||
tile.engineersdecor.thick_steel_pole.help=§6Фрагмент прямого полого столба (6x6x16) для поддержки конструкции.
|
||||
tile.engineersdecor.thin_steel_pole.name=Прямой тонкий стальной столб
|
||||
tile.engineersdecor.thin_steel_pole.help=§6Фрагмент прямого полого столба (4x4x16) для поддержки конструкции.
|
||||
tile.engineersdecor.thin_steel_pole_head.name=Прямое тонкое стальное основание/наконечник столбов
|
||||
tile.engineersdecor.thin_steel_pole_head.help=§6Стальная часть, подходящая как основание или наконечник тонкого стального столба (4x4x16).
|
||||
tile.engineersdecor.thick_steel_pole_head.name=Прямое толстое стальное основание/наконечник столбов
|
||||
tile.engineersdecor.thick_steel_pole_head.help=§6Стальная часть, подходящая как основание или наконечник тонкого стального столба (4x4x16).
|
||||
tile.engineersdecor.steel_double_t_support.name=Стальная двойная Т-образная опора
|
||||
tile.engineersdecor.steel_double_t_support.help=§6Фрагмент горизонтальной потолочной опорной балки.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.treated_wood_table.name=Стол из обработанного дерева
|
||||
tile.engineersdecor.treated_wood_table.help=§6Прочный деревянный стол с четырьмя ножками .§r Для использования в помещении и на улице.
|
||||
|
@ -77,6 +89,8 @@ tile.engineersdecor.treated_wood_stool.name=Табурет из обработа
|
|||
tile.engineersdecor.treated_wood_stool.help=§6Крепкий деревянный табурет.§r Для использования в помещении и на улице.
|
||||
tile.engineersdecor.treated_wood_crafting_table.name=Верстак из обработанного дерева
|
||||
tile.engineersdecor.treated_wood_crafting_table.help=§6Прочный и устойчивый к погодным условиям. Восемь слотов для хранения. Хранит инвентарь.
|
||||
tile.engineersdecor.treated_wood_side_table.name=Treated Wood Side Table
|
||||
#tile.engineersdecor.treated_wood_side_table.help=§6Needed after the work's done.
|
||||
tile.engineersdecor.iron_inset_light.name=Встраиваемый осветитель
|
||||
tile.engineersdecor.iron_inset_light.help=§6Маленький источник света, интегрируемый в стены, пол или потолок.§r\n\
|
||||
Полезно для освещения мест, где проблематичны электрические осветительные установки.\
|
||||
|
@ -86,75 +100,128 @@ tile.engineersdecor.treated_wood_window.help=§6Деревянный карка
|
|||
tile.engineersdecor.treated_wood_windowsill.name=Обработанный деревянный подоконник
|
||||
tile.engineersdecor.treated_wood_windowsill.help=§6Простое оформление окон.
|
||||
tile.engineersdecor.steel_framed_window.name=Окно со стальной рамой
|
||||
#tile.engineersdecor.steel_framed_window.help=§6Steel framed triple glazed window. Well insulating. §r Does not connect to adjacent blocks like glass panes.
|
||||
tile.engineersdecor.steel_framed_window.help=§6Стальной каркас окна с тройным остеклением. Хорошо изолирует. §r Не подключается к смежным блокам, таким как стеклянные панели.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.small_lab_furnace.name=Компактная лабораторная печь
|
||||
tile.engineersdecor.small_lab_furnace.help=§6Лабораторная печь в металлическом корпусе.§r Подача твёрдого топлива - сверху. Немного горячее чем каменная, поэтому быстрее. Два внутренних слота для ввода, выхода и топлива.
|
||||
tile.engineersdecor.small_electrical_furnace.name=Small electrical furnace
|
||||
#tile.engineersdecor.small_electrical_furnace.help=§6Small metal cased pass-through furnace.§r \
|
||||
Automatically draws items from the input side and puts items into the inventory at the output side. \
|
||||
Items can be inserted or drawn from all sides using hoppers. Implicitly bypasses items that cannot be \
|
||||
smelted or cooked to the output. Slightly more energy efficient and faster than a heated cobblestone \
|
||||
furnace. Fifos and feeders transfer whole stacks. Feeders require a bit of power.
|
||||
tile.engineersdecor.small_waste_incinerator.name=Small waste incinerator
|
||||
#tile.engineersdecor.small_waste_incinerator.help=§6Trash with internal fifo slots.§r Items can be inserted on all sides, and are kept until \
|
||||
there is no space left in the fifo. After that the oldest stack will be incinerated. Apply \
|
||||
electrical RF/FE power to increase the processing speed. Keeps its inventory when being \
|
||||
relocated.
|
||||
tile.engineersdecor.small_electrical_furnace.name=Компактная конвейерная электрическая печь
|
||||
tile.engineersdecor.small_electrical_furnace.help=§6Компактная конвейерная печь в металлическом корпусе.§r \
|
||||
Автоматически принимает предметы со стороны ввода и складывает в инвентарь со стороны вывода. \
|
||||
Предметы могут быть импортированы/вытянуты со всех сторон с помощью воронок. Без проблем пропускает \
|
||||
элементы, которые нельзя выплавить или приготовить. Чуть более энергоэффективная и быстра, \
|
||||
чем утеплённая булыжная печь. Транспортировка работает стеками. Механизм требует немного энергии.
|
||||
tile.engineersdecor.small_waste_incinerator.name=Компактный сжигатель отходов
|
||||
tile.engineersdecor.small_waste_incinerator.help=§6Отходы с слотами очереди.§r Предметы могут помещаться с любой стороны, и храниться \
|
||||
до тех пор, пока в очереди не останется свободного места. После этого самый старый стэк \
|
||||
будет сожжен. Подключите электричество (RF/FE) для увеличения скорости обработки. \
|
||||
Сохраняет инвентарь при перемещении.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.straight_pipe_valve.name=Straight fluid valve
|
||||
#tile.engineersdecor.straight_pipe_valve.help=§6Straight fluid pipe fragment.§r Conducts fluids only in one direction. \
|
||||
Does not connect to the sides. Reduces flow rate. Sneak to place in reverse direction.
|
||||
tile.engineersdecor.straight_pipe_valve_redstone.name=Redstone controlled fluid valve
|
||||
#tile.engineersdecor.straight_pipe_valve_redstone.help=§6Straight fluid pipe fragment.§r Conducts fluids only in one direction. \
|
||||
Does not connect to the sides. Sneak to place in reverse direction. \
|
||||
Blocks if not redstone powered.
|
||||
tile.engineersdecor.straight_pipe_valve_redstone_analog.name=Redstone analog fluid valve
|
||||
#tile.engineersdecor.straight_pipe_valve_redstone_analog.help=§6Straight fluid pipe fragment.§r Conducts fluids only in one direction. \
|
||||
Does not connect to the sides. Sneak to place in reverse direction. \
|
||||
Blocks if not redstone powered, reduces the flow rate linear from power 1 to 14, \
|
||||
opens to maximum possible valve flow rate for power 15.
|
||||
tile.engineersdecor.passive_fluid_accumulator.name=Passive fluid accumulator
|
||||
#tile.engineersdecor.passive_fluid_accumulator.help=§6Vacuum suction based fluid collector.§r Has one output, all other sides are input. \
|
||||
Drains fluids from adjacent tanks when being drained from the output port by a pump.
|
||||
tile.engineersdecor.straight_pipe_valve.name=Жидкостный одноканальный клапан
|
||||
tile.engineersdecor.straight_pipe_valve.help=§6Фрагмент прямой трубы.§r проводит жидкость только в одном направлении. \
|
||||
Не соединяется по бокам. Уменьшает пропускную способность. \
|
||||
SHIFT для размещения в противоположном направлении.
|
||||
tile.engineersdecor.straight_pipe_valve_redstone.name=Редстоун-контролируемый жидкостный клапан
|
||||
tile.engineersdecor.straight_pipe_valve_redstone.help=§6Фрагмент прямой трубы.§r Проводит жидкости только в одном направлении. \
|
||||
Не соединяется по бокам. SHIFT - чтобы разместить в обратном направлении. \
|
||||
Блокирует поток, если присутствует сигнал красного камня.
|
||||
tile.engineersdecor.straight_pipe_valve_redstone_analog.name=Редстоун-аналоговый клапан для жидкости
|
||||
tile.engineersdecor.straight_pipe_valve_redstone_analog.help=§6Фрагмент прямой трубы.§r Проводит жидкости только в одном направлении. \
|
||||
Не соединяется по бокам. SHIFT - чтобы разместить в обратном направлении. \
|
||||
Не пропускает при отсутствии красного сигнала, уменьшает расход линейно с мощности 1 до 14, \
|
||||
открывается максимально-возможно при уровне красного сигнала 15.
|
||||
tile.engineersdecor.passive_fluid_accumulator.name=Пассивный жидкостный накопитель
|
||||
tile.engineersdecor.passive_fluid_accumulator.help=§6Вакуумный всасывающий жидкостный коллектор§r Имеет один выход, все остальные стороны - входные. \
|
||||
Сливает жидкости из соседних резервуаров при выкачивании жидкости из выходного порта.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.factory_dropper.name=Factory dropper
|
||||
#tile.engineersdecor.factory_dropper.help=§6Dropper suitable for advanced factory automation.§r Has twelve round-robin selected slots. \
|
||||
Drop force, angle, stack size, and cool-down delay adjustable in the GUI. Three stack compare \
|
||||
slots with logical AND or OR can be used as internal trigger source. Internal trigger can be \
|
||||
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
||||
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
||||
simultaneously. Click on all elements in the GUI to see how it works.
|
||||
tile.engineersdecor.factory_dropper.name=Фабричный выбрасыватель
|
||||
tile.engineersdecor.factory_dropper.help=§6Выбрасыватель подходит для продвинутой автоматизации производства.§r Имеет двенадцать выборочных слотов. \
|
||||
Сила броска, угол, размер стопки и задержка настраиваются в GUI. Три слота сравнения стека \
|
||||
с логическим И или ИЛИ могут использоваться в качестве внутреннего источника запуска. \
|
||||
Внутренний триггер может быть И или ИЛИ с внешним триггерным сигналом красного камня. \
|
||||
Триггерные кнопки симуляции для тестирования. Предварительно открывает дверцу затвора, \
|
||||
когда выполняются условия внутреннего запуска. Сбрасывает все соответствующие стеки одновременно. \
|
||||
Нажмите на все элементы в GUI, чтобы увидеть, как это работает.
|
||||
tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||
#tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulation electrical stone melting furnace.§r\n\
|
||||
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||
miniturized device size the process is rather inefficient - much time and \
|
||||
energy is needed to liquefy a stone block.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.sign_decor.name=Sign plate (Engineer's decor logo)
|
||||
#tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||
tile.engineersdecor.sign_hotwire.name=Sign "Caution hot wire"
|
||||
#tile.engineersdecor.sign_hotwire.help=§6Electrical hazard warning. Don't forget to place around HV, or you'll have a mark in the next audit.
|
||||
tile.engineersdecor.sign_mindstep.name=Sign "Mind the step"
|
||||
#tile.engineersdecor.sign_mindstep.help=§6Placable on walls (horizontally).
|
||||
tile.engineersdecor.sign_danger.name=Sign "Caution really dangerous there"
|
||||
#tile.engineersdecor.sign_danger.help=§6General danger warning.
|
||||
tile.engineersdecor.sign_defense.name=Sign "Caution Defense System Ahead"
|
||||
#tile.engineersdecor.sign_defense.help=§6Warning sign for turrets, Tesla Coils, and traps.
|
||||
tile.engineersdecor.sign_factoryarea.name=Sign "Factory Area"
|
||||
#tile.engineersdecor.sign_factoryarea.help=§6Marker sign for buildings or areas where the really big machines are.
|
||||
tile.engineersdecor.sign_decor.name=Табличка с надписью (Логотип Engineer's decor)
|
||||
tile.engineersdecor.sign_decor.help=§Это не должно быть крафтовым или видимым в JEI. Используется для творческой вкладки и скриншотов.
|
||||
tile.engineersdecor.sign_hotwire.name=Знак «Осторожно, под напряжением»
|
||||
tile.engineersdecor.sign_hotwire.help=§6Предупреждение об опасности поражения электрическим током. Не забудьте разместить вокруг HV, иначе у вас будет штраф при следующей проверке.
|
||||
tile.engineersdecor.sign_mindstep.name=Знак «Осторожно, там ступеньки!»
|
||||
tile.engineersdecor.sign_mindstep.help=§6Размещается на стенах (горизонтально)
|
||||
tile.engineersdecor.sign_danger.name=Знак «Осторожно, там опасность»
|
||||
tile.engineersdecor.sign_danger.help=§6Общее предупреждение об опасности.
|
||||
tile.engineersdecor.sign_defense.name=Знак «Осторожно, впереди система обороны»
|
||||
tile.engineersdecor.sign_defense.help=§6Предупреждающий знак для турелей, катушек Тесла и ловушек.
|
||||
tile.engineersdecor.sign_factoryarea.name=Знак «Заводская зона»
|
||||
tile.engineersdecor.sign_factoryarea.help=§6Знак для зданий или областей, где находятся действительно большие машины.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.halfslab_rebar_concrete.name=Rebar Concrete Slice
|
||||
#tile.engineersdecor.halfslab_rebar_concrete.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_concrete.name=Concrete Slice
|
||||
#tile.engineersdecor.halfslab_concrete.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_treated_wood.name=Treated Wood Slice
|
||||
#tile.engineersdecor.halfslab_treated_wood.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_iron.name=Iron Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_iron.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_steel.name=Steel Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_steel.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_copper.name=Copper Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_copper.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_gold.name=Gold Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_gold.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_aluminum.name=Aluminum Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_aluminum.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_rebar_concrete.name=Арматура для бетона
|
||||
tile.engineersdecor.halfslab_rebar_concrete.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_concrete.name=Бетонный срез
|
||||
tile.engineersdecor.halfslab_concrete.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_treated_wood.name=Часть обработанного дерева
|
||||
tile.engineersdecor.halfslab_treated_wood.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_sheetmetal_iron.name=Часть железного листового металла
|
||||
tile.engineersdecor.halfslab_sheetmetal_iron.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_sheetmetal_steel.name=Часть стального листового металла
|
||||
tile.engineersdecor.halfslab_sheetmetal_steel.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_sheetmetal_copper.name=Часть медного листового металла
|
||||
tile.engineersdecor.halfslab_sheetmetal_copper.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_sheetmetal_gold.name=Часть золотого листового металла
|
||||
tile.engineersdecor.halfslab_sheetmetal_gold.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
tile.engineersdecor.halfslab_sheetmetal_aluminum.name=Часть алюминиевого листового металла
|
||||
tile.engineersdecor.halfslab_sheetmetal_aluminum.help=§6Вертикально наращиваемая часть.§rПравый/левый щелчок со стеком частей на верхней или нижней поверхности для добавления/удаления частей.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
engineersdecor.config.title=Engineer's Decor конфигурация
|
||||
engineersdecor.config.pattern_excludes=Pattern excludes
|
||||
engineersdecor.config.pattern_includes=Pattern includes
|
||||
engineersdecor.config.without_clinker_bricks=Without clinker bricks
|
||||
engineersdecor.config.without_slag_bricks=Without slag bricks
|
||||
engineersdecor.config.without_rebar_concrete=Without rebar concrete
|
||||
engineersdecor.config.without_walls=Without walls
|
||||
engineersdecor.config.without_stairs=Without stairs
|
||||
engineersdecor.config.without_ie_concrete_wall=Without concrete wall
|
||||
engineersdecor.config.without_panzer_glass=Without panzer glass
|
||||
engineersdecor.config.without_crafting_table=Without crafting table
|
||||
engineersdecor.config.without_lab_furnace=Without lab furnace
|
||||
engineersdecor.config.without_electrical_furnace=Without electrical furnace
|
||||
engineersdecor.config.without_treated_wood_furniture=Without tr. wood furniture
|
||||
engineersdecor.config.without_windows=Without windows
|
||||
engineersdecor.config.without_light_sources=Without lights
|
||||
engineersdecor.config.without_ladders=Without ladders
|
||||
engineersdecor.config.without_chair_sitting=Without chair sitting
|
||||
engineersdecor.config.without_mob_chair_sitting=Without chair mob sitting
|
||||
engineersdecor.config.without_ladder_speed_boost=Without ladder speed boost
|
||||
engineersdecor.config.without_crafting_table_history=Without crafting table history
|
||||
engineersdecor.config.without_valves=Without valves
|
||||
engineersdecor.config.without_passive_fluid_accumulator=Without fluid accumulator
|
||||
engineersdecor.config.without_waste_incinerator=Without waste incinerator
|
||||
engineersdecor.config.without_sign_plates=Without signs
|
||||
engineersdecor.config.without_factory_dropper=Without factory dropper
|
||||
engineersdecor.config.without_slabs=Without slabs
|
||||
engineersdecor.config.without_halfslabs=Without slab slices
|
||||
engineersdecor.config.without_direct_slab_pickup=Without slab pickup
|
||||
engineersdecor.config.without_poles=Without poles
|
||||
engineersdecor.config.without_hsupports=Without h. supports
|
||||
engineersdecor.config.without_tooltips=Without tooltips
|
||||
engineersdecor.config.without_recipes=Without recipes
|
||||
engineersdecor.config.furnace_smelting_speed_percent=Furnace: Smelting speed %
|
||||
engineersdecor.config.furnace_fuel_efficiency_percent=Furnace: Fuel efficiency %
|
||||
engineersdecor.config.furnace_boost_energy_consumption=Furnace: Boost energy
|
||||
engineersdecor.config.chair_mob_sitting_probability_percent=Chairs: Sitting chance %
|
||||
engineersdecor.config.chair_mob_standup_probability_percent="Chairs: Stand up chance %"
|
||||
engineersdecor.config.with_crafting_quickmove_buttons=Crafting table: Move buttons
|
||||
engineersdecor.config.pipevalve_max_flowrate=Valves: Max flow rate
|
||||
engineersdecor.config.pipevalve_redstone_gain=Valves: Redstone slope
|
||||
engineersdecor.config.e_furnace_speed_percent=E-furnace: Smelting speed %
|
||||
engineersdecor.config.e_furnace_power_consumption=E-furnace: Power consumption
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# EOF
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
|
|
230
1.12/src/main/resources/assets/engineersdecor/lang/zh_cn.lang
Normal file
|
@ -0,0 +1,230 @@
|
|||
#
|
||||
# Engineer's Decor lang file
|
||||
#
|
||||
#PARSE_ESCAPES
|
||||
#
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
itemGroup.tabengineersdecor=工程师的装饰
|
||||
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
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.clinker_brick_block.name=熟料砖
|
||||
tile.engineersdecor.clinker_brick_block.help=§6具有位置相关纹理变化的砖块.§r\n看起来比原版砖块稍暗,颜色更浓.
|
||||
tile.engineersdecor.clinker_brick_stained_block.name=Stained Clinker Brick Block
|
||||
#tile.engineersdecor.clinker_brick_stained_block.help=§6A brick block with position dependent texture variations.§r\nLooks slightly darker and more color intensive than the vanilla brick block. Has more visible traces of grime or stain.
|
||||
tile.engineersdecor.slag_brick_block.name=炉渣砖
|
||||
tile.engineersdecor.slag_brick_block.help=§6灰褐色砖块,具有位置相关的纹理变化.
|
||||
tile.engineersdecor.rebar_concrete.name=钢筋混凝土
|
||||
tile.engineersdecor.rebar_concrete.help=§6钢筋混凝土砌块.§r 昂贵,但像黑曜石一样防苦力怕.
|
||||
tile.engineersdecor.panzerglass_block.name=Panzer Glass Block
|
||||
#tile.engineersdecor.panzerglass_block.help=§6Reinforced glass block.§r Expensive, explosion-proof. Dark gray tint, faint structural lines visible, multi texture for seemless look.
|
||||
tile.engineersdecor.rebar_concrete_tile.name=Rebar Concrete Tile
|
||||
#tile.engineersdecor.rebar_concrete_tile.help=§6Steel reinforced concrete tile.§r Expensive but Creeper-proof like obsidian.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.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=水泥墙
|
||||
tile.engineersdecor.concrete_wall.help=§6墙由坚固的混凝土制成.
|
||||
tile.engineersdecor.clinker_brick_wall.name=Clinker Brick Wall
|
||||
#tile.engineersdecor.clinker_brick_wall.help=§6Simplistic Clinker Brick Wall.
|
||||
tile.engineersdecor.slag_brick_wall.name=Slag Brick Wall
|
||||
#tile.engineersdecor.slag_brick_wall.help=§6Simplistic Slag Brick Wall.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.metal_rung_ladder.name=金属环梯
|
||||
tile.engineersdecor.metal_rung_ladder.help=§6典型的工业墙梯,包括水平金属杆横档.
|
||||
tile.engineersdecor.metal_rung_steps.name=交错的金属台阶
|
||||
tile.engineersdecor.metal_rung_steps.help=§6贴在墙上的交错的杆横档,允许爬上,爬下等等.
|
||||
tile.engineersdecor.treated_wood_ladder.name=经过处理的木梯
|
||||
tile.engineersdecor.treated_wood_ladder.help=§6防风雨的木梯.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.clinker_brick_stairs.name=熟料砖楼梯
|
||||
tile.engineersdecor.clinker_brick_stairs.help=§6看起来比原版砖块稍暗,颜色更浓.
|
||||
tile.engineersdecor.clinker_brick_stained_stairs.name=Stained Clinker Brick Stairs
|
||||
#tile.engineersdecor.clinker_brick_stained_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block. Has more visible traces of grime or stain.
|
||||
tile.engineersdecor.slag_brick_stairs.name=炉渣砖楼梯
|
||||
tile.engineersdecor.slag_brick_stairs.help=§6灰褐色砖块楼梯.
|
||||
tile.engineersdecor.rebar_concrete_stairs.name=钢筋混凝土楼梯
|
||||
tile.engineersdecor.rebar_concrete_stairs.help=§6钢筋混凝土楼梯.§r 昂贵,但像黑曜石一样防苦力怕.
|
||||
tile.engineersdecor.rebar_concrete_tile_stairs.name=Rebar Concrete Tile Stairs
|
||||
#tile.engineersdecor.rebar_concrete_tile_stairs.help=§6Steel reinforced concrete tile stairs.§r Expensive but Creeper-proof like obsidian.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.treated_wood_pole.name=直立处理木杆
|
||||
tile.engineersdecor.treated_wood_pole.help=§6具有导线继电器直径的直极片段.§r\n如果需要特殊的特殊长度,或作为结构的支撑,可以作为线柱的替代品.
|
||||
tile.engineersdecor.treated_wood_pole_head.name=Straight Treated Wood Pole Head/Foot
|
||||
#tile.engineersdecor.treated_wood_pole_head.help=§6Wooden part fitting as foot or head of straight poles.
|
||||
tile.engineersdecor.treated_wood_pole_support.name=Straight Treated Wood Pole Support
|
||||
#tile.engineersdecor.treated_wood_pole_support.help=§6Heavy duty wooden support part fitting as foot or head of straight poles.
|
||||
tile.engineersdecor.thick_steel_pole.name=Straight Thick Steel Pole
|
||||
#tile.engineersdecor.thick_steel_pole.help=§6Straight hollow pole fragment (6x6x16) for structural support purposes.
|
||||
tile.engineersdecor.thin_steel_pole.name=Straight Thin Steel Pole
|
||||
#tile.engineersdecor.thin_steel_pole.help=§6Straight hollow pole fragment (4x4x16) for structural support purposes.
|
||||
tile.engineersdecor.thin_steel_pole_head.name=Straight Thin Steel Pole head/foot
|
||||
#tile.engineersdecor.thin_steel_pole_head.help=§6Steel part fitting as foot or head of the thin steel pole (4x4x16).
|
||||
tile.engineersdecor.thick_steel_pole_head.name=Straight Thick Steel Pole Head/Foot
|
||||
#tile.engineersdecor.thick_steel_pole_head.help=§6Steel part fitting as foot or head of the thick steel pole (6x6x16).
|
||||
tile.engineersdecor.steel_double_t_support.name=Steel Double T Support
|
||||
#tile.engineersdecor.steel_double_t_support.help=§6Horizontal ceiling support bream fragment.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.treated_wood_table.name=经过处理的木桌
|
||||
tile.engineersdecor.treated_wood_table.help=§6坚固的四足木桌.
|
||||
tile.engineersdecor.treated_wood_stool.name=Treated Wood Stool
|
||||
#tile.engineersdecor.treated_wood_stool.help=§6Robust Wood Stool.§r Indoor and outdoor use.
|
||||
tile.engineersdecor.treated_wood_crafting_table.name=Treated Wood Crafting Table
|
||||
#tile.engineersdecor.treated_wood_crafting_table.help=§6Robust and weather-proof.§r Eight storage slots, keeps inventory, no vanilla recipe book.\n\
|
||||
Click up/down arrow buttons for crafting history selection, output slot for item placement, X-button \
|
||||
to clear crafting grid and history. Shift-click stack: player-to-storage stack transfer when crafting \
|
||||
grid empty, otherwise player-to-grid stack transfer. Automatically distributes the clicked stack.
|
||||
tile.engineersdecor.treated_wood_side_table.name=Treated Wood Side Table
|
||||
#tile.engineersdecor.treated_wood_side_table.help=§6Needed after the work's done.
|
||||
tile.engineersdecor.iron_inset_light.name=Inset Light
|
||||
#tile.engineersdecor.iron_inset_light.help=§6Small glowstone light source, sunk into the floor, ceiling or wall.§r\n\
|
||||
Useful to light up places where electrical light installations are problematic.\
|
||||
Light level like a torch.
|
||||
tile.engineersdecor.treated_wood_window.name=Treated Wood Window
|
||||
#tile.engineersdecor.treated_wood_window.help=§6Wood framed triple glazed window. Well insulating.§r Does not connect to adjacent blocks like glass panes.
|
||||
tile.engineersdecor.treated_wood_windowsill.name=Treated Wood Window Sill
|
||||
#tile.engineersdecor.treated_wood_windowsill.help=§6Simple window decoration.
|
||||
tile.engineersdecor.steel_framed_window.name=Steel Framed Window
|
||||
#tile.engineersdecor.steel_framed_window.help=§6Steel framed triple glazed window. Well insulating. §r Does not connect to adjacent blocks like glass panes.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.small_lab_furnace.name=Small Laboratory Furnace
|
||||
#tile.engineersdecor.small_lab_furnace.help=§6Small metal cased lab kiln.§r Solid fuel consuming, updraught. \
|
||||
Slightly hotter and better isolated than a cobblestone furnace, therefore more efficient. \
|
||||
Two auxiliary slots e.g. for storage. Two stack internal hopper fifos for input, output, \
|
||||
and fuel. Place an external heater into a aux slot and connect power for electrical \
|
||||
smelting speed boost.
|
||||
tile.engineersdecor.small_electrical_furnace.name=Small Electrical Furnace
|
||||
#tile.engineersdecor.small_electrical_furnace.help=§6Small metal cased pass-through furnace.§r \
|
||||
Automatically draws items from the input side and puts items into the inventory at the output side. \
|
||||
Items can be inserted or drawn from all sides using hoppers. Implicitly bypasses items that cannot be \
|
||||
smelted or cooked to the output. Slightly more energy efficient and faster than a heated cobblestone \
|
||||
furnace. Fifos and feeders transfer whole stacks. Feeders require a bit of power.
|
||||
tile.engineersdecor.small_waste_incinerator.name=Small Waste Incinerator
|
||||
#tile.engineersdecor.small_waste_incinerator.help=§6Trash with internal fifo slots.§r Items can be inserted on all sides, and are kept until \
|
||||
there is no space left in the fifo. After that the oldest stack will be incinerated. Apply \
|
||||
electrical RF/FE power to increase the processing speed. Keeps its inventory when being \
|
||||
relocated.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.straight_pipe_valve.name=Fluid Pipe Check Valve
|
||||
#tile.engineersdecor.straight_pipe_valve.help=§6Straight fluid pipe fragment.§r Conducts fluids only in one direction. \
|
||||
Does not connect to the sides. Reduces flow rate. Sneak to place in reverse direction.
|
||||
tile.engineersdecor.straight_pipe_valve_redstone.name=Redstone Controlled Fluid Valve
|
||||
#tile.engineersdecor.straight_pipe_valve_redstone.help=§6Straight fluid pipe fragment.§r Conducts fluids only in one direction. \
|
||||
Does not connect to the sides. Sneak to place in reverse direction. \
|
||||
Blocks if not redstone powered.
|
||||
tile.engineersdecor.straight_pipe_valve_redstone_analog.name=Redstone Analog Fluid Valve
|
||||
#tile.engineersdecor.straight_pipe_valve_redstone_analog.help=§6Straight fluid pipe fragment.§r Conducts fluids only in one direction. \
|
||||
Does not connect to the sides. Sneak to place in reverse direction. \
|
||||
Blocks if not redstone powered, reduces the flow rate linear from power 1 to 14, \
|
||||
opens to maximum possible valve flow rate for power 15.
|
||||
tile.engineersdecor.passive_fluid_accumulator.name=Passive Fluid Accumulator
|
||||
#tile.engineersdecor.passive_fluid_accumulator.help=§6Vacuum suction based fluid collector.§r Has one output, all other sides are input. \
|
||||
Drains fluids from adjacent tanks when being drained from the output port by a pump.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.factory_dropper.name=Factory Dropper
|
||||
#tile.engineersdecor.factory_dropper.help=§6Dropper suitable for advanced factory automation.§r Has twelve round-robin selected slots. \
|
||||
Drop force, angle, stack size, and cool-down delay adjustable in the GUI. Three stack compare \
|
||||
slots with logical AND or OR can be used as internal trigger source. Internal trigger can be \
|
||||
AND'ed or OR'ed with the external redstone signal trigger. Trigger simulation buttons for testing. \
|
||||
Pre-opens shutter door when internal trigger conditions are met. Drops all matching stacks \
|
||||
simultaneously. Click on all elements in the GUI to see how it works.
|
||||
tile.engineersdecor.small_mineral_smelter.name=Small Mineral Melting Furnace
|
||||
#tile.engineersdecor.small_mineral_smelter.help=§6High temperature, high insulation electrical stone melting furnace.§r\n\
|
||||
Heats up mineral blocks to magma blocks, and finally to lava. Due to the \
|
||||
miniturized device size the process is rather inefficient - much time and \
|
||||
energy is needed to liquefy a stone block.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.sign_decor.name=Sign Plate (Engineer's decor)
|
||||
#tile.engineersdecor.sign_decor.help=§6This should not be craftable or visible in JEI. Used for creative tab and screenshots.
|
||||
tile.engineersdecor.sign_hotwire.name=Sign "Caution Hot Wire"
|
||||
#tile.engineersdecor.sign_hotwire.help=§6Electrical hazard warning. Don't forget to place around HV, or you'll have a mark in the next audit.
|
||||
tile.engineersdecor.sign_mindstep.name=Sign "Mind The Step"
|
||||
#tile.engineersdecor.sign_mindstep.help=§6Placable on walls (horizontally).
|
||||
tile.engineersdecor.sign_danger.name=Sign "Caution Really Dangerous There"
|
||||
#tile.engineersdecor.sign_danger.help=§6General danger warning.
|
||||
tile.engineersdecor.sign_defense.name=Sign "Caution Defense System Ahead"
|
||||
#tile.engineersdecor.sign_defense.help=§6Warning sign for turrets, Tesla Coils, and traps.
|
||||
tile.engineersdecor.sign_factoryarea.name=Sign "Factory Area"
|
||||
#tile.engineersdecor.sign_factoryarea.help=§6Marker sign for buildings or areas where the really big machines are.
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.halfslab_rebar_concrete.name=Rebar Concrete Slice
|
||||
#tile.engineersdecor.halfslab_rebar_concrete.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_concrete.name=Concrete Slice
|
||||
#tile.engineersdecor.halfslab_concrete.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_treated_wood.name=Treated Wood Slice
|
||||
#tile.engineersdecor.halfslab_treated_wood.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_iron.name=Iron Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_iron.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_steel.name=Steel Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_steel.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_copper.name=Copper Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_copper.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_gold.name=Gold Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_gold.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
tile.engineersdecor.halfslab_sheetmetal_aluminum.name=Aluminum Sheet Metal Slice
|
||||
#tile.engineersdecor.halfslab_sheetmetal_aluminum.help=§6Vertically stackable slice.§r Right/left click with the slice stack on the top or bottom surface to add/remove slices.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
engineersdecor.config.title=工程师的装饰配置
|
||||
engineersdecor.config.pattern_excludes=Pattern excludes
|
||||
engineersdecor.config.pattern_includes=Pattern includes
|
||||
engineersdecor.config.without_clinker_bricks=Without clinker bricks
|
||||
engineersdecor.config.without_slag_bricks=Without slag bricks
|
||||
engineersdecor.config.without_rebar_concrete=Without rebar concrete
|
||||
engineersdecor.config.without_walls=Without walls
|
||||
engineersdecor.config.without_stairs=Without stairs
|
||||
engineersdecor.config.without_ie_concrete_wall=Without concrete wall
|
||||
engineersdecor.config.without_panzer_glass=Without panzer glass
|
||||
engineersdecor.config.without_crafting_table=Without crafting table
|
||||
engineersdecor.config.without_lab_furnace=Without lab furnace
|
||||
engineersdecor.config.without_electrical_furnace=Without electrical furnace
|
||||
engineersdecor.config.without_treated_wood_furniture=Without tr. wood furniture
|
||||
engineersdecor.config.without_windows=Without windows
|
||||
engineersdecor.config.without_light_sources=Without lights
|
||||
engineersdecor.config.without_ladders=Without ladders
|
||||
engineersdecor.config.without_chair_sitting=Without chair sitting
|
||||
engineersdecor.config.without_mob_chair_sitting=Without chair mob sitting
|
||||
engineersdecor.config.without_ladder_speed_boost=Without ladder speed boost
|
||||
engineersdecor.config.without_crafting_table_history=Without crafting table history
|
||||
engineersdecor.config.without_valves=Without valves
|
||||
engineersdecor.config.without_passive_fluid_accumulator=Without fluid accumulator
|
||||
engineersdecor.config.without_waste_incinerator=Without waste incinerator
|
||||
engineersdecor.config.without_sign_plates=Without signs
|
||||
engineersdecor.config.without_factory_dropper=Without factory dropper
|
||||
engineersdecor.config.without_slabs=Without slabs
|
||||
engineersdecor.config.without_halfslabs=Without slab slices
|
||||
engineersdecor.config.without_direct_slab_pickup=Without slab pickup
|
||||
engineersdecor.config.without_poles=Without poles
|
||||
engineersdecor.config.without_hsupports=Without h. supports
|
||||
engineersdecor.config.without_tooltips=Without tooltips
|
||||
engineersdecor.config.without_recipes=Without recipes
|
||||
engineersdecor.config.furnace_smelting_speed_percent=Furnace: Smelting speed %
|
||||
engineersdecor.config.furnace_fuel_efficiency_percent=Furnace: Fuel efficiency %
|
||||
engineersdecor.config.furnace_boost_energy_consumption=Furnace: Boost energy
|
||||
engineersdecor.config.chair_mob_sitting_probability_percent=Chairs: Sitting chance %
|
||||
engineersdecor.config.chair_mob_standup_probability_percent="Chairs: Stand up chance %"
|
||||
engineersdecor.config.with_crafting_quickmove_buttons=Crafting table: Move buttons
|
||||
engineersdecor.config.pipevalve_max_flowrate=Valves: Max flow rate
|
||||
engineersdecor.config.pipevalve_redstone_gain=Valves: Redstone slope
|
||||
engineersdecor.config.e_furnace_speed_percent=E-furnace: Smelting speed %
|
||||
engineersdecor.config.e_furnace_power_consumption=E-furnace: Power consumption
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# EOF
|
||||
#-----------------------------------------------------------------------------------------------------------
|
|
@ -102,6 +102,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [15, 21, 0],
|
||||
"translation": [2.25, -1.25, -2.5],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -94,7 +94,13 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [85, 3, -10],
|
||||
"translation": [1.75, -0.75, -2.25],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -0.75, 0],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"front": "engineersdecor:blocks/furnace/small_mineral_smelter_front_s0",
|
||||
"top": "engineersdecor:blocks/furnace/small_mineral_smelter_top",
|
||||
"side": "engineersdecor:blocks/furnace/small_mineral_smelter_side",
|
||||
"particle": "engineersdecor:blocks/furnace/small_mineral_smelter_side",
|
||||
"bottom": "engineersdecor:blocks/furnace/small_mineral_smelter_bottom"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 1, 1],
|
||||
"to": [15, 15, 15],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side"},
|
||||
"south": {"texture": "#front"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#front"},
|
||||
"down": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 15, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side"},
|
||||
"south": {"texture": "#front"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 1, 2],
|
||||
"to": [1, 15, 14],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"south": {"texture": "#front"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#front"},
|
||||
"down": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 1, 2],
|
||||
"to": [16, 15, 14],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side"},
|
||||
"south": {"texture": "#front"},
|
||||
"up": {"texture": "#front"},
|
||||
"down": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 1, 0],
|
||||
"to": [14, 15, 1],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side"},
|
||||
"south": {"texture": "#side"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#side"},
|
||||
"down": {"texture": "#side"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 1, 15],
|
||||
"to": [14, 15, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#front"},
|
||||
"east": {"texture": "#side"},
|
||||
"south": {"texture": "#front"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#front"},
|
||||
"down": {"texture": "#front"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 1, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side"},
|
||||
"south": {"texture": "#front"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#bottom"},
|
||||
"down": {"texture": "#bottom"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,5 +13,27 @@
|
|||
"south": {"texture": "#glass"}
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.9, 0.9, 0.9],
|
||||
"translation": [ 3, -8, -3]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [3, 69, 23],
|
||||
"translation": [1, 1, -2.25],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -61, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -61,6 +61,15 @@
|
|||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [3, 69, 23],
|
||||
"translation": [1, 1, -2.25],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -61, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,206 @@
|
|||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/treated_wood_framed_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7, 2.5, 7],
|
||||
"to": [9, 14, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 1, 9, 13.5], "texture": "#o"},
|
||||
"east": {"uv": [7, 1, 9, 13.5], "texture": "#o"},
|
||||
"south": {"uv": [7, 1, 9, 13.5], "texture": "#o"},
|
||||
"west": {"uv": [7, 1, 9, 13.5], "texture": "#o"},
|
||||
"down": {"uv": [7, 7, 9, 9], "texture": "#o", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9.375, 0.375, 7.25],
|
||||
"to": [10.875, 4.875, 8.75],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [10.5, 2.375, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 14, 3],
|
||||
"to": [13, 15, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 1, 13, 2], "texture": "#o"},
|
||||
"east": {"uv": [3, 1, 13, 2], "texture": "#o"},
|
||||
"south": {"uv": [3, 1, 13, 2], "texture": "#o"},
|
||||
"west": {"uv": [3, 1, 13, 2], "texture": "#o"},
|
||||
"up": {"uv": [3, 3, 13, 13], "texture": "#o"},
|
||||
"down": {"uv": [3, 3, 13, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 0, 7],
|
||||
"to": [14, 1.25, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [2, 14.75, 5, 16], "texture": "#o"},
|
||||
"east": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"south": {"uv": [11, 14.75, 14, 16], "texture": "#o"},
|
||||
"west": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"up": {"uv": [11, 7, 14, 9], "texture": "#o"},
|
||||
"down": {"uv": [11, 7, 14, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 7],
|
||||
"to": [5, 1.25, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 14.75, 14, 16], "texture": "#o"},
|
||||
"east": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"south": {"uv": [2, 14.75, 5, 16], "texture": "#o"},
|
||||
"west": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"up": {"uv": [2, 7, 5, 9], "texture": "#o"},
|
||||
"down": {"uv": [2, 7, 5, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 0, 2],
|
||||
"to": [9, 1.25, 5],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"east": {"uv": [11, 14.75, 14, 16], "texture": "#o"},
|
||||
"south": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"west": {"uv": [2, 14.75, 5, 16], "texture": "#o"},
|
||||
"up": {"uv": [7, 2, 9, 5], "rotation": 270, "texture": "#o"},
|
||||
"down": {"uv": [7, 11, 9, 14], "rotation": 90, "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 0, 11],
|
||||
"to": [9, 1.25, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"east": {"uv": [2, 14.75, 5, 16], "texture": "#o"},
|
||||
"south": {"uv": [7, 14.75, 9, 16], "texture": "#o"},
|
||||
"west": {"uv": [11, 14.75, 14, 16], "texture": "#o"},
|
||||
"up": {"uv": [7, 11, 9, 14], "rotation": 270, "texture": "#o"},
|
||||
"down": {"uv": [7, 2, 9, 5], "rotation": 90, "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.125, 0.375, 7.25],
|
||||
"to": [6.625, 4.875, 8.75],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [5.5, 2.375, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 0.375, 9.375],
|
||||
"to": [8.75, 4.875, 10.875],
|
||||
"rotation": {"angle": -45, "axis": "x", "origin": [8, 2.375, 10.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 0.375, 5.125],
|
||||
"to": [8.75, 4.875, 6.625],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [8, 2.375, 5.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11, 6, 15], "texture": "#o"},
|
||||
"east": {"uv": [7.5, 9, 9.5, 15], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 12, 15], "texture": "#o"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15, 2],
|
||||
"to": [14, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 1], "texture": "#o"},
|
||||
"east": {"uv": [2, 0, 14, 1], "texture": "#o"},
|
||||
"south": {"uv": [2, 0, 14, 1], "texture": "#o"},
|
||||
"west": {"uv": [2, 0, 14, 1], "texture": "#o"},
|
||||
"up": {"uv": [2, 2, 14, 14], "texture": "#o"},
|
||||
"down": {"uv": [2, 2, 14, 14], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 3],
|
||||
"to": [2, 16, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 15, 1], "texture": "#o"},
|
||||
"east": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"south": {"uv": [1, 0, 2, 1], "texture": "#o"},
|
||||
"west": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"up": {"uv": [1, 3, 2, 13], "texture": "#o"},
|
||||
"down": {"uv": [1, 3, 2, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 15, 3],
|
||||
"to": [15, 16, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0, 2, 1], "texture": "#o"},
|
||||
"east": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"south": {"uv": [14, 0, 15, 1], "texture": "#o"},
|
||||
"west": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"up": {"uv": [14, 3, 15, 13], "texture": "#o"},
|
||||
"down": {"uv": [14, 3, 15, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 15, 1],
|
||||
"to": [13, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"east": {"uv": [14, 0, 15, 1], "texture": "#o"},
|
||||
"south": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"west": {"uv": [1, 0, 2, 1], "texture": "#o"},
|
||||
"up": {"uv": [3, 1, 13, 2], "texture": "#o"},
|
||||
"down": {"uv": [3, 14, 13, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 15, 14],
|
||||
"to": [13, 16, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"east": {"uv": [1, 0, 2, 1], "texture": "#o"},
|
||||
"south": {"uv": [3, 0, 13, 1], "texture": "#o"},
|
||||
"west": {"uv": [14, 0, 15, 1], "texture": "#o"},
|
||||
"up": {"uv": [3, 14, 13, 15], "texture": "#o"},
|
||||
"down": {"uv": [3, 1, 13, 2], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [24, -27, 10],
|
||||
"translation": [0.75, -1.25, -0.25],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-15, 20, 0],
|
||||
"translation": [0.5, -0.25, 0.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -129,6 +129,14 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [24, -27, 10],
|
||||
"translation": [-0.75, 2.25, 0.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-3, 18, 0]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -9,45 +9,67 @@
|
|||
"from": [1, 0, 6.5],
|
||||
"to": [15, 1, 9.5],
|
||||
"faces": {
|
||||
"north": {"texture": "#frame"},
|
||||
"south": {"texture": "#frame"},
|
||||
"up": {"texture": "#frame"},
|
||||
"down": {"texture": "#frame"}
|
||||
"north": {"uv": [1, 15, 15, 16], "texture": "#frame"},
|
||||
"south": {"uv": [1, 15, 15, 16], "texture": "#frame"},
|
||||
"up": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"},
|
||||
"down": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 6.5],
|
||||
"to": [1, 16, 9.5],
|
||||
"faces": {
|
||||
"north": {"texture": "#frame"},
|
||||
"east": {"texture": "#frame"},
|
||||
"south": {"texture": "#frame"},
|
||||
"west": {"texture": "#frame"},
|
||||
"up": {"texture": "#frame"},
|
||||
"down": {"texture": "#frame"}
|
||||
"north": {"uv": [15, 0, 16, 16], "texture": "#frame"},
|
||||
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||
"south": {"uv": [0, 0, 1, 16], "texture": "#frame"},
|
||||
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||
"up": {"uv": [0, 6.5, 1, 9.5], "texture": "#frame"},
|
||||
"down": {"uv": [0, 6.5, 1, 9.5], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 6.5],
|
||||
"to": [15, 16, 9.5],
|
||||
"faces": {
|
||||
"north": {"texture": "#frame"},
|
||||
"south": {"texture": "#frame"},
|
||||
"up": {"texture": "#frame"},
|
||||
"down": {"texture": "#frame"}
|
||||
"north": {"uv": [1, 0, 15, 1], "texture": "#frame"},
|
||||
"south": {"uv": [1, 0, 15, 1], "texture": "#frame"},
|
||||
"up": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"},
|
||||
"down": {"uv": [1, 6.5, 15, 9.5], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 6.5],
|
||||
"to": [16, 16, 9.5],
|
||||
"faces": {
|
||||
"north": {"texture": "#frame"},
|
||||
"east": {"texture": "#frame"},
|
||||
"south": {"texture": "#frame"},
|
||||
"west": {"texture": "#frame"},
|
||||
"up": {"texture": "#frame"},
|
||||
"down": {"texture": "#frame"}
|
||||
"north": {"uv": [0, 0, 1, 16], "texture": "#frame"},
|
||||
"east": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||
"south": {"uv": [15, 0, 16, 16], "texture": "#frame"},
|
||||
"west": {"uv": [6.5, 0, 9.5, 16], "texture": "#frame"},
|
||||
"up": {"uv": [15, 6.5, 16, 9.5], "texture": "#frame"},
|
||||
"down": {"uv": [15, 6.5, 16, 9.5], "texture": "#frame"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.9, 0.9, 0.9],
|
||||
"translation": [ 3, -8, -3]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [3, 69, 23],
|
||||
"translation": [1, 1, -2.25],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -61, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -63,13 +63,23 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [-8, 154, 97],
|
||||
"translation": [-4, 1.25, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-2, -59, -46],
|
||||
"translation": [-1.25, -0.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.9, 0.9, 0.9],
|
||||
"translation": [ 3, -8, -3]
|
||||
"translation": [3, -8, -3],
|
||||
"scale": [0.9, 0.9, 0.9]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
|
|
|
@ -53,25 +53,29 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [95, 4, 33],
|
||||
"translation": [2, -1.5, -3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"scale": [0.5, 0.5, 0.5],
|
||||
"rotation": [120, 30, 0],
|
||||
"translation": [2, 3, 0]
|
||||
"translation": [2, 3, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"scale": [0.5, 0.5, 0.5],
|
||||
"rotation": [120, 15, 0],
|
||||
"translation": [-1, -1, -2]
|
||||
"ground": {
|
||||
"translation": [0, -4.25, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [26, 39, 0],
|
||||
"translation": [0, -3, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, -4, 0],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,13 +1,8 @@
|
|||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/iestyle/steel_texture",
|
||||
"o": "engineersdecor:blocks/iestyle/steel_texture"
|
||||
},
|
||||
"display": {
|
||||
"gui": { "rotation": [ 30, 225, 0 ], "scale": [0.625, 0.625, 0.625] },
|
||||
"fixed": { "scale": [0.5, 0.5, 0.5] },
|
||||
"ground": { "scale": [0.2, 0.2, 0.2] }
|
||||
"o": "engineersdecor:blocks/iestyle/steel_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/steel_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
@ -154,5 +149,22 @@
|
|||
"down": {"uv": [0, 0, 1.25, 1], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [16, -118, 0],
|
||||
"translation": [2.75, -0.75, 0.75],
|
||||
"scale": [0.36, 0.36, 0.36]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -151,6 +151,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [8, -68, 0],
|
||||
"translation": [2.5, -2.75, -2.5],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
|
||||
|
@ -80,6 +79,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [1, 67, 0],
|
||||
"translation": [-1.75, -2.25, -2.5],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -112,18 +112,26 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [-3, -60, 0],
|
||||
"translation": [-5, 0, 2.25],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [5, -52, 0],
|
||||
"translation": [-3, -0.75, 1.25]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 0, 6],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0.5, 0]
|
||||
"rotation": [16, 30, 0],
|
||||
"translation": [3.75, -1.5, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -7.3]
|
||||
},
|
||||
"ground": {
|
||||
"rotation": [0, 0, 0],
|
||||
"translation": [0, 0, 7],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
"translation": [0, 0, -8.05]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,14 +32,14 @@
|
|||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [120, 15, 0],
|
||||
"translation": [-1, -1, -2],
|
||||
"rotation": [108, 6, -23],
|
||||
"translation": [1.75, -0.5, -2.5],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [120, 30, 0],
|
||||
"translation": [2, 3, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
"translation": [1.75, 1.25, -0.25],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
|
|
|
@ -64,13 +64,13 @@
|
|||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [120, 15, 0],
|
||||
"translation": [-1, -1, -2],
|
||||
"rotation": [106, 2, -17],
|
||||
"translation": [1, -1.5, -1],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [120, 30, 0],
|
||||
"translation": [2, 3, 0],
|
||||
"translation": [2, 2, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
|
@ -81,6 +81,7 @@
|
|||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,6 +101,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [-2, 0, 0],
|
||||
"translation": [0, -1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -42,6 +42,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [1, -1, 14],
|
||||
"translation": [0, -1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -125,6 +125,10 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, -0.75, -1.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -100,6 +100,10 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, -2.25, -1.25],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -52,6 +52,15 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [6, 17, 10],
|
||||
"translation": [0, 0, -1],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [17, 10, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -108,6 +108,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [18, 0, 3],
|
||||
"translation": [0, -0.5, -0.75],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -52,6 +52,11 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [0, 13, 0],
|
||||
"translation": [0, -0.25, -0.75],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
|
|
@ -20,17 +20,26 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [-1, -78, -10],
|
||||
"translation": [-2.75, -1.25, -1.5],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [2, -68, 8],
|
||||
"translation": [0.5, 0, -0.25],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 0, 7],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
"translation": [0, 0, 2.5],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [0, 0, 0],
|
||||
"translation": [0, 0.5, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -7.3]
|
||||
"translation": [0, 0, -7.8]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,16 +10,26 @@
|
|||
"from": [1, 1, 0],
|
||||
"to": [15, 15, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 15], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 1, 16, 15], "texture": "#s"},
|
||||
"south": {"uv": [1, 1, 15, 15], "texture": "#f"},
|
||||
"west": {"uv": [0, 1, 0.5, 15], "texture": "#s"},
|
||||
"up": {"uv": [1, 0, 15, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [1, 15.5, 15, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [27, -68, 7],
|
||||
"translation": [-3, -1, -0.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [1, -58, 7],
|
||||
"translation": [0.5, 0, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 0, 7],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
|
@ -29,7 +39,7 @@
|
|||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -7.3]
|
||||
"translation": [0, 0, -7.8]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,182 +10,192 @@
|
|||
"from": [0.75, 1.25, 0],
|
||||
"to": [15.25, 2.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0.75, 13.5, 15.25, 14.75], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 13.5, 16, 14.75], "texture": "#s"},
|
||||
"south": {"uv": [0.75, 13.5, 15.25, 14.75], "texture": "#f"},
|
||||
"west": {"uv": [0, 13.5, 0.5, 14.75], "texture": "#s"},
|
||||
"up": {"uv": [0.75, 0, 15.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [0.75, 15.5, 15.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.75, 3.5, 0],
|
||||
"to": [14.25, 4.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 11.5, 14.25, 12.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 11.5, 16, 12.5], "texture": "#s"},
|
||||
"south": {"uv": [1.75, 11.5, 14.25, 12.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 11.5, 0.5, 12.5], "texture": "#s"},
|
||||
"up": {"uv": [1.75, 0, 14.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [1.75, 15.5, 14.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 5.5, 0],
|
||||
"to": [13.25, 6.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [2.75, 9.5, 13.25, 10.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 9.5, 16, 10.5], "texture": "#s"},
|
||||
"south": {"uv": [2.75, 9.5, 13.25, 10.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 9.5, 0.5, 10.5], "texture": "#s"},
|
||||
"up": {"uv": [2.75, 0, 13.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [2.75, 15.5, 13.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.75, 7.5, 0],
|
||||
"to": [12.25, 8.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [3.75, 7.5, 12.25, 8.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 7.5, 16, 8.5], "texture": "#s"},
|
||||
"south": {"uv": [3.75, 7.5, 12.25, 8.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 7.5, 0.5, 8.5], "texture": "#s"},
|
||||
"up": {"uv": [3.75, 0, 12.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [3.75, 15.5, 12.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.75, 9.5, 0],
|
||||
"to": [11.25, 10.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [4.75, 5.5, 11.25, 6.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 5.5, 16, 6.5], "texture": "#s"},
|
||||
"south": {"uv": [4.75, 5.5, 11.25, 6.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 5.5, 0.5, 6.5], "texture": "#s"},
|
||||
"up": {"uv": [4.75, 0, 11.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [4.75, 15.5, 11.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.75, 11.5, 0],
|
||||
"to": [10.25, 12.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [5.75, 3.5, 10.25, 4.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 3.5, 16, 4.5], "texture": "#s"},
|
||||
"south": {"uv": [5.75, 3.5, 10.25, 4.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 3.5, 0.5, 4.5], "texture": "#s"},
|
||||
"up": {"uv": [5.75, 0, 10.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [5.75, 15.5, 10.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.25, 12.5, 0],
|
||||
"to": [9.75, 13.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [6.25, 2.5, 9.75, 3.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 2.5, 16, 3.5], "texture": "#s"},
|
||||
"south": {"uv": [6.25, 2.5, 9.75, 3.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 2.5, 0.5, 3.5], "texture": "#s"},
|
||||
"up": {"uv": [6.25, 0, 9.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [6.25, 15.5, 9.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.25, 2.5, 0],
|
||||
"to": [14.75, 3.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [1.25, 12.5, 14.75, 13.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 12.5, 16, 13.5], "texture": "#s"},
|
||||
"south": {"uv": [1.25, 12.5, 14.75, 13.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 12.5, 0.5, 13.5], "texture": "#s"},
|
||||
"up": {"uv": [1.25, 0, 14.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [1.25, 15.5, 14.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.25, 4.5, 0],
|
||||
"to": [13.75, 5.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [2.25, 10.5, 13.75, 11.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 10.5, 16, 11.5], "texture": "#s"},
|
||||
"south": {"uv": [2.25, 10.5, 13.75, 11.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 10.5, 0.5, 11.5], "texture": "#s"},
|
||||
"up": {"uv": [2.25, 0, 13.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [2.25, 15.5, 13.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.25, 6.5, 0],
|
||||
"to": [12.75, 7.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [3.25, 8.5, 12.75, 9.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 8.5, 16, 9.5], "texture": "#s"},
|
||||
"south": {"uv": [3.25, 8.5, 12.75, 9.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 8.5, 0.5, 9.5], "texture": "#s"},
|
||||
"up": {"uv": [3.25, 0, 12.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [3.25, 15.5, 12.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.25, 8.5, 0],
|
||||
"to": [11.75, 9.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [4.25, 6.5, 11.75, 7.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 6.5, 16, 7.5], "texture": "#s"},
|
||||
"south": {"uv": [4.25, 6.5, 11.75, 7.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 6.5, 0.5, 7.5], "texture": "#s"},
|
||||
"up": {"uv": [4.25, 0, 11.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [4.25, 15.5, 11.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.25, 10.5, 0],
|
||||
"to": [10.75, 11.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [5.25, 4.5, 10.75, 5.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 4.5, 16, 5.5], "texture": "#s"},
|
||||
"south": {"uv": [5.25, 4.5, 10.75, 5.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 4.5, 0.5, 5.5], "texture": "#s"},
|
||||
"up": {"uv": [5.25, 0, 10.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [5.25, 15.5, 10.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.75, 13.5, 0],
|
||||
"to": [9.25, 14.5, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [6.75, 1.5, 9.25, 2.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 1.5, 16, 2.5], "texture": "#s"},
|
||||
"south": {"uv": [6.75, 1.5, 9.25, 2.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 1.5, 0.5, 2.5], "texture": "#s"},
|
||||
"up": {"uv": [6.75, 0, 9.25, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [6.75, 15.5, 9.25, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 14.5, 0],
|
||||
"to": [8.75, 15, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [7.25, 1, 8.75, 1.5], "texture": "#s"},
|
||||
"east": {"uv": [15.5, 1, 16, 1.5], "texture": "#s"},
|
||||
"south": {"uv": [7.25, 1, 8.75, 1.5], "texture": "#f"},
|
||||
"west": {"uv": [0, 1, 0.5, 1.5], "texture": "#s"},
|
||||
"up": {"uv": [7.25, 0, 8.75, 0.5], "texture": "#s"},
|
||||
"down": {"uv": [7.25, 15.5, 8.75, 16], "texture": "#s"}
|
||||
"north": {"texture": "#s"},
|
||||
"east": {"texture": "#s"},
|
||||
"south": {"texture": "#f"},
|
||||
"west": {"texture": "#s"},
|
||||
"up": {"texture": "#s"},
|
||||
"down": {"texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [41, -73, 0],
|
||||
"translation": [-3, -0.75, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [3, -84, 14],
|
||||
"translation": [0.75, 0, -1],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 0, 7],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
"translation": [0, 0, 2.75],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"gui": {
|
||||
"translation": [0, 0.5, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -7.3]
|
||||
"translation": [0, 0, -8.05]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"particle": "#all",
|
||||
"side": "#all",
|
||||
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
|
||||
},
|
||||
"elements": [
|
||||
|
@ -9,16 +10,35 @@
|
|||
"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"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [27, -16, -85],
|
||||
"translation": [2.75, 0, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [-12, -17, 80],
|
||||
"translation": [-1.75, 0.75, -1.5],
|
||||
"scale": [0.37, 0.37, 0.37]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [26, 19, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [15, 15, 0],
|
||||
"translation": [0, 0.25, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
|
@ -27,22 +47,9 @@
|
|||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 0, 3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [ 75, 45, 0 ],
|
||||
"translation": [ 0, 0, 2.2],
|
||||
"scale": [ 0.375, 0.375, 0.375 ]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [ 0, 45, 0 ],
|
||||
"translation": [ 0, 0, 0 ],
|
||||
"scale": [ 0.40, 0.40, 0.40 ]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [ 0, 225, 0 ],
|
||||
"translation": [ 0, 0, 0 ],
|
||||
"scale": [ 0.40, 0.40, 0.40 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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,13 +10,46 @@
|
|||
"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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [-18, -13, -92],
|
||||
"translation": [1.75, -0.75, -1.5],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [-30, -30, 80],
|
||||
"translation": [0, -1, -3],
|
||||
"scale": [0.37, 0.37, 0.37]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [26, 19, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [15, 15, 0],
|
||||
"translation": [0, 0.25, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 0, 3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -8,36 +8,36 @@
|
|||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#side"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 16, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 16, 8], "texture": "#side"},
|
||||
"up": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#side", "cullface": "up"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 8, 8],
|
||||
"to": [8, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 16, 8], "texture": "#side"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 8, 8, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#side", "cullface": "up"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -8,24 +8,24 @@
|
|||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#side"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 8],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [8, 0, 16, 8], "texture": "#side"},
|
||||
"up": {"uv": [8, 8, 16, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#side", "cullface": "up"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,36 +1,41 @@
|
|||
{
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"side" : "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||
"side": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#side"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 16, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 16, 8], "texture": "#side"},
|
||||
"up": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side"},
|
||||
"up": {"texture": "#side", "cullface": "up"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [5, -71, -5],
|
||||
"translation": [1, -0.5, -1.75],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -135, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
|
|
|
@ -35,6 +35,16 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [14, 8, 1],
|
||||
"translation": [0, -0.75, -2],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [4, 9, 2],
|
||||
"translation": [0, 0, 1],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
|
|
|
@ -151,6 +151,16 @@
|
|||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [20, -9, 1],
|
||||
"translation": [0.5, -1, -1.75],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [14, 3, -5],
|
||||
"translation": [1.25, 0, 0],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
|
|
|
@ -27,6 +27,10 @@
|
|||
"ingredient": { "type": "forge:ore_dict", "ore": "blockIron" },
|
||||
"name": "blockIron"
|
||||
},
|
||||
{
|
||||
"ingredient": { "type": "forge:ore_dict", "ore": "blockSteel" },
|
||||
"name": "blockSteel"
|
||||
},
|
||||
{
|
||||
"ingredient": { "type": "forge:ore_dict", "ore": "plateIron" },
|
||||
"name": "plateIron"
|
||||
|
@ -107,6 +111,10 @@
|
|||
"ingredient": { "type": "forge:ore_dict", "ore": "ingotBrickNether" },
|
||||
"name": "ingotBrickNether"
|
||||
},
|
||||
{
|
||||
"ingredient": { "item": "minecraft:obsidian", "data": 0 },
|
||||
"name": "blockObsidian"
|
||||
},
|
||||
{
|
||||
"ingredient": [
|
||||
{ "type": "forge:ore_dict", "ore": "plateIron" },
|
||||
|
@ -249,6 +257,20 @@
|
|||
"ingredient": { "item": "immersiveengineering:metal_device1", "data": 6 },
|
||||
"name": "itemFluidPipe"
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "type": "minecraft:item_exists", "item": "immersiveengineering:metal_device1" }
|
||||
],
|
||||
"ingredient": { "item": "immersiveengineering:metal_device1", "data": 1 },
|
||||
"name": "itemExternalHeater"
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "type": "minecraft:item_exists", "item": "immersiveengineering:metal_device0" }
|
||||
],
|
||||
"ingredient": { "item": "immersiveengineering:metal_device0", "data": 4 },
|
||||
"name": "itemSteelBarrel"
|
||||
},
|
||||
{
|
||||
"conditions": [
|
||||
{ "type": "engineersdecor:grc", "missing": ["immersiveengineering:stone_decoration"] }
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:small_mineral_smelter",
|
||||
"required": ["immersiveengineering:metal_device1", "engineersdecor:panzerglass_block"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"SOS",
|
||||
"GBO",
|
||||
"HOH"
|
||||
],
|
||||
"key": {
|
||||
"H": {
|
||||
"item": "#itemExternalHeater",
|
||||
"data": 0
|
||||
},
|
||||
"G": {
|
||||
"item": "engineersdecor:panzerglass_block",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "#blockSteel",
|
||||
"data": 0
|
||||
},
|
||||
"B": {
|
||||
"item": "#itemSteelBarrel",
|
||||
"data": 0
|
||||
},
|
||||
"O": {
|
||||
"item": "#blockObsidian",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:small_mineral_smelter",
|
||||
"count": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_slab",
|
||||
"required": ["engineersdecor:clinker_brick_block"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": { "item": "engineersdecor:clinker_brick_block" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:clinker_brick_slab",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_stained_slab",
|
||||
"required": ["engineersdecor:clinker_brick_stained_block"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": { "item": "engineersdecor:clinker_brick_stained_block" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:clinker_brick_stained_slab",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -3,16 +3,16 @@
|
|||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:halfslab_rebar_concrete",
|
||||
"required": ["engineersdecor:rebar_concrete"]
|
||||
"required": ["engineersdecor:rebar_concrete_slab"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"S",
|
||||
"S"
|
||||
"SS",
|
||||
"SS"
|
||||
],
|
||||
"key": {
|
||||
"S": { "item": "engineersdecor:rebar_concrete" }
|
||||
"S": { "item": "engineersdecor:rebar_concrete_slab" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:halfslab_rebar_concrete",
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:panzerglass_slab",
|
||||
"required": ["engineersdecor:panzerglass_block"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": { "item": "engineersdecor:panzerglass_block" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:panzerglass_slab",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:rebar_concrete_slab",
|
||||
"required": ["engineersdecor:rebar_concrete"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": { "item": "engineersdecor:rebar_concrete" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:rebar_concrete_slab",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:rebar_concrete_tile_slab",
|
||||
"required": ["engineersdecor:rebar_concrete_tile"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": { "item": "engineersdecor:rebar_concrete_tile" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:rebar_concrete_tile_slab",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:slag_brick_slab",
|
||||
"required": ["engineersdecor:slag_brick_block"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": { "item": "engineersdecor:slag_brick_block" }
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:slag_brick_slab",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -14,12 +14,12 @@
|
|||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "#ingotIron",
|
||||
"item": "#nuggetIron",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:metal_rung_ladder",
|
||||
"count": 4
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 618 B |
After Width: | Height: | Size: 728 B |
|
@ -0,0 +1 @@
|
|||
{ "animation":{ "frames": [0,1], "frametime":32, "interpolate":true }}
|
After Width: | Height: | Size: 940 B |
|
@ -0,0 +1 @@
|
|||
{ "animation": { "frames": [0,1,2], "frametime": 8, "interpolate": true } }
|
After Width: | Height: | Size: 957 B |
|
@ -0,0 +1 @@
|
|||
{ "animation": { "frames": [0,1,2], "frametime": 8, "interpolate": true } }
|
After Width: | Height: | Size: 606 B |
After Width: | Height: | Size: 562 B |
After Width: | Height: | Size: 1.1 KiB |
354
1.12/tasks.js
|
@ -1,349 +1,25 @@
|
|||
#!/usr/bin/djs
|
||||
// Note for reviewers/clones: This file is a auxiliary script for my setup. It's not needed to build the mod.
|
||||
"use strict";
|
||||
if(!fs.chdir(fs.dirname(fs.realpath(sys.script)))) throw new Error("Failed to switch to mod source directory.");
|
||||
if(!fs.isdir("../.git")) throw new Error("Missing git repository in parent directory of mod source.");
|
||||
|
||||
const constants = include("../meta/lib/constants.js")();
|
||||
const libtask = include("../meta/lib/libtask.js")(constants);
|
||||
const liblang = include("../meta/lib/liblang.1.12.js")(constants);
|
||||
const liblang13 = include("../meta/lib/liblang.1.13.js")(constants);
|
||||
const liblang14 = include("../meta/lib/liblang.1.13.js")(constants);
|
||||
var tasks = {};
|
||||
|
||||
tasks["dist-check"] = function() {
|
||||
const uncommitted_changes = sys.shell("git status -s").trim();
|
||||
const gittags = sys.shell('git log -1 --format="%D"')
|
||||
.replace(/[\s]/g,"").split(",")
|
||||
.filter(function(s){ return s.indexOf("tag:")==0;})
|
||||
.map(function(s){ return s.replace(/^tag:/,"");});
|
||||
const version_engineersdecor = fs.readfile("gradle.properties", function(line){
|
||||
if(line.trim().indexOf("version_engineersdecor")!=0) return false;
|
||||
return line.replace(/^.*?=/,"").trim()
|
||||
}).trim();
|
||||
const git_remote = sys.shell("git remote -v").trim();
|
||||
const git_branch = sys.shell("git rev-parse --abbrev-ref HEAD").trim();
|
||||
const git_diff = sys.shell("git diff .").trim();
|
||||
var fails = [];
|
||||
if(version_engineersdecor=="") fails.push("Could not determine 'version_engineersdecor' from gradle properties.");
|
||||
if(!gittags.length) fails.push("Version not tagged.");
|
||||
if(!gittags.filter(function(s){return s.indexOf(version_engineersdecor.replace(/[-]/g,""))>=0}).length) fails.push("No tag version not found matching the gradle properties version.");
|
||||
if(git_remote.replace(/[\s]/g,"").indexOf("git@github.com:stfwi/engineers-decor.git(push)") < 0) fails.push("Not the reference repository.");
|
||||
if((git_branch != "develop") && (git_branch != "master")) {
|
||||
fails.push("No valid branch for dist. (branch:'"+git_branch+"')");
|
||||
} else if((git_branch == "develop") && (version_engineersdecor.replace(/[^ab]/g,"")=="")) {
|
||||
fails.push("Cannot make release dist on develop branch.");
|
||||
} else if((git_branch == "master") && (version_engineersdecor.replace(/[^ab]/g,"")!="")) {
|
||||
fails.push("Cannot make beta dist on master branch.");
|
||||
}
|
||||
if(git_diff !== "") fails.push("Not everything committed to the GIT repository.");
|
||||
if((!fs.isfile("signing.jks")) || (!fs.isfile("signing.properties"))) fails.push("Jar signing files missing.");
|
||||
if(fails.length>0) {
|
||||
for(var i in fails) fails[i] = " - " + fails[i];
|
||||
alert("Dist check failed");
|
||||
alert(fails.join("\n")+"\n");
|
||||
exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
tasks["sync-languages"] = function() {
|
||||
function load() {
|
||||
var lang_data = {};
|
||||
fs.find("./src/main/resources/assets/engineersdecor/lang", '*.lang', function(f){
|
||||
var lang_code = fs.basename(f).replace(/\..*$/,"").trim().toLowerCase();
|
||||
var lines = fs.readfile(f).trim().split("\n");
|
||||
var was_eol_escape = false;
|
||||
for(var i in lines) {
|
||||
if(was_eol_escape) {
|
||||
var k=0;
|
||||
for(k=i-1; k>=0; --k) {
|
||||
if(lines[k] != null) {
|
||||
lines[k] += "\n" + lines[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
was_eol_escape = lines[i].match(/[^\\][\\]$/) != null;
|
||||
lines[i] = null;
|
||||
} else {
|
||||
lines[i] = lines[i].trim();
|
||||
was_eol_escape = lines[i].match(/[^\\][\\]$/) != null;
|
||||
}
|
||||
}
|
||||
lang_data[lang_code] = lines.filter(function(l){return (l!==null);});
|
||||
liblang.sync_languages();
|
||||
};
|
||||
|
||||
tasks["port-languages"] = function() {
|
||||
fs.find("src/main/resources/assets/"+ constants.mod_registry_name() +"/lang", '*.lang', function(path){
|
||||
const unified = liblang.load(path);
|
||||
path = path.replace(/\.lang$/,"");
|
||||
liblang13.save("../1.13/"+path+".json", unified);
|
||||
liblang14.save("../1.14/"+path+".json", unified);
|
||||
return false;
|
||||
});
|
||||
return lang_data;
|
||||
}
|
||||
function reference_content(lang_data, reflang_code) {
|
||||
var lang_lines = [];
|
||||
for(var i in lang_data[reflang_code]) {
|
||||
var txt = lang_data[reflang_code][i].trim();
|
||||
if((txt.search(/^#/)>=0) || (txt.search("=")<0)) { lang_lines.push(txt); continue; }; // comment "#" or empty line in the ref lang file
|
||||
var kv = txt.split("=", 2);
|
||||
var key = kv[0].trim();
|
||||
var val = kv[1].trim();
|
||||
var o = {key:key, tr:{}};
|
||||
o.tr[reflang_code] = val;
|
||||
lang_lines.push(o);
|
||||
}
|
||||
delete lang_data[reflang_code];
|
||||
return lang_lines;
|
||||
}
|
||||
function add_language(lang_lines, lang_name, lang_data) {
|
||||
const find_line = function(lines, key) {
|
||||
for(var i in lines) {
|
||||
if((typeof(lines[i]) !== "object")) continue;
|
||||
if(lines[i].key.toLowerCase()==key.toLowerCase()) return i;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
for(var i in lang_data) {
|
||||
var txt = lang_data[i].trim();
|
||||
if(txt.search(/^#/)>=0) continue;
|
||||
if(txt.search("=")<0) continue;
|
||||
var kv = txt.split("=", 2);
|
||||
var key = kv[0].trim();
|
||||
var val = kv[1].trim();
|
||||
var line_i = find_line(lang_lines, key);
|
||||
if(line_i >= 0) {
|
||||
lang_data[i] = undefined;
|
||||
lang_lines[line_i].tr[lang_name] = val;
|
||||
}
|
||||
}
|
||||
return lang_data;
|
||||
}
|
||||
|
||||
function complete_lang_lines(lang_lines, lang_names, reflang_code) {
|
||||
var lang_outputs = {};
|
||||
for(var i in lang_names) lang_outputs[lang_names[i]] = [];
|
||||
for(var i_line in lang_lines) {
|
||||
var entry = lang_lines[i_line];
|
||||
if(typeof(entry) !== "object") {
|
||||
for(var i in lang_names) lang_outputs[lang_names[i]].push(entry);
|
||||
} else {
|
||||
for(var i in lang_names) {
|
||||
var name = lang_names[i];
|
||||
if(entry.tr[name] !== undefined) {
|
||||
lang_outputs[name].push(entry.key + "=" + entry.tr[name]);
|
||||
} else {
|
||||
var added = entry.key + "=" + entry.tr[reflang_code];
|
||||
if((entry.key.search(/\.tip$/)>0) || (entry.key.search(/\.help$/)>0)) added = "#" + added;
|
||||
lang_outputs[name].push(added);
|
||||
if(added.search(/^#/)<0) print("[warn] Lang: Added default language for missing entry in " + name + ": '" + added + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return lang_outputs;
|
||||
}
|
||||
|
||||
const reflang_code = "en_us";
|
||||
var lang_data = load();
|
||||
var lang_names = Object.keys(lang_data);
|
||||
var lang_lines = reference_content(lang_data, reflang_code);
|
||||
for(var lang_name in lang_data) {
|
||||
lang_data[lang_name] = add_language(lang_lines, lang_name, lang_data[lang_name]);
|
||||
lang_data[lang_name] = lang_data[lang_name].filter(function(l){ return !!l; });
|
||||
if(lang_data[lang_name].length == 0) delete lang_data[lang_name];
|
||||
}
|
||||
var output_data = complete_lang_lines(lang_lines, lang_names, reflang_code);
|
||||
for(var i in output_data) output_data[i] = output_data[i].join("\n") + "\n\n";
|
||||
|
||||
// Remaining lines in lang files (not in the reference lang file)
|
||||
for(var lang_name in lang_data) {
|
||||
for(var i in lang_data[lang_name]) {
|
||||
if(lang_data[lang_name][i].search(/^#/)<0) {
|
||||
var added = "# " + lang_data[lang_name][i].replace(/^[#\s]+/,"");
|
||||
output_data[lang_name] += added + "\n";
|
||||
print("[warn] Lang: Commented out unknown key in " + lang_name + ": '" + added + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
for(var name in output_data) output_data[name] = output_data[name].trim() + "\n";
|
||||
|
||||
for(var name in output_data) {
|
||||
fs.writefile("./src/main/resources/assets/engineersdecor/lang/" + name + ".lang", output_data[name]);
|
||||
}
|
||||
};
|
||||
|
||||
tasks["tabs-to-spaces"] = function() {
|
||||
var file_list = (function() {
|
||||
var ls = [];
|
||||
const ext = ['java','lang'];
|
||||
for(var i in ext) ls = ls.concat(fs.find("./src", '*.'+ext[i]));
|
||||
for(var i in ls) ls[i] = ls[i].replace(/\\/g,"/");
|
||||
ls.sort();
|
||||
ls.push("readme.md");
|
||||
return ls;
|
||||
})();
|
||||
for(var file_i in file_list) {
|
||||
var file = file_list[file_i];
|
||||
var txt = fs.readfile(file);
|
||||
if(txt===undefined) throw new Error("Failed to read '" + file + "'");
|
||||
const txt_length = txt.length;
|
||||
txt = txt.replace(/[\t]/g," ");
|
||||
const n = txt.length - txt_length;
|
||||
if(n > 0) {
|
||||
print("File '" + file + "': Changed " + n + " tabs to 2 spaces." );
|
||||
fs.writefile(file, txt);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
tasks["trailing-whitespaces"] = function() {
|
||||
var file_list = (function() {
|
||||
var ls = [];
|
||||
const ext = ['java','json','lang'];
|
||||
for(var i in ext) ls = ls.concat(fs.find("./src", '*.'+ext[i]));
|
||||
for(var i in ls) ls[i] = ls[i].replace(/\\/g,"/");
|
||||
ls.sort();
|
||||
ls.push("readme.md");
|
||||
return ls;
|
||||
})();
|
||||
for(var file_i in file_list) {
|
||||
var file = file_list[file_i];
|
||||
var txt = fs.readfile(file);
|
||||
if(txt===undefined) throw new Error("Failed to read '" + file + "'");
|
||||
const txt_length = txt.length;
|
||||
txt = txt.replace(/[\r\t ]+[\n]/g,"\n");
|
||||
const n = txt_length - txt.length;
|
||||
if(n > 0) {
|
||||
print("File '" + file + "': Fixed " + n + " lines with trailing whitespaces." );
|
||||
fs.writefile(file, txt);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
tasks["version-check"] = function() {
|
||||
var version_minecraft="";
|
||||
var version_forge="";
|
||||
var version_engineersdecor="";
|
||||
fs.readfile("gradle.properties", function(line){
|
||||
if(line.search(/^[\s]*version_minecraft[\s]*=/i) >= 0) {
|
||||
version_minecraft = line.replace(/^[^=]+=/,"").trim();
|
||||
} else if(line.search(/^[\s]*version_forge[\s]*=/i) >= 0) {
|
||||
version_forge = line.replace(/^[^=]+=/,"").trim();
|
||||
} else if(line.search(/^[\s]*version_engineersdecor[\s]*=/i) >= 0) {
|
||||
version_engineersdecor = line.replace(/^[^=]+=/,"").trim();
|
||||
}
|
||||
return false;
|
||||
})
|
||||
const combined_version = version_minecraft + "-" + version_engineersdecor;
|
||||
var readme_version_found = fs.readfile("readme.md", function(line){
|
||||
var m = line.match(/^[\s]+[-~][\s]+v([\d]+[\.][\d]+[\.][\d]+[-][abrc][\d]+)/i);
|
||||
if((!m) || (!m.length) || (m.length < 2)) {
|
||||
m = line.match(/^[\s]+[-~][\s]+v([\d]+[\.][\d]+[\.][\d]+)/i);
|
||||
if((!m) || (!m.length) || (m.length < 2)) return false;
|
||||
}
|
||||
return m[1]==version_engineersdecor;
|
||||
});
|
||||
var ok=true;
|
||||
if(!readme_version_found) {
|
||||
alert("Version 'v" + version_engineersdecor + "' not found in the readme changelog.");
|
||||
ok = false;
|
||||
}
|
||||
if(!ok) {
|
||||
alert("Version data:");
|
||||
alert(" - combined_version : '" + combined_version + "'");
|
||||
alert(" - version_forge : '" + version_forge + "'");
|
||||
exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
tasks["dist"] = function() {
|
||||
function readme_history(file_path) {
|
||||
var readme = fs.readfile(file_path);
|
||||
if(!readme) throw new Error("Failed to load readme.md");
|
||||
readme = readme.split(/[\r]?[\n]/);
|
||||
while((readme.length > 0) && readme[0].search(/^## Revision history/i)<0) readme.shift();
|
||||
while((readme.length > 0) && readme[0].trim()=="") readme.shift();
|
||||
// revision history section
|
||||
if(!readme.length) throw new Error("Revision history section not found in readme");
|
||||
readme.shift();
|
||||
var end_of_history = readme.length;
|
||||
for(var i=0; i<readme.length; ++i) if(readme[i].search(/^---/) >= 0) { end_of_history=i; break; }
|
||||
if(end_of_history >= readme.length) throw new Error("Could not find the end-of-history header marker.");
|
||||
// remove empty lines, splitters
|
||||
while(readme.length >= end_of_history) readme.pop();
|
||||
while((readme.length >0) && (readme[readme.length-1].replace(/[\s-]/g,"")=="")) readme.pop();
|
||||
|
||||
const min_indent = readme
|
||||
.map(function(s){return s.search(/[^\s]/)})
|
||||
.filter(function(e){return e>=0})
|
||||
.reduce(function(acc,e){return (e<acc)?e:acc});
|
||||
|
||||
if(min_indent > 1) {
|
||||
for(var i in readme) { readme[i] = readme[i].substr(min_indent-2); }
|
||||
}
|
||||
return readme.join("\n");
|
||||
}
|
||||
const html = "<pre>\n" + (readme_history("readme.md").replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<")) + "\n</pre>";
|
||||
fs.writefile("dist/revision-history.html", html);
|
||||
};
|
||||
|
||||
tasks["update-json"] = function() {
|
||||
const root_dir = fs.cwd();
|
||||
function read_history() {
|
||||
var readme = fs.readfile(root_dir + "/readme.md");
|
||||
if(!readme) throw new Error("Failed to load readme.md");
|
||||
readme = readme.split(/[\r]?[\n]/);
|
||||
while((readme.length > 0) && readme[0].search(/^## Revision history/i)<0) readme.shift();
|
||||
// revision history section
|
||||
if(!readme.length) throw new Error("Revision history section not found in readme");
|
||||
readme.shift();
|
||||
var end_of_history = readme.length;
|
||||
for(var i=0; i<readme.length; ++i) if(readme[i].search(/^---/) >= 0) { end_of_history=i; break; }
|
||||
if(end_of_history >= readme.length) throw new Error("Could not find the end-of-history header marker.");
|
||||
// remove empty lines, splitters
|
||||
while(readme.length >= end_of_history) readme.pop();
|
||||
for(var i in readme) readme[i] = readme[i].replace(/[\s]+$/g,"").replace(/[\t]/g," ");
|
||||
readme = readme.filter(function(a){return a.replace(/[\s-]+/g,"")!="";});
|
||||
// condense multilines to single line entries for each fix or feature. ([A] ... [M] ...)
|
||||
for(var i=readme.length-1; i>0; --i) {
|
||||
var line = readme[i].replace(/^\s+/,"");
|
||||
if(line.search(/^[\[\-]/) < 0) {
|
||||
readme[i-1] += " " + line;
|
||||
readme[i] = "";
|
||||
}
|
||||
}
|
||||
readme = readme.filter(function(a){return a!="";});
|
||||
// Condense log entries sepatated with newlines to one line for each version
|
||||
for(var i=readme.length-1; i>0; --i) {
|
||||
var line = readme[i].replace(/^\s+/,"");
|
||||
if(line.search(/^[-~]/) < 0) {
|
||||
readme[i-1] += "\n" + line;
|
||||
readme[i] = "";
|
||||
}
|
||||
}
|
||||
readme = readme.filter(function(a){return a!="";});
|
||||
// Separate versions.
|
||||
var history = {};
|
||||
for(var i in readme) {
|
||||
var line = readme[i].replace(/^[\sv-]+/g,"").trim();
|
||||
var ver = line.substr(0, line.search(" ")).trim().toLowerCase();
|
||||
var txt = line.substr(line.search(" ")).trim();
|
||||
if(ver.search("~")===0) continue;
|
||||
if(history[ver] !== undefined) throw new Error("Double definition of version '" + ver + "' in the readme revision history.");
|
||||
history[ver] = txt;
|
||||
}
|
||||
return history;
|
||||
}
|
||||
var history = read_history();
|
||||
var latest_release = "";
|
||||
var latest_beta = "";
|
||||
for(var ver in history) { latest_beta=ver; break; }
|
||||
for(var ver in history) if(ver.search(/(rc|b|a)/) < 0) { latest_release=ver; break; }
|
||||
var update_json = {
|
||||
homepage: "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||
"1.12.2": history,
|
||||
promos: {
|
||||
"1.12.2-recommended": latest_release,
|
||||
"1.12.2-latest": latest_beta,
|
||||
}
|
||||
}
|
||||
fs.mkdir(root_dir + "/meta");
|
||||
fs.writefile(root_dir + "/meta/update.json", JSON.stringify(update_json, null, 2));
|
||||
};
|
||||
|
||||
const task_name = sys.args[0];
|
||||
if((task_name===undefined) || (tasks[task_name])===undefined) {
|
||||
alert("No task ", task_name);
|
||||
exit(1);
|
||||
} else {
|
||||
tasks[task_name]();
|
||||
}
|
||||
libtask.run(tasks, sys.args);
|
||||
|
|
|
@ -24,7 +24,7 @@ wildcardr=$(foreach d,$(wildcard $1*),$(call wildcardr,$d/,$2) $(filter $(subst
|
|||
#
|
||||
# Targets
|
||||
#
|
||||
.PHONY: default mod init clean clean-all all run install sanatize dist-check dist start-server
|
||||
.PHONY: default mod init clean clean-all mrproper all run install sanatize dist-check dist start-server
|
||||
|
||||
default: mod
|
||||
|
||||
|
@ -42,8 +42,17 @@ clean:
|
|||
clean-all:
|
||||
@echo "[1.13] Cleaning using gradle ..."
|
||||
@rm -f dist/*
|
||||
@rm -rf run/logs/
|
||||
@rm -rf run/crash-reports/
|
||||
@$(GRADLE) clean cleanCache
|
||||
|
||||
mrproper: clean-all
|
||||
@rm -f meta/*.*
|
||||
@rm -rf run/
|
||||
@rm -rf out/
|
||||
@rm -f .project
|
||||
@rm -f .classpath
|
||||
|
||||
init:
|
||||
@echo "[1.13] Initialising eclipse workspace using gradle ..."
|
||||
@$(GRADLE) eclipse
|
||||
|
|
|
@ -12,6 +12,7 @@ buildscript {
|
|||
}
|
||||
apply plugin: 'net.minecraftforge.gradle'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'maven-publish'
|
||||
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'
|
||||
//-----------------------------------------------------------------------------
|
||||
version = "${version_engineersdecor}"
|
||||
|
@ -77,3 +78,21 @@ jar {
|
|||
])
|
||||
}
|
||||
}
|
||||
|
||||
def reobfFile = file("$buildDir/reobfJar/output.jar")
|
||||
def reobfArtifact = artifacts.add('default', reobfFile) {
|
||||
type 'jar'
|
||||
builtBy 'reobfJar'
|
||||
}
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
artifact reobfArtifact
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
url "file:///${project.projectDir}/mcmodsrepo"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|