From 569351b5bad80e2d474297a1353366d26ea1296b Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 7 Jul 2018 18:53:38 +0200 Subject: [PATCH] Added security station (wip) Added security station texture by LemADEC Improved texture naming consistency --- src/main/java/cr0s/warpdrive/WarpDrive.java | 6 +- .../warpdrive/block/BlockSecurityStation.java | 5 +- .../blockstates/block_security_station.json | 16 +++ .../blockstates/block_ship_controller.json | 4 +- .../blockstates/block_ship_core.json | 96 +++++++++--------- .../blockstates/block_weapon_controller.json | 4 +- .../assets/warpdrive/lang/de_de.lang | 1 + .../assets/warpdrive/lang/en_us.lang | 1 + .../assets/warpdrive/lang/fr_fr.lang | 1 + .../assets/warpdrive/lang/nl_nl.lang | 1 + .../assets/warpdrive/lang/ru_ru.lang | 1 + .../assets/warpdrive/lang/zh_cn.lang | 1 + .../assets/warpdrive/lang/zh_tw.lang | 1 + .../movement/ship_controller-bottom.png | Bin 2117 -> 0 bytes .../movement/ship_controller-top_bottom.png | Bin 0 -> 4967 bytes ...controller-top.png => ship_core-front.png} | Bin ...op-bottom.png => ship_core-top_bottom.png} | Bin .../textures/blocks/security_station-side.png | Bin 0 -> 2494 bytes .../blocks/security_station-top_bottom.png | Bin 0 -> 4967 bytes .../weapon/weapon_controller-top_bottom.png | Bin 0 -> 4967 bytes 20 files changed, 80 insertions(+), 58 deletions(-) create mode 100644 src/main/resources/assets/warpdrive/blockstates/block_security_station.json delete mode 100644 src/main/resources/assets/warpdrive/textures/blocks/movement/ship_controller-bottom.png create mode 100644 src/main/resources/assets/warpdrive/textures/blocks/movement/ship_controller-top_bottom.png rename src/main/resources/assets/warpdrive/textures/blocks/movement/{ship_controller-top.png => ship_core-front.png} (100%) rename src/main/resources/assets/warpdrive/textures/blocks/movement/{ship_core-top-bottom.png => ship_core-top_bottom.png} (100%) create mode 100644 src/main/resources/assets/warpdrive/textures/blocks/security_station-side.png create mode 100644 src/main/resources/assets/warpdrive/textures/blocks/security_station-top_bottom.png create mode 100644 src/main/resources/assets/warpdrive/textures/blocks/weapon/weapon_controller-top_bottom.png diff --git a/src/main/java/cr0s/warpdrive/WarpDrive.java b/src/main/java/cr0s/warpdrive/WarpDrive.java index 3bfabf48..4d15e367 100644 --- a/src/main/java/cr0s/warpdrive/WarpDrive.java +++ b/src/main/java/cr0s/warpdrive/WarpDrive.java @@ -4,6 +4,7 @@ import cr0s.warpdrive.api.IBlockBase; import cr0s.warpdrive.block.BlockChunkLoader; import cr0s.warpdrive.block.BlockLaser; import cr0s.warpdrive.block.BlockLaserMedium; +import cr0s.warpdrive.block.BlockSecurityStation; import cr0s.warpdrive.block.atomic.BlockAcceleratorControlPoint; import cr0s.warpdrive.block.atomic.BlockAcceleratorController; import cr0s.warpdrive.block.atomic.BlockChiller; @@ -219,6 +220,7 @@ public class WarpDrive { public static Block[] blockForceFields; public static Block[] blockForceFieldProjectors; public static Block[] blockForceFieldRelays; + public static Block blockSecurityStation; public static Block blockAcceleratorController; public static Block blockAcceleratorControlPoint; public static Block blockParticlesCollider; @@ -376,9 +378,7 @@ public class WarpDrive { blockForceFieldProjectors[index] = new BlockForceFieldProjector("block_projector" + tier, tier); blockForceFieldRelays[index] = new BlockForceFieldRelay("block_force_field_relay" + tier, tier); } - /* @TODO security station - blockSecurityStation = new BlockSecurityStation("blockSecurityStation"); - */ + blockSecurityStation = new BlockSecurityStation("block_security_station"); itemForceFieldShape = new ItemForceFieldShape("item_force_field_shape"); itemForceFieldUpgrade = new ItemForceFieldUpgrade("item_force_field_upgrade"); diff --git a/src/main/java/cr0s/warpdrive/block/BlockSecurityStation.java b/src/main/java/cr0s/warpdrive/block/BlockSecurityStation.java index 55399c22..0930bc69 100644 --- a/src/main/java/cr0s/warpdrive/block/BlockSecurityStation.java +++ b/src/main/java/cr0s/warpdrive/block/BlockSecurityStation.java @@ -3,7 +3,6 @@ package cr0s.warpdrive.block; import cr0s.warpdrive.Commons; import cr0s.warpdrive.TileEntitySecurityStation; import cr0s.warpdrive.WarpDrive; -import cr0s.warpdrive.block.movement.TileEntityShipController; import javax.annotation.Nonnull; @@ -22,7 +21,7 @@ public class BlockSecurityStation extends BlockAbstractContainer { public BlockSecurityStation(final String registryName) { super(registryName, Material.IRON); - setUnlocalizedName("warpdrive.movement.ship_controller"); + setUnlocalizedName("warpdrive.machines.security_station"); setDefaultState(getDefaultState()); registerTileEntity(TileEntitySecurityStation.class, new ResourceLocation(WarpDrive.MODID, registryName)); @@ -31,7 +30,7 @@ public class BlockSecurityStation extends BlockAbstractContainer { @Nonnull @Override public TileEntity createNewTileEntity(@Nonnull final World world, final int metadata) { - return new TileEntityShipController(); + return new TileEntitySecurityStation(); } @Override diff --git a/src/main/resources/assets/warpdrive/blockstates/block_security_station.json b/src/main/resources/assets/warpdrive/blockstates/block_security_station.json new file mode 100644 index 00000000..89e7f511 --- /dev/null +++ b/src/main/resources/assets/warpdrive/blockstates/block_security_station.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_bottom_top", + "textures": { + "side" : "warpdrive:blocks/security_station-side", + "bottom": "warpdrive:blocks/security_station-top_bottom", + "top" : "warpdrive:blocks/security_station-top_bottom" + }, + "transform": "forge:default-block" + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/blockstates/block_ship_controller.json b/src/main/resources/assets/warpdrive/blockstates/block_ship_controller.json index 4b78a621..52a33045 100644 --- a/src/main/resources/assets/warpdrive/blockstates/block_ship_controller.json +++ b/src/main/resources/assets/warpdrive/blockstates/block_ship_controller.json @@ -4,8 +4,8 @@ "model": "minecraft:cube_bottom_top", "textures": { "side" : "warpdrive:blocks/movement/ship_controller-side_inactive", - "bottom": "warpdrive:blocks/movement/ship_controller-bottom", - "top" : "warpdrive:blocks/movement/ship_controller-top" + "bottom": "warpdrive:blocks/movement/ship_controller-top_bottom", + "top" : "warpdrive:blocks/movement/ship_controller-top_bottom" }, "transform": "forge:default-block" }, diff --git a/src/main/resources/assets/warpdrive/blockstates/block_ship_core.json b/src/main/resources/assets/warpdrive/blockstates/block_ship_core.json index 90315d0f..90002b68 100644 --- a/src/main/resources/assets/warpdrive/blockstates/block_ship_core.json +++ b/src/main/resources/assets/warpdrive/blockstates/block_ship_core.json @@ -3,123 +3,123 @@ "variants": { "normal": [{}], "inventory": { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_core-right_online", "south" : "warpdrive:blocks/movement/ship_core-left_online", - "west" : "warpdrive:blocks/movement/ship_controller-top", + "west" : "warpdrive:blocks/movement/ship_core-front", "east" : "warpdrive:blocks/movement/ship_controller-side_active2" } }, "active=false,facing=down" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_controller-side_inactive", "south" : "warpdrive:blocks/movement/ship_controller-side_inactive", "west" : "warpdrive:blocks/movement/ship_controller-side_inactive", "east" : "warpdrive:blocks/movement/ship_controller-side_inactive" } }, "active=false,facing=up" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_controller-side_inactive", "south" : "warpdrive:blocks/movement/ship_controller-side_inactive", "west" : "warpdrive:blocks/movement/ship_controller-side_inactive", "east" : "warpdrive:blocks/movement/ship_controller-side_inactive" } }, "active=false,facing=north": { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", - "north" : "warpdrive:blocks/movement/ship_controller-top", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", + "north" : "warpdrive:blocks/movement/ship_core-front", "south" : "warpdrive:blocks/movement/ship_controller-side_active1", "west" : "warpdrive:blocks/movement/ship_core-left_offline", "east" : "warpdrive:blocks/movement/ship_core-right_offline" } }, "active=false,facing=south": { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_controller-side_active2", - "south" : "warpdrive:blocks/movement/ship_controller-top", + "south" : "warpdrive:blocks/movement/ship_core-front", "west" : "warpdrive:blocks/movement/ship_core-right_offline", "east" : "warpdrive:blocks/movement/ship_core-left_offline" } }, "active=false,facing=west" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_core-right_offline", "south" : "warpdrive:blocks/movement/ship_core-left_offline", - "west" : "warpdrive:blocks/movement/ship_controller-top", + "west" : "warpdrive:blocks/movement/ship_core-front", "east" : "warpdrive:blocks/movement/ship_controller-side_active3" } }, "active=false,facing=east" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_core-left_offline", "south" : "warpdrive:blocks/movement/ship_core-right_offline", "west" : "warpdrive:blocks/movement/ship_controller-side_active4", - "east" : "warpdrive:blocks/movement/ship_controller-top" + "east" : "warpdrive:blocks/movement/ship_core-front" } }, "active=true,facing=down" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_controller-side_inactive", "south" : "warpdrive:blocks/movement/ship_controller-side_inactive", "west" : "warpdrive:blocks/movement/ship_controller-side_inactive", "east" : "warpdrive:blocks/movement/ship_controller-side_inactive" } }, "active=true,facing=up" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_controller-side_inactive", "south" : "warpdrive:blocks/movement/ship_controller-side_inactive", "west" : "warpdrive:blocks/movement/ship_controller-side_inactive", "east" : "warpdrive:blocks/movement/ship_controller-side_inactive" } }, "active=true,facing=north": { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", - "north" : "warpdrive:blocks/movement/ship_controller-top", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", + "north" : "warpdrive:blocks/movement/ship_core-front", "south" : "warpdrive:blocks/movement/ship_controller-side_active1", "west" : "warpdrive:blocks/movement/ship_core-left_online", "east" : "warpdrive:blocks/movement/ship_core-right_online" } }, "active=true,facing=south": { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_controller-side_active2", - "south" : "warpdrive:blocks/movement/ship_controller-top", + "south" : "warpdrive:blocks/movement/ship_core-front", "west" : "warpdrive:blocks/movement/ship_core-right_online", "east" : "warpdrive:blocks/movement/ship_core-left_online" } }, "active=true,facing=west" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_core-right_online", "south" : "warpdrive:blocks/movement/ship_core-left_online", - "west" : "warpdrive:blocks/movement/ship_controller-top", + "west" : "warpdrive:blocks/movement/ship_core-front", "east" : "warpdrive:blocks/movement/ship_controller-side_active3" } }, "active=true,facing=east" : { "model": "minecraft:cube", "textures": { - "particle": "warpdrive:blocks/movement/ship_core-top-bottom", - "down" : "warpdrive:blocks/movement/ship_core-top-bottom", - "up" : "warpdrive:blocks/movement/ship_core-top-bottom", + "particle": "warpdrive:blocks/movement/ship_core-top_bottom", + "down" : "warpdrive:blocks/movement/ship_core-top_bottom", + "up" : "warpdrive:blocks/movement/ship_core-top_bottom", "north" : "warpdrive:blocks/movement/ship_core-left_online", "south" : "warpdrive:blocks/movement/ship_core-right_online", "west" : "warpdrive:blocks/movement/ship_controller-side_active4", - "east" : "warpdrive:blocks/movement/ship_controller-top" + "east" : "warpdrive:blocks/movement/ship_core-front" } } } } \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/blockstates/block_weapon_controller.json b/src/main/resources/assets/warpdrive/blockstates/block_weapon_controller.json index 5dcdb347..51d7e6dd 100644 --- a/src/main/resources/assets/warpdrive/blockstates/block_weapon_controller.json +++ b/src/main/resources/assets/warpdrive/blockstates/block_weapon_controller.json @@ -4,8 +4,8 @@ "model": "minecraft:cube_bottom_top", "textures": { "side" : "warpdrive:blocks/weapon/weapon_controller-side", - "bottom": "warpdrive:blocks/movement/ship_controller-bottom", - "top" : "warpdrive:blocks/movement/ship_controller-top" + "bottom": "warpdrive:blocks/weapon/weapon_controller-top_bottom", + "top" : "warpdrive:blocks/weapon/weapon_controller-top_bottom" }, "transform": "forge:default-block" }, diff --git a/src/main/resources/assets/warpdrive/lang/de_de.lang b/src/main/resources/assets/warpdrive/lang/de_de.lang index 4d644974..f5738527 100644 --- a/src/main/resources/assets/warpdrive/lang/de_de.lang +++ b/src/main/resources/assets/warpdrive/lang/de_de.lang @@ -203,6 +203,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=Stark weiterentwickelter Mas tile.warpdrive.machines.chunk_loader.name=Chunk Loader tile.warpdrive.machines.laser.name=Laser tile.warpdrive.machines.laser_medium.name=Medium Laser (Teilchenbeschleuniger) +tile.warpdrive.machines.security_station.name=Security Station tile.warpdrive.atomic.accelerator_controller.name=Beschleunigungsregler tile.warpdrive.atomic.accelerator_controller.tooltip=Regelt einen oder mehrere Teilchenbeschleuniger.\nSollte neben einem Elektromagnet platziert werden. diff --git a/src/main/resources/assets/warpdrive/lang/en_us.lang b/src/main/resources/assets/warpdrive/lang/en_us.lang index 3b7cfa54..bf4cd967 100644 --- a/src/main/resources/assets/warpdrive/lang/en_us.lang +++ b/src/main/resources/assets/warpdrive/lang/en_us.lang @@ -201,6 +201,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=Highly Advanced Machine Bloc tile.warpdrive.machines.chunk_loader.name=Chunk Loader tile.warpdrive.machines.laser.name=Laser tile.warpdrive.machines.laser_medium.name=Laser Medium (Particle Booster) +tile.warpdrive.machines.security_station.name=Security Station tile.warpdrive.atomic.accelerator_controller.name=Accelerator Controller tile.warpdrive.atomic.accelerator_controller.tooltip=Controls one or more particle accelerators.\nShall be placed next to an electromagnet. diff --git a/src/main/resources/assets/warpdrive/lang/fr_fr.lang b/src/main/resources/assets/warpdrive/lang/fr_fr.lang index 9ef9fa5a..774ce9fa 100644 --- a/src/main/resources/assets/warpdrive/lang/fr_fr.lang +++ b/src/main/resources/assets/warpdrive/lang/fr_fr.lang @@ -201,6 +201,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=Bloc de machine hyper avanc tile.warpdrive.machines.chunk_loader.name=Chargeur de chunk tile.warpdrive.machines.laser.name=Laser tile.warpdrive.machines.laser_medium.name=Milieu amplificateur +tile.warpdrive.machines.security_station.name=Station de sécurité tile.warpdrive.atomic.accelerator_controller.name=Controlleur d'accélérateurs tile.warpdrive.atomic.accelerator_controller.tooltip=Contrôle un ou plusieurs accélérateurs de particules.\nDoit être placé à coté d'un électroaimant. diff --git a/src/main/resources/assets/warpdrive/lang/nl_nl.lang b/src/main/resources/assets/warpdrive/lang/nl_nl.lang index 32ce4ca6..766d5b2e 100644 --- a/src/main/resources/assets/warpdrive/lang/nl_nl.lang +++ b/src/main/resources/assets/warpdrive/lang/nl_nl.lang @@ -198,6 +198,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=Heel geavanceerd machineblok tile.warpdrive.machines.chunk_loader.name=Chunk-lader tile.warpdrive.machines.laser.name=Laser tile.warpdrive.machines.laser_medium.name=Deeltjesversneller +tile.warpdrive.machines.security_station.name=Security Station tile.warpdrive.atomic.accelerator_controller.name=Versnellers-regelaar tile.warpdrive.atomic.accelerator_controller.tooltip=Regelt één of meer deeltjesversnellers.\nMoet naast een elektromagneet worden geplaats. diff --git a/src/main/resources/assets/warpdrive/lang/ru_ru.lang b/src/main/resources/assets/warpdrive/lang/ru_ru.lang index e20f534d..2f3ff723 100644 --- a/src/main/resources/assets/warpdrive/lang/ru_ru.lang +++ b/src/main/resources/assets/warpdrive/lang/ru_ru.lang @@ -201,6 +201,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=Высокотехнолог tile.warpdrive.machines.chunk_loader.name=Загрузчик чанков tile.warpdrive.machines.laser.name=Лазер tile.warpdrive.machines.laser_medium.name=Лазерный излучатель (Ускоритель частиц) +tile.warpdrive.machines.security_station.name=Security Station tile.warpdrive.atomic.accelerator_controller.name=Accelerator Controller tile.warpdrive.atomic.accelerator_controller.tooltip=Controls one or more particle accelerators.\nShall be placed next to an electromagnet. diff --git a/src/main/resources/assets/warpdrive/lang/zh_cn.lang b/src/main/resources/assets/warpdrive/lang/zh_cn.lang index 8201e02c..8a3fa912 100644 --- a/src/main/resources/assets/warpdrive/lang/zh_cn.lang +++ b/src/main/resources/assets/warpdrive/lang/zh_cn.lang @@ -198,6 +198,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=高新机械块 tile.warpdrive.machines.chunk_loader.name=区块加载器 tile.warpdrive.machines.laser.name=激光 tile.warpdrive.machines.laser_medium.name=激光介质(粒子助推器) +tile.warpdrive.machines.security_station.name=Security Station tile.warpdrive.atomic.accelerator_controller.name=加速器操纵仪 tile.warpdrive.atomic.accelerator_controller.tooltip=操纵一或多个粒子加速器.\n需要连接电磁体. diff --git a/src/main/resources/assets/warpdrive/lang/zh_tw.lang b/src/main/resources/assets/warpdrive/lang/zh_tw.lang index 867f05e9..3c8a0e2b 100644 --- a/src/main/resources/assets/warpdrive/lang/zh_tw.lang +++ b/src/main/resources/assets/warpdrive/lang/zh_tw.lang @@ -198,6 +198,7 @@ tile.warpdrive.passive.highly_advanced_machine.name=高級機床 tile.warpdrive.machines.chunk_loader.name=方塊裝載器 tile.warpdrive.machines.laser.name=鐳射 tile.warpdrive.machines.laser_medium.name=鐳射單元 (粒子加速器) +tile.warpdrive.machines.security_station.name=Security Station tile.warpdrive.atomic.accelerator_controller.name=Accelerator Controller tile.warpdrive.atomic.accelerator_controller.tooltip=Controls one or more particle accelerators.\nShall be placed next to an electromagnet. diff --git a/src/main/resources/assets/warpdrive/textures/blocks/movement/ship_controller-bottom.png b/src/main/resources/assets/warpdrive/textures/blocks/movement/ship_controller-bottom.png deleted file mode 100644 index c49f3e97885104b4717a4d2b823195c8b4a8c8e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2117 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