Release merge v1.0.8-mc1.12.2.

This commit is contained in:
stfwi 2019-06-10 12:12:46 +02:00
commit 48e37bd20e
122 changed files with 1594 additions and 122 deletions

View file

@ -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.7
version_engineersdecor=1.0.8

View file

@ -1,6 +1,9 @@
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": {
"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).",
"1.0.7": "[R] Release based on v1.0.7-b2. Release-to-release changes: * Factory dropper added. * Defense system warning sign added. * Warning sign backgrounds adapted. * Standalone recipes added. * Lang files updated.\n[A] Added standalone recipes for signs, factory dropper, and electrical furnace.\n[M] Adapted \"Caution\" sign backgrounds to the yellow defense system warning background.",
"1.0.7-b2": "[A] Added Defense System Warning sign (design by J. Carver).\n[M] Factory dropper non-experimental now. GUI click area tuning. \"Fast drop\" symbol replaced from arrow to dog icon (thx overchoice for that icon).\n[M] Lang files updated.",
"1.0.7-b1": "[M] Factory dropper (config:experimental) button placement fixed, GUI vs external view x/y markers added, internal trigger logic simplified. Thx @overchoice for beta testing!",
@ -40,7 +43,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.7",
"1.12.2-latest": "1.0.7"
"1.12.2-recommended": "1.0.8",
"1.12.2-latest": "1.0.8"
}
}

View file

@ -10,6 +10,28 @@ Mod sources for Minecraft version 1.12.2.
----
## Revision history
-------------------------------------------------------------------
- v1.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.
-------------------------------------------------------------------
[A] Added stained clinker brick block/stairs. Can be mixed with
"normal" clinkers.
[A] Added opt-out option for CTRL-SHIFT tooltips.
[M] Recipe condition requirements updated, recipes categorized.
- v1.0.8-b2 [F] Config opt-out fixed (thx IronPiston for the report #30).
[A] Added opt-out config for detailed including/excluding
of features (using registry name wildcard matching).
- v1.0.8-b1 [A] Added "Factory area" sign.
[M] Electrical furnace recipe changed (hoppers to conveyors).
[A] Opt-out config options added.
[F] Lang file fixes for en_us (Angela, PR#29).
-------------------------------------------------------------------
- v1.0.7 [R] Release based on v1.0.7-b2. Release-to-release changes:
* Factory dropper added.

View file

@ -97,6 +97,7 @@ public class ModEngineersDecor
proxy.preInit(event);
MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());
Networking.init();
ModConfig.onPreInit();
}
@Mod.EventHandler

View file

@ -56,6 +56,7 @@ public class BlockDecor extends Block
public static final long CFG_ELECTRICAL = 0x0000000000010000L; // Denotes if a component is mainly flux driven.
public static final long CFG_REDSTONE_CONTROLLED = 0x0000000000020000L; // Denotes if a component has somehow a redstone control input
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;
@ -70,6 +71,8 @@ public class BlockDecor extends Block
setResistance((resistance > 0) ? resistance : 10.0f);
setSoundType((sound==null) ? SoundType.STONE : sound);
setLightOpacity(0);
// @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);
}

View file

@ -0,0 +1,202 @@
/*
* @file BlockDecorHalfSlab.java
* @author Stefan Wilhelm (wile)
* @copyright (C) 2019 Stefan Wilhelm
* @license MIT (see https://opensource.org/licenses/MIT)
*
* Half slab characteristics class.
*/
package wile.engineersdecor.blocks;
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.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;
public class BlockDecorHalfSlab extends BlockDecor
{
public static final PropertyInteger PARTS = PropertyInteger.create("parts", 0, 14);
protected static final AxisAlignedBB AABBs[] = {
new AxisAlignedBB(0, 0./16, 0, 1, 2./16, 1), new AxisAlignedBB(0, 0./16, 0, 1, 4./16, 1),
new AxisAlignedBB(0, 0./16, 0, 1, 6./16, 1), new AxisAlignedBB(0, 0./16, 0, 1, 8./16, 1),
new AxisAlignedBB(0, 0./16, 0, 1, 10./16, 1), new AxisAlignedBB(0, 0./16, 0, 1, 12./16, 1),
new AxisAlignedBB(0, 0./16, 0, 1, 14./16, 1), new AxisAlignedBB(0, 0./16, 0, 1, 16./16, 1),
new AxisAlignedBB(0, 2./16, 0, 1, 16./16, 1), new AxisAlignedBB(0, 4./16, 0, 1, 16./16, 1),
new AxisAlignedBB(0, 6./16, 0, 1, 16./16, 1), new AxisAlignedBB(0, 8./16, 0, 1, 16./16, 1),
new AxisAlignedBB(0, 10./16, 0, 1, 16./16, 1), new AxisAlignedBB(0, 12./16, 0, 1, 16./16, 1),
new AxisAlignedBB(0, 14./16, 0, 1, 16./16, 1), new AxisAlignedBB(0,0,0,1,1,1), // <- with 4bit fill
};
protected static final int num_slabs_contained_in_parts_[] = {
1,2,3,4,5,6,7,8,7,6,5,4,3,2,1 ,0x1 // <- with 4bit fill
};
public BlockDecorHalfSlab(@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) == 0x07; }
@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,14)); }
@Override
public int getMetaFromState(IBlockState state)
{ return state.getValue(PARTS); }
@Override
protected BlockStateContainer createBlockState()
{ return new BlockStateContainer(this, PARTS); }
@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)
{
final int parts = state.getValue(PARTS);
switch(face) {
case UP:
if(parts >= 0x07) return BlockFaceShape.SOLID;
break;
case DOWN:
if(parts <= 0x07) return BlockFaceShape.SOLID;
break;
default:
if((parts > 0x05) && (parts < 0x0a)) return BlockFaceShape.SOLID;
}
return BlockFaceShape.UNDEFINED;
}
@Override
@SuppressWarnings("deprecation")
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
{ return AABBs[state.getValue(PARTS) & 0xf]; }
@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) & 0xf])); }
@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 : 14); }
@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;
if((facing != EnumFacing.UP) && (facing != EnumFacing.DOWN)) return false;
int parts = state.getValue(PARTS);
if((facing != EnumFacing.UP) && (parts > 7)) {
world.setBlockState(pos, state.withProperty(PARTS, parts-1), 3);
} else if((facing != EnumFacing.DOWN) && (parts < 7)) {
world.setBlockState(pos, state.withProperty(PARTS, parts+1), 3);
} else {
return (parts != 7);
}
if(world.isRemote) return true;
if(!player.isCreative()) {
stack.shrink(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(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) 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) && (parts <= 7)) {
if(parts > 0) {
world.setBlockState(pos, state.withProperty(PARTS, parts-1), 3);
} else {
world.setBlockToAir(pos);
}
} else if((facing == EnumFacing.UP) && (parts >= 7)) {
if(parts < 14) {
world.setBlockState(pos, state.withProperty(PARTS, parts + 1), 3);
} else {
world.setBlockToAir(pos);
}
} else {
return;
}
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());
}
}

View file

@ -24,8 +24,9 @@ import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.ArrayList;
@ -44,6 +45,9 @@ public class ModBlocks
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 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 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);
@ -263,6 +267,54 @@ public class ModBlocks
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,
Material.WOOD, 0.1f, 1f, SoundType.WOOD,
ModAuxiliaries.getPixeledAABB(2,2,15.6, 15,15,16)
);
public static final BlockDecorHalfSlab HALFSLAB_REBARCONCRETE = new BlockDecorHalfSlab(
"halfslab_rebar_concrete",
BlockDecor.CFG_CUTOUT,
Material.ROCK, 2f, 2000f, SoundType.STONE
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
//--------------------------------------------------------------------------------------------------------------------
//-- Tile entities
//--------------------------------------------------------------------------------------------------------------------
@ -302,9 +354,17 @@ public class ModBlocks
private static final Object content[] = {
TREATED_WOOD_CRAFTING_TABLE, TREATED_WOOD_CRAFTING_TABLE_TEI,
SMALL_LAB_FURNACE, SMALL_LAB_FURNACE_TEI,
SMALL_ELECTRICAL_FURNACE, SMALL_ELECTRICAL_FURNACE_TEI,
FACTORY_DROPPER, FACTORY_DROPPER_TEI,
SMALL_WASTE_INCINERATOR, WASTE_INCINERATOR_TEI,
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_STAIRS,
CLINKER_BRICK_WALL,
CLINKER_BRICK_STAINED_BLOCK,
CLINKER_BRICK_STAINED_STAIRS,
SLAG_BRICK_BLOCK,
SLAG_BRICK_STAIRS,
SLAG_BRICK_WALL,
@ -322,29 +382,30 @@ public class ModBlocks
TREATED_WOOD_TABLE,
TREATED_WOOD_STOOL,
TREATED_WOOD_WINDOW,
STEEL_FRAMED_WINDOW,
TREATED_WOOD_WINDOWSILL,
INSET_LIGHT_IRON,
SMALL_LAB_FURNACE, SMALL_LAB_FURNACE_TEI,
STEEL_FRAMED_WINDOW,
TREATED_WOOD_POLE_SUPPORT,
TREATED_WOOD_POLE_HEAD,
SIGN_MODLOGO,
THIN_STEEL_POLE,
THICK_STEEL_POLE,
THIN_STEEL_POLE_HEAD,
THICK_STEEL_POLE_HEAD,
STEEL_DOUBLE_T_SUPPORT,
STRAIGHT_CHECK_VALVE, STRAIGHT_REDSTONE_VALVE, STRAIGHT_REDSTONE_ANALOG_VALVE, STRAIGHT_PIPE_VALVE_TEI,
PASSIVE_FLUID_ACCUMULATOR, PASSIVE_FLUID_ACCUMULATOR_TEI,
SMALL_ELECTRICAL_FURNACE, SMALL_ELECTRICAL_FURNACE_TEI,
SIGN_HOTWIRE, SIGN_DANGER,
SMALL_WASTE_INCINERATOR, WASTE_INCINERATOR_TEI,
SIGN_DEFENSE,
FACTORY_DROPPER, FACTORY_DROPPER_TEI
SIGN_HOTWIRE, SIGN_DANGER, SIGN_DEFENSE, SIGN_FACTORY_AREA, SIGN_MODLOGO,
};
private static final Object dev_content[] = {
SIGN_MINDSTEP,
// handling not sure yet ...
HALFSLAB_REBARCONCRETE,
HALFSLAB_CONCRETE,
HALFSLAB_TREATEDWOOD,
HALFSLAB_SHEETMETALIRON,
HALFSLAB_SHEETMETALSTEEL,
HALFSLAB_SHEETMETALCOPPER,
HALFSLAB_SHEETMETALGOLD,
HALFSLAB_SHEETMETALALUMINIUM,
};
//--------------------------------------------------------------------------------------------------------------------
@ -362,15 +423,23 @@ public class ModBlocks
public static final void registerBlocks(RegistryEvent.Register<Block> event)
{
// Config based registry selection
final boolean ie_installed = Loader.isModLoaded("immersiveengineering");
int num_block_registrations_skipped = 0;
int num_block_registrations_skipped_noie = 0;
final boolean woor = ModConfig.isWithoutOptOutRegistration();
for(Object e:content) {
if(e instanceof Block) {
if((!woor) || (!ModConfig.isOptedOut((Block)e)) || (e==SIGN_MODLOGO)) {
registeredBlocks.add((Block) e);
} else {
if((!ie_installed) && ((e instanceof BlockDecor) && ((((BlockDecor)e).config & BlockDecor.CFG_HARD_IE_DEPENDENT)!=0))) {
++num_block_registrations_skipped;
++num_block_registrations_skipped_noie;
continue;
}
if((woor) && (e != SIGN_MODLOGO) && (ModConfig.isOptedOut((Block)e))) {
ModEngineersDecor.logger.info("Registration opt-out: " + ((Block) e).getRegistryName().getPath());
++num_block_registrations_skipped;
continue;
}
registeredBlocks.add((Block) e);
} else if(e instanceof TileEntityRegistrationData) {
registeredTileEntityInits.add((TileEntityRegistrationData)e);
}
@ -386,7 +455,7 @@ public class ModBlocks
}
for(Block e:registeredBlocks) event.getRegistry().register(e);
ModEngineersDecor.logger.info("Registered " + Integer.toString(registeredBlocks.size()) + " blocks.");
if(num_block_registrations_skipped > 0) ModEngineersDecor.logger.info("Skipped registration of " + num_block_registrations_skipped + " blocks.");
if(num_block_registrations_skipped > 0) ModEngineersDecor.logger.info("Skipped registration of " + num_block_registrations_skipped + " blocks, " + num_block_registrations_skipped_noie + " because IE is not installed.");
for(TileEntityRegistrationData e:registeredTileEntityInits) GameRegistry.registerTileEntity(e.clazz, e.key);
ModEngineersDecor.logger.info("Registered " + Integer.toString(registeredTileEntityInits.size()) + " tile entities.");
}

View file

@ -85,6 +85,7 @@ public class ModAuxiliaries
{
// Note: intentionally not using keybinding here, this must be `control` or `shift`. MC uses lwjgl Keyboard,
// so using this also here should be ok.
if(ModConfig.noToolTips()) return false;
final boolean help_available = (helpTranslationKey != null) && ModAuxiliaries.hasTranslation(helpTranslationKey + ".help");
final boolean tip_available = (advancedTooltipTranslationKey != null) && ModAuxiliaries.hasTranslation(helpTranslationKey + ".tip");
if((!help_available) && (!tip_available)) return false;

View file

@ -20,6 +20,7 @@ import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
import javax.annotation.Nullable;
import java.util.ArrayList;
@Config(modid = ModEngineersDecor.MODID)
@Config.LangKey("engineersdecor.config.title")
@ -30,6 +31,26 @@ public class ModConfig
public static final SettingsOptouts optout = new SettingsOptouts();
public static final class SettingsOptouts
{
@Config.Comment({"Opt-out any block by its registry name ('*' wildcard matching, "
+ "comma separated list, whitespaces ignored. You must match the whole name, "
+ "means maybe add '*' also at the begin and end. Example: '*wood*,*steel*' "
+ "excludes everything that has 'wood' or 'steel' in the registry name. "
+ "The matching result is also traced in the log file. "
})
@Config.Name("Pattern excludes")
@Config.RequiresMcRestart
public String excludes = "";
@Config.Comment({"Prevent blocks from being opt'ed by registry name ('*' wildcard matching, "
+ "comma separated list, whitespaces ignored. Evaluated before all other opt-out checks. "
+ "You must match the whole name, means maybe add '*' also at the begin and end. Example: "
+ "'*wood*,*steel*' includes everything that has 'wood' or 'steel' in the registry name."
+ "The matching result is also traced in the log file."
})
@Config.Name("Pattern includes")
@Config.RequiresMcRestart
public String includes = "";
@Config.Comment({"Disable clinker bricks and derived blocks."})
@Config.Name("Without clinker bricks")
@Config.RequiresMcRestart
@ -80,7 +101,7 @@ public class ModConfig
@Config.RequiresMcRestart
public boolean without_electrical_furnace = false;
@Config.Comment({"Disable treated wood table, stool, windowsill, pole, etc."})
@Config.Comment({"Disable treated wood table, stool, windowsill, etc."})
@Config.Name("Without tr. wood furniture")
@Config.RequiresMcRestart
public boolean without_treated_wood_furniture = false;
@ -135,6 +156,30 @@ public class ModConfig
@Config.Name("Without signs")
@Config.RequiresMcRestart
public boolean without_sign_plates = false;
@Config.Comment({"Disable the factory dropper."})
@Config.Name("Without factory dropper")
@Config.RequiresMcRestart
public boolean without_factory_dropper = false;
@Config.Comment({"Disable stackable 1/8 block slices."})
@Config.Name("Without slab slices")
@Config.RequiresMcRestart
public boolean without_halfslabs = false;
@Config.Comment({"Disable poles of any material."})
@Config.Name("Without poles")
@Config.RequiresMcRestart
public boolean without_poles = false;
@Config.Comment({"Disable horizontal supports like the double-T support."})
@Config.Name("Without h. supports")
@Config.RequiresMcRestart
public boolean without_hsupports = false;
@Config.Comment({"Disable CTRL-SHIFT item tooltip display."})
@Config.Name("Without tooltips")
public boolean without_tooltips = false;
}
@Config.Comment({
@ -280,45 +325,82 @@ public class ModConfig
}
@SuppressWarnings("unused")
public static final void onPostInit(FMLPostInitializationEvent event)
public static final void onPreInit()
{ apply(); }
@SuppressWarnings("unused")
public static final void onPostInit(FMLPostInitializationEvent event)
{ for(Block e:ModBlocks.getRegisteredBlocks()) ModConfig.isOptedOut(e, true); }
private static final ArrayList<String> includes_ = new ArrayList<String>();
private static final ArrayList<String> excludes_ = new ArrayList<String>();
public static final boolean isWithoutOptOutRegistration()
{ return (zmisc!=null) && (zmisc.without_optout_registration); }
public static final boolean isWithoutRecipes()
{ return (zmisc==null) || (zmisc.without_recipes); }
public static boolean noToolTips()
{ return optout.without_tooltips; }
public static final boolean isOptedOut(final @Nullable Block block)
{ return isOptedOut(block, false); }
public static final boolean isOptedOut(final @Nullable Block block, boolean with_log_details)
{
if((block == null) || (optout==null)) return true;
if(block == ModBlocks.SIGN_MODLOGO) return true;
if((!zmisc.with_experimental) && (block instanceof ModAuxiliaries.IExperimentalFeature)) return true;
final String rn = block.getRegistryName().getPath();
if(optout.without_clinker_bricks && rn.startsWith("clinker_brick_")) return true;
// Force-include/exclude pattern matching
try {
for(String e:includes_) {
if(rn.matches(e)) {
if(with_log_details) ModEngineersDecor.logger.info("Optout force include: " + rn);
return false;
}
}
for(String e:excludes_) {
if(rn.matches(e)) {
if(with_log_details) ModEngineersDecor.logger.info("Optout force exclude: " + rn);
return true;
}
}
} catch(Throwable ex) {
ModEngineersDecor.logger.error("optout include pattern failed, disabling.");
includes_.clear();
excludes_.clear();
}
// Early non-opt out type based evaluation
if(block instanceof BlockDecorCraftingTable) return optout.without_crafting_table;
if(block instanceof BlockDecorFurnaceElectrical) return optout.without_electrical_furnace;
if((block instanceof BlockDecorFurnace) && (!(block instanceof BlockDecorFurnaceElectrical))) return optout.without_lab_furnace;
if(block instanceof BlockDecorPassiveFluidAccumulator) return optout.without_passive_fluid_accumulator;
if(block instanceof BlockDecorWasteIncinerator) return optout.without_waste_incinerator;
if(block instanceof BlockDecorDropper) return optout.without_factory_dropper;
if(block instanceof BlockDecorHalfSlab) return optout.without_halfslabs;
if(block instanceof BlockDecorLadder) return optout.without_ladders;
if(block instanceof BlockDecorWindow) return optout.without_windows;
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_stairs && (block instanceof BlockDecorStairs)) return true;
if(optout.without_walls && (block instanceof BlockDecorWall)) return true;
if(optout.without_poles && (block instanceof BlockDecorStraightPole)) return true;
// String matching based evaluation
if(optout.without_clinker_bricks && (rn.startsWith("clinker_brick_"))) return true;
if(optout.without_slag_bricks && rn.startsWith("slag_brick_")) return true;
if(optout.without_rebar_concrete && rn.startsWith("rebar_concrete")) return true;
if(optout.without_ie_concrete_wall && rn.startsWith("concrete_wall")) return true;
if(optout.without_panzer_glass && rn.startsWith("panzerglass_")) return true;
if(optout.without_crafting_table && (block instanceof BlockDecorCraftingTable)) return true;
if(optout.without_lab_furnace && ((block instanceof BlockDecorFurnace)) && (!(block instanceof BlockDecorFurnaceElectrical))) return true;
if(optout.without_electrical_furnace && (block instanceof BlockDecorFurnaceElectrical)) return true;
if(optout.without_passive_fluid_accumulator && (block instanceof BlockDecorPassiveFluidAccumulator)) return true;
if(optout.without_waste_incinerator && (block instanceof BlockDecorWasteIncinerator)) return true;
if(optout.without_windows && rn.endsWith("_window")) return true;
if(optout.without_light_sources && rn.endsWith("_light")) return true;
if(optout.without_ladders && (block instanceof BlockDecorLadder)) return true;
if(optout.without_sign_plates && rn.startsWith("sign_")) return true;
if(optout.without_walls && rn.endsWith("_wall")) return true;
if(optout.without_stairs && rn.endsWith("_stairs")) return true;
if(optout.without_valves && rn.contains("_pipe_valve")) return true;
if(optout.without_treated_wood_furniture) {
if(block instanceof BlockDecorChair) return true;
if(rn.equals("treated_wood_pole")) return true;
if(rn.equals("treated_wood_table")) return true;
if(rn.equals("treated_wood_stool")) return true;
if(rn.equals("treated_wood_windowsill")) return true;
if(rn.equals("treated_wood_window")) return true;
}
return false;
}
@ -339,6 +421,26 @@ public class ModConfig
BlockDecorCraftingTable.on_config(optout.without_crafting_table_history, false, tweaks.with_crafting_quickmove_buttons);
BlockDecorPipeValve.on_config(tweaks.pipevalve_max_flowrate, tweaks.pipevalve_redstone_slope);
BlockDecorFurnaceElectrical.BTileEntity.on_config(tweaks.e_furnace_speed_percent, tweaks.e_furnace_power_consumption);
{
optout.includes = optout.includes.toLowerCase().replaceAll(ModEngineersDecor.MODID+":", "").replaceAll("[^*_,a-z0-9]", "");
if(!optout.includes.isEmpty()) ModEngineersDecor.logger.info("Pattern includes: '" + optout.includes + "'");
String[] incl = optout.includes.split(",");
includes_.clear();
for(int i=0; i< incl.length; ++i) {
incl[i] = incl[i].replaceAll("[*]", ".*?");
if(!incl[i].isEmpty()) includes_.add(incl[i]);
}
}
{
optout.excludes = optout.excludes.toLowerCase().replaceAll(ModEngineersDecor.MODID+":", "").replaceAll("[^*_,a-z0-9]", "");
if(!optout.excludes.isEmpty()) ModEngineersDecor.logger.info("Pattern excludes: '" + optout.excludes + "'");
String[] excl = optout.excludes.split(",");
excludes_.clear();
for(int i=0; i< excl.length; ++i) {
excl[i] = excl[i].replaceAll("[*]", ".*?");
if(!excl[i].isEmpty()) excludes_.add(excl[i]);
}
}
}
}

View file

@ -0,0 +1,20 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:std/decor_full_block_model",
"textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture0" }
},
"variants": {
"normal": [
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture0" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture1" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture2" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture3" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture4" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture5" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture6" } },
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_stained_texture7" } }
],
"inventory": [{}]
}
}

View file

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

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/stone_decoration_concrete" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture0" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/sheetmetal_aluminum" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/sheetmetal_copper" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/sheetmetal_gold" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/sheetmetal_iron" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/sheetmetal_steel" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,28 @@
{
"forge_marker": 1,
"defaults": {
"model": "engineersdecor:slab/halfslab_s0_model",
"textures": { "all": "immersiveengineering:blocks/treated_wood" }
},
"variants": {
"normal": [{}],
"inventory": [{}],
"parts": {
"0" : { "model": "engineersdecor:slab/halfslab_s0_model" },
"1" : { "model": "engineersdecor:slab/halfslab_s1_model" },
"2" : { "model": "engineersdecor:slab/halfslab_s2_model" },
"3" : { "model": "engineersdecor:slab/halfslab_s3_model" },
"4" : { "model": "engineersdecor:slab/halfslab_s4_model" },
"5" : { "model": "engineersdecor:slab/halfslab_s5_model" },
"6" : { "model": "engineersdecor:slab/halfslab_s6_model" },
"7" : { "model": "engineersdecor:slab/halfslab_s7_model" },
"8" : { "model": "engineersdecor:slab/halfslab_s8_model" },
"9" : { "model": "engineersdecor:slab/halfslab_s9_model" },
"10": { "model": "engineersdecor:slab/halfslab_sa_model" },
"11": { "model": "engineersdecor:slab/halfslab_sb_model" },
"12": { "model": "engineersdecor:slab/halfslab_sc_model" },
"13": { "model": "engineersdecor:slab/halfslab_sd_model" },
"14": { "model": "engineersdecor:slab/halfslab_se_model" }
}
}
}

View file

@ -0,0 +1,9 @@
{
"forge_marker": 1,
"defaults": { "model": "engineersdecor:sign/sign_factoryarea_model" },
"variants": {
"normal": [{}],
"inventory": [{}],
"facing": { "north":{"y":0}, "south":{"y":180}, "west":{"y":270}, "east":{"y":90}, "up": {"x":0}, "down": {"x":0} }
}
}

View file

@ -14,6 +14,8 @@ engineersdecor.tooltip.hint.help=§6[§9CTRL-SHIFT§r Help§6]§r
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.clinker_brick_block.name=Clinker Brick Block
tile.engineersdecor.clinker_brick_block.help=§6A brick block with position dependent texture variations.§r\nLooks slightly darker and more color intensive than the vanilla brick block.
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=Slag Brick Block
tile.engineersdecor.slag_brick_block.help=§6A gray-brown brick block with position dependent texture variations.
tile.engineersdecor.rebar_concrete.name=Rebar Concrete Block
@ -41,6 +43,8 @@ tile.engineersdecor.treated_wood_ladder.help=§6Weather-proof wooden ladder.§r
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.clinker_brick_stairs.name=Clinker Brick Stairs
tile.engineersdecor.clinker_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block.
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=Clinker Brick Stairs
tile.engineersdecor.slag_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block.
tile.engineersdecor.rebar_concrete_stairs.name=Rebar Concrete Stairs
@ -50,7 +54,7 @@ tile.engineersdecor.rebar_concrete_tile_stairs.help=§6Steel reinforced concrete
#-----------------------------------------------------------------------------------------------------------
tile.engineersdecor.treated_wood_pole.name=Straight Treated Wood Pole
tile.engineersdecor.treated_wood_pole.help=§6Straight pole fragment with a diameter of a wire relay.§r\n\
Can be useful as alternative to the wire posts if special special lengths are needed, \
Can be useful as alternative to the wire posts if special lengths are needed, \
or as support for structures.
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.
@ -81,11 +85,11 @@ tile.engineersdecor.iron_inset_light.help=§6Small glowstone light source, sunk
Useful to light up places where electrical light installations are problematic.\
Light level like a torch.
tile.engineersdecor.treated_wood_window.name=Treated Wood Window
tile.engineersdecor.treated_wood_window.help=§6Wood framed tripple glazed window. Well insulating.§r Does not connect to adjacent blocks like glass panes.
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 tripple glazed window. Well insulating. §r Does not connect to adjacent blocks like glass panes.
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. \
@ -124,7 +128,7 @@ tile.engineersdecor.passive_fluid_accumulator.help=§6Vacuum suction based fluid
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 \
solts with logical AND or OR can be used as internal trigger source. Internal trigger can be \
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.
@ -139,7 +143,25 @@ 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.
#-----------------------------------------------------------------------------------------------------------
# EOF
#-----------------------------------------------------------------------------------------------------------

View file

@ -14,6 +14,8 @@ engineersdecor.tooltip.hint.help=§6[§9CTRL-SHIFT§r Помощь§6]§r
#-----------------------------------------------------------------------------------------------------------
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=Железобетон
@ -41,6 +43,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.slag_brick_stairs.name=Клинкерная кирпичная лестница
tile.engineersdecor.slag_brick_stairs.help=§6По цвету выглядит немного темнее и интенсивнее, чем ванильный кирпичный блок.
tile.engineersdecor.rebar_concrete_stairs.name=Железобетонная лестница
@ -82,7 +86,7 @@ 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 tripple glazed window. Well insulating. §r Does not connect to adjacent blocks like glass panes.
#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=Компактная лабораторная печь
tile.engineersdecor.small_lab_furnace.help=§6Лабораторная печь в металлическом корпусе.§r Подача твёрдого топлива - сверху. Немного горячее чем каменная, поэтому быстрее. Два внутренних слота для ввода, выхода и топлива.
@ -117,7 +121,7 @@ tile.engineersdecor.passive_fluid_accumulator.name=Passive fluid accumulator
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 \
solts with logical AND or OR can be used as internal trigger source. Internal trigger can be \
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.
@ -132,7 +136,25 @@ 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.
#-----------------------------------------------------------------------------------------------------------
# EOF
#-----------------------------------------------------------------------------------------------------------

View file

@ -0,0 +1,4 @@
{
"parent": "engineersdecor:block/sign/sign_rect14x14_model",
"textures": { "f": "engineersdecor:blocks/sign/sign_factoryarea_texture" }
}

View file

@ -0,0 +1,35 @@
{
"parent": "block/cube",
"textures": {
"s": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
"particle": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
"f": "engineersdecor:blocks/sign/sign_factoryarea_texture"
},
"elements": [
{
"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"}
}
}
],
"display": {
"ground": {
"translation": [0, 0, 7],
"scale": [0.7, 0.7, 0.7]
},
"gui": {
"translation": [0, 0.5, 0]
},
"fixed": {
"rotation": [0, 180, 0],
"translation": [0, 0, -7.3]
}
}
}

View file

@ -0,0 +1,48 @@
{
"parent": "block/cube",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 2, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
],
"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]
},
"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 ]
}
}
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 4, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 6, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 8, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 10, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 12, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 14, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 2, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 4, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 6, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 8, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 10, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 12, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -0,0 +1,21 @@
{
"parent": "engineersdecor:block/slab/halfslab_s0_model",
"textures": {
"particle": "#all",
"all": "engineersdecor:blocks/iestyle/treated_wood_framed_nailed_texture"
},
"elements": [
{
"from": [0, 14, 0],
"to": [16, 16, 16],
"faces": {
"north": {"texture": "#all"},
"east": {"texture": "#all"},
"south": {"texture": "#all"},
"west": {"texture": "#all"},
"up": {"texture": "#all"},
"down": {"texture": "#all"}
}
}
]
}

View file

@ -76,9 +76,17 @@
"name": "slabSheetmetalSteel"
},
{
"ingredient": { "type": "forge:ore_dict", "ore": "slabSheetmetalAluminium" },
"ingredient": { "type": "forge:ore_dict", "ore": "slabSheetmetalAluminum" },
"name": "slabSheetmetalAluminium"
},
{
"ingredient": { "type": "forge:ore_dict", "ore": "slabSheetmetalCopper" },
"name": "slabSheetmetalCopper"
},
{
"ingredient": { "type": "forge:ore_dict", "ore": "slabSheetmetalGold" },
"name": "slabSheetmetalGold"
},
{
"ingredient": { "type": "forge:ore_dict", "ore": "sand" },
"name": "sand"
@ -110,6 +118,13 @@
],
"name": "plateAnyMetal"
},
{
"ingredient": [
{ "type": "forge:ore_dict", "ore": "plateIron" },
{ "type": "forge:ore_dict", "ore": "plateSteel" }
],
"name": "plateAnyFerroMetal"
},
{
"conditions": [
{ "type": "minecraft:item_exists", "item": "immersiveengineering:material" }
@ -141,6 +156,25 @@
],
"name": "electricalConnector"
},
{
"conditions": [
{ "type": "minecraft:item_exists", "item": "immersiveengineering:conveyor" }
],
"ingredient": [
{ "type": "minecraft:item_nbt", "item": "immersiveengineering:conveyor", "nbt": { "conveyorType": "immersiveengineering:conveyor" } },
{ "type": "minecraft:item_nbt", "item": "immersiveengineering:conveyor", "nbt": { "conveyorType": "immersiveengineering:uncontrolled" } }
],
"name": "normalConveyor"
},
{
"conditions": [
{ "type": "minecraft:item_exists", "item": "immersiveengineering:conveyor" }
],
"ingredient": [
{ "type": "minecraft:item_nbt", "item": "immersiveengineering:conveyor", "nbt": { "conveyorType": "immersiveengineering:dropper" } }
],
"name": "droppingConveyor"
},
{
"ingredient": [
{ "type": "forge:ore_dict", "ore": "ingotBrick" },
@ -194,6 +228,13 @@
"ingredient": { "item": "immersiveengineering:stone_decoration", "data": 5 },
"name": "blockConcreteIe"
},
{
"conditions": [
{ "type": "minecraft:item_exists", "item": "immersiveengineering:stone_decoration" }
],
"ingredient": { "item": "immersiveengineering:stone_decoration_slab", "data": 5 },
"name": "slabConcreteIe"
},
{
"conditions": [
{ "type": "minecraft:item_exists", "item": "immersiveengineering:wooden_device0" }
@ -240,5 +281,9 @@
{
"ingredient": { "item": "minecraft:lava_bucket", "data": 0 },
"name": "anyLavaItem"
},
{
"ingredient": { "item": "minecraft:dirt", "data": 0 },
"name": "anyDirt"
}
]

View file

@ -0,0 +1,17 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_stained_block",
"required": ["engineersdecor:clinker_brick_block"]
}
],
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "engineersdecor:clinker_brick_block" },
{ "item": "#anyDirt" }
],
"result": {
"item": "engineersdecor:clinker_brick_stained_block"
}
}

View file

@ -0,0 +1,16 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_block",
"required": ["engineersdecor:clinker_brick_stained_block"]
}
],
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "engineersdecor:clinker_brick_stained_block" }
],
"result": {
"item": "engineersdecor:clinker_brick_block"
}
}

View file

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

View file

@ -0,0 +1,24 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_stained_block",
"required": ["engineersdecor:clinker_brick_stained_stairs"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": {
"item": "engineersdecor:clinker_brick_stained_stairs",
"data": 0
}
},
"result": {
"item": "engineersdecor:clinker_brick_stained_block",
"count": 4
}
}

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_stairs"
"result": "engineersdecor:clinker_brick_stairs",
"required": ["engineersdecor:clinker_brick_block"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_block"
"result": "engineersdecor:clinker_brick_block",
"required": ["engineersdecor:clinker_brick_stairs"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_wall"
"result": "engineersdecor:clinker_brick_wall",
"required": ["engineersdecor:clinker_brick_block"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:clinker_brick_block"
"result": "engineersdecor:clinker_brick_block",
"required": ["engineersdecor:clinker_brick_wall"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_stairs"
"result": "engineersdecor:slag_brick_stairs",
"required": ["engineersdecor:slag_brick_block"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_block"
"result": "engineersdecor:slag_brick_block",
"required": ["engineersdecor:slag_brick_stairs"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_wall"
"result": "engineersdecor:slag_brick_wall",
"required": ["engineersdecor:slag_brick_block"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:slag_brick_block"
"result": "engineersdecor:slag_brick_block",
"required": ["engineersdecor:slag_brick_wall"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_stairs"
"result": "engineersdecor:rebar_concrete_stairs",
"required": ["engineersdecor:rebar_concrete"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete"
"result": "engineersdecor:rebar_concrete",
"required": ["engineersdecor:rebar_concrete_stairs"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_tile"
"result": "engineersdecor:rebar_concrete_tile",
"required": ["engineersdecor:rebar_concrete"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete"
"result": "engineersdecor:rebar_concrete",
"required": ["engineersdecor:rebar_concrete_tile"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_tile_stairs"
"result": "engineersdecor:rebar_concrete_tile_stairs",
"required": ["engineersdecor:rebar_concrete_tile"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_tile"
"result": "engineersdecor:rebar_concrete_tile",
"required": ["engineersdecor:rebar_concrete_tile_stairs"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete_wall"
"result": "engineersdecor:rebar_concrete_wall",
"required": ["engineersdecor:rebar_concrete"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:rebar_concrete"
"result": "engineersdecor:rebar_concrete",
"required": ["engineersdecor:rebar_concrete_wall"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:small_electrical_furnace",
"required": ["immersiveengineering:material"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"PCP",
"HFH",
"PPP"
],
"key": {
"F": { "item": "#itemFurnace" },
"C": { "item": "#electricalConnector" },
"H": { "item": "#normalConveyor" },
"P": { "item": "#plateAnyFerroMetal" }
},
"result": {
"item": "engineersdecor:small_electrical_furnace",
"count": 1
}
}

View file

@ -3,7 +3,7 @@
{
"type": "engineersdecor:grc",
"result": "engineersdecor:treated_wood_stool",
"required": ["immersiveengineering:material"]
"required": ["immersiveengineering:material", "engineersdecor:treated_wood_pole"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -3,7 +3,7 @@
{
"type": "engineersdecor:grc",
"result": "engineersdecor:treated_wood_table",
"required": ["immersiveengineering:material"]
"required": ["immersiveengineering:material", "engineersdecor:treated_wood_pole"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,7 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:sign_hotwire",
"result": "engineersdecor:sign_factoryarea",
"required": ["engineersdecor:sign_defense"]
}
],
@ -11,6 +11,6 @@
{ "item": "engineersdecor:sign_defense" }
],
"result": {
"item": "engineersdecor:sign_hotwire"
"item": "engineersdecor:sign_factoryarea"
}
}

View file

@ -0,0 +1,16 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:sign_hotwire",
"required": ["engineersdecor:sign_factoryarea"]
}
],
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "engineersdecor:sign_factoryarea" }
],
"result": {
"item": "engineersdecor:sign_hotwire"
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_concrete",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabConcreteIe" }
},
"result": {
"item": "engineersdecor:halfslab_concrete",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_rebar_concrete",
"required": ["engineersdecor:rebar_concrete"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"S",
"S"
],
"key": {
"S": { "item": "engineersdecor:rebar_concrete" }
},
"result": {
"item": "engineersdecor:halfslab_rebar_concrete",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_sheetmetal_aluminum",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabSheetmetalAluminium" }
},
"result": {
"item": "engineersdecor:halfslab_sheetmetal_aluminum",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_sheetmetal_copper",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabSheetmetalCopper" }
},
"result": {
"item": "engineersdecor:halfslab_sheetmetal_copper",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_sheetmetal_gold",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabSheetmetalGold" }
},
"result": {
"item": "engineersdecor:halfslab_sheetmetal_gold",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_sheetmetal_iron",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabSheetmetalIron" }
},
"result": {
"item": "engineersdecor:halfslab_sheetmetal_iron",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_sheetmetal_steel",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabSheetmetalSteel" }
},
"result": {
"item": "engineersdecor:halfslab_sheetmetal_steel",
"count": 16
}
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:halfslab_treated_wood",
"required": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"SS",
"SS"
],
"key": {
"S": { "item": "#slabTreatedWood" }
},
"result": {
"item": "engineersdecor:halfslab_treated_wood",
"count": 16
}
}

View file

@ -1,32 +0,0 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:small_electrical_furnace",
"required": ["immersiveengineering:material", "engineersdecor:small_lab_furnace"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
" C ",
"HFH"
],
"key": {
"F": {
"item": "engineersdecor:small_lab_furnace",
"data": 0
},
"C": {
"item": "#electricalConnector",
"data": 0
},
"H": {
"item": "#anyHopper",
"data": 0
}
},
"result": {
"item": "engineersdecor:small_electrical_furnace",
"count": 1
}
}

View file

@ -3,7 +3,8 @@
{
"type": "engineersdecor:grc",
"result": "engineersdecor:small_electrical_furnace",
"required": ["engineersdecor:small_lab_furnace"]
"required": ["engineersdecor:small_lab_furnace"],
"missing": ["immersiveengineering:material"]
}
],
"type": "minecraft:crafting_shaped",

View file

@ -2,7 +2,8 @@
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:thick_steel_pole_head"
"result": "engineersdecor:thick_steel_pole_head",
"required": ["engineersdecor:thick_steel_pole"]
}
],
"type": "minecraft:crafting_shapeless",

Some files were not shown because too many files have changed in this diff Show more