Release merge v1.0.7-mc1.12.2.

This commit is contained in:
stfwi 2019-06-01 12:56:03 +02:00
commit e3a9a52c91
31 changed files with 311 additions and 76 deletions

View file

@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx8G
version_minecraft=1.12.2 version_minecraft=1.12.2
version_forge=14.23.5.2768 version_forge=14.23.5.2768
version_jei=4.10.0.198 version_jei=4.10.0.198
version_engineersdecor=1.0.6 version_engineersdecor=1.0.7

View file

@ -1,9 +1,12 @@
{ {
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": { "1.12.2": {
"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!",
"1.0.6": "[R] Release based on v1.0.6-b1. Release-to-release changes: * Fixed FML remapping issue (COULD CAUSE CRASHES). * Small waste incinerator added. * Lang files updated/corrections. * Metal ladder easier to break.\n[A] Added factory dropper (config:experimental).\n[C] Thx to abdurraslan for the detailed issue #25.", "1.0.6": "[R] Release based on v1.0.6-b1. Release-to-release changes: * Fixed FML remapping issue (COULD CAUSE CRASHES). * Small waste incinerator added. * Lang files updated/corrections. * Metal ladder easier to break.\n[A] Added factory dropper (config:experimental).\n[C] Thx to abdurraslan for the detailed issue #25.",
"1.0.6-b1": "[A] Added small waste incinerator (delayed fifo-buffered item disposal).\n[M] Fixed item/block name capitalization (by Voxelo).\n[M] Metal ladders are easier to break/harvest.\n[F] Fixed FML remapping issue by using dedicated IItemHandler instances.", "1.0.6-b1": "[A] Added small waste incinerator (delayed fifo-buffered item disposal).\n[M] Fixed item/block name capitalization (by Voxelo).\n[M] Metal ladders are easier to break/harvest.\n[F] Fixed FML remapping issue by using dedicated IItemHandler instances.",
"1.0.5": "[R] Release based on v1.0.5-b1. Release-to-release changes: * Small electrical passthrough-furnace added. * Passive fluid accumulator added. * Config options added. * Sign plates added. * Minor bug fixes.\n[A] Added sign \"Electrical hazzard\"/\"Caution hot wire\".\n[A] Added sign \"Caution dangerous there\" (skull/bones).", "1.0.5": "[R] Release based on v1.0.5-b1. Release-to-release changes: * Small electrical passthrough-furnace added. * Passive fluid accumulator added. * Config options added. * Sign plates added. * Minor bug fixes.\n[A] Added sign \"Electrical hazard\"/\"Caution hot wire\".\n[A] Added sign \"Caution dangerous there\" (skull/bones).",
"1.0.5-b1": "[A] Added passive fluid accumulator.\n[A] Added small electrical passthrough-furnace.\n[F] Fixed version check URL.\n[M] Opt-out config options for valves, passive fluid accumulator, and furni.", "1.0.5-b1": "[A] Added passive fluid accumulator.\n[A] Added small electrical passthrough-furnace.\n[F] Fixed version check URL.\n[M] Opt-out config options for valves, passive fluid accumulator, and furni.",
"1.0.4": "[R] Release based on v1.0.4-b9. Release-to-release changes: * Crafting table: Quick crafting history re-fab, JEI integration. * Rendering improvements and issue fixes (stairs, ambient occlusion, optifine, etc). * Walls with texture variations. * Thin/thick steel poles with support feet/heads. * Horizontal steel double-T support beams added. * Fluid pipe valves added: Check valve, redstone controlled valve, analog redstone controlled valve. Support pressurized transfer. * Tool tip documentation (CTRL-SHIFT) for stairs added. * Internal code cleanups. * Recipes tuned.\n[E] Added pass-through electrical furnace (experimental, see config).", "1.0.4": "[R] Release based on v1.0.4-b9. Release-to-release changes: * Crafting table: Quick crafting history re-fab, JEI integration. * Rendering improvements and issue fixes (stairs, ambient occlusion, optifine, etc). * Walls with texture variations. * Thin/thick steel poles with support feet/heads. * Horizontal steel double-T support beams added. * Fluid pipe valves added: Check valve, redstone controlled valve, analog redstone controlled valve. Support pressurized transfer. * Tool tip documentation (CTRL-SHIFT) for stairs added. * Internal code cleanups. * Recipes tuned.\n[E] Added pass-through electrical furnace (experimental, see config).",
"1.0.4-b9": "[F] Inserting fluids with pressurized tag only into IE piping.\n[F] Valve redstone connector rendering does not check for \"can connect redstone\" but only for \"can provide power\".\n[M] Valves are adapted to be detected as pipe by IE.", "1.0.4-b9": "[F] Inserting fluids with pressurized tag only into IE piping.\n[F] Valve redstone connector rendering does not check for \"can connect redstone\" but only for \"can provide power\".\n[M] Valves are adapted to be detected as pipe by IE.",
@ -37,7 +40,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." "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": { "promos": {
"1.12.2-recommended": "1.0.6", "1.12.2-recommended": "1.0.7",
"1.12.2-latest": "1.0.6" "1.12.2-latest": "1.0.7"
} }
} }

View file

@ -10,6 +10,29 @@ Mod sources for Minecraft version 1.12.2.
---- ----
## Revision history ## Revision history
-------------------------------------------------------------------
- v1.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.
-------------------------------------------------------------------
[A] Added standalone recipes for signs, factory dropper, and
electrical furnace.
[M] Adapted "Caution" sign backgrounds to the yellow defense
system warning background.
- v1.0.7-b2 [A] Added Defense System Warning sign (design by J. Carver).
[M] Factory dropper non-experimental now. GUI click area tuning.
"Fast drop" symbol replaced from arrow to dog icon (thx
overchoice for that icon).
[M] Lang files updated.
- v1.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!
------------------------------------------------------------------- -------------------------------------------------------------------
- v1.0.6 [R] Release based on v1.0.6-b1. Release-to-release changes: - v1.0.6 [R] Release based on v1.0.6-b1. Release-to-release changes:
* Fixed FML remapping issue (COULD CAUSE CRASHES). * Fixed FML remapping issue (COULD CAUSE CRASHES).
@ -33,7 +56,7 @@ Mod sources for Minecraft version 1.12.2.
* Sign plates added. * Sign plates added.
* Minor bug fixes. * Minor bug fixes.
------------------------------------------------------------------- -------------------------------------------------------------------
[A] Added sign "Electrical hazzard"/"Caution hot wire". [A] Added sign "Electrical hazard"/"Caution hot wire".
[A] Added sign "Caution dangerous there" (skull/bones). [A] Added sign "Caution dangerous there" (skull/bones).
- v1.0.5-b1 [A] Added passive fluid accumulator. - v1.0.5-b1 [A] Added passive fluid accumulator.

View file

@ -80,6 +80,7 @@ public class BlockDecorCraftingTable extends BlockDecorDirected
public boolean hasTileEntity(IBlockState state) public boolean hasTileEntity(IBlockState state)
{ return true; } { return true; }
@Override
@Nullable @Nullable
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state)
{ return new BlockDecorCraftingTable.BTileEntity(); } { return new BlockDecorCraftingTable.BTileEntity(); }

View file

@ -8,6 +8,8 @@
*/ */
package wile.engineersdecor.blocks; package wile.engineersdecor.blocks;
import net.minecraft.block.state.BlockFaceShape;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.items.wrapper.SidedInvWrapper; import net.minecraftforge.items.wrapper.SidedInvWrapper;
import wile.engineersdecor.ModEngineersDecor; import wile.engineersdecor.ModEngineersDecor;
import wile.engineersdecor.detail.Networking; import wile.engineersdecor.detail.Networking;
@ -47,7 +49,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
public class BlockDecorDropper extends BlockDecorDirected public class BlockDecorDropper extends BlockDecorDirected
{ {
@ -56,6 +57,10 @@ public class BlockDecorDropper extends BlockDecorDirected
public BlockDecorDropper(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB) public BlockDecorDropper(@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); } { super(registryName, config, material, hardness, resistance, sound, unrotatedAABB); }
@Override
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
{ return BlockFaceShape.SOLID; }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState()
{ return new BlockStateContainer(this, FACING, OPEN); } { return new BlockStateContainer(this, FACING, OPEN); }
@ -86,6 +91,7 @@ public class BlockDecorDropper extends BlockDecorDirected
public boolean hasTileEntity(IBlockState state) public boolean hasTileEntity(IBlockState state)
{ return true; } { return true; }
@Override
@Nullable @Nullable
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state)
{ return new BlockDecorDropper.BTileEntity(); } { return new BlockDecorDropper.BTileEntity(); }
@ -94,12 +100,13 @@ public class BlockDecorDropper extends BlockDecorDirected
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{ {
if(world.isRemote) return; if(world.isRemote) return;
if((!stack.hasTagCompound()) || (!stack.getTagCompound().hasKey("inventory"))) return; if((!stack.hasTagCompound()) || (!stack.getTagCompound().hasKey("tedata"))) return;
NBTTagCompound inventory_nbt = stack.getTagCompound().getCompoundTag("inventory"); NBTTagCompound te_nbt = stack.getTagCompound().getCompoundTag("tedata");
if(inventory_nbt.isEmpty()) return; if(te_nbt.isEmpty()) return;
final TileEntity te = world.getTileEntity(pos); final TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BlockDecorDropper.BTileEntity)) return; if(!(te instanceof BlockDecorDropper.BTileEntity)) return;
((BlockDecorDropper.BTileEntity)te).readnbt(inventory_nbt, false); ((BlockDecorDropper.BTileEntity)te).readnbt(te_nbt, false);
((BlockDecorDropper.BTileEntity)te).reset_rtstate();
((BlockDecorDropper.BTileEntity)te).markDirty(); ((BlockDecorDropper.BTileEntity)te).markDirty();
} }
@ -110,11 +117,11 @@ public class BlockDecorDropper extends BlockDecorDirected
TileEntity te = world.getTileEntity(pos); TileEntity te = world.getTileEntity(pos);
if(!(te instanceof BTileEntity)) return super.removedByPlayer(state, world, pos, player, willHarvest); if(!(te instanceof BTileEntity)) return super.removedByPlayer(state, world, pos, player, willHarvest);
ItemStack stack = new ItemStack(this, 1); ItemStack stack = new ItemStack(this, 1);
NBTTagCompound inventory_nbt = new NBTTagCompound(); NBTTagCompound te_nbt = new NBTTagCompound();
ItemStackHelper.saveAllItems(inventory_nbt, ((BTileEntity)te).stacks_, false); ((BTileEntity) te).writenbt(te_nbt, false);
if(!inventory_nbt.isEmpty()) { if(!te_nbt.isEmpty()) {
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
nbt.setTag("inventory", inventory_nbt); nbt.setTag("tedata", te_nbt);
stack.setTagCompound(nbt); stack.setTagCompound(nbt);
} }
world.spawnEntity(new EntityItem(world, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, stack)); world.spawnEntity(new EntityItem(world, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, stack));
@ -132,7 +139,7 @@ public class BlockDecorDropper extends BlockDecorDirected
for(ItemStack stack: ((BTileEntity)te).stacks_) { for(ItemStack stack: ((BTileEntity)te).stacks_) {
if(!stack.isEmpty()) world.spawnEntity(new EntityItem(world, pos.getX(), pos.getY(), pos.getZ(), stack)); if(!stack.isEmpty()) world.spawnEntity(new EntityItem(world, pos.getX(), pos.getY(), pos.getZ(), stack));
} }
((BTileEntity)te).reset(); ((BTileEntity)te).reset_rtstate();
super.onBlockExploded(world, pos, explosion); super.onBlockExploded(world, pos, explosion);
} }
@ -225,9 +232,9 @@ public class BlockDecorDropper extends BlockDecorDirected
} else if(isPointInRegion(129, 50, 44, 10, mouseX, mouseY)) { } else if(isPointInRegion(129, 50, 44, 10, mouseX, mouseY)) {
int period = (mx-135); int period = (mx-135);
if(period < -1) { if(period < -1) {
period = container.fields_[6] - 1; // - period = container.fields_[6] - 3; // -
} else if(period >= 34) { } else if(period >= 34) {
period = container.fields_[6] + 1; // + period = container.fields_[6] + 3; // +
} else { } else {
period = (int)(0.5 + ((100.0 * period)/34)); period = (int)(0.5 + ((100.0 * period)/34));
} }
@ -300,7 +307,7 @@ public class BlockDecorDropper extends BlockDecorDirected
} }
// drop period // drop period
{ {
int px = ((container.fields_[6] * 34) / 100); int px = (int)Math.round(((33.0 * container.fields_[6]) / 100) + 1);
int x = x0 + 134 - 2 + MathHelper.clamp(px, 0, 33); int x = x0 + 134 - 2 + MathHelper.clamp(px, 0, 33);
int y = y0 + 56; int y = y0 + 56;
drawTexturedModalRect(x, y, 190, 31, 5, 5); drawTexturedModalRect(x, y, 190, 31, 5, 5);
@ -465,8 +472,8 @@ public class BlockDecorDropper extends BlockDecorDirected
private int drop_xdev_ = 0; private int drop_xdev_ = 0;
private int drop_ydev_ = 0; private int drop_ydev_ = 0;
private int drop_count_ = 1; private int drop_count_ = 1;
private int drop_logic_ = 0; private int drop_logic_ = DROPLOGIC_EXTERN_ANDGATE;
private int drop_period_ = 20; private int drop_period_ = 0;
private int drop_slot_index_ = 0; private int drop_slot_index_ = 0;
private int tick_timer_ = 0; private int tick_timer_ = 0;
protected NonNullList<ItemStack> stacks_; protected NonNullList<ItemStack> stacks_;
@ -477,16 +484,15 @@ public class BlockDecorDropper extends BlockDecorDirected
} }
public BTileEntity() public BTileEntity()
{ reset(); }
protected void reset()
{ {
stacks_ = NonNullList.<ItemStack>withSize(NUM_OF_SLOTS, ItemStack.EMPTY); stacks_ = NonNullList.<ItemStack>withSize(NUM_OF_SLOTS, ItemStack.EMPTY);
reset_rtstate();
}
public void reset_rtstate()
{
block_power_signal_ = false; block_power_signal_ = false;
block_power_updated_ = false; block_power_updated_ = false;
drop_count_ = 1;
drop_period_ = 20;
drop_logic_ = DROPLOGIC_EXTERN_ANDGATE;
for(int i=0; i<filter_matches_.length; ++i) filter_matches_[i] = 0; for(int i=0; i<filter_matches_.length; ++i) filter_matches_[i] = 0;
} }
@ -736,7 +742,7 @@ public class BlockDecorDropper extends BlockDecorDirected
double vdx = 1e-2 * MathHelper.clamp(xdeviation, -100, 100); double vdx = 1e-2 * MathHelper.clamp(xdeviation, -100, 100);
double vdy = 1e-2 * MathHelper.clamp(ydeviation, -100, 100); double vdy = 1e-2 * MathHelper.clamp(ydeviation, -100, 100);
switch(facing) { // switch-case faster than coorsys fwd transform switch(facing) { // switch-case faster than coorsys fwd transform
case DOWN: v0 = v0.add( vdx, 0, vdy); break; // down/up: use xz case DOWN: v0 = v0.add( vdx, 0,-vdy); break;
case NORTH: v0 = v0.add( vdx, vdy, 0); break; case NORTH: v0 = v0.add( vdx, vdy, 0); break;
case SOUTH: v0 = v0.add(-vdx, vdy, 0); break; case SOUTH: v0 = v0.add(-vdx, vdy, 0); break;
case EAST: v0 = v0.add(0, vdy, vdx); break; case EAST: v0 = v0.add(0, vdy, vdx); break;
@ -796,7 +802,6 @@ public class BlockDecorDropper extends BlockDecorDirected
boolean redstone_trigger = (block_power_signal_ && block_power_updated_); boolean redstone_trigger = (block_power_signal_ && block_power_updated_);
boolean filter_trigger; boolean filter_trigger;
boolean trigger; boolean trigger;
int filter_trigger_slots[] = {-1,-1,-1};
// Trigger logic // Trigger logic
{ {
boolean droppable_slot_found = false; boolean droppable_slot_found = false;
@ -814,12 +819,14 @@ public class BlockDecorDropper extends BlockDecorDirected
if(cmp_stack.isEmpty()) continue; if(cmp_stack.isEmpty()) continue;
filter_matches_[ci] = 1; filter_matches_[ci] = 1;
final int cmp_stack_count = cmp_stack.getCount(); final int cmp_stack_count = cmp_stack.getCount();
int inventory_item_count = 0;
int slot = drop_slot_index_; int slot = drop_slot_index_;
for(int i=INPUT_SLOTS_FIRST; i<(INPUT_SLOTS_FIRST+INPUT_SLOTS_SIZE); ++i) { for(int i=INPUT_SLOTS_FIRST; i<(INPUT_SLOTS_FIRST+INPUT_SLOTS_SIZE); ++i) {
final ItemStack inp_stack = stacks_.get(slot); final ItemStack inp_stack = stacks_.get(slot);
if((inp_stack.getCount() < cmp_stack_count) || (!inp_stack.isItemEqual(cmp_stack))) { slot = next_slot(slot); continue; } if(!inp_stack.isItemEqual(cmp_stack)) { slot = next_slot(slot); continue; }
inventory_item_count += inp_stack.getCount();
if(inventory_item_count < cmp_stack_count) { slot = next_slot(slot); continue; }
filter_matches_[ci] = 2; filter_matches_[ci] = 2;
filter_trigger_slots[ci] = slot;
break; break;
} }
} }
@ -847,47 +854,61 @@ public class BlockDecorDropper extends BlockDecorDirected
} }
} }
// edge detection for next cycle // edge detection for next cycle
if(trigger) { {
boolean tr = world.isBlockPowered(pos); boolean tr = world.isBlockPowered(pos);
block_power_updated_ = (block_power_signal_ != tr); block_power_updated_ = (block_power_signal_ != tr);
block_power_signal_ = tr; block_power_signal_ = tr;
dirty = true; if(block_power_updated_) dirty = true;
} }
} }
// block state update // block state update
final IBlockState state = update_blockstate(); final IBlockState state = update_blockstate();
if(state == null) { block_power_signal_= false; return; } if(state == null) { block_power_signal_= false; return; }
// dispense action // dispense action
if(trigger) { if(trigger && (drop_timer_ <= 0)) {
// drop stack for non-filter triggers // drop stack for non-filter triggers
ItemStack drop_stacks[] = {ItemStack.EMPTY,ItemStack.EMPTY,ItemStack.EMPTY};
if(!filter_trigger) { if(!filter_trigger) {
Arrays.fill(filter_trigger_slots,-1);
for(int i=0; i<INPUT_SLOTS_SIZE; ++i) { for(int i=0; i<INPUT_SLOTS_SIZE; ++i) {
if(drop_slot_index_ >= INPUT_SLOTS_SIZE) drop_slot_index_ = 0; if(drop_slot_index_ >= INPUT_SLOTS_SIZE) drop_slot_index_ = 0;
int ic = drop_slot_index_; int ic = drop_slot_index_;
drop_slot_index_ = next_slot(drop_slot_index_); drop_slot_index_ = next_slot(drop_slot_index_);
ItemStack ds = stacks_.get(ic); ItemStack ds = stacks_.get(ic);
if((!ds.isEmpty()) && (ds.getCount() >= drop_count_)) { if((!ds.isEmpty()) && (ds.getCount() >= drop_count_)) {
filter_trigger_slots[0] = ic; drop_stacks[0] = ds.splitStack(drop_count_);
stacks_.set(ic, ds);
break; break;
} }
} }
} else {
for(int fi=0; fi<filter_matches_.length; ++fi) {
if(filter_matches_[fi] > 1) {
drop_stacks[fi] = stacks_.get(CTRL_SLOTS_FIRST+fi).copy();
int ntoremove = drop_stacks[fi].getCount();
for(int i=INPUT_SLOTS_SIZE-1; (i>=0) && (ntoremove>0); --i) {
ItemStack stack = stacks_.get(i);
if(!stack.isItemEqual(drop_stacks[fi])) continue;
if(stack.getCount() <= ntoremove) {
ntoremove -= stack.getCount();
stacks_.set(i, ItemStack.EMPTY);
} else {
stack.shrink(ntoremove);
ntoremove = 0;
stacks_.set(i, stack);
}
}
if(ntoremove > 0) drop_stacks[fi].shrink(ntoremove);
}
}
} }
// drop action // drop action
if(drop_timer_ <= 0) {
boolean dropped = false; boolean dropped = false;
for(int i = 0; i < filter_trigger_slots.length; ++i) { for(int i = 0; i < drop_stacks.length; ++i) {
if(filter_trigger_slots[i] < 0) continue; if(drop_stacks[i].isEmpty()) continue;
ItemStack ds = stacks_.get(filter_trigger_slots[i]);
if(ds.getCount() >= drop_count_) {
ItemStack drop_stack = ds.splitStack(drop_count_);
if(!drop_stack.isEmpty()) {
dirty = true; dirty = true;
drop(world, pos, state.getValue(FACING), drop_stack, drop_speed_, drop_xdev_, drop_ydev_, drop_noise_); drop(world, pos, state.getValue(FACING), drop_stacks[i], drop_speed_, drop_xdev_, drop_ydev_, drop_noise_);
dropped = true; dropped = true;
} }
}
}
// cooldown // cooldown
if(dropped) drop_timer_ = DROP_PERIOD_OFFSET + drop_period_ * 2; // 0.1s time base -> 100%===10s if(dropped) drop_timer_ = DROP_PERIOD_OFFSET + drop_period_ * 2; // 0.1s time base -> 100%===10s
// drop sound // drop sound
@ -900,7 +921,6 @@ public class BlockDecorDropper extends BlockDecorDirected
drop_slot_index_ = next_slot(drop_slot_index_); drop_slot_index_ = next_slot(drop_slot_index_);
} }
} }
}
if(dirty) markDirty(); if(dirty) markDirty();
if(trigger && (tick_timer_ > 10)) tick_timer_ = 10; if(trigger && (tick_timer_ > 10)) tick_timer_ = 10;
} }

View file

@ -96,6 +96,7 @@ public class BlockDecorFurnace extends BlockDecorDirected
public boolean hasTileEntity(IBlockState state) public boolean hasTileEntity(IBlockState state)
{ return true; } { return true; }
@Override
@Nullable @Nullable
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state)
{ return new BlockDecorFurnace.BTileEntity(); } { return new BlockDecorFurnace.BTileEntity(); }

View file

@ -50,6 +50,7 @@ public class BlockDecorFurnaceElectrical extends BlockDecorFurnace
super(registryName, config, material, hardness, resistance, sound, unrotatedAABB); super(registryName, config, material, hardness, resistance, sound, unrotatedAABB);
} }
@Override
@Nullable @Nullable
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state)
{ return new BlockDecorFurnaceElectrical.BTileEntity(); } { return new BlockDecorFurnaceElectrical.BTileEntity(); }

View file

@ -45,7 +45,6 @@ public class BlockDecorHorizontalSupport extends BlockDecor
public BlockDecorHorizontalSupport(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB) public BlockDecorHorizontalSupport(@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); super(registryName, config|CFG_HORIZIONTAL, material, hardness, resistance, sound);
final boolean is_horizontal = ((config & CFG_HORIZIONTAL)!=0);
AABBs = new ArrayList<AxisAlignedBB>(Arrays.asList( AABBs = new ArrayList<AxisAlignedBB>(Arrays.asList(
// Effective bounding box // Effective bounding box
ModAuxiliaries.getRotatedAABB(unrotatedAABB.grow(2.0/16, 0, 0), EnumFacing.NORTH, true), ModAuxiliaries.getRotatedAABB(unrotatedAABB.grow(2.0/16, 0, 0), EnumFacing.NORTH, true),

View file

@ -48,10 +48,12 @@ public class BlockDecorPassiveFluidAccumulator extends BlockDecorDirected
public boolean hasTileEntity(IBlockState state) public boolean hasTileEntity(IBlockState state)
{ return true; } { return true; }
@Override
@Nullable @Nullable
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state)
{ return new BlockDecorPassiveFluidAccumulator.BTileEntity(); } { return new BlockDecorPassiveFluidAccumulator.BTileEntity(); }
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) 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(world.isRemote) return true;
@ -61,6 +63,7 @@ public class BlockDecorPassiveFluidAccumulator extends BlockDecorDirected
return true; return true;
} }
@Override
public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos)
{ TileEntity te = world.getTileEntity(pos); if(te instanceof BlockDecorPipeValve.BTileEntity) ((BTileEntity)te).block_changed(); } { TileEntity te = world.getTileEntity(pos); if(te instanceof BlockDecorPipeValve.BTileEntity) ((BTileEntity)te).block_changed(); }

View file

@ -242,6 +242,13 @@ public class ModBlocks
ModAuxiliaries.getPixeledAABB(2,2,15.6, 14,14,16) ModAuxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
); );
public static final BlockDecorDirected SIGN_DEFENSE = new BlockDecorDirected(
"sign_defense",
BlockDecor.CFG_CUTOUT|BlockDecor.CFG_OPPOSITE_PLACEMENT|(1<<BlockDecor.CFG_LIGHT_VALUE_SHIFT),
Material.WOOD, 0.1f, 1f, SoundType.WOOD,
ModAuxiliaries.getPixeledAABB(2,2,15.6, 14,14,16)
);
public static final BlockDecorWasteIncinerator SMALL_WASTE_INCINERATOR = new BlockDecorWasteIncinerator( public static final BlockDecorWasteIncinerator SMALL_WASTE_INCINERATOR = new BlockDecorWasteIncinerator(
"small_waste_incinerator", "small_waste_incinerator",
BlockDecor.CFG_DEFAULT|BlockDecor.CFG_ELECTRICAL, BlockDecor.CFG_DEFAULT|BlockDecor.CFG_ELECTRICAL,
@ -332,11 +339,12 @@ public class ModBlocks
SMALL_ELECTRICAL_FURNACE, SMALL_ELECTRICAL_FURNACE_TEI, SMALL_ELECTRICAL_FURNACE, SMALL_ELECTRICAL_FURNACE_TEI,
SIGN_HOTWIRE, SIGN_DANGER, SIGN_HOTWIRE, SIGN_DANGER,
SMALL_WASTE_INCINERATOR, WASTE_INCINERATOR_TEI, SMALL_WASTE_INCINERATOR, WASTE_INCINERATOR_TEI,
SIGN_DEFENSE,
FACTORY_DROPPER, FACTORY_DROPPER_TEI
}; };
private static final Object dev_content[] = { private static final Object dev_content[] = {
SIGN_MINDSTEP, SIGN_MINDSTEP,
FACTORY_DROPPER, FACTORY_DROPPER_TEI
}; };
//-------------------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------------------------

View file

@ -0,0 +1,9 @@
{
"forge_marker": 1,
"defaults": { "model": "engineersdecor:sign/sign_defense_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

@ -122,16 +122,23 @@ tile.engineersdecor.passive_fluid_accumulator.help=§6Vacuum suction based fluid
Drains fluids from adjacent tanks when being drained from the output port by a pump. 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.name=Factory Dropper
tile.engineersdecor.factory_dropper.help=§6Dropper suitable for advanced factory automation.§r 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 \
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.sign_decor.name=Sign Plate (Engineer's decor) 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_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.name=Sign "Caution Hot Wire"
tile.engineersdecor.sign_hotwire.help=§6Placable on walls (horizontally). 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.name=Sign "Mind The Step"
tile.engineersdecor.sign_mindstep.help=§6Placable on walls (horizontally). tile.engineersdecor.sign_mindstep.help=§6Placable on walls (horizontally).
tile.engineersdecor.sign_danger.name=Sign "Caution Really dangerous there" tile.engineersdecor.sign_danger.name=Sign "Caution Really Dangerous There"
tile.engineersdecor.sign_danger.help=§6Placable on walls (horizontally). 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.
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------
# EOF # EOF

View file

@ -115,16 +115,23 @@ tile.engineersdecor.passive_fluid_accumulator.name=Passive fluid accumulator
Drains fluids from adjacent tanks when being drained from the output port by a pump. 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.name=Factory dropper
#tile.engineersdecor.factory_dropper.help=§6Dropper suitable for advanced factory automation.§r #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 \
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.sign_decor.name=Sign plate (Engineer's decor logo) 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_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.name=Sign "Caution hot wire"
#tile.engineersdecor.sign_hotwire.help=§6Placable on walls (horizontally). #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.name=Sign "Mind the step"
#tile.engineersdecor.sign_mindstep.help=§6Placable on walls (horizontally). #tile.engineersdecor.sign_mindstep.help=§6Placable on walls (horizontally).
tile.engineersdecor.sign_danger.name=Sign "Caution really dangerous there" tile.engineersdecor.sign_danger.name=Sign "Caution really dangerous there"
#tile.engineersdecor.sign_danger.help=§6Placable on walls (horizontally). #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.
#----------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------
# EOF # EOF

View file

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

View file

@ -19,6 +19,10 @@
"ingredient": { "type": "forge:ore_dict", "ore": "ingotIron" }, "ingredient": { "type": "forge:ore_dict", "ore": "ingotIron" },
"name": "ingotIron" "name": "ingotIron"
}, },
{
"ingredient": { "type": "forge:ore_dict", "ore": "nuggetIron" },
"name": "nuggetIron"
},
{ {
"ingredient": { "type": "forge:ore_dict", "ore": "blockIron" }, "ingredient": { "type": "forge:ore_dict", "ore": "blockIron" },
"name": "blockIron" "name": "blockIron"

View file

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

View file

@ -3,12 +3,12 @@
{ {
"type": "engineersdecor:grc", "type": "engineersdecor:grc",
"result": "engineersdecor:sign_hotwire", "result": "engineersdecor:sign_hotwire",
"required": ["engineersdecor:sign_danger"] "required": ["engineersdecor:sign_defense"]
} }
], ],
"type": "minecraft:crafting_shapeless", "type": "minecraft:crafting_shapeless",
"ingredients": [ "ingredients": [
{ "item": "engineersdecor:sign_danger" } { "item": "engineersdecor:sign_defense" }
], ],
"result": { "result": {
"item": "engineersdecor:sign_hotwire" "item": "engineersdecor:sign_hotwire"

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:factory_dropper",
"missing": ["immersiveengineering:material"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"WWW",
"WDW",
"WPW"
],
"key": {
"D": {
"item": "#itemDropper",
"data": 0
},
"P": {
"item": "#ingotIron",
"data": 0
},
"W": {
"item": "#plankWood",
"data": 0
}
},
"result": {
"item": "engineersdecor:factory_dropper",
"count": 1
}
}

View file

@ -0,0 +1,24 @@
{
"conditions": [
{
"type": "engineersdecor:grc",
"result": "engineersdecor:sign_hotwire",
"missing": ["immersiveengineering:stone_decoration"]
}
],
"type": "minecraft:crafting_shaped",
"pattern": [
"NSN",
"SPS",
"NSN"
],
"key": {
"S": { "item": "#stickWood" },
"P": { "item": "#paperAny" },
"N": { "item": "#nuggetIron" }
},
"result": {
"item": "engineersdecor:sign_hotwire",
"count": 1
}
}

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 556 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

1
1.13/.gitignore vendored
View file

@ -34,3 +34,4 @@ desktop.ini
Thumbs.db Thumbs.db
forge*changelog.txt forge*changelog.txt
/*.txt /*.txt
mcmodsrepo

View file

@ -10,6 +10,25 @@ Mod sources for Minecraft version 1.13.2.
---- ----
## Revision history ## Revision history
- v1.0.7-b3 [V] Version assignment: All features of v1.0.7-b3-1.12.2 that can be ported
to 1.13.2 implemented/prepared, therefore version re-assigned.
[A] Sign background colors adapted.
- v1.0.4-b6 [A] Added Small Electrical Furnace.
[A] Added Small Waste Incinerator.
[A] Experimental: Added fluid check valve.
[A] Experimental: Added fluid redstone controlled valve.
[A] Experimental: Added fluid redstone analog valve.
[A] Experimental: Added passive fluid accumulator.
- v1.0.4-b5 [A] Added Factory Dropper.
[A] Added "Caution Defense System Ahead" sign.
- v1.0.4-b4 [U] Updated forge dependency: REQUIRES FORGE >= 1.13.2-25.0.214.
[A] Added sign "Electrical hazard"/"Caution hot wire".
[A] Added sign "Caution dangerous there" (skull/bones).
[A] Added horizontal steel double-T support beam with pole connections.
- v1.0.4-b3 [V] Version assignment: All features of v1.0.4-b3-1.12.2 that can be ported - v1.0.4-b3 [V] Version assignment: All features of v1.0.4-b3-1.12.2 that can be ported
to 1.13.2 implemented/prepared, therefore version re-iterated. to 1.13.2 implemented/prepared, therefore version re-iterated.
[A] Lab furnace ported to 1.13. [A] Lab furnace ported to 1.13.

View file

@ -23,7 +23,7 @@ init-1.12: ; -@cd 1.12; make -s init
init-1.13: ; -@cd 1.13; make -s init init-1.13: ; -@cd 1.13; make -s init
dist-1.12: ; @cd 1.12; make -s dist dist-1.12: ; @cd 1.12; make -s dist
dist-1.13: ; @cd 1.13; make -s dist dist-1.13: ; @cd 1.13; make -s dist
dist: dist-1.12 dist-1.13 | update-json dist: ; @echo "First change to specific version directory."
update-json: update-json:
@echo "[main] Update update.json ..." @echo "[main] Update update.json ..."

View file

@ -26,6 +26,8 @@ IE components used in this mod:
- immersiveengineering:textures/block/metal_device1_fluid_pipe.png (for - immersiveengineering:textures/block/metal_device1_fluid_pipe.png (for
valves). valves).
- Fluid accumulator texture is a modified IE metal barrel texture.
Source codes derived (inspected e.g. for trouble shooting and learning how things work): Source codes derived (inspected e.g. for trouble shooting and learning how things work):
- Ore dict based recipe registration from blusunrize.immersiveengineering.common.IERecipes. - Ore dict based recipe registration from blusunrize.immersiveengineering.common.IERecipes.

View file

@ -1,9 +1,12 @@
{ {
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
"1.12.2": { "1.12.2": {
"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!",
"1.0.6": "[R] Release based on v1.0.6-b1. Release-to-release changes: * Fixed FML remapping issue (COULD CAUSE CRASHES). * Small waste incinerator added. * Lang files updated/corrections. * Metal ladder easier to break.\n[A] Added factory dropper (config:experimental).\n[C] Thx to abdurraslan for the detailed issue #25.", "1.0.6": "[R] Release based on v1.0.6-b1. Release-to-release changes: * Fixed FML remapping issue (COULD CAUSE CRASHES). * Small waste incinerator added. * Lang files updated/corrections. * Metal ladder easier to break.\n[A] Added factory dropper (config:experimental).\n[C] Thx to abdurraslan for the detailed issue #25.",
"1.0.6-b1": "[A] Added small waste incinerator (delayed fifo-buffered item disposal).\n[M] Fixed item/block name capitalization (by Voxelo).\n[M] Metal ladders are easier to break/harvest.\n[F] Fixed FML remapping issue by using dedicated IItemHandler instances.", "1.0.6-b1": "[A] Added small waste incinerator (delayed fifo-buffered item disposal).\n[M] Fixed item/block name capitalization (by Voxelo).\n[M] Metal ladders are easier to break/harvest.\n[F] Fixed FML remapping issue by using dedicated IItemHandler instances.",
"1.0.5": "[R] Release based on v1.0.5-b1. Release-to-release changes: * Small electrical passthrough-furnace added. * Passive fluid accumulator added. * Config options added. * Sign plates added. * Minor bug fixes.\n[A] Added sign \"Electrical hazzard\"/\"Caution hot wire\".\n[A] Added sign \"Caution dangerous there\" (skull/bones).", "1.0.5": "[R] Release based on v1.0.5-b1. Release-to-release changes: * Small electrical passthrough-furnace added. * Passive fluid accumulator added. * Config options added. * Sign plates added. * Minor bug fixes.\n[A] Added sign \"Electrical hazard\"/\"Caution hot wire\".\n[A] Added sign \"Caution dangerous there\" (skull/bones).",
"1.0.5-b1": "[A] Added passive fluid accumulator.\n[A] Added small electrical passthrough-furnace.\n[F] Fixed version check URL.\n[M] Opt-out config options for valves, passive fluid accumulator, and furni.", "1.0.5-b1": "[A] Added passive fluid accumulator.\n[A] Added small electrical passthrough-furnace.\n[F] Fixed version check URL.\n[M] Opt-out config options for valves, passive fluid accumulator, and furni.",
"1.0.4": "[R] Release based on v1.0.4-b9. Release-to-release changes: * Crafting table: Quick crafting history re-fab, JEI integration. * Rendering improvements and issue fixes (stairs, ambient occlusion, optifine, etc). * Walls with texture variations. * Thin/thick steel poles with support feet/heads. * Horizontal steel double-T support beams added. * Fluid pipe valves added: Check valve, redstone controlled valve, analog redstone controlled valve. Support pressurized transfer. * Tool tip documentation (CTRL-SHIFT) for stairs added. * Internal code cleanups. * Recipes tuned.\n[E] Added pass-through electrical furnace (experimental, see config).", "1.0.4": "[R] Release based on v1.0.4-b9. Release-to-release changes: * Crafting table: Quick crafting history re-fab, JEI integration. * Rendering improvements and issue fixes (stairs, ambient occlusion, optifine, etc). * Walls with texture variations. * Thin/thick steel poles with support feet/heads. * Horizontal steel double-T support beams added. * Fluid pipe valves added: Check valve, redstone controlled valve, analog redstone controlled valve. Support pressurized transfer. * Tool tip documentation (CTRL-SHIFT) for stairs added. * Internal code cleanups. * Recipes tuned.\n[E] Added pass-through electrical furnace (experimental, see config).",
"1.0.4-b9": "[F] Inserting fluids with pressurized tag only into IE piping.\n[F] Valve redstone connector rendering does not check for \"can connect redstone\" but only for \"can provide power\".\n[M] Valves are adapted to be detected as pipe by IE.", "1.0.4-b9": "[F] Inserting fluids with pressurized tag only into IE piping.\n[F] Valve redstone connector rendering does not check for \"can connect redstone\" but only for \"can provide power\".\n[M] Valves are adapted to be detected as pipe by IE.",
@ -37,6 +40,10 @@
"1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table." "1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table."
}, },
"1.13.2": { "1.13.2": {
"1.0.7-b3": "[V] Version assignment: All features of v1.0.7-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-assigned.\n[A] Sign background colors adapted.",
"1.0.4-b6": "[A] Added Small Electrical Furnace.\n[A] Added Small Waste Incinerator.\n[A] Experimental: Added fluid check valve.\n[A] Experimental: Added fluid redstone controlled valve.\n[A] Experimental: Added fluid redstone analog valve.\n[A] Experimental: Added passive fluid accumulator.",
"1.0.4-b5": "[A] Added Factory Dropper.\n[A] Added \"Caution Defense System Ahead\" sign.",
"1.0.4-b4": "[U] Updated forge dependency: REQUIRES FORGE >= 1.13.2-25.0.214.\n[A] Added sign \"Electrical hazard\"/\"Caution hot wire\".\n[A] Added sign \"Caution dangerous there\" (skull/bones).\n[A] Added horizontal steel double-T support beam with pole connections.",
"1.0.4-b3": "[V] Version assignment: All features of v1.0.4-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-iterated.\n[A] Lab furnace ported to 1.13.\n[A] Treated wood crafting table: Added crafting table history/quick craft.\n[A] Treated wood stool: Sitting on the stool implemented.\n[A] Steel poles (thick/thin) with support heads/foots added.\n[E] Prepared position dependent texture variation for walls (clinker, slag, rebar concrete), missing one forge feature yet for completion.\n[E] Prepared multi-layer rendering for windows, needs forge feature implementation.", "1.0.4-b3": "[V] Version assignment: All features of v1.0.4-b3-1.12.2 that can be ported to 1.13.2 implemented/prepared, therefore version re-iterated.\n[A] Lab furnace ported to 1.13.\n[A] Treated wood crafting table: Added crafting table history/quick craft.\n[A] Treated wood stool: Sitting on the stool implemented.\n[A] Steel poles (thick/thin) with support heads/foots added.\n[E] Prepared position dependent texture variation for walls (clinker, slag, rebar concrete), missing one forge feature yet for completion.\n[E] Prepared multi-layer rendering for windows, needs forge feature implementation.",
"1.0.2-b3": "[A] Added treated wood window.\n[A] Added treated wood pole support.\n[A] Added treated wood pole head.\n[A] Added steel framed window.", "1.0.2-b3": "[A] Added treated wood window.\n[A] Added treated wood pole support.\n[A] Added treated wood pole head.\n[A] Added steel framed window.",
"1.0.2-b2": "[A] Added wall decomposition recipes.\n[A] Added slag brick wall.\n[M] Climbing/descending mod ladders is faster when looking up or down and not sneaking.\n[M] Panzer glass material definition changed.", "1.0.2-b2": "[A] Added wall decomposition recipes.\n[A] Added slag brick wall.\n[M] Climbing/descending mod ladders is faster when looking up or down and not sneaking.\n[M] Panzer glass material definition changed.",
@ -46,9 +53,9 @@
"1.0.0-a1": "[A] Initial port to 1.13.2 with Forge beta." "1.0.0-a1": "[A] Initial port to 1.13.2 with Forge beta."
}, },
"promos": { "promos": {
"1.12.2-recommended": "1.0.6", "1.12.2-recommended": "1.0.7",
"1.12.2-latest": "1.0.6", "1.12.2-latest": "1.0.7",
"1.13.2-recommended": "", "1.13.2-recommended": "",
"1.13.2-latest": "1.0.4-b3" "1.13.2-latest": "1.0.7-b3"
} }
} }

View file

@ -123,6 +123,17 @@ looking manufacturing contraptions. Current feature set:
is full, the oldest stack will be disposed. The processing speed can be increased is full, the oldest stack will be disposed. The processing speed can be increased
by connecting electrical RF/FE power. by connecting electrical RF/FE power.
- *Factory dropper*: Dropper with GUI configurable drop force, direction, stack size,
trigger cool-down delay, and trigger logic. Three trigger slots ("filter slots") can
be used as internal trigger. They emit an internal signal if their item is found in
in the dropper inventory (also at least the stack size of a trigger slot). Internal
triggers can be easily combined with the external redstone signal trigger using
logical *AND* or *OR* gates. If internal triggers match, the dropper will spit out
exactly the stacks in these slots. That allows to drop e.g. always nine lapis,
redstone, nuggets, etc on a conveyor to feed a compression metal press - instantly
and automatically after nine of these items have been inserted into the dropper.
More to come slowly but steadily. More to come slowly but steadily.
---- ----