diff --git a/main/java/ella/techia/block/Connector.java b/main/java/ella/techia/block/Connector.java index 0d05868..1dc2c0f 100644 --- a/main/java/ella/techia/block/Connector.java +++ b/main/java/ella/techia/block/Connector.java @@ -37,4 +37,6 @@ public class Connector extends LetiConnectable { public boolean output(/*ServerWorld world, BlockPos pos,*/ BlockState state, Direction direction){ 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 } diff --git a/main/java/ella/techia/block/Delayer.java b/main/java/ella/techia/block/Delayer.java index b7988b2..6d8f03d 100644 --- a/main/java/ella/techia/block/Delayer.java +++ b/main/java/ella/techia/block/Delayer.java @@ -1,17 +1,22 @@ package ella.techia.block; +import ella.techia.leti.LetiNetwork; +import java.util.Random; import net.minecraft.block.*; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; import net.minecraft.state.StateManager; import net.minecraft.state.property.IntProperty; +import net.minecraft.state.property.Properties; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; 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){ super(settings); @@ -33,7 +38,20 @@ public class Delayer extends FacingLeti { @Override 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; } + + @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(); + } } diff --git a/main/java/ella/techia/block/Inverter.java b/main/java/ella/techia/block/Inverter.java index 9004c9e..a67e99e 100644 --- a/main/java/ella/techia/block/Inverter.java +++ b/main/java/ella/techia/block/Inverter.java @@ -1,14 +1,31 @@ package ella.techia.block; +import ella.techia.leti.LetiNetwork; +import java.util.Random; 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.Direction; +import net.minecraft.world.World; 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){ super(settings); + this.setDefaultState( + this.stateManager.getDefaultState() + .with(Properties.POWERED, true) + .with(Properties.INPUT, false)); + } + + @Override + protected void appendProperties(StateManager.Builder builder){ + super.appendProperties(builder); + builder.add(Properties.INPUT); } @Override @@ -21,6 +38,18 @@ public class Inverter extends FacingLeti /*implements LetiBlock, Waterloggable*/ BlockPos neighborPos ){ 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(); } } diff --git a/main/java/ella/techia/leti/LetiNetwork.java b/main/java/ella/techia/leti/LetiNetwork.java index bbd7df6..52abc17 100644 --- a/main/java/ella/techia/leti/LetiNetwork.java +++ b/main/java/ella/techia/leti/LetiNetwork.java @@ -4,12 +4,14 @@ import java.util.*; import java.util.AbstractSet; import java.util.Iterator; import java.util.Map.Entry; +import net.minecraft.block.Block; import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; 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: networks may still get several updates on one tick... public class LetiNetwork { private static final Map, LetiNetwork> networks = Maps.newHashMap(); @@ -36,12 +38,13 @@ public class LetiNetwork { public void set(boolean powered){ if(this.powered == powered) return; // it would be useless to do anything if the state didn't change for(BlockPos pos : nodes){ - if(world.isPosLoaded(pos.x, pos.z)) - world.setBlockState(pos, world.getBlockState(pos).with(Properties.POWERED, powered)); + 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)/*, Block.NOTIFY_ALL ^ Block.NOTIFY_LISTENERS*/); // else node.setDirty(true) or something } this.powered = powered; } + // FIXME this gets called several times a tick public boolean updateInputs(){ for(Entry e : inputs){ if(output(world.getBlockState(e.getKey()), e.getValue()){ diff --git a/main/java/ella/techia/registry/TechiaRegistry.java b/main/java/ella/techia/registry/TechiaRegistry.java index 275a33c..8a3b256 100644 --- a/main/java/ella/techia/registry/TechiaRegistry.java +++ b/main/java/ella/techia/registry/TechiaRegistry.java @@ -22,6 +22,13 @@ public class TechiaRegistry { /*private static final LinkedHashMap BLOCKS = new LinkedHashMap<>(); private static final LinkedHashMap 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", 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))); @@ -31,20 +38,19 @@ public class TechiaRegistry { 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 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(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.1f).resistance(0f)), 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(FabricBlockSettings.copyOf(Blocks.IRON_BARS).hardness(0.2f).resistance(0.2f)), Techia.LETI); + public static final Block CONNECTOR = add("connector", new Connector(ASMITE_LETI), Techia.LETI); + public static final Block INVERTER = add("inverter", new Inverter(ASMITE_LETI), Techia.LETI); + public static final Block DELAYER = add("delayer", new Delayer(ASMITE_LETI), Techia.LETI); + public static final Block ASMITE_TOGGLE = add("asmite_toggle", new LetiToggle(ASMITE_LETI_BIG), Techia.LETI); public static final Block BOX_BLOCK = add("smelter", new Smelter(FabricBlockSettings.copyOf(Blocks.FURNACE)), ItemGroup.MISC); public static BlockEntityType SMELTER_ENTITY; 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 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 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 WORKBENCH_BLOCK_ENTITY; public static final Block PISTON = add("piston", @@ -129,11 +135,10 @@ public class TechiaRegistry { //register("intersector", INTERSECTOR); NOPE register("inverter", INVERTER); 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_wall_button", ASMITE_WALL_BUTTON); - //register("asmite_wall_toggle", ASMITE_WALL_TOGGLE); + register("asmite_wall_button", ASMITE_WALL_BUTTON); + register("asmite_wall_toggle", ASMITE_WALL_TOGGLE); register("smelter", SMELTER); SMELTER_ENTITY = register("smelter", FabricBlockEntityTypeBuilder.create(SmelterEntity::new, SMELTER).build(null)); register("block_shape", BLOCK_SHAPE); diff --git a/main/resources/assets/techia/blockstates/delayer.json b/main/resources/assets/techia/blockstates/delayer.json new file mode 100644 index 0000000..598ff37 --- /dev/null +++ b/main/resources/assets/techia/blockstates/delayer.json @@ -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}} +]} \ No newline at end of file diff --git a/main/resources/assets/techia/blockstates/inverter.json b/main/resources/assets/techia/blockstates/inverter.json new file mode 100644 index 0000000..054eb9f --- /dev/null +++ b/main/resources/assets/techia/blockstates/inverter.json @@ -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}} +]} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/connector_side.json b/main/resources/assets/techia/models/block/connector_side.json index 14a9828..88324d7 100644 --- a/main/resources/assets/techia/models/block/connector_side.json +++ b/main/resources/assets/techia/models/block/connector_side.json @@ -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"}}}]} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_1.json b/main/resources/assets/techia/models/block/delayer_1.json new file mode 100644 index 0000000..cfb6b45 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_1.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_1"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_10.json b/main/resources/assets/techia/models/block/delayer_10.json new file mode 100644 index 0000000..0c542d1 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_10.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_10"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_2.json b/main/resources/assets/techia/models/block/delayer_2.json new file mode 100644 index 0000000..012113f --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_2.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_2"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_3.json b/main/resources/assets/techia/models/block/delayer_3.json new file mode 100644 index 0000000..4cbd3dc --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_3.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_3"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_4.json b/main/resources/assets/techia/models/block/delayer_4.json new file mode 100644 index 0000000..0aea9b2 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_4.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_4"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_5.json b/main/resources/assets/techia/models/block/delayer_5.json new file mode 100644 index 0000000..a18e331 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_5.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_5"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_6.json b/main/resources/assets/techia/models/block/delayer_6.json new file mode 100644 index 0000000..d372868 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_6.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_6"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_7.json b/main/resources/assets/techia/models/block/delayer_7.json new file mode 100644 index 0000000..ade2b73 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_7.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_7"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_8.json b/main/resources/assets/techia/models/block/delayer_8.json new file mode 100644 index 0000000..d0da850 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_8.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_8"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/delayer_9.json b/main/resources/assets/techia/models/block/delayer_9.json new file mode 100644 index 0000000..681b215 --- /dev/null +++ b/main/resources/assets/techia/models/block/delayer_9.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/delay_9"}} \ No newline at end of file diff --git a/main/resources/assets/techia/models/block/inverter.json b/main/resources/assets/techia/models/block/inverter.json new file mode 100644 index 0000000..087cf1b --- /dev/null +++ b/main/resources/assets/techia/models/block/inverter.json @@ -0,0 +1 @@ +{"parent":"techia:block/connector_base","textures":{"particle":"techia:block/invert"}} \ No newline at end of file diff --git a/main/resources/assets/techia/textures/block/asmite_button_off.png b/main/resources/assets/techia/textures/block/asmite_button_off.png new file mode 100644 index 0000000..46d3fe5 Binary files /dev/null and b/main/resources/assets/techia/textures/block/asmite_button_off.png differ diff --git a/main/resources/assets/techia/textures/block/asmite_button_on.png b/main/resources/assets/techia/textures/block/asmite_button_on.png new file mode 100644 index 0000000..7a9a2da Binary files /dev/null and b/main/resources/assets/techia/textures/block/asmite_button_on.png differ diff --git a/main/resources/assets/techia/textures/block/asmite_panel.png b/main/resources/assets/techia/textures/block/asmite_panel.png new file mode 100644 index 0000000..b3abd8d Binary files /dev/null and b/main/resources/assets/techia/textures/block/asmite_panel.png differ diff --git a/main/resources/assets/techia/textures/block/asmite_toggle_off.png b/main/resources/assets/techia/textures/block/asmite_toggle_off.png new file mode 100644 index 0000000..fab502a Binary files /dev/null and b/main/resources/assets/techia/textures/block/asmite_toggle_off.png differ diff --git a/main/resources/assets/techia/textures/block/asmite_toggle_on.png b/main/resources/assets/techia/textures/block/asmite_toggle_on.png new file mode 100644 index 0000000..3e4d610 Binary files /dev/null and b/main/resources/assets/techia/textures/block/asmite_toggle_on.png differ diff --git a/main/resources/assets/techia/textures/block/connector.png b/main/resources/assets/techia/textures/block/connector.png index d18ef4e..87c4b66 100644 Binary files a/main/resources/assets/techia/textures/block/connector.png and b/main/resources/assets/techia/textures/block/connector.png differ diff --git a/main/resources/assets/techia/textures/block/connector_on.png b/main/resources/assets/techia/textures/block/connector_on.png index bdcc760..cbe2ec6 100644 Binary files a/main/resources/assets/techia/textures/block/connector_on.png and b/main/resources/assets/techia/textures/block/connector_on.png differ diff --git a/main/resources/assets/techia/textures/block/delay_1.png b/main/resources/assets/techia/textures/block/delay_1.png index 6bb573f..1d6ec22 100644 Binary files a/main/resources/assets/techia/textures/block/delay_1.png and b/main/resources/assets/techia/textures/block/delay_1.png differ diff --git a/main/resources/assets/techia/textures/block/delay_10.png b/main/resources/assets/techia/textures/block/delay_10.png new file mode 100644 index 0000000..803077d Binary files /dev/null and b/main/resources/assets/techia/textures/block/delay_10.png differ diff --git a/main/resources/assets/techia/textures/block/delay_2.png b/main/resources/assets/techia/textures/block/delay_2.png index 8642114..4c8025a 100644 Binary files a/main/resources/assets/techia/textures/block/delay_2.png and b/main/resources/assets/techia/textures/block/delay_2.png differ diff --git a/main/resources/assets/techia/textures/block/delay_3.png b/main/resources/assets/techia/textures/block/delay_3.png index 3d6b90f..eee56d6 100644 Binary files a/main/resources/assets/techia/textures/block/delay_3.png and b/main/resources/assets/techia/textures/block/delay_3.png differ diff --git a/main/resources/assets/techia/textures/block/delay_4.png b/main/resources/assets/techia/textures/block/delay_4.png index e2d07ac..8a7b2ca 100644 Binary files a/main/resources/assets/techia/textures/block/delay_4.png and b/main/resources/assets/techia/textures/block/delay_4.png differ diff --git a/main/resources/assets/techia/textures/block/delay_5.png b/main/resources/assets/techia/textures/block/delay_5.png index 01b1b89..2b80e32 100644 Binary files a/main/resources/assets/techia/textures/block/delay_5.png and b/main/resources/assets/techia/textures/block/delay_5.png differ diff --git a/main/resources/assets/techia/textures/block/delay_6.png b/main/resources/assets/techia/textures/block/delay_6.png index 28a4550..ac24b21 100644 Binary files a/main/resources/assets/techia/textures/block/delay_6.png and b/main/resources/assets/techia/textures/block/delay_6.png differ diff --git a/main/resources/assets/techia/textures/block/delay_7.png b/main/resources/assets/techia/textures/block/delay_7.png new file mode 100644 index 0000000..3fbf00d Binary files /dev/null and b/main/resources/assets/techia/textures/block/delay_7.png differ diff --git a/main/resources/assets/techia/textures/block/delay_8.png b/main/resources/assets/techia/textures/block/delay_8.png new file mode 100644 index 0000000..16b3f44 Binary files /dev/null and b/main/resources/assets/techia/textures/block/delay_8.png differ diff --git a/main/resources/assets/techia/textures/block/delay_9.png b/main/resources/assets/techia/textures/block/delay_9.png new file mode 100644 index 0000000..170f56e Binary files /dev/null and b/main/resources/assets/techia/textures/block/delay_9.png differ diff --git a/main/resources/assets/techia/textures/block/invert.png b/main/resources/assets/techia/textures/block/invert.png index 2b270e7..a284175 100644 Binary files a/main/resources/assets/techia/textures/block/invert.png and b/main/resources/assets/techia/textures/block/invert.png differ diff --git a/main/resources/data/techia/recipes/intersector.json b/main/resources/data/techia/intersector.json similarity index 100% rename from main/resources/data/techia/recipes/intersector.json rename to main/resources/data/techia/intersector.json diff --git a/main/resources/data/techia/recipes/asmite_button.json b/main/resources/data/techia/recipes/asmite_button.json new file mode 100644 index 0000000..1cda498 --- /dev/null +++ b/main/resources/data/techia/recipes/asmite_button.json @@ -0,0 +1,7 @@ +{"type": "techia:workbench", +"items": { + "techia:letium": 1, + "techia:asmite_ingot": 2 +}, +"result": "techia:asmite_button", +"count": 2} \ No newline at end of file diff --git a/main/resources/data/techia/recipes/asmite_toggle.json b/main/resources/data/techia/recipes/asmite_toggle.json new file mode 100644 index 0000000..e80cd71 --- /dev/null +++ b/main/resources/data/techia/recipes/asmite_toggle.json @@ -0,0 +1,7 @@ +{"type": "techia:workbench", +"items": { + "techia:letium": 1, + "techia:asmite_ingot": 2 +}, +"result": "techia:asmite_toggle", +"count": 2} \ No newline at end of file diff --git a/main/resources/data/techia/recipes/asmite_wall_button.json b/main/resources/data/techia/recipes/asmite_wall_button.json new file mode 100644 index 0000000..4b84fed --- /dev/null +++ b/main/resources/data/techia/recipes/asmite_wall_button.json @@ -0,0 +1,7 @@ +{"type": "techia:workbench", +"items": { + "techia:letium": 1, + "techia:asmite_ingot": 1 +}, +"result": "techia:asmite_wall_button", +"count": 2} \ No newline at end of file diff --git a/main/resources/data/techia/recipes/asmite_wall_toggle.json b/main/resources/data/techia/recipes/asmite_wall_toggle.json new file mode 100644 index 0000000..606c772 --- /dev/null +++ b/main/resources/data/techia/recipes/asmite_wall_toggle.json @@ -0,0 +1,7 @@ +{"type": "techia:workbench", +"items": { + "techia:letium": 1, + "techia:asmite_ingot": 1 +}, +"result": "techia:asmite_wall_toggle", +"count": 2} \ No newline at end of file