more leti! and changing some models and textures

This commit is contained in:
Ella Paws 2022-02-08 01:44:43 +01:00
parent 2130c637fb
commit 56d0405a94
42 changed files with 208 additions and 18 deletions

View File

@ -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
} }

View File

@ -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();
}
} }

View File

@ -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();
} }
} }

View File

@ -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()){

View File

@ -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);

View File

@ -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}}
]}

View File

@ -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}}
]}

View File

@ -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"}}}]}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_1"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_10"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_2"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_3"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_4"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_5"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_6"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_7"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_8"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_9"}}

View File

@ -0,0 +1 @@
{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/invert"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 139 B

View File

@ -0,0 +1,7 @@
{"type": "techia:workbench",
"items": {
"techia:letium": 1,
"techia:asmite_ingot": 2
},
"result": "techia:asmite_button",
"count": 2}

View File

@ -0,0 +1,7 @@
{"type": "techia:workbench",
"items": {
"techia:letium": 1,
"techia:asmite_ingot": 2
},
"result": "techia:asmite_toggle",
"count": 2}

View File

@ -0,0 +1,7 @@
{"type": "techia:workbench",
"items": {
"techia:letium": 1,
"techia:asmite_ingot": 1
},
"result": "techia:asmite_wall_button",
"count": 2}

View File

@ -0,0 +1,7 @@
{"type": "techia:workbench",
"items": {
"techia:letium": 1,
"techia:asmite_ingot": 1
},
"result": "techia:asmite_wall_toggle",
"count": 2}