No longer just for books

- Allow Linked Controllers to be placed onto and used from Lecterns
- Set Linked Controller max stack size to 1
This commit is contained in:
reidbhuntley 2021-06-29 22:32:49 -04:00
parent 7548d483fd
commit 7df865b3cb
36 changed files with 757 additions and 89 deletions

View file

@ -199,6 +199,7 @@ a4cfcdc038af0f93a58d88ea8860b34d73632ff4 assets/create/blockstates/layered_dolom
038f532f7364c1e793196fcc5856df9ceff93578 assets/create/blockstates/layered_limestone.json 038f532f7364c1e793196fcc5856df9ceff93578 assets/create/blockstates/layered_limestone.json
8535d628f8834be62cdf62ef4b60c2ce3a7af99f assets/create/blockstates/layered_scoria.json 8535d628f8834be62cdf62ef4b60c2ce3a7af99f assets/create/blockstates/layered_scoria.json
419d7fffc5cbd392f10211afa8d17e3eb8df8380 assets/create/blockstates/layered_weathered_limestone.json 419d7fffc5cbd392f10211afa8d17e3eb8df8380 assets/create/blockstates/layered_weathered_limestone.json
6a3c81d62c7c5a5fa2f4a1e239319d83875bbe55 assets/create/blockstates/lectern_controller.json
029904f21970947a4423a6e0c8c65c4e02f2e8e6 assets/create/blockstates/light_blue_sail.json 029904f21970947a4423a6e0c8c65c4e02f2e8e6 assets/create/blockstates/light_blue_sail.json
2a0a8b1715700bf1e284ee57ef9f7f163c12f3ee assets/create/blockstates/light_blue_seat.json 2a0a8b1715700bf1e284ee57ef9f7f163c12f3ee assets/create/blockstates/light_blue_seat.json
9bee040558a6b24e21f837fc808e17fae1883e71 assets/create/blockstates/light_blue_valve_handle.json 9bee040558a6b24e21f837fc808e17fae1883e71 assets/create/blockstates/light_blue_valve_handle.json
@ -409,21 +410,21 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
7818080b0809c3a01f28c05c0ed7edf8bcbc7b1d assets/create/lang/en_ud.json 391e1552053f8fbb148b0bdf2e61f74ae4782100 assets/create/lang/en_ud.json
8fa6882a7cb3a89aef2b4b15378be513e0b39035 assets/create/lang/en_us.json 0e4ba265ae6ab6a81da261f075eef3dc65f688d1 assets/create/lang/en_us.json
cd1667de5c4baede2cc6b40c18a1dfdbeab4ca92 assets/create/lang/unfinished/de_de.json 012e68268dc9b1a23d726430ca1708fea249cbd6 assets/create/lang/unfinished/de_de.json
33ee62f5383be9038c5f33c6bba7cd352de962b3 assets/create/lang/unfinished/es_es.json c69e245a2549cb045768cd08e16b74a4d3694360 assets/create/lang/unfinished/es_es.json
2e00b6f84ca1ed6532d0cb13ce6d534544c128d7 assets/create/lang/unfinished/es_mx.json df23300aa54b5da18f430f8bb15738c1b994b317 assets/create/lang/unfinished/es_mx.json
e9168dac5cce730ea1425a2d39aa979f7b944ef8 assets/create/lang/unfinished/fr_fr.json 213cbf99412e5080cb1c48a7c83e03e9ab05d3e5 assets/create/lang/unfinished/fr_fr.json
45974fc63f80241b481367895e6f4059821d9d98 assets/create/lang/unfinished/it_it.json a9bacc0a4febe3ae012ccf32d01a7a6a2467004d assets/create/lang/unfinished/it_it.json
b8292ad388663d5bb144813c81c23737b19a6696 assets/create/lang/unfinished/ja_jp.json 7c9e02f792fb32785ba9c9afa24c58f2a0b8faa7 assets/create/lang/unfinished/ja_jp.json
a33f8a2d9675c58420d12a807a079b29979dbb2a assets/create/lang/unfinished/ko_kr.json 050f377d87dcb72b1bd19b57f5c0c02d5c572201 assets/create/lang/unfinished/ko_kr.json
9f109e77eb4a258ed30633d423889612dfc3689a assets/create/lang/unfinished/nl_nl.json dc06754d80e667eb957b5ff81f628e912bc72d21 assets/create/lang/unfinished/nl_nl.json
08c31f2734fe78242ef889d001cebee28c3cc33a assets/create/lang/unfinished/pl_pl.json 147c23ff2d3dd778a88da7a1f1e79befc8b9b62f assets/create/lang/unfinished/pl_pl.json
7af2e8033d29038d077c5f7b0b0433d38b9c6f8b assets/create/lang/unfinished/pt_br.json 1b40342e2f2782e4b7e5802a3a72c0df8977bbf1 assets/create/lang/unfinished/pt_br.json
0a6e6219f07d3eb68c45e2eaebbb5327383a6b06 assets/create/lang/unfinished/ru_ru.json ad720b0b156624c2481f54f23260fe992cf88c5b assets/create/lang/unfinished/ru_ru.json
994953150b977f373424f1e7193c7d5bc1ad1ba3 assets/create/lang/unfinished/zh_cn.json 5adb90c525b9541fc22f67eb79f2d946fb859082 assets/create/lang/unfinished/zh_cn.json
ebfe8edd3bd161efc819fced5e25f02e2bc93888 assets/create/lang/unfinished/zh_tw.json 69bf228174d5d88ffbb10d45409c3edf9bd0c99b assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -1658,7 +1659,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
866fbb0ce2878a73e0440d1caf6534c8bd7c384f assets/create/models/item/zinc_ingot.json 866fbb0ce2878a73e0440d1caf6534c8bd7c384f assets/create/models/item/zinc_ingot.json
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
60e8433e4fecca8ff5002978844169eefc929394 assets/create/sounds.json b378f90ba8723a109fa960dfddf63149a34cb26f assets/create/sounds.json
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json 0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
@ -2591,6 +2592,7 @@ fa8a5922f7346a15a80b5c7e5dfc26d24ea98728 data/create/loot_tables/blocks/layered_
197ecf9c00c06f6014ecbec678a5466492902cb0 data/create/loot_tables/blocks/layered_limestone.json 197ecf9c00c06f6014ecbec678a5466492902cb0 data/create/loot_tables/blocks/layered_limestone.json
0ec9e366708637a01e600a2a12cc267d81b3f69b data/create/loot_tables/blocks/layered_scoria.json 0ec9e366708637a01e600a2a12cc267d81b3f69b data/create/loot_tables/blocks/layered_scoria.json
54816065cd735dfe53b1eb551110ba18c6e3746a data/create/loot_tables/blocks/layered_weathered_limestone.json 54816065cd735dfe53b1eb551110ba18c6e3746a data/create/loot_tables/blocks/layered_weathered_limestone.json
4b34cda34416f58045b10e61a0c8ae2b29cb0794 data/create/loot_tables/blocks/lectern_controller.json
28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/light_blue_sail.json 28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/light_blue_sail.json
b403848d3a4b4ad7a048e70c21e200e40d0c67e3 data/create/loot_tables/blocks/light_blue_seat.json b403848d3a4b4ad7a048e70c21e200e40d0c67e3 data/create/loot_tables/blocks/light_blue_seat.json
32afe3fff74ccda4151567961fa6c0b8e3735358 data/create/loot_tables/blocks/light_blue_valve_handle.json 32afe3fff74ccda4151567961fa6c0b8e3735358 data/create/loot_tables/blocks/light_blue_valve_handle.json

View file

@ -0,0 +1,64 @@
{
"variants": {
"facing=north,has_book=false,powered=false": {
"model": "minecraft:block/lectern"
},
"facing=south,has_book=false,powered=false": {
"model": "minecraft:block/lectern",
"y": 180
},
"facing=west,has_book=false,powered=false": {
"model": "minecraft:block/lectern",
"y": 270
},
"facing=east,has_book=false,powered=false": {
"model": "minecraft:block/lectern",
"y": 90
},
"facing=north,has_book=true,powered=false": {
"model": "minecraft:block/lectern"
},
"facing=south,has_book=true,powered=false": {
"model": "minecraft:block/lectern",
"y": 180
},
"facing=west,has_book=true,powered=false": {
"model": "minecraft:block/lectern",
"y": 270
},
"facing=east,has_book=true,powered=false": {
"model": "minecraft:block/lectern",
"y": 90
},
"facing=north,has_book=false,powered=true": {
"model": "minecraft:block/lectern"
},
"facing=south,has_book=false,powered=true": {
"model": "minecraft:block/lectern",
"y": 180
},
"facing=west,has_book=false,powered=true": {
"model": "minecraft:block/lectern",
"y": 270
},
"facing=east,has_book=false,powered=true": {
"model": "minecraft:block/lectern",
"y": 90
},
"facing=north,has_book=true,powered=true": {
"model": "minecraft:block/lectern"
},
"facing=south,has_book=true,powered=true": {
"model": "minecraft:block/lectern",
"y": 180
},
"facing=west,has_book=true,powered=true": {
"model": "minecraft:block/lectern",
"y": 270
},
"facing=east,has_book=true,powered=true": {
"model": "minecraft:block/lectern",
"y": 90
}
}
}

View file

@ -200,6 +200,7 @@
"block.create.layered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u028E\u0250\uA780", "block.create.layered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u028E\u0250\uA780",
"block.create.layered_scoria": "\u0250\u0131\u0279o\u0254S p\u01DD\u0279\u01DD\u028E\u0250\uA780", "block.create.layered_scoria": "\u0250\u0131\u0279o\u0254S p\u01DD\u0279\u01DD\u028E\u0250\uA780",
"block.create.layered_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u0279\u01DD\u028E\u0250\uA780", "block.create.layered_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u0279\u01DD\u028E\u0250\uA780",
"block.create.lectern_controller": "\u0279\u01DD\u05DF\u05DFo\u0279\u0287uo\u0186 u\u0279\u01DD\u0287\u0254\u01DD\uA780",
"block.create.light_blue_sail": "\u05DF\u0131\u0250S \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780", "block.create.light_blue_sail": "\u05DF\u0131\u0250S \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780",
"block.create.light_blue_seat": "\u0287\u0250\u01DDS \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780", "block.create.light_blue_seat": "\u0287\u0250\u01DDS \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780",
"block.create.light_blue_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780", "block.create.light_blue_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780",

View file

@ -203,6 +203,7 @@
"block.create.layered_limestone": "Layered Limestone", "block.create.layered_limestone": "Layered Limestone",
"block.create.layered_scoria": "Layered Scoria", "block.create.layered_scoria": "Layered Scoria",
"block.create.layered_weathered_limestone": "Layered Weathered Limestone", "block.create.layered_weathered_limestone": "Layered Weathered Limestone",
"block.create.lectern_controller": "Lectern Controller",
"block.create.light_blue_sail": "Light Blue Sail", "block.create.light_blue_sail": "Light Blue Sail",
"block.create.light_blue_seat": "Light Blue Seat", "block.create.light_blue_seat": "Light Blue Seat",
"block.create.light_blue_valve_handle": "Light Blue Valve Handle", "block.create.light_blue_valve_handle": "Light Blue Valve Handle",
@ -1191,6 +1192,7 @@
"create.subtitle.schematicannon_finish": "Schematicannon dings", "create.subtitle.schematicannon_finish": "Schematicannon dings",
"create.subtitle.scroll_value": "Scroll-input clicks", "create.subtitle.scroll_value": "Scroll-input clicks",
"create.subtitle.crafter_craft": "Crafter crafts", "create.subtitle.crafter_craft": "Crafter crafts",
"create.subtitle.controller_put": "Controller thumps",
"create.subtitle.saw_process": "Mechanical Saw processes", "create.subtitle.saw_process": "Mechanical Saw processes",
"create.subtitle.cranking": "Hand Crank turns", "create.subtitle.cranking": "Hand Crank turns",
"create.subtitle.wrench_remove": "Component breaks", "create.subtitle.wrench_remove": "Component breaks",
@ -1206,6 +1208,7 @@
"create.subtitle.copper_armor_equip": "Diving equipment clinks", "create.subtitle.copper_armor_equip": "Diving equipment clinks",
"create.subtitle.cursed_bell_use": "Cursed Bell tolls", "create.subtitle.cursed_bell_use": "Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "Cursed Bell awakens",
"create.subtitle.controller_take": "Lectern empties",
"create.subtitle.mechanical_press_activation": "Mechanical Press clangs", "create.subtitle.mechanical_press_activation": "Mechanical Press clangs",
"create.subtitle.contraption_assemble": "Contraption moves", "create.subtitle.contraption_assemble": "Contraption moves",
"create.subtitle.crafter_click": "Crafter clicks", "create.subtitle.crafter_click": "Crafter clicks",
@ -1400,6 +1403,8 @@
"item.create.linked_controller.tooltip.behaviour2": "Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "DIVING HELMET", "item.create.diving_helmet.tooltip": "DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1085", "_": "Missing Localizations: 1090",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "Geschichteter Kalkstein", "block.create.layered_limestone": "Geschichteter Kalkstein",
"block.create.layered_scoria": "Geschichtete Schlacke", "block.create.layered_scoria": "Geschichtete Schlacke",
"block.create.layered_weathered_limestone": "Geschichteter Verwitterter Kalkstein", "block.create.layered_weathered_limestone": "Geschichteter Verwitterter Kalkstein",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "Hellblaues Segel", "block.create.light_blue_sail": "Hellblaues Segel",
"block.create.light_blue_seat": "Hellblauer Sitz", "block.create.light_blue_seat": "Hellblauer Sitz",
"block.create.light_blue_valve_handle": "Hellblauer Ventilgriff", "block.create.light_blue_valve_handle": "Hellblauer Ventilgriff",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "Bauplankanone endet", "create.subtitle.schematicannon_finish": "Bauplankanone endet",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "Mechanische Presse wird aktiviert", "create.subtitle.mechanical_press_activation": "Mechanische Presse wird aktiviert",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 846", "_": "Missing Localizations: 851",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "Piedra caliza estratificada", "block.create.layered_limestone": "Piedra caliza estratificada",
"block.create.layered_scoria": "Escoria estratificada", "block.create.layered_scoria": "Escoria estratificada",
"block.create.layered_weathered_limestone": "Caliza erosionada estratificada", "block.create.layered_weathered_limestone": "Caliza erosionada estratificada",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "Vela azul claro", "block.create.light_blue_sail": "Vela azul claro",
"block.create.light_blue_seat": "Asiento azul claro", "block.create.light_blue_seat": "Asiento azul claro",
"block.create.light_blue_valve_handle": "Asa de válvula azul claro", "block.create.light_blue_valve_handle": "Asa de válvula azul claro",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "Acabados de Schematicannon", "create.subtitle.schematicannon_finish": "Acabados de Schematicannon",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "La Prensa Mecánica se activa", "create.subtitle.mechanical_press_activation": "La Prensa Mecánica se activa",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1452", "_": "Missing Localizations: 1457",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "Caliza en Capas", "block.create.layered_limestone": "Caliza en Capas",
"block.create.layered_scoria": "Escoria en Capas", "block.create.layered_scoria": "Escoria en Capas",
"block.create.layered_weathered_limestone": "Caliza Meteorizada en Capas", "block.create.layered_weathered_limestone": "Caliza Meteorizada en Capas",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "Vela Azul Claro", "block.create.light_blue_sail": "Vela Azul Claro",
"block.create.light_blue_seat": "Asiento Azul Claro", "block.create.light_blue_seat": "Asiento Azul Claro",
"block.create.light_blue_valve_handle": "Manija de Válvula Azul Claro", "block.create.light_blue_valve_handle": "Manija de Válvula Azul Claro",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings", "create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1337", "_": "Missing Localizations: 1342",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone",
"block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria",
"block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail",
"block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat",
"block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "Fin de schémacanon", "create.subtitle.schematicannon_finish": "Fin de schémacanon",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "Activation de la presse mechanique", "create.subtitle.mechanical_press_activation": "Activation de la presse mechanique",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 863", "_": "Missing Localizations: 868",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "Calcare stratificato", "block.create.layered_limestone": "Calcare stratificato",
"block.create.layered_scoria": "Scoria stratificata", "block.create.layered_scoria": "Scoria stratificata",
"block.create.layered_weathered_limestone": "Calcare consumato stratificato", "block.create.layered_weathered_limestone": "Calcare consumato stratificato",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "Vela azzurra", "block.create.light_blue_sail": "Vela azzurra",
"block.create.light_blue_seat": "Sedile azzurro", "block.create.light_blue_seat": "Sedile azzurro",
"block.create.light_blue_valve_handle": "Maniglia per valvola azzurra", "block.create.light_blue_valve_handle": "Maniglia per valvola azzurra",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "Finiture cannoneschematico", "create.subtitle.schematicannon_finish": "Finiture cannoneschematico",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "Pressa meccanica attiva", "create.subtitle.mechanical_press_activation": "Pressa meccanica attiva",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 229", "_": "Missing Localizations: 234",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "石灰岩の組石", "block.create.layered_limestone": "石灰岩の組石",
"block.create.layered_scoria": "スコリアの組石", "block.create.layered_scoria": "スコリアの組石",
"block.create.layered_weathered_limestone": "風化した石灰岩の組石", "block.create.layered_weathered_limestone": "風化した石灰岩の組石",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "空色の帆", "block.create.light_blue_sail": "空色の帆",
"block.create.light_blue_seat": "空色のシート", "block.create.light_blue_seat": "空色のシート",
"block.create.light_blue_valve_handle": "空色のバルブハンドル", "block.create.light_blue_valve_handle": "空色のバルブハンドル",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "概略図砲が作業を終える", "create.subtitle.schematicannon_finish": "概略図砲が作業を終える",
"create.subtitle.scroll_value": "スクロールのカチカチ音", "create.subtitle.scroll_value": "スクロールのカチカチ音",
"create.subtitle.crafter_craft": "メカニカルクラフターがクラフトする", "create.subtitle.crafter_craft": "メカニカルクラフターがクラフトする",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "ハンドクランクが回る", "create.subtitle.cranking": "ハンドクランクが回る",
"create.subtitle.wrench_remove": "機械を壊す", "create.subtitle.wrench_remove": "機械を壊す",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "メカニカルプレスがガーンと鳴る", "create.subtitle.mechanical_press_activation": "メカニカルプレスがガーンと鳴る",
"create.subtitle.contraption_assemble": "からくりが動く", "create.subtitle.contraption_assemble": "からくりが動く",
"create.subtitle.crafter_click": "メカニカルクラフターのカチカチ音", "create.subtitle.crafter_click": "メカニカルクラフターのカチカチ音",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 916", "_": "Missing Localizations: 921",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "층이 있는 석회암", "block.create.layered_limestone": "층이 있는 석회암",
"block.create.layered_scoria": "층이 있는 스코리아", "block.create.layered_scoria": "층이 있는 스코리아",
"block.create.layered_weathered_limestone": "층이 있는 풍화된 석회암", "block.create.layered_weathered_limestone": "층이 있는 풍화된 석회암",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "하늘색 날개", "block.create.light_blue_sail": "하늘색 날개",
"block.create.light_blue_seat": "하늘색 좌석", "block.create.light_blue_seat": "하늘색 좌석",
"block.create.light_blue_valve_handle": "하늘색 밸브 손잡이", "block.create.light_blue_valve_handle": "하늘색 밸브 손잡이",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "청사진 대포가 끝남", "create.subtitle.schematicannon_finish": "청사진 대포가 끝남",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "압착기가 가동됨", "create.subtitle.mechanical_press_activation": "압착기가 가동됨",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1718", "_": "Missing Localizations: 1723",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone",
"block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria",
"block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail",
"block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat",
"block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings", "create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 205", "_": "Missing Localizations: 210",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "Warstwowy wapień", "block.create.layered_limestone": "Warstwowy wapień",
"block.create.layered_scoria": "Warstwowy żużel", "block.create.layered_scoria": "Warstwowy żużel",
"block.create.layered_weathered_limestone": "Warstwowy zwietrzały wapień", "block.create.layered_weathered_limestone": "Warstwowy zwietrzały wapień",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "Jasnoniebieski żagiel", "block.create.light_blue_sail": "Jasnoniebieski żagiel",
"block.create.light_blue_seat": "Jasnoniebieskie siedzenie", "block.create.light_blue_seat": "Jasnoniebieskie siedzenie",
"block.create.light_blue_valve_handle": "Jasnoniebieskie pokrętło", "block.create.light_blue_valve_handle": "Jasnoniebieskie pokrętło",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "Schematoarmata skończyła", "create.subtitle.schematicannon_finish": "Schematoarmata skończyła",
"create.subtitle.scroll_value": "Kliknięcie", "create.subtitle.scroll_value": "Kliknięcie",
"create.subtitle.crafter_craft": "Mechaniczny stół rzemieślniczy konstruuje", "create.subtitle.crafter_craft": "Mechaniczny stół rzemieślniczy konstruuje",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "Ręczna korba obraca się", "create.subtitle.cranking": "Ręczna korba obraca się",
"create.subtitle.wrench_remove": "Komponent niszczy się", "create.subtitle.wrench_remove": "Komponent niszczy się",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "Sprzęt do nurkowania pobrzękuje", "create.subtitle.copper_armor_equip": "Sprzęt do nurkowania pobrzękuje",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "Mechaniczna prasa się uruchamia", "create.subtitle.mechanical_press_activation": "Mechaniczna prasa się uruchamia",
"create.subtitle.contraption_assemble": "Maszyna przesuwa się", "create.subtitle.contraption_assemble": "Maszyna przesuwa się",
"create.subtitle.crafter_click": "Mechaniczny stół rzemieślniczy stuka", "create.subtitle.crafter_click": "Mechaniczny stół rzemieślniczy stuka",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 1759", "_": "Missing Localizations: 1764",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone",
"block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria",
"block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail",
"block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat",
"block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings", "create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 762", "_": "Missing Localizations: 767",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "Слоистый известняк", "block.create.layered_limestone": "Слоистый известняк",
"block.create.layered_scoria": "Слоистый пепел", "block.create.layered_scoria": "Слоистый пепел",
"block.create.layered_weathered_limestone": "Слоистый выветренный известняк", "block.create.layered_weathered_limestone": "Слоистый выветренный известняк",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "Голубой парус", "block.create.light_blue_sail": "Голубой парус",
"block.create.light_blue_seat": "Голубое сиденье", "block.create.light_blue_seat": "Голубое сиденье",
"block.create.light_blue_valve_handle": "Голубой ручной вентиль", "block.create.light_blue_valve_handle": "Голубой ручной вентиль",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "Схематичная пушка закончила работу", "create.subtitle.schematicannon_finish": "Схематичная пушка закончила работу",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "Механический пресс активирован", "create.subtitle.mechanical_press_activation": "Механический пресс активирован",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 246", "_": "Missing Localizations: 251",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "层叠石灰岩", "block.create.layered_limestone": "层叠石灰岩",
"block.create.layered_scoria": "层叠熔渣", "block.create.layered_scoria": "层叠熔渣",
"block.create.layered_weathered_limestone": "层叠风化石灰岩", "block.create.layered_weathered_limestone": "层叠风化石灰岩",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "淡蓝色风帆", "block.create.light_blue_sail": "淡蓝色风帆",
"block.create.light_blue_seat": "淡蓝色坐垫", "block.create.light_blue_seat": "淡蓝色坐垫",
"block.create.light_blue_valve_handle": "淡蓝色阀门手轮", "block.create.light_blue_valve_handle": "淡蓝色阀门手轮",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "蓝图加农炮:叮", "create.subtitle.schematicannon_finish": "蓝图加农炮:叮",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "辊压机:工作中", "create.subtitle.mechanical_press_activation": "辊压机:工作中",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 241", "_": "Missing Localizations: 246",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -204,6 +204,7 @@
"block.create.layered_limestone": "疊層石灰岩", "block.create.layered_limestone": "疊層石灰岩",
"block.create.layered_scoria": "疊層火成岩", "block.create.layered_scoria": "疊層火成岩",
"block.create.layered_weathered_limestone": "疊層風化石灰岩", "block.create.layered_weathered_limestone": "疊層風化石灰岩",
"block.create.lectern_controller": "UNLOCALIZED: Lectern Controller",
"block.create.light_blue_sail": "淡藍色風帆", "block.create.light_blue_sail": "淡藍色風帆",
"block.create.light_blue_seat": "淡藍色坐墊", "block.create.light_blue_seat": "淡藍色坐墊",
"block.create.light_blue_valve_handle": "淡藍色閥門開關", "block.create.light_blue_valve_handle": "淡藍色閥門開關",
@ -1192,6 +1193,7 @@
"create.subtitle.schematicannon_finish": "藍圖大炮完成任務", "create.subtitle.schematicannon_finish": "藍圖大炮完成任務",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes", "create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
@ -1207,6 +1209,7 @@
"create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks",
"create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls", "create.subtitle.cursed_bell_use": "UNLOCALIZED: Cursed Bell tolls",
"create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens", "create.subtitle.cursed_bell_convert": "UNLOCALIZED: Cursed Bell awakens",
"create.subtitle.controller_take": "UNLOCALIZED: Lectern empties",
"create.subtitle.mechanical_press_activation": "液壓機工作", "create.subtitle.mechanical_press_activation": "液壓機工作",
"create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves",
"create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks",
@ -1401,6 +1404,8 @@
"item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",

View file

@ -58,6 +58,24 @@
], ],
"subtitle": "create.subtitle.controller_click" "subtitle": "create.subtitle.controller_click"
}, },
"controller_put": {
"sounds": [
{
"name": "minecraft:item.book.put",
"type": "event"
}
],
"subtitle": "create.subtitle.controller_put"
},
"controller_take": {
"sounds": [
{
"name": "minecraft:entity.item_frame.remove_item",
"type": "event"
}
],
"subtitle": "create.subtitle.controller_take"
},
"copper_armor_equip": { "copper_armor_equip": {
"sounds": [ "sounds": [
{ {

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:lectern"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -157,6 +157,7 @@ import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock;
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkGenerator; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkGenerator;
import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchBlock; import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchBlock;
import com.simibubi.create.content.logistics.item.LecternControllerBlock;
import com.simibubi.create.content.schematics.block.SchematicTableBlock; import com.simibubi.create.content.schematics.block.SchematicTableBlock;
import com.simibubi.create.content.schematics.block.SchematicannonBlock; import com.simibubi.create.content.schematics.block.SchematicannonBlock;
import com.simibubi.create.foundation.block.DyedBlockList; import com.simibubi.create.foundation.block.DyedBlockList;
@ -1279,6 +1280,15 @@ public class AllBlocks {
.transform(customItemModel("diodes", "latch_off")) .transform(customItemModel("diodes", "latch_off"))
.register(); .register();
public static final BlockEntry<LecternControllerBlock> LECTERN_CONTROLLER =
REGISTRATE.block("lectern_controller", LecternControllerBlock::new)
.initialProperties(() -> Blocks.LECTERN)
.blockstate((c,p) -> p.horizontalBlock(c.get(), p.models()
.getExistingFile(p.mcLoc("block/lectern"))))
.loot((lt, block) -> lt.registerDropping(block, Blocks.LECTERN))
.register();
// Curiosities // Curiosities
static { static {

View file

@ -1,10 +1,10 @@
package com.simibubi.create; package com.simibubi.create;
import static com.simibubi.create.AllTags.forgeItemTag;
import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS; import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS;
import static com.simibubi.create.AllTags.AllItemTags.CRUSHED_ORES; import static com.simibubi.create.AllTags.AllItemTags.CRUSHED_ORES;
import static com.simibubi.create.AllTags.AllItemTags.NUGGETS; import static com.simibubi.create.AllTags.AllItemTags.NUGGETS;
import static com.simibubi.create.AllTags.AllItemTags.PLATES; import static com.simibubi.create.AllTags.AllItemTags.PLATES;
import static com.simibubi.create.AllTags.forgeItemTag;
import static com.simibubi.create.content.AllSections.CURIOSITIES; import static com.simibubi.create.content.AllSections.CURIOSITIES;
import static com.simibubi.create.content.AllSections.KINETICS; import static com.simibubi.create.content.AllSections.KINETICS;
import static com.simibubi.create.content.AllSections.LOGISTICS; import static com.simibubi.create.content.AllSections.LOGISTICS;
@ -249,6 +249,7 @@ public class AllItems {
public static final ItemEntry<LinkedControllerItem> LINKED_CONTROLLER = public static final ItemEntry<LinkedControllerItem> LINKED_CONTROLLER =
REGISTRATE.item("linked_controller", LinkedControllerItem::new) REGISTRATE.item("linked_controller", LinkedControllerItem::new)
.properties(p -> p.maxStackSize(1))
.transform(CreateRegistrate.customRenderedItem(() -> LinkedControllerModel::new)) .transform(CreateRegistrate.customRenderedItem(() -> LinkedControllerModel::new))
.model(AssetLookup.itemModelWithPartials()) .model(AssetLookup.itemModelWithPartials())
.register(); .register();

View file

@ -174,6 +174,16 @@ public class AllSoundEvents {
.category(SoundCategory.BLOCKS) .category(SoundCategory.BLOCKS)
.build(), .build(),
CONTROLLER_PUT = create("controller_put").subtitle("Controller thumps")
.playExisting(SoundEvents.ITEM_BOOK_PUT, 1f, 1f)
.category(SoundCategory.BLOCKS)
.build(),
CONTROLLER_TAKE = create("controller_take").subtitle("Lectern empties")
.playExisting(SoundEvents.ENTITY_ITEM_FRAME_REMOVE_ITEM, 1f, 1f)
.category(SoundCategory.BLOCKS)
.build(),
SAW_ACTIVATE_WOOD = create("saw_activate_wood").subtitle("Mechanical Saw activates") SAW_ACTIVATE_WOOD = create("saw_activate_wood").subtitle("Mechanical Saw activates")
.playExisting(SoundEvents.ENTITY_BOAT_PADDLE_LAND, .75f, 1.5f) .playExisting(SoundEvents.ENTITY_BOAT_PADDLE_LAND, .75f, 1.5f)
.category(SoundCategory.BLOCKS) .category(SoundCategory.BLOCKS)

View file

@ -155,6 +155,8 @@ import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer;
import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity;
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity;
import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity; import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity;
import com.simibubi.create.content.logistics.item.LecternControllerRenderer;
import com.simibubi.create.content.logistics.item.LecternControllerTileEntity;
import com.simibubi.create.content.schematics.block.SchematicTableTileEntity; import com.simibubi.create.content.schematics.block.SchematicTableTileEntity;
import com.simibubi.create.content.schematics.block.SchematicannonInstance; import com.simibubi.create.content.schematics.block.SchematicannonInstance;
import com.simibubi.create.content.schematics.block.SchematicannonRenderer; import com.simibubi.create.content.schematics.block.SchematicannonRenderer;
@ -660,6 +662,14 @@ public class AllTileEntities {
.renderer(() -> AdjustableRepeaterRenderer::new) .renderer(() -> AdjustableRepeaterRenderer::new)
.register(); .register();
public static final TileEntityEntry<LecternControllerTileEntity> LECTERN_CONTROLLER =
Create.registrate()
.tileEntity("lectern_controller", LecternControllerTileEntity::new)
.validBlocks(AllBlocks.LECTERN_CONTROLLER)
.renderer(() -> LecternControllerRenderer::new)
.register();
// Curiosities
public static final TileEntityEntry<CopperBacktankTileEntity> COPPER_BACKTANK = Create.registrate() public static final TileEntityEntry<CopperBacktankTileEntity> COPPER_BACKTANK = Create.registrate()
.tileEntity("copper_backtank", CopperBacktankTileEntity::new) .tileEntity("copper_backtank", CopperBacktankTileEntity::new)
.instance(() -> CopperBacktankInstance::new) .instance(() -> CopperBacktankInstance::new)

View file

@ -0,0 +1,92 @@
package com.simibubi.create.content.logistics.item;
import javax.annotation.Nullable;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.foundation.block.ITE;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.LecternBlock;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
public class LecternControllerBlock extends LecternBlock implements ITE<LecternControllerTileEntity> {
public LecternControllerBlock(Properties properties) {
super(properties);
setDefaultState(getDefaultState().with(HAS_BOOK, true));
}
@Nullable
@Override
public TileEntity createNewTileEntity(IBlockReader p_196283_1_) {
return null;
}
@Nullable
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return AllTileEntities.LECTERN_CONTROLLER.create();
}
@Override
public Class<LecternControllerTileEntity> getTileEntityClass() {
return LecternControllerTileEntity.class;
}
@Override
public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) {
if (!player.isSneaking() && LecternControllerTileEntity.playerInRange(player, world, pos)) {
if (!world.isRemote)
withTileEntityDo(world, pos, te -> te.tryStartUsing(player));
return ActionResultType.SUCCESS;
}
if (player.isSneaking()) {
if (!world.isRemote)
replaceWithLectern(state, world, pos);
return ActionResultType.SUCCESS;
}
return ActionResultType.PASS;
}
@Override
public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) {
if (!state.isIn(newState.getBlock())) {
if (!world.isRemote)
withTileEntityDo(world, pos, te -> te.dropController(state));
super.onReplaced(state, world, pos, newState, isMoving);
}
}
@Override
public int getComparatorInputOverride(BlockState state, World world, BlockPos pos) {
return 15;
}
public void replaceLectern(BlockState lecternState, World world, BlockPos pos, ItemStack controller) {
world.setBlockState(pos, getDefaultState()
.with(FACING, lecternState.get(FACING))
.with(POWERED, lecternState.get(POWERED)));
withTileEntityDo(world, pos, te -> te.setController(controller));
}
public void replaceWithLectern(BlockState state, World world, BlockPos pos) {
AllSoundEvents.CONTROLLER_TAKE.playOnServer(world, pos);
world.setBlockState(pos, Blocks.LECTERN.getDefaultState()
.with(FACING, state.get(FACING))
.with(POWERED, state.get(POWERED)));
}
}

View file

@ -0,0 +1,48 @@
package com.simibubi.create.content.logistics.item;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.MatrixStacker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Direction;
public class LecternControllerRenderer extends SafeTileEntityRenderer<LecternControllerTileEntity> {
public LecternControllerRenderer(TileEntityRendererDispatcher dispatcher) {
super(dispatcher);
}
@Override
protected void renderSafe(LecternControllerTileEntity te, float partialTicks, MatrixStack ms,
IRenderTypeBuffer buffer, int light, int overlay) {
ItemStack stack = AllItems.LINKED_CONTROLLER.asStack();
TransformType transformType = TransformType.NONE;
LinkedControllerModel mainModel = ((LinkedControllerModel) Minecraft.getInstance()
.getItemRenderer()
.getItemModelWithOverrides(stack, null, null));
PartialItemModelRenderer renderer = PartialItemModelRenderer.of(stack, transformType, ms, buffer, overlay);
boolean active = te.hasUser();
boolean usedByMe = te.isUsedBy(Minecraft.getInstance().player);
Direction facing = te.getBlockState().get(LecternControllerBlock.FACING);
MatrixStacker msr = MatrixStacker.of(ms);
ms.push();
msr.translate(0.5, 1.45, 0.5);
msr.rotateY(AngleHelper.horizontalAngle(facing) - 90);
msr.translate(0.28, 0, 0);
msr.rotateZ(-22.0);
LinkedControllerItemRenderer.renderLinkedController(stack, mainModel, renderer, transformType, ms, light, active, usedByMe);
ms.pop();
}
}

View file

@ -0,0 +1,169 @@
package com.simibubi.create.content.logistics.item;
import java.util.List;
import java.util.UUID;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ForgeMod;
import net.minecraftforge.fml.DistExecutor;
public class LecternControllerTileEntity extends SmartTileEntity {
private ItemStack controller;
private UUID user;
private UUID prevUser; // used only on client
private boolean deactivatedThisTick; // used only on server
public LecternControllerTileEntity(TileEntityType<?> type) {
super(type);
}
@Override
public void addBehaviours(List<TileEntityBehaviour> behaviours) { }
@Override
protected void write(CompoundNBT compound, boolean clientPacket) {
super.write(compound, clientPacket);
compound.put("Controller", controller.write(new CompoundNBT()));
if (user != null)
compound.putUniqueId("User", user);
}
@Override
protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) {
super.fromTag(state, compound, clientPacket);
controller = ItemStack.read(compound.getCompound("Controller"));
user = compound.hasUniqueId("User") ? compound.getUniqueId("User") : null;
}
public ItemStack getController() {
return controller;
}
public boolean hasUser() { return user != null; }
public boolean isUsedBy(PlayerEntity player) {
return hasUser() && user.equals(player.getUniqueID());
}
public void tryStartUsing(PlayerEntity player) {
if (!deactivatedThisTick && !hasUser() && !playerIsUsingLectern(player) && playerInRange(player, world, pos))
startUsing(player);
}
public void tryStopUsing(PlayerEntity player) {
if (isUsedBy(player))
stopUsing(player);
}
private void startUsing(PlayerEntity player) {
user = player.getUniqueID();
player.getPersistentData().putBoolean("IsUsingLecternController", true);
sendData();
}
private void stopUsing(PlayerEntity player) {
user = null;
if (player != null)
player.getPersistentData().remove("IsUsingLecternController");
deactivatedThisTick = true;
sendData();
}
public static boolean playerIsUsingLectern(PlayerEntity player) {
return player.getPersistentData().contains("IsUsingLecternController");
}
@Override
public void tick() {
super.tick();
if (world.isRemote) {
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::tryToggleActive);
prevUser = user;
}
if (!world.isRemote) {
deactivatedThisTick = false;
if (!(world instanceof ServerWorld))
return;
if (user == null)
return;
Entity entity = ((ServerWorld) world).getEntityByUuid(user);
if (!(entity instanceof PlayerEntity)) {
stopUsing(null);
return;
}
PlayerEntity player = (PlayerEntity) entity;
if (!playerInRange(player, world, pos) || !playerIsUsingLectern(player))
stopUsing(player);
}
}
@OnlyIn(Dist.CLIENT)
private void tryToggleActive() {
if (user == null && Minecraft.getInstance().player.getUniqueID().equals(prevUser)) {
LinkedControllerClientHandler.deactivateInLectern();
} else if (prevUser == null && Minecraft.getInstance().player.getUniqueID().equals(user)) {
LinkedControllerClientHandler.activateInLectern(pos);
}
}
public void setController(ItemStack newController) {
controller = newController;
if (newController != null) {
AllSoundEvents.CONTROLLER_PUT.playOnServer(world, pos);
}
}
public void swapControllers(ItemStack stack, PlayerEntity player, Hand hand, BlockState state) {
ItemStack newController = stack.copy();
stack.setCount(0);
if (player.getHeldItem(hand).isEmpty()) {
player.setHeldItem(hand, controller);
} else {
dropController(state);
}
setController(newController);
}
public void dropController(BlockState state) {
Direction dir = state.get(LecternControllerBlock.FACING);
double x = pos.getX() + 0.5 + 0.25*dir.getXOffset();
double y = pos.getY() + 1;
double z = pos.getZ() + 0.5 + 0.25*dir.getZOffset();
ItemEntity itementity = new ItemEntity(world, x, y, z, controller.copy());
itementity.setDefaultPickupDelay();
world.addEntity(itementity);
controller = null;
}
public static boolean playerInRange(PlayerEntity player, World world, BlockPos pos) {
//double modifier = world.isRemote ? 0 : 1.0;
double reach = 0.4*player.getAttributeValue(ForgeMod.REACH_DISTANCE.get());// + modifier;
return player.getDistanceSq(Vector3d.ofCenter(pos)) < reach*reach;
}
}

View file

@ -18,23 +18,26 @@ public class LinkedControllerBindPacket extends LinkedControllerPacketBase {
private BlockPos linkLocation; private BlockPos linkLocation;
public LinkedControllerBindPacket(int button, BlockPos linkLocation) { public LinkedControllerBindPacket(int button, BlockPos linkLocation) {
super((BlockPos) null);
this.button = button; this.button = button;
this.linkLocation = linkLocation; this.linkLocation = linkLocation;
} }
public LinkedControllerBindPacket(PacketBuffer buffer) { public LinkedControllerBindPacket(PacketBuffer buffer) {
super(buffer);
this.button = buffer.readVarInt(); this.button = buffer.readVarInt();
this.linkLocation = buffer.readBlockPos(); this.linkLocation = buffer.readBlockPos();
} }
@Override @Override
public void write(PacketBuffer buffer) { public void write(PacketBuffer buffer) {
super.write(buffer);
buffer.writeVarInt(button); buffer.writeVarInt(button);
buffer.writeBlockPos(linkLocation); buffer.writeBlockPos(linkLocation);
} }
@Override @Override
protected void handle(ServerPlayerEntity player, ItemStack heldItem) { protected void handleItem(ServerPlayerEntity player, ItemStack heldItem) {
if (player.isSpectator()) if (player.isSpectator())
return; return;
@ -42,7 +45,7 @@ public class LinkedControllerBindPacket extends LinkedControllerPacketBase {
LinkBehaviour linkBehaviour = TileEntityBehaviour.get(player.world, linkLocation, LinkBehaviour.TYPE); LinkBehaviour linkBehaviour = TileEntityBehaviour.get(player.world, linkLocation, LinkBehaviour.TYPE);
if (linkBehaviour == null) if (linkBehaviour == null)
return; return;
Pair<Frequency, Frequency> pair = linkBehaviour.getNetworkKey(); Pair<Frequency, Frequency> pair = linkBehaviour.getNetworkKey();
frequencyItems.setStackInSlot(button * 2, pair.getKey() frequencyItems.setStackInSlot(button * 2, pair.getKey()
.getStack() .getStack()
@ -51,8 +54,10 @@ public class LinkedControllerBindPacket extends LinkedControllerPacketBase {
.getStack() .getStack()
.copy()); .copy());
heldItem.getTag() heldItem.getTag().put("Items", frequencyItems.serializeNBT());
.put("Items", frequencyItems.serializeNBT());
} }
@Override
protected void handleLectern(ServerPlayerEntity player, LecternControllerTileEntity lectern) { }
} }

View file

@ -41,6 +41,7 @@ public class LinkedControllerClientHandler {
public static Mode MODE = Mode.IDLE; public static Mode MODE = Mode.IDLE;
public static int PACKET_RATE = 5; public static int PACKET_RATE = 5;
public static Collection<Integer> currentlyPressed = new HashSet<>(); public static Collection<Integer> currentlyPressed = new HashSet<>();
private static BlockPos lecternPos;
private static BlockPos selectedLocation = BlockPos.ZERO; private static BlockPos selectedLocation = BlockPos.ZERO;
private static Vector<KeyBinding> controls; private static Vector<KeyBinding> controls;
@ -71,19 +72,42 @@ public class LinkedControllerClientHandler {
} }
public static void toggle() { public static void toggle() {
if (MODE == Mode.IDLE) if (MODE == Mode.IDLE) {
MODE = Mode.ACTIVE; MODE = Mode.ACTIVE;
else { lecternPos = null;
} else {
MODE = Mode.IDLE; MODE = Mode.IDLE;
onReset(); onReset();
} }
} }
public static void activateInLectern(BlockPos lecternAt) {
if (MODE == Mode.IDLE) {
MODE = Mode.ACTIVE;
lecternPos = lecternAt;
}
}
public static void deactivateInLectern() {
if (MODE == Mode.ACTIVE && inLectern()) {
MODE = Mode.IDLE;
onReset();
}
}
public static boolean inLectern() {
return lecternPos != null;
}
protected static void onReset() { protected static void onReset() {
getControls().forEach(kb -> kb.setPressed(isActuallyPressed(kb))); getControls().forEach(kb -> kb.setPressed(isActuallyPressed(kb)));
packetCooldown = 0; packetCooldown = 0;
selectedLocation = BlockPos.ZERO; selectedLocation = BlockPos.ZERO;
if (inLectern())
AllPackets.channel.sendToServer(new LinkedControllerStopLecternPacket(lecternPos));
lecternPos = null;
if (!currentlyPressed.isEmpty()) if (!currentlyPressed.isEmpty())
AllPackets.channel.sendToServer(new LinkedControllerInputPacket(currentlyPressed, false)); AllPackets.channel.sendToServer(new LinkedControllerInputPacket(currentlyPressed, false));
currentlyPressed.clear(); currentlyPressed.clear();
@ -114,7 +138,7 @@ public class LinkedControllerClientHandler {
return; return;
} }
if (!AllItems.LINKED_CONTROLLER.isIn(heldItem)) { if (!inLectern() && !AllItems.LINKED_CONTROLLER.isIn(heldItem)) {
heldItem = player.getHeldItemOffhand(); heldItem = player.getHeldItemOffhand();
if (!AllItems.LINKED_CONTROLLER.isIn(heldItem)) { if (!AllItems.LINKED_CONTROLLER.isIn(heldItem)) {
MODE = Mode.IDLE; MODE = Mode.IDLE;
@ -150,13 +174,13 @@ public class LinkedControllerClientHandler {
if (MODE == Mode.ACTIVE) { if (MODE == Mode.ACTIVE) {
// Released Keys // Released Keys
if (!releasedKeys.isEmpty()) { if (!releasedKeys.isEmpty()) {
AllPackets.channel.sendToServer(new LinkedControllerInputPacket(releasedKeys, false)); AllPackets.channel.sendToServer(new LinkedControllerInputPacket(releasedKeys, false, lecternPos));
AllSoundEvents.CONTROLLER_CLICK.playAt(player.world, player.getBlockPos(), 1f, .5f, true); AllSoundEvents.CONTROLLER_CLICK.playAt(player.world, player.getBlockPos(), 1f, .5f, true);
} }
// Newly Pressed Keys // Newly Pressed Keys
if (!newKeys.isEmpty()) { if (!newKeys.isEmpty()) {
AllPackets.channel.sendToServer(new LinkedControllerInputPacket(newKeys, true)); AllPackets.channel.sendToServer(new LinkedControllerInputPacket(newKeys, true, lecternPos));
packetCooldown = PACKET_RATE; packetCooldown = PACKET_RATE;
AllSoundEvents.CONTROLLER_CLICK.playAt(player.world, player.getBlockPos(), 1f, .75f, true); AllSoundEvents.CONTROLLER_CLICK.playAt(player.world, player.getBlockPos(), 1f, .75f, true);
} }

View file

@ -17,11 +17,17 @@ public class LinkedControllerInputPacket extends LinkedControllerPacketBase {
private boolean press; private boolean press;
public LinkedControllerInputPacket(Collection<Integer> activatedButtons, boolean press) { public LinkedControllerInputPacket(Collection<Integer> activatedButtons, boolean press) {
this(activatedButtons, press, null);
}
public LinkedControllerInputPacket(Collection<Integer> activatedButtons, boolean press, BlockPos lecternPos) {
super(lecternPos);
this.activatedButtons = activatedButtons; this.activatedButtons = activatedButtons;
this.press = press; this.press = press;
} }
public LinkedControllerInputPacket(PacketBuffer buffer) { public LinkedControllerInputPacket(PacketBuffer buffer) {
super(buffer);
activatedButtons = new ArrayList<>(); activatedButtons = new ArrayList<>();
press = buffer.readBoolean(); press = buffer.readBoolean();
int size = buffer.readVarInt(); int size = buffer.readVarInt();
@ -31,13 +37,20 @@ public class LinkedControllerInputPacket extends LinkedControllerPacketBase {
@Override @Override
public void write(PacketBuffer buffer) { public void write(PacketBuffer buffer) {
super.write(buffer);
buffer.writeBoolean(press); buffer.writeBoolean(press);
buffer.writeVarInt(activatedButtons.size()); buffer.writeVarInt(activatedButtons.size());
activatedButtons.forEach(buffer::writeVarInt); activatedButtons.forEach(buffer::writeVarInt);
} }
@Override @Override
protected void handle(ServerPlayerEntity player, ItemStack heldItem) { protected void handleLectern(ServerPlayerEntity player, LecternControllerTileEntity lectern) {
if (lectern.isUsedBy(player))
handleItem(player, lectern.getController());
}
@Override
protected void handleItem(ServerPlayerEntity player, ItemStack heldItem) {
World world = player.getEntityWorld(); World world = player.getEntityWorld();
UUID uniqueID = player.getUniqueID(); UUID uniqueID = player.getUniqueID();
BlockPos pos = player.getBlockPos(); BlockPos pos = player.getBlockPos();

View file

@ -6,6 +6,9 @@ import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler;
import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler.Frequency; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler.Frequency;
import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Couple;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.LecternBlock;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity;
@ -35,19 +38,39 @@ public class LinkedControllerItem extends Item implements INamedContainerProvide
} }
@Override @Override
public ActionResultType onItemUse(ItemUseContext ctx) { public ActionResultType onItemUseFirst(ItemStack stack, ItemUseContext ctx) {
PlayerEntity player = ctx.getPlayer(); PlayerEntity player = ctx.getPlayer();
if (player == null) if (player == null)
return ActionResultType.PASS; return ActionResultType.PASS;
World world = ctx.getWorld(); World world = ctx.getWorld();
BlockPos pos = ctx.getPos();
BlockState hitState = world.getBlockState(pos);
if (!player.isSneaking() && player.isAllowEdit() if (player.isAllowEdit()) {
&& AllBlocks.REDSTONE_LINK.has(world.getBlockState(ctx.getPos()))) { if (player.isSneaking()) {
if (world.isRemote) if (AllBlocks.LECTERN_CONTROLLER.has(hitState)) {
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> this.toggleBindMode(ctx.getPos())); if (!world.isRemote)
player.getCooldownTracker() AllBlocks.LECTERN_CONTROLLER.get().withTileEntityDo(world, pos, te ->
.setCooldown(this, 2); te.swapControllers(stack, player, ctx.getHand(), hitState));
return ActionResultType.SUCCESS; return ActionResultType.SUCCESS;
}
} else {
if (AllBlocks.REDSTONE_LINK.has(hitState)) {
if (world.isRemote)
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> this.toggleBindMode(ctx.getPos()));
player.getCooldownTracker()
.setCooldown(this, 2);
return ActionResultType.SUCCESS;
}
if (hitState.isIn(Blocks.LECTERN) && !hitState.get(LecternBlock.HAS_BOOK)) {
if (!world.isRemote) {
ItemStack lecternStack = player.isCreative() ? stack.copy() : stack.split(1);
AllBlocks.LECTERN_CONTROLLER.get().replaceLectern(hitState, world, pos, lecternStack);
}
return ActionResultType.SUCCESS;
}
}
} }
return onItemRightClick(world, player, ctx.getHand()).getType(); return onItemRightClick(world, player, ctx.getHand()).getType();
@ -70,6 +93,7 @@ public class LinkedControllerItem extends Item implements INamedContainerProvide
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::toggleActive); DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::toggleActive);
player.getCooldownTracker() player.getCooldownTracker()
.setCooldown(this, 2); .setCooldown(this, 2);
return ActionResult.success(heldItem);
} }
return ActionResult.pass(heldItem); return ActionResult.pass(heldItem);

View file

@ -54,6 +54,14 @@ public class LinkedControllerItemRenderer extends CustomRenderedItemModelRendere
protected void render(ItemStack stack, LinkedControllerModel model, PartialItemModelRenderer renderer, protected void render(ItemStack stack, LinkedControllerModel model, PartialItemModelRenderer renderer,
ItemCameraTransforms.TransformType transformType, MatrixStack ms, IRenderTypeBuffer buffer, int light, ItemCameraTransforms.TransformType transformType, MatrixStack ms, IRenderTypeBuffer buffer, int light,
int overlay) { int overlay) {
renderLinkedController(stack, model, renderer, transformType, ms, light, null, null);
}
public static void renderLinkedController(ItemStack stack, LinkedControllerModel model,
PartialItemModelRenderer renderer, ItemCameraTransforms.TransformType transformType, MatrixStack ms,
int light, Boolean active, Boolean usedByMe) {
float pt = AnimationTickHolder.getPartialTicks(); float pt = AnimationTickHolder.getPartialTicks();
MatrixStacker msr = MatrixStacker.of(ms); MatrixStacker msr = MatrixStacker.of(ms);
@ -62,33 +70,37 @@ public class LinkedControllerItemRenderer extends CustomRenderedItemModelRendere
Minecraft mc = Minecraft.getInstance(); Minecraft mc = Minecraft.getInstance();
boolean rightHanded = mc.gameSettings.mainHand == HandSide.RIGHT; boolean rightHanded = mc.gameSettings.mainHand == HandSide.RIGHT;
TransformType mainHand = TransformType mainHand =
rightHanded ? TransformType.FIRST_PERSON_RIGHT_HAND : TransformType.FIRST_PERSON_LEFT_HAND; rightHanded ? TransformType.FIRST_PERSON_RIGHT_HAND : TransformType.FIRST_PERSON_LEFT_HAND;
TransformType offHand = TransformType offHand =
rightHanded ? TransformType.FIRST_PERSON_LEFT_HAND : TransformType.FIRST_PERSON_RIGHT_HAND; rightHanded ? TransformType.FIRST_PERSON_LEFT_HAND : TransformType.FIRST_PERSON_RIGHT_HAND;
boolean active = false; if (active == null) {
boolean noControllerInMain = !AllItems.LINKED_CONTROLLER.isIn(mc.player.getHeldItemMainhand()); active = false;
if (transformType == mainHand || (transformType == offHand && noControllerInMain)) { boolean noControllerInMain = !AllItems.LINKED_CONTROLLER.isIn(mc.player.getHeldItemMainhand());
float equip = equipProgress.getValue(pt); if (transformType == mainHand || (transformType == offHand && noControllerInMain)) {
int handModifier = transformType == TransformType.FIRST_PERSON_LEFT_HAND ? -1 : 1; float equip = equipProgress.getValue(pt);
msr.translate(0, equip / 4, equip / 4 * handModifier); int handModifier = transformType == TransformType.FIRST_PERSON_LEFT_HAND ? -1 : 1;
msr.rotateY(equip * -30 * handModifier); msr.translate(0, equip / 4, equip / 4 * handModifier);
msr.rotateZ(equip * -30); msr.rotateY(equip * -30 * handModifier);
active = true; msr.rotateZ(equip * -30);
active = true;
}
if (transformType == TransformType.GUI) {
if (stack == mc.player.getHeldItemMainhand())
active = true;
if (stack == mc.player.getHeldItemOffhand() && noControllerInMain)
active = true;
}
active &= LinkedControllerClientHandler.MODE != Mode.IDLE;
usedByMe = active;
} }
if (transformType == TransformType.GUI) {
if (stack == mc.player.getHeldItemMainhand())
active = true;
if (stack == mc.player.getHeldItemOffhand() && noControllerInMain)
active = true;
}
active &= LinkedControllerClientHandler.MODE != Mode.IDLE;
renderer.render(active ? model.getPartial("powered") : model.getOriginalModel(), light); renderer.render(active ? model.getPartial("powered") : model.getOriginalModel(), light);
if (!active) { if (!usedByMe) {
ms.pop(); ms.pop();
return; return;
} }
@ -122,7 +134,7 @@ public class LinkedControllerItemRenderer extends CustomRenderedItemModelRendere
ms.pop(); ms.pop();
} }
protected void button(PartialItemModelRenderer renderer, MatrixStack ms, int light, float pt, IBakedModel button, protected static void button(PartialItemModelRenderer renderer, MatrixStack ms, int light, float pt, IBakedModel button,
float b, int index) { float b, int index) {
ms.push(); ms.push();
ms.translate(0, b * buttons.get(index) ms.translate(0, b * buttons.get(index)

View file

@ -7,31 +7,66 @@ import com.simibubi.create.foundation.networking.SimplePacketBase;
import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.network.NetworkEvent.Context; import net.minecraftforge.fml.network.NetworkEvent.Context;
public abstract class LinkedControllerPacketBase extends SimplePacketBase { public abstract class LinkedControllerPacketBase extends SimplePacketBase {
@Override private BlockPos lecternPos;
public void handle(Supplier<Context> context) {
context.get()
.enqueueWork(() -> {
ServerPlayerEntity player = context.get()
.getSender();
if (player == null)
return;
ItemStack heldItem = player.getHeldItemMainhand(); public LinkedControllerPacketBase(BlockPos lecternPos) {
if (!AllItems.LINKED_CONTROLLER.isIn(heldItem)) { this.lecternPos = lecternPos;
heldItem = player.getHeldItemOffhand();
if (!AllItems.LINKED_CONTROLLER.isIn(heldItem))
return;
}
handle(player, heldItem);
});
context.get()
.setPacketHandled(true);
} }
protected abstract void handle(ServerPlayerEntity player, ItemStack heldItem); public LinkedControllerPacketBase(PacketBuffer buffer) {
if (buffer.readBoolean()) {
lecternPos = new BlockPos(buffer.readInt(), buffer.readInt(), buffer.readInt());
}
}
protected boolean inLectern() {
return lecternPos != null;
}
@Override
public void write(PacketBuffer buffer) {
buffer.writeBoolean(inLectern());
if (inLectern()) {
buffer.writeInt(lecternPos.getX());
buffer.writeInt(lecternPos.getY());
buffer.writeInt(lecternPos.getZ());
}
}
@Override
public void handle(Supplier<Context> context) {
context.get().enqueueWork(() -> {
ServerPlayerEntity player = context.get().getSender();
if (player == null)
return;
if (inLectern()) {
TileEntity te = player.world.getTileEntity(lecternPos);
if (!(te instanceof LecternControllerTileEntity))
return;
handleLectern(player, (LecternControllerTileEntity) te);
} else {
ItemStack controller = player.getHeldItemMainhand();
if (!AllItems.LINKED_CONTROLLER.isIn(controller)) {
controller = player.getHeldItemOffhand();
if (!AllItems.LINKED_CONTROLLER.isIn(controller))
return;
}
handleItem(player, controller);
}
});
context.get().setPacketHandled(true);
}
protected abstract void handleItem(ServerPlayerEntity player, ItemStack heldItem);
protected abstract void handleLectern(ServerPlayerEntity player, LecternControllerTileEntity lectern);
} }

View file

@ -0,0 +1,26 @@
package com.simibubi.create.content.logistics.item;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.math.BlockPos;
public class LinkedControllerStopLecternPacket extends LinkedControllerPacketBase {
public LinkedControllerStopLecternPacket(PacketBuffer buffer) {
super(buffer);
}
public LinkedControllerStopLecternPacket(BlockPos lecternPos) {
super(lecternPos);
}
@Override
protected void handleLectern(ServerPlayerEntity player, LecternControllerTileEntity lectern) {
lectern.tryStopUsing(player);
}
@Override
protected void handleItem(ServerPlayerEntity player, ItemStack heldItem) { }
}

View file

@ -1,11 +1,13 @@
package com.simibubi.create.events; package com.simibubi.create.events;
import com.simibubi.create.CreateClient; import com.simibubi.create.CreateClient;
import com.simibubi.create.content.logistics.item.LinkedControllerClientHandler;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringHandler; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringHandler;
import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent.ClickInputEvent;
import net.minecraftforge.client.event.InputEvent.KeyInputEvent; import net.minecraftforge.client.event.InputEvent.KeyInputEvent;
import net.minecraftforge.client.event.InputEvent.MouseInputEvent; import net.minecraftforge.client.event.InputEvent.MouseInputEvent;
import net.minecraftforge.client.event.InputEvent.MouseScrollEvent; import net.minecraftforge.client.event.InputEvent.MouseScrollEvent;
@ -51,4 +53,13 @@ public class InputEvents {
CreateClient.SCHEMATIC_AND_QUILL_HANDLER.onMouseInput(button, pressed); CreateClient.SCHEMATIC_AND_QUILL_HANDLER.onMouseInput(button, pressed);
} }
@SubscribeEvent
public static void onClickInput(ClickInputEvent event) {
if (Minecraft.getInstance().currentScreen != null)
return;
if (event.isUseItem())
LinkedControllerClientHandler.deactivateInLectern();
}
} }

View file

@ -34,6 +34,7 @@ import com.simibubi.create.content.logistics.block.depot.EjectorTriggerPacket;
import com.simibubi.create.content.logistics.block.mechanicalArm.ArmPlacementPacket; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmPlacementPacket;
import com.simibubi.create.content.logistics.item.LinkedControllerBindPacket; import com.simibubi.create.content.logistics.item.LinkedControllerBindPacket;
import com.simibubi.create.content.logistics.item.LinkedControllerInputPacket; import com.simibubi.create.content.logistics.item.LinkedControllerInputPacket;
import com.simibubi.create.content.logistics.item.LinkedControllerStopLecternPacket;
import com.simibubi.create.content.logistics.item.filter.FilterScreenPacket; import com.simibubi.create.content.logistics.item.filter.FilterScreenPacket;
import com.simibubi.create.content.logistics.packet.ConfigureFlexcratePacket; import com.simibubi.create.content.logistics.packet.ConfigureFlexcratePacket;
import com.simibubi.create.content.logistics.packet.ConfigureStockswitchPacket; import com.simibubi.create.content.logistics.packet.ConfigureStockswitchPacket;
@ -93,6 +94,7 @@ public enum AllPackets {
EJECTOR_ELYTRA(EjectorElytraPacket.class, EjectorElytraPacket::new, PLAY_TO_SERVER), EJECTOR_ELYTRA(EjectorElytraPacket.class, EjectorElytraPacket::new, PLAY_TO_SERVER),
LINKED_CONTROLLER_INPUT(LinkedControllerInputPacket.class, LinkedControllerInputPacket::new, PLAY_TO_SERVER), LINKED_CONTROLLER_INPUT(LinkedControllerInputPacket.class, LinkedControllerInputPacket::new, PLAY_TO_SERVER),
LINKED_CONTROLLER_BIND(LinkedControllerBindPacket.class, LinkedControllerBindPacket::new, PLAY_TO_SERVER), LINKED_CONTROLLER_BIND(LinkedControllerBindPacket.class, LinkedControllerBindPacket::new, PLAY_TO_SERVER),
LINKED_CONTROLLER_USE_LECTERN(LinkedControllerStopLecternPacket.class, LinkedControllerStopLecternPacket::new, PLAY_TO_SERVER),
C_CONFIGURE_CONFIG(CConfigureConfigPacket.class, CConfigureConfigPacket::new, PLAY_TO_SERVER), C_CONFIGURE_CONFIG(CConfigureConfigPacket.class, CConfigureConfigPacket::new, PLAY_TO_SERVER),
SUBMIT_GHOST_ITEM(GhostItemSubmitPacket.class, GhostItemSubmitPacket::new, PLAY_TO_SERVER), SUBMIT_GHOST_ITEM(GhostItemSubmitPacket.class, GhostItemSubmitPacket::new, PLAY_TO_SERVER),
BLUEPRINT_COMPLETE_RECIPE(BlueprintAssignCompleteRecipePacket.class, BlueprintAssignCompleteRecipePacket::new, PLAY_TO_SERVER), BLUEPRINT_COMPLETE_RECIPE(BlueprintAssignCompleteRecipePacket.class, BlueprintAssignCompleteRecipePacket::new, PLAY_TO_SERVER),
@ -126,7 +128,7 @@ public enum AllPackets {
private LoadedPacket<?> packet; private LoadedPacket<?> packet;
private <T extends SimplePacketBase> AllPackets(Class<T> type, Function<PacketBuffer, T> factory, <T extends SimplePacketBase> AllPackets(Class<T> type, Function<PacketBuffer, T> factory,
NetworkDirection direction) { NetworkDirection direction) {
packet = new LoadedPacket<>(type, factory, direction); packet = new LoadedPacket<>(type, factory, direction);
} }

View file

@ -185,6 +185,8 @@
"item.create.linked_controller.tooltip.behaviour2": "Opens the manual _Configuration Interface_.", "item.create.linked_controller.tooltip.behaviour2": "Opens the manual _Configuration Interface_.",
"item.create.linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver", "item.create.linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver",
"item.create.linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", "item.create.linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.",
"item.create.linked_controller.tooltip.condition4": "R-Click on Lectern",
"item.create.linked_controller.tooltip.behaviour4": "Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)",
"item.create.diving_helmet.tooltip": "DIVING HELMET", "item.create.diving_helmet.tooltip": "DIVING HELMET",
"item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.",