lots of leti, lamps and lang files

This commit is contained in:
Ella Paws 2022-02-07 03:07:54 +01:00
parent 223f55d184
commit 78570dcc55
19 changed files with 586 additions and 59 deletions

View File

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

View File

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

View File

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

View File

@ -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;
}*/
}

View File

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

View File

@ -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<Block, BlockState> 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<Text> tooltip, TooltipContext context){
tooltip.add(new TranslatableText("item." + Techia.MOD_ID + ".lamp_tooltip", light));
super.appendTooltip(stack, world, tooltip, context);
}
}

View File

@ -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;
}*/
}

View File

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

View File

@ -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<Entry<World, BlockPos>, 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<BlockPos, Direction> 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<BlockPos, Direction>(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<BlockPos, Direction>(pos, direction));
}
private void mergeWith(LetiNetwork network){
for(BlockPos pos : nodes){
Entry<World, BlockPos> entry = new Entry<>(world, pos)
network.add(pos);
networks.set(entry, network);
networks.set(new Entry<World, BlockPos>(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<Direction> DIRECTIONS = ImmutableList.copyOf(Direction.values());
public static Entry<BlockPos> neighbors(BlockPos pos){
BlockPos fpos = pos.toImmutable();
return new AbstractEntry<BlockPos>(){
@ -162,7 +206,7 @@ public class LetiNetwork {
};
}
public static ArrayList<LetiNetwork> findAdjacentNetworks(){
public static ArrayList<LetiNetwork> findAdjacentNetworks(World world, BlockPos pos){
ArrayList<LetiNetwork> ret;
for(BlockPos np : neighbors(pos)){
Entry<World, BlockPos> key = new Entry<>(world, np);

View File

@ -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<SmelterRecipe> WORKBENCH_RECIPE = RecipeType.register(new Identifier(Techia.MOD_ID, "smelting"));
public static final RecipeType<WorkbenchRecipe> 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);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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