more leti! and changing some models and textures
|
@ -37,4 +37,6 @@ public class Connector extends LetiConnectable {
|
||||||
public boolean output(/*ServerWorld world, BlockPos pos,*/ BlockState state, Direction direction){
|
public boolean output(/*ServerWorld world, BlockPos pos,*/ BlockState state, Direction direction){
|
||||||
return state.get(Properties.POWERED);
|
return state.get(Properties.POWERED);
|
||||||
}
|
}
|
||||||
|
// not having NOTIFY_NEIGHBORS will reduce lag :3
|
||||||
|
// however, blocks that take the input wouldn't get updates that way
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,22 @@
|
||||||
package ella.techia.block;
|
package ella.techia.block;
|
||||||
|
|
||||||
|
import ella.techia.leti.LetiNetwork;
|
||||||
|
import java.util.Random;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.IntProperty;
|
import net.minecraft.state.property.IntProperty;
|
||||||
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class Delayer extends FacingLeti {
|
public class Delayer extends FacingLeti {
|
||||||
public static final IntProperty DELAY = IntProperty.of("delay", 1, 6);
|
private static final MAX_DELAY = 10;
|
||||||
|
public static final IntProperty DELAY = IntProperty.of("delay", 1, MAX_DELAY);
|
||||||
|
|
||||||
public Delayer(net.minecraft.block.AbstractBlock.Settings settings){
|
public Delayer(net.minecraft.block.AbstractBlock.Settings settings){
|
||||||
super(settings);
|
super(settings);
|
||||||
|
@ -33,7 +38,20 @@ public class Delayer extends FacingLeti {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit){
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit){
|
||||||
world.setBlockState(pos, state.with(DELAY, (state.get(DELAY) - 1) % 6 + 2));
|
world.setBlockState(pos, state.with(DELAY, (state.get(DELAY) - 1) % MAX_DELAY + 2));
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean notify){
|
||||||
|
super.neighborUpdate(state, world, pos, block, fromPos, notify);
|
||||||
|
if(pos.offset(state.get(Properties.FACING), -1).getManhattanDistance(fromPos) == 0) world.getBlockTickScheduler().schedule(pos, block, state.get(DELAY), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random){
|
||||||
|
Direction facing = state.get(Properties.FACING);
|
||||||
|
world.setBlockState(pos, state.with(Properties.POWERED, LetiNetwork.output(world.getBlockState(pos.offset(facing.getOpposite())), facing)));
|
||||||
|
LetiNetwork.at(pos.offset(state.get(Properties.FACING))).updateInputs();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,31 @@
|
||||||
package ella.techia.block;
|
package ella.techia.block;
|
||||||
|
|
||||||
|
import ella.techia.leti.LetiNetwork;
|
||||||
|
import java.util.Random;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
|
import net.minecraft.state.StateManager;
|
||||||
|
import net.minecraft.state.property.IntProperty;
|
||||||
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
|
|
||||||
public class Inverter extends FacingLeti /*implements LetiBlock, Waterloggable*/ {
|
public class Inverter extends FacingLeti {
|
||||||
|
public static final IntProperty INPUT = BooleanProperty.of("input");
|
||||||
|
|
||||||
public Inverter(net.minecraft.block.AbstractBlock.Settings settings){
|
public Inverter(net.minecraft.block.AbstractBlock.Settings settings){
|
||||||
super(settings);
|
super(settings);
|
||||||
|
this.setDefaultState(
|
||||||
|
this.stateManager.getDefaultState()
|
||||||
|
.with(Properties.POWERED, true)
|
||||||
|
.with(Properties.INPUT, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void appendProperties(StateManager.Builder<Block, BlockState> builder){
|
||||||
|
super.appendProperties(builder);
|
||||||
|
builder.add(Properties.INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -21,6 +38,18 @@ public class Inverter extends FacingLeti /*implements LetiBlock, Waterloggable*/
|
||||||
BlockPos neighborPos
|
BlockPos neighborPos
|
||||||
){
|
){
|
||||||
Direction facing = state.get(Properties.FACING);
|
Direction facing = state.get(Properties.FACING);
|
||||||
return state.with(Properties.POWERED, !LetiNetwork.output(world.getBlockState(pos.offset(facing.getOpposite())), facing));
|
return state.with(Properties.INPUT, LetiNetwork.output(world.getBlockState(pos.offset(facing.getOpposite())), facing));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean notify){
|
||||||
|
super.neighborUpdate(state, world, pos, block, fromPos, notify);
|
||||||
|
world.getBlockTickScheduler().schedule(pos, block, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random){
|
||||||
|
world.setBlockState(pos, state.with(Properties.POWERED, !state.get(INPUT)));
|
||||||
|
LetiNetwork.at(pos.offset(state.get(Properties.FACING))).updateInputs();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,12 +4,14 @@ import java.util.*;
|
||||||
import java.util.AbstractSet;
|
import java.util.AbstractSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.world.World; // maybe only ServerWorlds should be acceptable, the client doesn't need this (hopefully)
|
import net.minecraft.world.World; // maybe only ServerWorlds should be acceptable, the client doesn't need this (hopefully)
|
||||||
|
|
||||||
// known issue: unloaded chunks don't get their blocks updated
|
// known issue: unloaded chunks don't get their blocks updated
|
||||||
|
// known issue: networks may still get several updates on one tick...
|
||||||
|
|
||||||
public class LetiNetwork {
|
public class LetiNetwork {
|
||||||
private static final Map<Entry<World, BlockPos>, LetiNetwork> networks = Maps.newHashMap();
|
private static final Map<Entry<World, BlockPos>, LetiNetwork> networks = Maps.newHashMap();
|
||||||
|
@ -36,12 +38,13 @@ public class LetiNetwork {
|
||||||
public void set(boolean powered){
|
public void set(boolean powered){
|
||||||
if(this.powered == powered) return; // it would be useless to do anything if the state didn't change
|
if(this.powered == powered) return; // it would be useless to do anything if the state didn't change
|
||||||
for(BlockPos pos : nodes){
|
for(BlockPos pos : nodes){
|
||||||
if(world.isPosLoaded(pos.x, pos.z))
|
if(world.isPosLoaded(pos.x, pos.z)) // unfortunately we provide updates so that blocks that use updates to check input
|
||||||
world.setBlockState(pos, world.getBlockState(pos).with(Properties.POWERED, powered));
|
world.setBlockState(pos, world.getBlockState(pos).with(Properties.POWERED, powered)/*, Block.NOTIFY_ALL ^ Block.NOTIFY_LISTENERS*/);
|
||||||
// else node.setDirty(true) or something
|
// else node.setDirty(true) or something
|
||||||
}
|
}
|
||||||
this.powered = powered;
|
this.powered = powered;
|
||||||
}
|
}
|
||||||
|
// FIXME this gets called several times a tick
|
||||||
public boolean updateInputs(){
|
public boolean updateInputs(){
|
||||||
for(Entry<BlockPos, Direction> e : inputs){
|
for(Entry<BlockPos, Direction> e : inputs){
|
||||||
if(output(world.getBlockState(e.getKey()), e.getValue()){
|
if(output(world.getBlockState(e.getKey()), e.getValue()){
|
||||||
|
|
|
@ -22,6 +22,13 @@ public class TechiaRegistry {
|
||||||
/*private static final LinkedHashMap<String, Block> BLOCKS = new LinkedHashMap<>();
|
/*private static final LinkedHashMap<String, Block> BLOCKS = new LinkedHashMap<>();
|
||||||
private static final LinkedHashMap<String, BlockItem> ITEMS = new LinkedHashMap<>();*/
|
private static final LinkedHashMap<String, BlockItem> ITEMS = new LinkedHashMap<>();*/
|
||||||
|
|
||||||
|
private static final FabricBlockSettings ASMITE_LETI = FabricBlockSettings.copyOf(Blocks.IRON_BARS)
|
||||||
|
.hardness(0.1f).resistance(0f).breakByHand(true);
|
||||||
|
private static final FabricBlockSettings ASMITE_LETI_BIG = FabricBlockSettings.copyOf(Blocks.IRON_BARS)
|
||||||
|
.hardness(0.2f).resistance(0.2f);
|
||||||
|
private static final FabricBlockSettings TOOL = FabricBlockSettings.copyOf(Blocks.OAK_PLANKS)
|
||||||
|
.hardness(0.5f);
|
||||||
|
|
||||||
public static final Block ASMITE_BLOCK = add("asmite_block",
|
public static final Block ASMITE_BLOCK = add("asmite_block",
|
||||||
new Block(FabricBlockSettings.copyOf(Blocks.IRON_BLOCK)), ItemGroup.BUILDING_BLOCKS);
|
new Block(FabricBlockSettings.copyOf(Blocks.IRON_BLOCK)), ItemGroup.BUILDING_BLOCKS);
|
||||||
public static final Item ASMITE_INGOT = addI("asmite_ingot", new Item(new Item.Settings().group(ItemGroup.MISC)));
|
public static final Item ASMITE_INGOT = addI("asmite_ingot", new Item(new Item.Settings().group(ItemGroup.MISC)));
|
||||||
|
@ -31,20 +38,19 @@ public class TechiaRegistry {
|
||||||
tooltip.add(new TranslatableText("item." + Techia.MOD_ID + ".letium.desc"));
|
tooltip.add(new TranslatableText("item." + Techia.MOD_ID + ".letium.desc"));
|
||||||
}
|
}
|
||||||
}*/);
|
}*/);
|
||||||
public static final Block CONNECTOR = add("connector", new Connector(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.1f).resistance(0f)), Techia.LETI);
|
public static final Block CONNECTOR = add("connector", new Connector(ASMITE_LETI), Techia.LETI);
|
||||||
//public static final Block INTERSECTOR = add("intersector", new Intersector(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.1f).resistance(0f)), Techia.LETI); NOPE
|
public static final Block INVERTER = add("inverter", new Inverter(ASMITE_LETI), Techia.LETI);
|
||||||
public static final Block INVERTER = add("inverter", new Inverter(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.1f).resistance(0f)), Techia.LETI);
|
public static final Block DELAYER = add("delayer", new Delayer(ASMITE_LETI), Techia.LETI);
|
||||||
public static final Block DELAYER = add("delayer", new Delayer(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.1f).resistance(0f)), Techia.LETI);
|
public static final Block ASMITE_TOGGLE = add("asmite_toggle", new LetiToggle(ASMITE_LETI_BIG), Techia.LETI);
|
||||||
public static final Block ASMITE_TOGGLE = add("asmite_toggle", new LetiToggle(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.2f).resistance(0.2f)), Techia.LETI);
|
|
||||||
|
|
||||||
public static final Block BOX_BLOCK = add("smelter", new Smelter(FabricBlockSettings.copyOf(Blocks.FURNACE)), ItemGroup.MISC);
|
public static final Block BOX_BLOCK = add("smelter", new Smelter(FabricBlockSettings.copyOf(Blocks.FURNACE)), ItemGroup.MISC);
|
||||||
public static BlockEntityType<SmelterEntity> SMELTER_ENTITY;
|
public static BlockEntityType<SmelterEntity> SMELTER_ENTITY;
|
||||||
public static final Item BLOCK_SHAPE = addI("block_shape", new Item(new Item.Settings().group(ItemGroup.MISC)));
|
public static final Item BLOCK_SHAPE = addI("block_shape", new Item(new Item.Settings().group(ItemGroup.MISC)));
|
||||||
public static final Item INGOT_SHAPE = addI("ingot_shape", new Item(new Item.Settings().group(ItemGroup.MISC)));
|
public static final Item INGOT_SHAPE = addI("ingot_shape", new Item(new Item.Settings().group(ItemGroup.MISC)));
|
||||||
|
|
||||||
public static final Block BOX_BLOCK = add("box", new BoxBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).hardness(0.5f)), ItemGroup.MISC);
|
public static final Block BOX_BLOCK = add("box", new BoxBlock(TOOL), ItemGroup.MISC);
|
||||||
public static BlockEntityType<BoxBlockEntity> BOX_BLOCK_ENTITY;
|
public static BlockEntityType<BoxBlockEntity> BOX_BLOCK_ENTITY;
|
||||||
public static final Block BOX_BLOCK = add("workbench", new WorkbenchBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).hardness(0.5f)), ItemGroup.MISC);
|
public static final Block BOX_BLOCK = add("workbench", new WorkbenchBlock(TOOL), ItemGroup.MISC);
|
||||||
public static BlockEntityType<WorkbenchBlockEntity> WORKBENCH_BLOCK_ENTITY;
|
public static BlockEntityType<WorkbenchBlockEntity> WORKBENCH_BLOCK_ENTITY;
|
||||||
|
|
||||||
public static final Block PISTON = add("piston",
|
public static final Block PISTON = add("piston",
|
||||||
|
@ -129,11 +135,10 @@ public class TechiaRegistry {
|
||||||
//register("intersector", INTERSECTOR); NOPE
|
//register("intersector", INTERSECTOR); NOPE
|
||||||
register("inverter", INVERTER);
|
register("inverter", INVERTER);
|
||||||
register("delayer", DELAYER);
|
register("delayer", DELAYER);
|
||||||
//register("leti_source", LETI_SOURCE);
|
register("asmite_button", ASMITE_BUTTON);
|
||||||
//register("asmite_button", ASMITE_BUTTON);
|
|
||||||
register("asmite_toggle", ASMITE_TOGGLE);
|
register("asmite_toggle", ASMITE_TOGGLE);
|
||||||
//register("asmite_wall_button", ASMITE_WALL_BUTTON);
|
register("asmite_wall_button", ASMITE_WALL_BUTTON);
|
||||||
//register("asmite_wall_toggle", ASMITE_WALL_TOGGLE);
|
register("asmite_wall_toggle", ASMITE_WALL_TOGGLE);
|
||||||
register("smelter", SMELTER);
|
register("smelter", SMELTER);
|
||||||
SMELTER_ENTITY = register("smelter", FabricBlockEntityTypeBuilder.create(SmelterEntity::new, SMELTER).build(null));
|
SMELTER_ENTITY = register("smelter", FabricBlockEntityTypeBuilder.create(SmelterEntity::new, SMELTER).build(null));
|
||||||
register("block_shape", BLOCK_SHAPE);
|
register("block_shape", BLOCK_SHAPE);
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
{"multipart":[
|
||||||
|
{"when":{"delay":1,"facing":"down"},"apply":{"model":"techia:block/delayer_1","x":180}},
|
||||||
|
{"when":{"delay":1,"facing":"east"},"apply":{"model":"techia:block/delayer_1","x":90,"y":90}},
|
||||||
|
{"when":{"delay":1,"facing":"north"},"apply":{"model":"techia:block/delayer_1","x":90}},
|
||||||
|
{"when":{"delay":1,"facing":"south"},"apply":{"model":"techia:block/delayer_1","x":90,"y":180}},
|
||||||
|
{"when":{"delay":1,"facing":"up"},"apply":{"model":"techia:block/delayer_1"}},
|
||||||
|
{"when":{"delay":1,"facing":"west"},"apply":{"model":"techia:block/delayer_1","x":190,"y":270}},
|
||||||
|
{"when":{"delay":2,"facing":"down"},"apply":{"model":"techia:block/delayer_2","x":180}},
|
||||||
|
{"when":{"delay":2,"facing":"east"},"apply":{"model":"techia:block/delayer_2","x":90,"y":90}},
|
||||||
|
{"when":{"delay":2,"facing":"north"},"apply":{"model":"techia:block/delayer_2","x":90}},
|
||||||
|
{"when":{"delay":2,"facing":"south"},"apply":{"model":"techia:block/delayer_2","x":90,"y":180}},
|
||||||
|
{"when":{"delay":2,"facing":"up"},"apply":{"model":"techia:block/delayer_2"}},
|
||||||
|
{"when":{"delay":2,"facing":"west"},"apply":{"model":"techia:block/delayer_2","x":190,"y":270}},
|
||||||
|
{"when":{"delay":3,"facing":"down"},"apply":{"model":"techia:block/delayer_3","x":180}},
|
||||||
|
{"when":{"delay":3,"facing":"east"},"apply":{"model":"techia:block/delayer_3","x":90,"y":90}},
|
||||||
|
{"when":{"delay":3,"facing":"north"},"apply":{"model":"techia:block/delayer_3","x":90}},
|
||||||
|
{"when":{"delay":3,"facing":"south"},"apply":{"model":"techia:block/delayer_3","x":90,"y":180}},
|
||||||
|
{"when":{"delay":3,"facing":"up"},"apply":{"model":"techia:block/delayer_3"}},
|
||||||
|
{"when":{"delay":3,"facing":"west"},"apply":{"model":"techia:block/delayer_3","x":190,"y":270}},
|
||||||
|
{"when":{"delay":4,"facing":"down"},"apply":{"model":"techia:block/delayer_4","x":180}},
|
||||||
|
{"when":{"delay":4,"facing":"east"},"apply":{"model":"techia:block/delayer_4","x":90,"y":90}},
|
||||||
|
{"when":{"delay":4,"facing":"north"},"apply":{"model":"techia:block/delayer_4","x":90}},
|
||||||
|
{"when":{"delay":4,"facing":"south"},"apply":{"model":"techia:block/delayer_4","x":90,"y":180}},
|
||||||
|
{"when":{"delay":4,"facing":"up"},"apply":{"model":"techia:block/delayer_4"}},
|
||||||
|
{"when":{"delay":4,"facing":"west"},"apply":{"model":"techia:block/delayer_4","x":190,"y":270}},
|
||||||
|
{"when":{"delay":5,"facing":"down"},"apply":{"model":"techia:block/delayer_5","x":180}},
|
||||||
|
{"when":{"delay":5,"facing":"east"},"apply":{"model":"techia:block/delayer_5","x":90,"y":90}},
|
||||||
|
{"when":{"delay":5,"facing":"north"},"apply":{"model":"techia:block/delayer_5","x":90}},
|
||||||
|
{"when":{"delay":5,"facing":"south"},"apply":{"model":"techia:block/delayer_5","x":90,"y":180}},
|
||||||
|
{"when":{"delay":5,"facing":"up"},"apply":{"model":"techia:block/delayer_5"}},
|
||||||
|
{"when":{"delay":5,"facing":"west"},"apply":{"model":"techia:block/delayer_5","x":190,"y":270}},
|
||||||
|
{"when":{"delay":6,"facing":"down"},"apply":{"model":"techia:block/delayer_6","x":180}},
|
||||||
|
{"when":{"delay":6,"facing":"east"},"apply":{"model":"techia:block/delayer_6","x":90,"y":90}},
|
||||||
|
{"when":{"delay":6,"facing":"north"},"apply":{"model":"techia:block/delayer_6","x":90}},
|
||||||
|
{"when":{"delay":6,"facing":"south"},"apply":{"model":"techia:block/delayer_6","x":90,"y":180}},
|
||||||
|
{"when":{"delay":6,"facing":"up"},"apply":{"model":"techia:block/delayer_6"}},
|
||||||
|
{"when":{"delay":6,"facing":"west"},"apply":{"model":"techia:block/delayer_6","x":190,"y":270}},
|
||||||
|
{"when":{"delay":7,"facing":"down"},"apply":{"model":"techia:block/delayer_7","x":180}},
|
||||||
|
{"when":{"delay":7,"facing":"east"},"apply":{"model":"techia:block/delayer_7","x":90,"y":90}},
|
||||||
|
{"when":{"delay":7,"facing":"north"},"apply":{"model":"techia:block/delayer_7","x":90}},
|
||||||
|
{"when":{"delay":7,"facing":"south"},"apply":{"model":"techia:block/delayer_7","x":90,"y":180}},
|
||||||
|
{"when":{"delay":7,"facing":"up"},"apply":{"model":"techia:block/delayer_7"}},
|
||||||
|
{"when":{"delay":7,"facing":"west"},"apply":{"model":"techia:block/delayer_7","x":190,"y":270}},
|
||||||
|
{"when":{"delay":8,"facing":"down"},"apply":{"model":"techia:block/delayer_8","x":180}},
|
||||||
|
{"when":{"delay":8,"facing":"east"},"apply":{"model":"techia:block/delayer_8","x":90,"y":90}},
|
||||||
|
{"when":{"delay":8,"facing":"north"},"apply":{"model":"techia:block/delayer_8","x":90}},
|
||||||
|
{"when":{"delay":8,"facing":"south"},"apply":{"model":"techia:block/delayer_8","x":90,"y":180}},
|
||||||
|
{"when":{"delay":8,"facing":"up"},"apply":{"model":"techia:block/delayer_8"}},
|
||||||
|
{"when":{"delay":8,"facing":"west"},"apply":{"model":"techia:block/delayer_8","x":190,"y":270}},
|
||||||
|
{"when":{"delay":9,"facing":"down"},"apply":{"model":"techia:block/delayer_9","x":180}},
|
||||||
|
{"when":{"delay":9,"facing":"east"},"apply":{"model":"techia:block/delayer_9","x":90,"y":90}},
|
||||||
|
{"when":{"delay":9,"facing":"north"},"apply":{"model":"techia:block/delayer_9","x":90}},
|
||||||
|
{"when":{"delay":9,"facing":"south"},"apply":{"model":"techia:block/delayer_9","x":90,"y":180}},
|
||||||
|
{"when":{"delay":9,"facing":"up"},"apply":{"model":"techia:block/delayer_9"}},
|
||||||
|
{"when":{"delay":9,"facing":"west"},"apply":{"model":"techia:block/delayer_9","x":190,"y":270}},
|
||||||
|
{"when":{"delay":10,"facing":"down"},"apply":{"model":"techia:block/delayer_10","x":180}},
|
||||||
|
{"when":{"delay":10,"facing":"east"},"apply":{"model":"techia:block/delayer_10","x":90,"y":90}},
|
||||||
|
{"when":{"delay":10,"facing":"north"},"apply":{"model":"techia:block/delayer_10","x":90}},
|
||||||
|
{"when":{"delay":10,"facing":"south"},"apply":{"model":"techia:block/delayer_10","x":90,"y":180}},
|
||||||
|
{"when":{"delay":10,"facing":"up"},"apply":{"model":"techia:block/delayer_10"}},
|
||||||
|
{"when":{"delay":10,"facing":"west"},"apply":{"model":"techia:block/delayer_10","x":190,"y":270}},
|
||||||
|
{"when":{"OR":[{"facing":"down","input":"false"},{"facing":"up","powered":"false"}]},"apply":{"model":"techia:block/connector_side"}},
|
||||||
|
{"when":{"OR":[{"facing":"down","input":"true"},{"facing":"up","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on"}},
|
||||||
|
{"when":{"OR":[{"facing":"east","input":"false"},{"facing":"west","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90,"y":270}},
|
||||||
|
{"when":{"OR":[{"facing":"east","input":"true"},{"facing":"west","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90,"y":270}},
|
||||||
|
{"when":{"OR":[{"facing":"north","input":"false"},{"facing":"south","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90,"y":180}},
|
||||||
|
{"when":{"OR":[{"facing":"north","input":"true"},{"facing":"south","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90,"y":180}},
|
||||||
|
{"when":{"OR":[{"facing":"south","input":"false"},{"facing":"north","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90}},
|
||||||
|
{"when":{"OR":[{"facing":"south","input":"true"},{"facing":"north","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90}},
|
||||||
|
{"when":{"OR":[{"facing":"up","input":"false"},{"facing":"down","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":180}},
|
||||||
|
{"when":{"OR":[{"facing":"up","input":"true"},{"facing":"down","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":180}},
|
||||||
|
{"when":{"OR":[{"facing":"west","input":"false"},{"facing":"east","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90,"y":90}},
|
||||||
|
{"when":{"OR":[{"facing":"west","input":"true"},{"facing":"east","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90,"y":90}}
|
||||||
|
]}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{"multipart":[
|
||||||
|
{"when":{"facing":"down"},"apply":{"model":"techia:block/inverter","x":180}},
|
||||||
|
{"when":{"facing":"east"},"apply":{"model":"techia:block/inverter","x":90,"y":90}},
|
||||||
|
{"when":{"facing":"north"},"apply":{"model":"techia:block/inverter","x":90}},
|
||||||
|
{"when":{"facing":"south"},"apply":{"model":"techia:block/inverter","x":90,"y":180}},
|
||||||
|
{"when":{"facing":"up"},"apply":{"model":"techia:block/inverter"}},
|
||||||
|
{"when":{"facing":"west"},"apply":{"model":"techia:block/inverter","x":190,"y":270}},
|
||||||
|
{"when":{"OR":[{"facing":"down","input":"false"},{"facing":"up","powered":"false"}]},"apply":{"model":"techia:block/connector_side"}},
|
||||||
|
{"when":{"OR":[{"facing":"down","input":"true"},{"facing":"up","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on"}},
|
||||||
|
{"when":{"OR":[{"facing":"east","input":"false"},{"facing":"west","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90,"y":270}},
|
||||||
|
{"when":{"OR":[{"facing":"east","input":"true"},{"facing":"west","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90,"y":270}},
|
||||||
|
{"when":{"OR":[{"facing":"north","input":"false"},{"facing":"south","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90,"y":180}},
|
||||||
|
{"when":{"OR":[{"facing":"north","input":"true"},{"facing":"south","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90,"y":180}},
|
||||||
|
{"when":{"OR":[{"facing":"south","input":"false"},{"facing":"north","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90}},
|
||||||
|
{"when":{"OR":[{"facing":"south","input":"true"},{"facing":"north","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90}},
|
||||||
|
{"when":{"OR":[{"facing":"up","input":"false"},{"facing":"down","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":180}},
|
||||||
|
{"when":{"OR":[{"facing":"up","input":"true"},{"facing":"down","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":180}},
|
||||||
|
{"when":{"OR":[{"facing":"west","input":"false"},{"facing":"east","powered":"false"}]},"apply":{"model":"techia:block/connector_side","x":90,"y":90}},
|
||||||
|
{"when":{"OR":[{"facing":"west","input":"true"},{"facing":"east","powered":"true"}]},"apply":{"model":"techia:block/connector_side_on","x":90,"y":90}}
|
||||||
|
]}
|
|
@ -1 +1 @@
|
||||||
{"ambientocclusion":false,"textures":{"particle":"techia:block/connector"},"elements":[{"from":[12,6,6],"to":[16,10,10],"faces":{"north":{"texture":"#particle"},"south":{"texture":"#particle"},"up":{"texture":"#particle"},"down":{"texture":"#particle"}}}]}
|
{"ambientocclusion":false,"textures":{"particle":"techia:block/connector"},"elements":[{"from":[6,11,6],"to":[10,16,10],"faces":{"north":{"texture":"#particle"},"east":{"texture":"#particle"},"south":{"texture":"#particle"},"west":{"texture":"#particle"}}}]}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_1"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_10"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_2"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_3"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_4"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_5"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_6"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_7"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_8"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_9"}}
|
|
@ -0,0 +1 @@
|
||||||
|
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/invert"}}
|
After Width: | Height: | Size: 211 B |
After Width: | Height: | Size: 211 B |
After Width: | Height: | Size: 209 B |
After Width: | Height: | Size: 189 B |
After Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 140 B |
After Width: | Height: | Size: 137 B |
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 137 B |
Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 140 B |
Before Width: | Height: | Size: 161 B After Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 139 B |
After Width: | Height: | Size: 138 B |
After Width: | Height: | Size: 140 B |
After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 139 B |
|
@ -0,0 +1,7 @@
|
||||||
|
{"type": "techia:workbench",
|
||||||
|
"items": {
|
||||||
|
"techia:letium": 1,
|
||||||
|
"techia:asmite_ingot": 2
|
||||||
|
},
|
||||||
|
"result": "techia:asmite_button",
|
||||||
|
"count": 2}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{"type": "techia:workbench",
|
||||||
|
"items": {
|
||||||
|
"techia:letium": 1,
|
||||||
|
"techia:asmite_ingot": 2
|
||||||
|
},
|
||||||
|
"result": "techia:asmite_toggle",
|
||||||
|
"count": 2}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{"type": "techia:workbench",
|
||||||
|
"items": {
|
||||||
|
"techia:letium": 1,
|
||||||
|
"techia:asmite_ingot": 1
|
||||||
|
},
|
||||||
|
"result": "techia:asmite_wall_button",
|
||||||
|
"count": 2}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{"type": "techia:workbench",
|
||||||
|
"items": {
|
||||||
|
"techia:letium": 1,
|
||||||
|
"techia:asmite_ingot": 1
|
||||||
|
},
|
||||||
|
"result": "techia:asmite_wall_toggle",
|
||||||
|
"count": 2}
|