diff --git a/main/java/ella/techia/Techia.java b/main/java/ella/techia/Techia.java index e4b02d7..864c04e 100644 --- a/main/java/ella/techia/Techia.java +++ b/main/java/ella/techia/Techia.java @@ -17,7 +17,7 @@ public class Techia implements ModInitializer { public void onInitialize(){ TechiaRegistry.register(); - FabricItemGroupBuilder.create(new Identifier(MOD_ID, "items")).icon(() -> TechiaRegistry.LETIUM.getDefaultStack()).appendItems(stacks -> Registry.ITEM.forEach(item -> { + FabricItemGroupBuilder.create(new Identifier(MOD_ID, "main")).icon(() -> TechiaRegistry.LETIUM.getDefaultStack()).appendItems(stacks -> Registry.ITEM.forEach(item -> { if(Registry.ITEM.getId(item).getNamespace().equals(MOD_ID)){ item.appendStacks(item.getGroup(), (DefaultedList) stacks); } diff --git a/main/java/ella/techia/block/Connector.java b/main/java/ella/techia/block/Connector.java index fdf38c9..b11b299 100644 --- a/main/java/ella/techia/block/Connector.java +++ b/main/java/ella/techia/block/Connector.java @@ -23,7 +23,7 @@ import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -public class Connector extends LetiConnectable /*implements LetiBlock, Waterloggable*/ { +public class Connector extends LetiConnectable { final VoxelShape BASE_SHAPE = createCuboidShape( 5d, 5d, 5d, 11d, 11d, 11d); final VoxelShape NORTH_SHAPE = createCuboidShape( 6d, 6d, 0d, 10d, 10d, 5d); @@ -38,14 +38,16 @@ public class Connector extends LetiConnectable /*implements LetiBlock, Waterlogg } @Override - public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity unrelatedEntity, ItemStack stack){ - super.onPlaced(world, pos, state, unrelatedEntity, stack); - LetiNetwork.new(world, pos); + public void onBlockAdded(World world, BlockPos pos, BlockState state, boolean notify){ + super.onBlockAdded(world, pos, state, notify); + if(!world.isClient) LetiNetwork.new(world, pos); } @Override - public void onBroken(World world, BlockPos pos, BlockState state){ - super.onBroken(world, pos, state); - LetiNetwork.remove(world, pos); + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved){ + super.onStateReplaced(state, world, pos, newState, moved); + if(!world.isClient && !state.getBlock().equals(this)){ + LetiNetwork.remove(world, pos); + } } @Override public boolean output(/*ServerWorld world, BlockPos pos,*/ BlockState state, Direction direction){ diff --git a/main/java/ella/techia/block/Delayer.java b/main/java/ella/techia/block/Delayer.java index aba6051..b7988b2 100644 --- a/main/java/ella/techia/block/Delayer.java +++ b/main/java/ella/techia/block/Delayer.java @@ -10,7 +10,7 @@ import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; -public class Delayer extends FacingLeti /*implements LetiBlock, Waterloggable*/ { +public class Delayer extends FacingLeti { public static final IntProperty DELAY = IntProperty.of("delay", 1, 6); public Delayer(net.minecraft.block.AbstractBlock.Settings settings){ diff --git a/main/java/ella/techia/block/FacingLeti.java b/main/java/ella/techia/block/FacingLeti.java index 7c3b364..82a401a 100644 --- a/main/java/ella/techia/block/FacingLeti.java +++ b/main/java/ella/techia/block/FacingLeti.java @@ -79,6 +79,26 @@ public class FacingLeti extends Block implements LetiBlock, Waterloggable { else return super.getFluidState(state); } + @Override + public void onBlockAdded(World world, BlockPos pos, BlockState state, boolean notify){ + super.onBlockAdded(world, pos, state, notify); + if(!world.isClient){ + Direction facing = state.get(Properties.FACING); + LetiNetwork.at(pos.offset(facing)).addInput(pos, facing); + } + } + @Override + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved){ + super.onStateReplaced(state, world, pos, newState, moved); + if(!world.isClient && !state.getBlock().equals(this)){ + Direction facing = state.get(Properties.FACING); + LetiNetwork network = LetiNetwork.at(pos.offset(facing)); + network.removeInput(pos, facing); + if(state.get(Properties.POWERED)) + network.updateInputs(); + } + } + @Override public boolean connects(BlockState state, Direction direction){ return direction.equals(state.get(Properties.FACING)) || direction.equals(state.get(Properties.FACING).opposite()); @@ -87,10 +107,4 @@ public class FacingLeti extends Block implements LetiBlock, Waterloggable { public boolean output(/*ServerWorld world, BlockPos pos,*/ BlockState state, Direction direction){ return state.get(Properties.POWERED) && direction.equals(state.get(Properties.FACING)); } - - // TODO update output of network in front after placing - /*@Override - BlockState rotate(BlockState state, BlockRotation rotation){ - return state; - }*/ } diff --git a/main/java/ella/techia/block/Inverter.java b/main/java/ella/techia/block/Inverter.java index 1d178a5..63d6afb 100644 --- a/main/java/ella/techia/block/Inverter.java +++ b/main/java/ella/techia/block/Inverter.java @@ -14,12 +14,15 @@ public class Inverter extends FacingLeti /*implements LetiBlock, Waterloggable*/ } @Override - public BlockState getPlacementState(ItemPlacementContext context){ - return super.getPlacementState(context).with(DELAY, 1); - } - - @Override - public void tick(){ - // TODO update to what the output behind wasn't + public BlockState getStateForNeighborUpdate( + BlockState state, + Direction side, + BlockState neighborState, + WorldAccess world, + BlockPos pos, + BlockPos neighborPos + ){ + Direction facing = state.get(Properties.FACING); + return state.with(Properties.POWERED, !LetiNetwork.output(world.getBlockState(pos.offset(facing.getOpposite())), facing)); } } diff --git a/main/java/ella/techia/block/LampBlock.java b/main/java/ella/techia/block/LampBlock.java new file mode 100644 index 0000000..b1d9ee6 --- /dev/null +++ b/main/java/ella/techia/block/LampBlock.java @@ -0,0 +1,47 @@ +package ella.techia.block; + +import ella.techia.leti.*; +import java.util.List; +import net.minecraft.block.*; +import net.minecraft.item.*; +import net.minecraft.state.property.Properties; +import net.minecraft.state.StateManager; +import net.minecraft.text.Text; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +public class LampBlock extends Block { + private int light; + public LampBlock(int level){ + light = level; + super(FabricBlockSettings.copyOf(Blocks.IRON_BLOCK) + .luminance(state -> state.get(Properties.LIT)? light: 0)); + this.setDefaultState( + this.stateManager.getDefaultState() + .with(Properties.LIT, false)); + } + + @Override + protected void appendProperties(StateManager.Builder builder){ + super.appendProperties(builder); + builder.add(Properties.LIT); + } + + @Override + public BlockState getStateForNeighborUpdate( + BlockState state, + Direction side, + BlockState neighborState, + WorldAccess world, + BlockPos pos, + BlockPos neighborPos + ){ + return state.with(Properties.LIT, LetiNetwork.getsInput(pos)); + } + + @Override + public void appendTooltip(ItemStack stack, BlockView world, List tooltip, TooltipContext context){ + tooltip.add(new TranslatableText("item." + Techia.MOD_ID + ".lamp_tooltip", light)); + super.appendTooltip(stack, world, tooltip, context); + } +} diff --git a/main/java/ella/techia/block/LetiConnectable.java b/main/java/ella/techia/block/LetiConnectable.java index 5e7d992..5235fea 100644 --- a/main/java/ella/techia/block/LetiConnectable.java +++ b/main/java/ella/techia/block/LetiConnectable.java @@ -123,8 +123,4 @@ public abstract class LetiConnectable extends Block implements LetiBlock, Waterl public boolean connects(BlockState state, Direction direction){ return true; } - /*@Override - BlockState rotate(BlockState state, BlockRotation rotation){ - return state; - }*/ } diff --git a/main/java/ella/techia/block/LetiToggle.java b/main/java/ella/techia/block/LetiToggle.java index 6cbe5cd..dca8c21 100644 --- a/main/java/ella/techia/block/LetiToggle.java +++ b/main/java/ella/techia/block/LetiToggle.java @@ -23,15 +23,15 @@ import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -public class LetiToggle extends LetiConnectable /*implements LetiBlock, Waterloggable*/ { +public class LetiToggle extends LetiConnectable { - static final VoxelShape BASE_SHAPE = createCuboidShape( 3d, 3d, 3d, 13d, 13d, 13d); - static final VoxelShape NORTH_SHAPE = createCuboidShape( 6d, 6d, 0d, 10d, 10d, 3d); - static final VoxelShape SOUTH_SHAPE = createCuboidShape( 6d, 6d, 13d, 10d, 10d, 16d); - static final VoxelShape EAST_SHAPE = createCuboidShape(13d, 6d, 6d, 16d, 10d, 10d); - static final VoxelShape WEST_SHAPE = createCuboidShape( 0d, 6d, 6d, 3d, 10d, 10d); - static final VoxelShape UP_SHAPE = createCuboidShape( 6d, 13d, 6d, 10d, 16d, 10d); - static final VoxelShape DOWN_SHAPE = createCuboidShape( 6d, 0d, 6d, 10d, 3d, 10d); + final VoxelShape BASE_SHAPE = createCuboidShape( 3d, 3d, 3d, 13d, 13d, 13d); + final VoxelShape NORTH_SHAPE = createCuboidShape( 6d, 6d, 0d, 10d, 10d, 3d); + final VoxelShape SOUTH_SHAPE = createCuboidShape( 6d, 6d, 13d, 10d, 10d, 16d); + final VoxelShape EAST_SHAPE = createCuboidShape(13d, 6d, 6d, 16d, 10d, 10d); + final VoxelShape WEST_SHAPE = createCuboidShape( 0d, 6d, 6d, 3d, 10d, 10d); + final VoxelShape UP_SHAPE = createCuboidShape( 6d, 13d, 6d, 10d, 16d, 10d); + final VoxelShape DOWN_SHAPE = createCuboidShape( 6d, 0d, 6d, 10d, 3d, 10d); public LetiToggle(net.minecraft.block.AbstractBlock.Settings settings){ super(settings); @@ -39,11 +39,62 @@ public class LetiToggle extends LetiConnectable /*implements LetiBlock, Waterlog @Override public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit){ + super.onUse(state, world, pos, player, hand, hit); boolean pow = state.get(Properties.POWERED); world.setBlockState(pos, state.with(Properties.POWERED, !pow)); // Will this play the sound for only the player? probably not what we want world.playSound(player, pos, SoundEvents.BLOCK_LEVER_CLICK, SoundCategory.BLOCKS, 0.3f, pow? 0.5f: 0.6f); //world.playSound(pos.x, pos.y, pos.z, SoundEvents.BLOCK_LEVER_CLICK, SoundCategory.BLOCKS, 0.3f, pow? 0.5f: 0.6f, true); + for(LetiNetwork network : LetiNetwork.findAdjacentNetworks()){ + network.updateInputs(pow); + } return ActionResult.SUCCESS; } + @Override + public void onBlockAdded(World world, BlockPos pos, BlockState state, boolean notify){ + super.onBlockAdded(world, pos, state, notify); + if(!world.isClient){ + BlockPos adj = pos.north(); + LetiNetwork network = LetiNetwork.at(adj); + if(network != null){ + network.addInput(pos, Direction.NORTH); + } + adj = pos.south(); + network = LetiNetwork.at(adj); + if(network != null){ + network.addInput(pos, Direction.SOUTH); + } + adj = pos.east(); + network = LetiNetwork.at(adj); + if(network != null){ + network.addInput(pos, Direction.EAST); + } + adj = pos.west(); + network = LetiNetwork.at(adj); + if(network != null){ + network.addInput(pos, Direction.WEST); + } + adj = pos.up(); + network = LetiNetwork.at(adj); + if(network != null){ + network.addInput(pos, Direction.UP); + } + adj = pos.down(); + network = LetiNetwork.at(adj); + if(network != null){ + network.addInput(pos, Direction.DOWN); + } + for(network : findAdjacentNetworks()){ + network.updateInputs(); + // this avoids updating networks more than once a tick + } + } + } + @Override + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved){ + super.onStateReplaced(state, world, pos, newState, moved); + if(!world.isClient && !state.getBlock().equals(this)){ + LetiNetwork.removeInput(world, pos); + } + } } diff --git a/main/java/ella/techia/leti/LetiNetwork.java b/main/java/ella/techia/leti/LetiNetwork.java index 6125c2d..d9baca2 100644 --- a/main/java/ella/techia/leti/LetiNetwork.java +++ b/main/java/ella/techia/leti/LetiNetwork.java @@ -5,7 +5,9 @@ import java.util.Map.Entry; 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.World; // maybe only ServerWorlds should be acceptable, the client doesn't need this (hopefully) + +// known issue: unloaded chunks don't get their blocks updated public class LetiNetwork { private static final Map, LetiNetwork> networks = Maps.newHashMap(); @@ -30,11 +32,24 @@ public class LetiNetwork { // this is of course not ideal, but as long as it's not messed up in this mod it should be fine... 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){ - world.setBlockState(pos, world.getBlockState(pos).with(Properties.POWERED, powered)); + if(world.isPosLoaded(pos.x, pos.z)) + world.setBlockState(pos, world.getBlockState(pos).with(Properties.POWERED, powered)); + // else node.setDirty(true) or something } this.powered = powered; } + public boolean updateInputs(){ + for(Entry e : inputs){ + if(output(world.getBlockState(e.getKey()), e.getValue()){ + set(true); + return true; + } + } + set(false); + return false; + } // assumes that there is no node here already // this name is probably a misnomer, what this code really does is finds a network for a position that isn't already in a network @@ -103,18 +118,31 @@ public class LetiNetwork { } } } - private void addInput(World world, BlockPos pos, Direction direction){ + // doesn't update! + public void addInput(BlockPos pos, Direction direction){ inputs.add(new Entry(pos, direction)); } - private void removeInput(World world, BlockPos pos, Direction direction){ + // static because it removes all affected + public static void removeInput(World world, BlockPos pos){ + at(pos.north()).removeInput(pos.north(), Direction.NORTH); + at(pos.south()).removeInput(pos.south(), Direction.SOUTH); + at(pos.east() ).removeInput(pos.east() , Direction.EAST ); + at(pos.west() ).removeInput(pos.west() , Direction.WEST ); + at(pos.up() ).removeInput(pos.up() , Direction.UP ); + at(pos.down() ).removeInput(pos.down() , Direction.DOWN ); + for(LetiNetwork network : findAdjacentNetworks()){ + network.updateInputs(); + // this avoids updating networks more than once a tick + } + } + public void removeInput(BlockPos pos, Direction direction){ inputs.remove(new Entry(pos, direction)); } private void mergeWith(LetiNetwork network){ for(BlockPos pos : nodes){ - Entry entry = new Entry<>(world, pos) network.add(pos); - networks.set(entry, network); + networks.set(new Entry(world, pos), network); } } @@ -132,7 +160,23 @@ public class LetiNetwork { return false; } + public boolean getsInput(World world, BlockPos pos){ + BlockPos adj = pos; + if( + LetiNetwork.output(world.getBlockState(pos.south()), Direction.NORTH) || + LetiNetwork.output(world.getBlockState(pos.north()), Direction.SOUTH) || + LetiNetwork.output(world.getBlockState(pos.west() ), Direction.EAST ) || + LetiNetwork.output(world.getBlockState(pos.east() ), Direction.WEST ) || + LetiNetwork.output(world.getBlockState(pos.down() ), Direction.UP ) || + LetiNetwork.output(world.getBlockState(pos.up() ), Direction.DOWN ) + ){ + return true; + } + return false; + } + // borrowed from yttr + private static final ImmutableList DIRECTIONS = ImmutableList.copyOf(Direction.values()); public static Entry neighbors(BlockPos pos){ BlockPos fpos = pos.toImmutable(); return new AbstractEntry(){ @@ -162,7 +206,7 @@ public class LetiNetwork { }; } - public static ArrayList findAdjacentNetworks(){ + public static ArrayList findAdjacentNetworks(World world, BlockPos pos){ ArrayList ret; for(BlockPos np : neighbors(pos)){ Entry key = new Entry<>(world, np); diff --git a/main/java/ella/techia/registry/TechiaRegistry.java b/main/java/ella/techia/registry/TechiaRegistry.java index 5828fa7..275a33c 100644 --- a/main/java/ella/techia/registry/TechiaRegistry.java +++ b/main/java/ella/techia/registry/TechiaRegistry.java @@ -50,6 +50,25 @@ public class TechiaRegistry { public static final Block PISTON = add("piston", new Piston(FabricBlockSettings.copyOf(Blocks.IRON_BLOCK)), Techia.LETI); + public static final Block WHITE_LAMP = add("white_lamp" , new LampBlock(15), Techia.LETI); + public static final Block MAGENTA_LAMP = add("magenta_lamp" , new LampBlock(15), Techia.LETI); + public static final Block TEAL_LAMP = add("teal_lamp" , new LampBlock(15), Techia.LETI); + public static final Block CYAN_LAMP = add("cyan_lamp" , new LampBlock(14), Techia.LETI); + public static final Block GREEN_LAMP = add("green_lamp" , new LampBlock(14), Techia.LETI); + public static final Block PINK_LAMP = add("pink_lamp" , new LampBlock(14), Techia.LETI); + public static final Block LIGHT_BLUE_LAMP = add("light_blue_lamp" , new LampBlock(13), Techia.LETI); + public static final Block YELLOW_LAMP = add("yellow_lamp" , new LampBlock(13), Techia.LETI); + public static final Block MEDIUM_BLUE_LAMP = add("medium_blue_lamp", new LampBlock(12), Techia.LETI); + public static final Block ORANGE_LAMP = add("orange_lamp" , new LampBlock(12), Techia.LETI); + public static final Block LIGHT_GRAY_LAMP = add("light_gray_lamp" , new LampBlock(11), Techia.LETI); + public static final Block PURPLE_LAMP = add("purple_lamp" , new LampBlock(11), Techia.LETI); + public static final Block RED_LAMP = add("red_lamp" , new LampBlock(11), Techia.LETI); + public static final Block BLUE_LAMP = add("blue_lamp" , new LampBlock(10), Techia.LETI); + public static final Block DARK_GREEN_LAMP = add("dark_green_lamp" , new LampBlock( 9), Techia.LETI); + public static final Block BROWN_LAMP = add("brown_lamp" , new LampBlock( 7), Techia.LETI); + public static final Block DARK_GRAY_LAMP = add("dark_gray_lamp" , new LampBlock( 5), Techia.LETI); + //public static final Block BLACK_LAMP = add("black_lamp" , new LampBlock( 1), Techia.LETI); + public static final RecipeType WORKBENCH_RECIPE = RecipeType.register(new Identifier(Techia.MOD_ID, "smelting")); public static final RecipeType WORKBENCH_RECIPE = RecipeType.register(new Identifier(Techia.MOD_ID, "workbench")); @@ -125,20 +144,40 @@ public class TechiaRegistry { WORKBENCH_BLOCK_ENTITY = register("workbench", FabricBlockEntityTypeBuilder.create(BoxBlockEntity::new, WORKBENCH_BLOCK).build(null)); register("piston", PISTON); - Registry.register(Registry.CUSTOM_STAT, "interact_with_smelter", INTERACT_WITH_SMELTER); - Stats.CUSTOM.getOrCreateStat(INTERACT_WITH_SMELTER, StatFormatter.DEFAULT); - Registry.register(Registry.CUSTOM_STAT, "interact_with_box", INTERACT_WITH_BOX); - Stats.CUSTOM.getOrCreateStat(INTERACT_WITH_BOX, StatFormatter.DEFAULT); - Registry.register(Registry.CUSTOM_STAT, "interact_with_workbench", INTERACT_WITH_WORKBENCH); - Stats.CUSTOM.getOrCreateStat(INTERACT_WITH_WORKBENCH, StatFormatter.DEFAULT); + register("white_lamp", WHITE_LAMP ); + register("magenta_lamp", MAGENTA_LAMP ); + register("teal_lamp", TEAL_LAMP ); + register("cyan_lamp", CYAN_LAMP ); + register("green_lamp", GREEN_LAMP ); + register("pink_lamp", PINK_LAMP ); + register("light_blue_lamp", LIGHT_BLUE_LAMP ); + register("yellow_lamp", YELLOW_LAMP ); + register("medium_blue_lamp", MEDIUM_BLUE_LAMP); + register("orange_lamp", ORANGE_LAMP ); + register("light_gray_lamp", LIGHT_GRAY_LAMP ); + register("purple_lamp", PURPLE_LAMP ); + register("red_lamp", RED_LAMP ); + register("blue_lamp", BLUE_LAMP ); + register("dark_green_lamp", DARK_GREEN_LAMP ); + register("brown_lamp", BROWN_LAMP ); + register("dark_gray_lamp", DARK_GRAY_LAMP ); + //register("black_lamp", BLACK_LAMP ); + + register(INTERACT_WITH_SMELTER); + register(INTERACT_WITH_BOX); + register(INTERACT_WITH_WORKBENCH); } public void register(String id, Block block){ - register(id), block); + Registry.register(Registry.BLOCK, new Identifier(Techia.MOD_ID, id), block); } public void register(String id, Item item){ - register(id), item); + Registry.register(Registry.ITEM, new Identifier(Techia.MOD_ID, id), item); } public BlockEntityType register(String id, BlockEntityType entity){ Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(Techia.MOD_ID, id), entity); } + public void register(Identifier id){ + Registry.register(Registry.CUSTOM_STAT, id, id); + Stats.CUSTOM.getOrCreateStat(id, StatFormatter.DEFAULT); + } } diff --git a/main/resources/assets/techia/lang/en_au.json b/main/resources/assets/techia/lang/en_au.json new file mode 100644 index 0000000..0d63e17 --- /dev/null +++ b/main/resources/assets/techia/lang/en_au.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"Asmite Block", +"block.techia.asmite_button":"Asmite Button", +"block.techia.asmite_toggle":"Asmite Toggle", +"block.techia.asmite_wall_button":"Asmite Wall Button", +"block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lamp", +"block.techia.blue_lamp":"Blue Lamp", +"block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lamp", +"block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Cyan Lamp", +"block.techia.dark_gray_lamp":"Dark Grey Lamp", +"block.techia.dark_green_lamp":"Dark Green Lamp", +"block.techia.delayer":"Delayer", +"block.techia.green_lamp":"Green Lamp", +"block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Light Blue Lamp", +"block.techia.light_gray_lamp":"Light Grey Lamp", +"block.techia.magenta_lamp":"Magenta Lamp", +"block.techia.medium_blue_lamp":"Medium Blue Lamp", +"block.techia.orange_lamp":"Orange Lamp", +"block.techia.pink_lamp":"Pink Lamp", +"block.techia.piston":"Piston", +"block.techia.purple_lamp":"Purple Lamp", +"block.techia.red_lamp":"Red Lamp", +"block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Teal Lamp", +"block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lamp", +"item.techia.asmite_ingot":"Asmite Ingot", +"item.techia.block_shape":"Block Shape", +"item.techia.letium":"Letium", +"item.techia.ingot_shape":"Ingot Shape", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"Boxes opened", +"stat.techia.interact_with_smelter":"Interactions with Smelter", +"stat.techia.interact_with_workbench":"Interactions with Workbench", +"stat.techia.items_smelted":"Items smelted", +"stat.techia.items_workbench":"Items crafted in Workbench"} \ No newline at end of file diff --git a/main/resources/assets/techia/lang/en_ca.json b/main/resources/assets/techia/lang/en_ca.json new file mode 100644 index 0000000..0d63e17 --- /dev/null +++ b/main/resources/assets/techia/lang/en_ca.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"Asmite Block", +"block.techia.asmite_button":"Asmite Button", +"block.techia.asmite_toggle":"Asmite Toggle", +"block.techia.asmite_wall_button":"Asmite Wall Button", +"block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lamp", +"block.techia.blue_lamp":"Blue Lamp", +"block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lamp", +"block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Cyan Lamp", +"block.techia.dark_gray_lamp":"Dark Grey Lamp", +"block.techia.dark_green_lamp":"Dark Green Lamp", +"block.techia.delayer":"Delayer", +"block.techia.green_lamp":"Green Lamp", +"block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Light Blue Lamp", +"block.techia.light_gray_lamp":"Light Grey Lamp", +"block.techia.magenta_lamp":"Magenta Lamp", +"block.techia.medium_blue_lamp":"Medium Blue Lamp", +"block.techia.orange_lamp":"Orange Lamp", +"block.techia.pink_lamp":"Pink Lamp", +"block.techia.piston":"Piston", +"block.techia.purple_lamp":"Purple Lamp", +"block.techia.red_lamp":"Red Lamp", +"block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Teal Lamp", +"block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lamp", +"item.techia.asmite_ingot":"Asmite Ingot", +"item.techia.block_shape":"Block Shape", +"item.techia.letium":"Letium", +"item.techia.ingot_shape":"Ingot Shape", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"Boxes opened", +"stat.techia.interact_with_smelter":"Interactions with Smelter", +"stat.techia.interact_with_workbench":"Interactions with Workbench", +"stat.techia.items_smelted":"Items smelted", +"stat.techia.items_workbench":"Items crafted in Workbench"} \ No newline at end of file diff --git a/main/resources/assets/techia/lang/en_gb.json b/main/resources/assets/techia/lang/en_gb.json new file mode 100644 index 0000000..755fc5c --- /dev/null +++ b/main/resources/assets/techia/lang/en_gb.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"Asmite Block", +"block.techia.asmite_button":"Asmite Button", +"block.techia.asmite_toggle":"Asmite Toggle", +"block.techia.asmite_wall_button":"Asmite Wall Button", +"block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lamp", +"block.techia.blue_lamp":"Blue Lamp", +"block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lamp", +"block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Cyan Lamp", +"block.techia.dark_gray_lamp":"Dark Grey Lamp", +"block.techia.dark_green_lamp":"Dark Green Lamp", +"block.techia.delayer":"Delayer", +"block.techia.green_lamp":"Green Lamp", +"block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Light Blue Lamp", +"block.techia.light_gray_lamp":"Light Grey Lamp", +"block.techia.magenta_lamp":"Magenta Lamp", +"block.techia.medium_blue_lamp":"Medium Blue Lamp", +"block.techia.orange_lamp":"Orange Lamp", +"block.techia.pink_lamp":"Pink Lamp", +"block.techia.piston":"Piston", +"block.techia.purple_lamp":"Purple Lamp", +"block.techia.red_lamp":"Red Lamp", +"block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Teal Lamp", +"block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lamp", +"item.techia.asmite_ingot":"Asmite Ingot", +"item.techia.block_shape":"Block Shape", +"item.techia.letium":"Letium", +"item.techia.ingot_shape":"Ingot Shape", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"Boxes opened", +"stat.techia.interact_with_smelter":"Interactions with Smelter", +"stat.techia.interact_with_workbench":"Interactions with Workbench", +"stat.techia.items_smelted":"Items smelted", +"stat.techia.items_workbench":"Items crafted in Workbench"} diff --git a/main/resources/assets/techia/lang/en_nz.json b/main/resources/assets/techia/lang/en_nz.json new file mode 100644 index 0000000..0d63e17 --- /dev/null +++ b/main/resources/assets/techia/lang/en_nz.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"Asmite Block", +"block.techia.asmite_button":"Asmite Button", +"block.techia.asmite_toggle":"Asmite Toggle", +"block.techia.asmite_wall_button":"Asmite Wall Button", +"block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lamp", +"block.techia.blue_lamp":"Blue Lamp", +"block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lamp", +"block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Cyan Lamp", +"block.techia.dark_gray_lamp":"Dark Grey Lamp", +"block.techia.dark_green_lamp":"Dark Green Lamp", +"block.techia.delayer":"Delayer", +"block.techia.green_lamp":"Green Lamp", +"block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Light Blue Lamp", +"block.techia.light_gray_lamp":"Light Grey Lamp", +"block.techia.magenta_lamp":"Magenta Lamp", +"block.techia.medium_blue_lamp":"Medium Blue Lamp", +"block.techia.orange_lamp":"Orange Lamp", +"block.techia.pink_lamp":"Pink Lamp", +"block.techia.piston":"Piston", +"block.techia.purple_lamp":"Purple Lamp", +"block.techia.red_lamp":"Red Lamp", +"block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Teal Lamp", +"block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lamp", +"item.techia.asmite_ingot":"Asmite Ingot", +"item.techia.block_shape":"Block Shape", +"item.techia.letium":"Letium", +"item.techia.ingot_shape":"Ingot Shape", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"Boxes opened", +"stat.techia.interact_with_smelter":"Interactions with Smelter", +"stat.techia.interact_with_workbench":"Interactions with Workbench", +"stat.techia.items_smelted":"Items smelted", +"stat.techia.items_workbench":"Items crafted in Workbench"} \ No newline at end of file diff --git a/main/resources/assets/techia/lang/en_ud.json b/main/resources/assets/techia/lang/en_ud.json new file mode 100644 index 0000000..70f08b4 --- /dev/null +++ b/main/resources/assets/techia/lang/en_ud.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"\u029e\u0254o\ua781\u15fa \u01dd\u0287\u1d09\u026fs\u2c6f", +"block.techia.asmite_button":"uo\u0287\u0287n\u15fa \u01dd\u0287\u1d09\u026fs\u2c6f", +"block.techia.asmite_toggle":"\u01dd\ua781\u1d77\u1d77o\u27d8 \u01dd\u0287\u1d09\u026fs\u2c6f", +"block.techia.asmite_wall_button":"uo\u0287\u0287n\u15fa \ua781\ua781\u0250M \u01dd\u0287\u1d09\u026fs\u2c6f", +"block.techia.asmite_wall_toggle":"\u01dd\ua781\u1d77\u1d77o\u27d8 \ua781\ua781\u0250M \u01dd\u0287\u1d09\u026fs\u2c6f", +"block.techia.black_lamp":"d\u026f\u0250\ua780 \u029e\u0254\u0250\ua781\u15fa", +"block.techia.blue_lamp":"d\u026f\u0250\ua780 \u01ddn\ua781\u15fa", +"block.techia.box":"xo\u15fa", +"block.techia.brown_lamp":"d\u026f\u0250\ua780 u\u028do\u0279\u15fa", +"block.techia.connector":"\u0279o\u0287\u0254\u01dduuo\u0186", +"block.techia.cyan_lamp":"d\u026f\u0250\ua780 u\u0250\u028e\u0186", +"block.techia.dark_gray_lamp":"d\u026f\u0250\ua780 \u028e\u01dd\u0279\u2141 \u029e\u0279\u0250\u15e1", +"block.techia.dark_green_lamp":"d\u026f\u0250\ua780 u\u01dd\u01dd\u0279\u2141 \u029e\u0279\u0250\u15e1", +"block.techia.delayer":"\u0279\u01dd\u028e\u0250\ua781\u01dd\u15e1", +"block.techia.green_lamp":"d\u026f\u0250\ua780 u\u01dd\u01dd\u0279\u2141", +"block.techia.inverter":"Inv \u0279\u01dd\u0287\u0279\u01dd\u028cuI", +"block.techia.lamp_tooltip":"%d :ss\u01ddu\u0287\u0265\u1d77\u1d09\u0279\u15fa", +"block.techia.light_blue_lamp":"d\u026f\u0250\ua780 \u01ddn\ua781\u15fa \u0287\u0265\u1d77\u1d09\ua780", +"block.techia.light_gray_lamp":"d\u026f\u0250\ua780 \u028e\u01dd\u0279\u2141 \u0287\u0265\u1d77\u1d09\ua780", +"block.techia.magenta_lamp":"d\u026f\u0250\ua780 \u0250\u0287u\u01dd\u1d77\u0250W", +"block.techia.medium_blue_lamp":"d\u026f\u0250\ua780 \u01ddn\ua781\u15fa \u026fn\u1d09p\u01ddW", +"block.techia.orange_lamp":"d\u026f\u0250\ua780 \u01dd\u1d77u\u0250\u0279O", +"block.techia.pink_lamp":"d\u026f\u0250\ua780 \u029eu\u1d09\u0500", +"block.techia.piston":"uo\u0287s\u1d09\u0500", +"block.techia.purple_lamp":"d\u026f\u0250\ua780 \u01dd\ua781d\u0279n\u0500", +"block.techia.red_lamp":"d\u026f\u0250\ua780 p\u01dd\u1d1a", +"block.techia.smelter":"\u0279\u01dd\u0287\ua781\u01dd\u026fS", +"block.techia.teal_lamp":"d\u026f\u0250\ua780 \ua781\u0250\u01dd\u27d8", +"block.techia.workbench":"\u0265\u0254u\u01ddq\u0279\u0279oM", +"block.techia.yellow_lamp":"d\u026f\u0250\ua780 \u028do\ua781\ua781\u01dd\u2144", +"item.techia.asmite_ingot":"\u0287o\u1d77uI \u01dd\u0287\u1d09\u026fs\u2c6f", +"item.techia.block_shape":"\u01ddd\u0250\u0265S \u029e\u0254o\ua781\u15fa", +"item.techia.letium":"\u026fn\u1d09\u0287\u01dd\ua781", +"item.techia.ingot_shape":"\u01ddd\u0250\u0265S \u0287o\u1d77uI", +"itemGroup.techia.main":"\u0250\u1d09\u0265\u0254\u01dd\u27d8", +"itemGroup.techia.leti":"\u1d09\u0287\u01dd\ua781", +"stat.techia.interact_with_box":"p\u01ddu\u01dddo s\u01ddxo\u15fa", +"stat.techia.interact_with_smelter":"\u0279\u01dd\u0287\ua781\u01dd\u026fS \u0265\u0287\u1d09\u028d suo\u1d09\u0287\u0254\u0250\u0279\u01dd\u0287uI", +"stat.techia.interact_with_workbench":"\u0265\u0254u\u01ddq\u0279\u0279oM \u0265\u0287\u1d09\u028d suo\u1d09\u0287\u0254\u0250\u0279\u01dd\u0287uI", +"stat.techia.items_smelted":"p\u01dd\u0287\ua781\u01dd\u026fs s\u026f\u01dd\u0287I", +"stat.techia.items_workbench":"\u0265\u0254u\u01ddq\u0279\u0279oM u\u1d09 p\u01dd\u0287\u025f\u0250\u0279\u0186 s\u026f\u01dd\u0287I"} \ No newline at end of file diff --git a/main/resources/assets/techia/lang/en_us.json b/main/resources/assets/techia/lang/en_us.json index 547682d..875d209 100644 --- a/main/resources/assets/techia/lang/en_us.json +++ b/main/resources/assets/techia/lang/en_us.json @@ -4,23 +4,39 @@ "block.techia.asmite_toggle":"Asmite Toggle", "block.techia.asmite_wall_button":"Asmite Wall Button", "block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lamp", +"block.techia.blue_lamp":"Blue Lamp", "block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lamp", "block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Cyan Lamp", +"block.techia.dark_gray_lamp":"Dark Gray Lamp", +"block.techia.dark_green_lamp":"Dark Green Lamp", "block.techia.delayer":"Delayer", -"block.techia.leti_source":"Leti Source", -"block.techia.intersector":"Intersector", +"block.techia.green_lamp":"Green Lamp", "block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Light Blue Lamp", +"block.techia.light_gray_lamp":"Light Gray Lamp", +"block.techia.magenta_lamp":"Magenta Lamp", +"block.techia.medium_blue_lamp":"Medium Blue Lamp", +"block.techia.orange_lamp":"Orange Lamp", +"block.techia.pink_lamp":"Pink Lamp", "block.techia.piston":"Piston", +"block.techia.purple_lamp":"Purple Lamp", +"block.techia.red_lamp":"Red Lamp", "block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Teal Lamp", "block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lamp", "item.techia.asmite_ingot":"Asmite Ingot", "item.techia.block_shape":"Block Shape", "item.techia.letium":"Letium", "item.techia.ingot_shape":"Ingot Shape", -"itemGroup.ellas_mod.items":"Techia", -"itemGroup.ellas_mod.leti":"Leti", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", "stat.techia.interact_with_box":"Boxes opened", "stat.techia.interact_with_smelter":"Interactions with Smelter", "stat.techia.interact_with_workbench":"Interactions with Workbench", "stat.techia.items_smelted":"Items smelted", -"stat.techia.items_workbench":"Items crafted in Workbench"} +"stat.techia.items_workbench":"Items crafted in Workbench"} \ No newline at end of file diff --git a/main/resources/assets/techia/lang/enp.json b/main/resources/assets/techia/lang/enp.json new file mode 100644 index 0000000..0044ef5 --- /dev/null +++ b/main/resources/assets/techia/lang/enp.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"Asmite Block", +"block.techia.asmite_button":"Asmite Knob", +"block.techia.asmite_toggle":"Asmite Toggle", +"block.techia.asmite_wall_button":"Asmite Wall Knob", +"block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lightvat", +"block.techia.blue_lamp":"Hewen Lightvat", +"block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lightvat", +"block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Hewengreen Lightvat", +"block.techia.dark_gray_lamp":"Dark Gray Lightvat", +"block.techia.dark_green_lamp":"Dark Green Lightvat", +"block.techia.delayer":"Delayer", +"block.techia.green_lamp":"Green Lightvat", +"block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Light Hewen Lightvat", +"block.techia.light_gray_lamp":"Light Gray Lightvat", +"block.techia.magenta_lamp":"Bawsered Lightvat", +"block.techia.medium_blue_lamp":"Medium Hewen Lightvat", +"block.techia.orange_lamp":"Yellowred Lightvat", +"block.techia.pink_lamp":"Pink Lightvat", +"block.techia.piston":"Piston", +"block.techia.purple_lamp":"Bawse Lightvat", +"block.techia.red_lamp":"Red Lightvat", +"block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Greenhewen Lightvat", +"block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lightvat", +"item.techia.asmite_ingot":"Asmite Ingot", +"item.techia.block_shape":"Block Shape", +"item.techia.letium":"Letium", +"item.techia.ingot_shape":"Ingot Shape", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"Boxes opened", +"stat.techia.interact_with_smelter":"Interactions with Smelter", +"stat.techia.interact_with_workbench":"Interactions with Workbench", +"stat.techia.items_smelted":"Items smelted", +"stat.techia.items_workbench":"Items crafted in Workbench"} \ No newline at end of file diff --git a/main/resources/assets/techia/lang/enws.json b/main/resources/assets/techia/lang/enws.json new file mode 100644 index 0000000..44bfb38 --- /dev/null +++ b/main/resources/assets/techia/lang/enws.json @@ -0,0 +1,42 @@ +{ +"block.techia.asmite_block":"Asmite Block", +"block.techia.asmite_button":"Asmite Button", +"block.techia.asmite_toggle":"Asmite Toggle", +"block.techia.asmite_wall_button":"Asmite Wall Button", +"block.techia.asmite_wall_toggle":"Asmite Wall Toggle", +"block.techia.black_lamp":"Black Lamp", +"block.techia.blue_lamp":"Blue Lamp", +"block.techia.box":"Box", +"block.techia.brown_lamp":"Brown Lamp", +"block.techia.connector":"Connector", +"block.techia.cyan_lamp":"Turquoise Lamp", +"block.techia.dark_gray_lamp":"Dark Grey Lamp", +"block.techia.dark_green_lamp":"Dark Green Lamp", +"block.techia.delayer":"Delayer", +"block.techia.green_lamp":"Green Lamp", +"block.techia.inverter":"Inverter", +"block.techia.lamp_tooltip":"Brightness: %d", +"block.techia.light_blue_lamp":"Whey Lamp", +"block.techia.light_gray_lamp":"Pale Grey Lamp", +"block.techia.magenta_lamp":"Mulberry Lamp", +"block.techia.medium_blue_lamp":"Medium Blue Lamp", +"block.techia.orange_lamp":"Tawny Lamp", +"block.techia.pink_lamp":"Carnation Lamp", +"block.techia.piston":"Extender", +"block.techia.purple_lamp":"Purple Lamp", +"block.techia.red_lamp":"Red Lamp", +"block.techia.smelter":"Smelter", +"block.techia.teal_lamp":"Teal Lamp", +"block.techia.workbench":"Workbench", +"block.techia.yellow_lamp":"Yellow Lamp", +"item.techia.asmite_ingot":"Asmite Ingot", +"item.techia.block_shape":"Block Shape", +"item.techia.letium":"Letium", +"item.techia.ingot_shape":"Ingot Shape", +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"Boxes opened", +"stat.techia.interact_with_smelter":"Interactions with Smelter", +"stat.techia.interact_with_workbench":"Interactions with Workbench", +"stat.techia.items_smelted":"Items smelted", +"stat.techia.items_workbench":"Items crafted in Workbench"} diff --git a/main/resources/assets/techia/lang/sv_se.json b/main/resources/assets/techia/lang/sv_se.json index 6d857ca..c24c897 100644 --- a/main/resources/assets/techia/lang/sv_se.json +++ b/main/resources/assets/techia/lang/sv_se.json @@ -4,18 +4,39 @@ "block.techia.asmite_toggle":"Asmitflipp", "block.techia.asmite_wall_button":"Asmitv\u00e4ggknapp", "block.techia.asmite_wall_toggle":"Asmitv\u00e4ggflipp", +"block.techia.black_lamp":"Svart lampa", +"block.techia.blue_lamp":"Bl lampa", "block.techia.box":"L\u00e5da", +"block.techia.brown_lamp":"Brun lampa", "block.techia.connector":"Kopplare", +"block.techia.cyan_lamp":"Cyan lampa", +"block.techia.dark_gray_lamp":"M\u00f6rkgr\u00e5 lampa", +"block.techia.dark_green_lamp":"M\u00f6rkgr\u00f6n lampa", "block.techia.delayer":"F\u00f6rdr\u00f6jare", -"block.techia.leti_source":"Letik\u00e4lla", -"block.techia.intersector":"Korsare", +"block.techia.green_lamp":"Gr\u00f6n lampa", "block.techia.inverter":"Inverterare", +"block.techia.lamp_tooltip":"Ljusstyrka: %d", +"block.techia.light_blue_lamp":"Ljusbl\u00e5 lampa", +"block.techia.light_gray_lamp":"Ljusgr\u00e5 lampa", +"block.techia.magenta_lamp":"Magenta lampa", +"block.techia.medium_blue_lamp":"Mellanbl\u00e5 lampa", +"block.techia.orange_lamp":"Orange lampa", +"block.techia.pink_lamp":"Rosa lampa", "block.techia.piston":"Kolv", +"block.techia.purple_lamp":"Lila lampa", +"block.techia.red_lamp":"R\u00f6d lampa", "block.techia.smelter":"Sm\u00e4ltare", -"block.techia.workbench":"Arbetsb\u00e4nk", +"block.techia.teal_lamp":"Bl\u00e5gr\u00f6n lampa", +"block.techia.workbench":"Arbetsbord", +"block.techia.yellow_lamp":"Gul lampa", "item.techia.asmite_ingot":"Asmittacka", "item.techia.block_shape":"Blockform", "item.techia.letium":"Letium", "item.techia.ingot_shape":"Tackform", -"itemGroup.ellas_mod.items":"Techia", -"itemGroup.ellas_mod.leti":"Leti"} +"itemGroup.techia.main":"Techia", +"itemGroup.techia.leti":"Leti", +"stat.techia.interact_with_box":"L\u00e5dor \u00f6ppnade", +"stat.techia.interact_with_smelter":"Interaktioner med sm\u00e4ltare", +"stat.techia.interact_with_workbench":"Interaktioner med arbetsbord", +"stat.techia.items_smelted":"F\u00f6rem\u00e5l sm\u00e4lta", +"stat.techia.items_workbench":"F\u00f6rem\u00e5l skapade i arbetsbord"}