mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-15 01:33:43 +01:00
Down the Checklist, Part III
- Contraptions no-damage ticks after relocation now get sent to other players - Fixed signal overlay rendering twice when ctrl is held - The track system now sends checksums and id lists to prevent de-syncs after incremental changes - Fixed pig spawner in blaze burner scene - Fixed trains not processing graph migrations when graph was not present yet - Fixed previous train name in a station not being serialised - Fixed z-fighting between bogeys and adjacent blocks - Added ponder scenes for the Train Track - Fixed flywheel item model - Added flywheel tooltip - Display Board touchups
This commit is contained in:
parent
dc20f7091c
commit
d11fd6dc48
47 changed files with 1435 additions and 440 deletions
|
@ -559,22 +559,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
|
||||
57a2f5cfc09aac190e97fb9f2ca42b304fab5680 assets/create/lang/en_us.json
|
||||
5dbd68efd854c32656011d3c3cd120a593a19bf8 assets/create/lang/unfinished/de_de.json
|
||||
7be6eb18aef39f3f8221392653a3882a627233dd assets/create/lang/unfinished/es_cl.json
|
||||
ecde05c35a44688bde60f641e7072b634c9e1d5b assets/create/lang/unfinished/es_es.json
|
||||
dbbcf41cd1f79d7c2507219e0dc2b31638084299 assets/create/lang/unfinished/fr_fr.json
|
||||
6afdfa1b7b94bc00b2ce9471d88290c44077a66f assets/create/lang/unfinished/it_it.json
|
||||
18327c2775e14b3f9963718851b96a38f0c1da5b assets/create/lang/unfinished/ja_jp.json
|
||||
71b6e7609551a6c1dcd74904ec08b4658e480593 assets/create/lang/unfinished/ko_kr.json
|
||||
3d68851099b7a3da153b5348122554a868942274 assets/create/lang/unfinished/nl_nl.json
|
||||
492b259e69a13d91e092f81ad2629ab0db9d0340 assets/create/lang/unfinished/pl_pl.json
|
||||
13abb3643e0341ace3f95074215fe3d37482c74b assets/create/lang/unfinished/pt_br.json
|
||||
273c495ef88363bc685d94e80b9bd09c4fe5cd16 assets/create/lang/unfinished/pt_pt.json
|
||||
21c869ff5d2f076aa135c30a8c6de32cfd3529b0 assets/create/lang/unfinished/ro_ro.json
|
||||
0a3f87d04dd6bd672039537df9710ce12ea84028 assets/create/lang/unfinished/ru_ru.json
|
||||
f91a984ecda39e0dfdab621467289cfd48ad90de assets/create/lang/unfinished/zh_cn.json
|
||||
19c9edd37eb2f911a60f815ff699766a6b5127a7 assets/create/lang/unfinished/zh_tw.json
|
||||
2fd1ef9375af6d068257f31cfc5e708f122d8360 assets/create/lang/en_us.json
|
||||
11c5a3201a3c15c342c9f68d33ca460d2f1fde68 assets/create/lang/unfinished/de_de.json
|
||||
ba66d36b4a9a67a8f0e826aa9c3fb3a31d12959f assets/create/lang/unfinished/es_cl.json
|
||||
704a322cc044ca04c719a1a08b2321ded2489ef6 assets/create/lang/unfinished/es_es.json
|
||||
6a3d4587e6b0e245462630acad6940f3349346bd assets/create/lang/unfinished/fr_fr.json
|
||||
9348d8d8a4d74e550f225764bd76a24293cf95ef assets/create/lang/unfinished/it_it.json
|
||||
fc4faa5359f05cce4b940635029def93a0a3f1d5 assets/create/lang/unfinished/ja_jp.json
|
||||
832b57bcb0bf7fc9e81c52e32f7042d7c94bc968 assets/create/lang/unfinished/ko_kr.json
|
||||
5ac1987c570fd90bf2ef57cbfe12bb4379c9c779 assets/create/lang/unfinished/nl_nl.json
|
||||
fd78059dc58f805710e83fa5446ef084fc06734c assets/create/lang/unfinished/pl_pl.json
|
||||
22965c458689766a8d23e1bd5f957b4e2f4eb9b2 assets/create/lang/unfinished/pt_br.json
|
||||
06e4ab83c9da087ea64e55706a471cd2ba99c11e assets/create/lang/unfinished/pt_pt.json
|
||||
4d3f2a22c68b35bd8a20ce8d2b7f411bc388db84 assets/create/lang/unfinished/ro_ro.json
|
||||
fb2c526a98c7f0af30b4f62acad302ea2ea82580 assets/create/lang/unfinished/ru_ru.json
|
||||
e0fbf7132c91fbce3dd42559518f43ef965c45e8 assets/create/lang/unfinished/zh_cn.json
|
||||
b37921c2b8d6320d17f6070ac5a426f3fd014784 assets/create/lang/unfinished/zh_tw.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
|
|
@ -1953,9 +1953,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "_Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "_Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
|
||||
"block.create.controller_rail.tooltip.summary": "A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
|
||||
|
@ -2003,6 +2003,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "_Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "When Worn",
|
||||
|
@ -2632,6 +2637,16 @@
|
|||
"create.ponder.piston_pole.text_1": "Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2655,6 +2670,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1177",
|
||||
"_": "Missing Localizations: 1194",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "Wenn platziert und mit kinetischer Energie betrieben",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_Sammelt_ _komprimierte_ _Luft_ mit einer Geschwindigkeit basierend auf der Rotationsgeschwindigkeit.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "TAUCHSCHUHE",
|
||||
"item.create.diving_boots.tooltip.summary": "Ein Paar _schwere_ _Schuhe_, welches es erlaubt, besser auf dem Grund des Ozenas zu reisen.",
|
||||
"item.create.diving_boots.tooltip.condition1": "Wenn getragen",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 827",
|
||||
"_": "Missing Localizations: 844",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "Al colocarlo, y darle Cinética",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_Recolecta_ _Aire_ _Comprimido_ a una velocidad dependiente de la velocidad de rotación.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "BOTAS DE BUCEO",
|
||||
"item.create.diving_boots.tooltip.summary": "Un par de _botas_ _pesadas_, permitiendo un mejor recorrido del suelo oceánico.",
|
||||
"item.create.diving_boots.tooltip.condition1": "Al equiparlas",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "Sin postes adjuntos, un Pistón Mecanico no se puede mover",
|
||||
"create.ponder.piston_pole.text_2": "La longitud del poste agregado en su parte posterior determina el rango de extensión",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "Intercambio de Fluidos en Contrapciones",
|
||||
"create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los Tanques de Fluido de una Contrapción en movimiento por ninguna tubería",
|
||||
"create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los Tanques de Fluidos sin necesidad de detener la contrapción.",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "Control de Redstone",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "La Redstone evitará que la interfaz estacionaria se active",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "Control de señales usando el Cerrojo de Redstone",
|
||||
"create.ponder.powered_latch.text_1": "Los Cerrojos de Redstone son palancas controlables de Redstone",
|
||||
"create.ponder.powered_latch.text_2": "Las señales en la parte trasera lo encienden",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 491",
|
||||
"_": "Missing Localizations: 508",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "BOTAS DE BUCEO",
|
||||
"item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.",
|
||||
"item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse",
|
||||
"create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil",
|
||||
"create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artefactos en movimiento por ninguna tubería",
|
||||
"create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artefacto",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada",
|
||||
"create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone",
|
||||
"create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1983",
|
||||
"_": "Missing Localizations: 1996",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "Tout ce qui _extrait_ de ce conteneur aura une _alimentation illimitée_ de l'objet spécifié. Les objets _insérés_ dans cette caisse seront _éliminés_.",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
|
||||
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "VOLANT D'INERTIE",
|
||||
"block.create.flywheel.tooltip.summary": "Une grande roue métallique pour _exploiter_ _et_ _stabiliser_ la force générée par un _moteur_ _attaché_. Les volants d'inertie se connectent aux moteurs s'ils sont séparés _d'un_ _mètre_ et tournés à un _angle_ de _90°_ les uns des autres.",
|
||||
"block.create.flywheel.tooltip.condition1": "Lorsqu'attaché à un moteur en marche",
|
||||
"block.create.flywheel.tooltip.behaviour1": "Fournit une _force_ _de_ rotation_ à un engin connecté basé sur la force et la vitesse du générateur.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1754",
|
||||
"_": "Missing Localizations: 1767",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "Qualsiasi _estrazione_ da questo contenitore fornisce _provviste infinite_ dell'oggetto in questione. Gli oggetti _inseriti_ in questo baule verranno _svuotati_.",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "BINARIO DI CONTROLLO",
|
||||
"block.create.controller_rail.tooltip.summary": "Un _binario alimentato unidirezionale_ capace di _controllare precisamente_ la _velocità di movimento_ di un carrello da miniera.",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "VOLANO",
|
||||
"block.create.flywheel.tooltip.summary": "Una grande ruota di metallo per _imbrigliare_ _e_ _stabilizzare_ la forza generata da un _motore_ _collegato_. I volani si collegano ai motori se sono a _1_ _metro_ di distanza e ad un _angolo_ _di_ _90°_ l'uno dall'altro.",
|
||||
"block.create.flywheel.tooltip.condition1": "Se collegato a un motore in funzione",
|
||||
"block.create.flywheel.tooltip.behaviour1": "Fornisce la _forza_ _di_ _rotazione_ a una macchina connessa in base alla forza e alla velocità del generatore.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 493",
|
||||
"_": "Missing Localizations: 510",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "設置して動力を供給したとき",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_圧縮空気_を_集めます_。速度は回転速度によって決まります。",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "潜水ブーツ",
|
||||
"item.create.diving_boots.tooltip.summary": "海底を歩けるようになる_重いブーツ_。",
|
||||
"item.create.diving_boots.tooltip.condition1": "装備したとき",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "ポールが無いとメカニカルピストンは動きません",
|
||||
"create.ponder.piston_pole.text_2": "後ろに付けたポールの長さによって、伸び縮みする長さが決まります",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "からくり液体交換",
|
||||
"create.ponder.portable_fluid_interface.text_1": "移動しているからくりの液体タンクは、どんなパイプでも出し入れできません",
|
||||
"create.ponder.portable_fluid_interface.text_2": "この機械は、からくりをブロックに戻すことなく液体を出し入れできます",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "レッドストーンによる制御",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "レッドストーン信号を受けている間、設置されたインターフェースは接続を行いません",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "パワードラッチによる信号制御",
|
||||
"create.ponder.powered_latch.text_1": "パワードラッチはレッドストーン信号で制御できるレバーです",
|
||||
"create.ponder.powered_latch.text_2": "後ろからの信号でオンに",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 493",
|
||||
"_": "Missing Localizations: 510",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "설치되고 동력으로 회전될 때",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "동력 속도에 따라 _공기_를 _모읍니다_.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "해저를 돌아다니기에 적합한 _무거운_ _부츠_ 한 켤레입니다.",
|
||||
"item.create.diving_boots.tooltip.condition1": "착용했을 때",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "연장 축이 없으면, 기계식 피스톤은 움직일 수 없습니다.",
|
||||
"create.ponder.piston_pole.text_2": "연장 축의 수가 곧 피스톤이 연장할 수 있는 거리입니다.",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "구조물 장치의 액체 교환",
|
||||
"create.ponder.portable_fluid_interface.text_1": "움직이는 구조물의 액체 탱크는 파이프와 연결되지 않습니다.",
|
||||
"create.ponder.portable_fluid_interface.text_2": "액체 인터페이스는 장치를 멈추지 않아도 탱크와 상호작용할 수 있습니다.",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "레드스톤 설정",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "레드스톤 신호를 받으면 인터페이스가 작동하지 않습니다.",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "레드스톤 걸쇠 사용하기",
|
||||
"create.ponder.powered_latch.text_1": "레드스톤 걸쇠는 설정 가능한 레버입니다.",
|
||||
"create.ponder.powered_latch.text_2": "뒤에서 오는 신호는 걸쇠 신호를 키고...",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2327",
|
||||
"_": "Missing Localizations: 2344",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
|
||||
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 866",
|
||||
"_": "Missing Localizations: 883",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "Po postawieniu i zasileniu siłą obrotową",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_Zbiera_ _sprężone_ _powietrze_, w tempie zależnym od prędkości obrotu.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "BUTY DO NURKOWANIA",
|
||||
"item.create.diving_boots.tooltip.summary": "Para _ciężkich_ _butów_, pozwalająca na efektywniejsze _przemierzanie_ _dna_ _oceanu_.",
|
||||
"item.create.diving_boots.tooltip.condition1": "Kiedy na stopach",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "Bez przyłączonych przedłużeń, mechaniczny tłok nie może się wysunąć",
|
||||
"create.ponder.piston_pole.text_2": "Długość przedłużenia z tyłu ustala maksymalny zasięg tłoka",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "Przekazywanie cieczy z ruchomych maszyn do stojących bloków",
|
||||
"create.ponder.portable_fluid_interface.text_1": "Zwyczajne rury nie mają dostępu do zbiorników z ruchomych maszyn",
|
||||
"create.ponder.portable_fluid_interface.text_2": "Ten blok pozwala na transport cieczy bez potrzeby zatrzymywania maszyny",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "Kontrola Redstonem",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "Zasilenie Redstonem zapobiegnie połączeniu się interfejsów",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "Kontrola sygnału z użyciem zaawansowanego zasilanego przełącznika",
|
||||
"create.ponder.powered_latch.text_1": "Zaawansowane zasilane przełączniki to dźwignie, które można kontrolować przez Redstone",
|
||||
"create.ponder.powered_latch.text_2": "Sygnały otrzymane z tyłu włączają je...",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1360",
|
||||
"_": "Missing Localizations: 1377",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
|
||||
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2036",
|
||||
"_": "Missing Localizations: 2053",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
|
||||
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move",
|
||||
"create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange",
|
||||
"create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes",
|
||||
"create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch",
|
||||
"create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers",
|
||||
"create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 494",
|
||||
"_": "Missing Localizations: 511",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "Când este plasat, Alimentat de Cinetice",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_Colectează_ _Presiune de_ _Aer_ într-un ritm depinzând de Viteză de Rotație.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "BOCANCI DE SCUFUNDARE",
|
||||
"item.create.diving_boots.tooltip.summary": "O pereche de _bocanci_ _grei_, permițând traversare mai bună a fundului Oceanului.",
|
||||
"item.create.diving_boots.tooltip.condition1": "Când sunt purtați",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "Fără Brațe atașate, un Piston Mecanic nu se poate mișca",
|
||||
"create.ponder.piston_pole.text_2": "Lungimea unui braț adăugat în spatele lui determină Raza De Extensie",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "Schimb De Fluide în Invenție",
|
||||
"create.ponder.portable_fluid_interface.text_1": "Rezervoarele De Fluid pe invenții mișcătoare nu pot fi accesate de nicio conductă",
|
||||
"create.ponder.portable_fluid_interface.text_2": "Acest component oate interacționa cu rezervoare de fluid fără nevoia de a opri invenția",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "Control Redstone",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "Puterea redstone va preveni interfața staționară de la angajare",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "Controlarea semnalelor folosind Maneta Alimentată",
|
||||
"create.ponder.powered_latch.text_1": "Manetele Alimentate sunt Manete controlabile cu redstone",
|
||||
"create.ponder.powered_latch.text_2": "Semnalele din spate o pornesc",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 871",
|
||||
"_": "Missing Localizations: 888",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "Все, что извлечено из этого контейнера, обеспечит бесконечную поставку указанного предмета. Предметы, _вставленные_ в этот ящик, будут _аннулированы_.",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "КОНТРОЛИРУЮЩАЯ РЕЛЬСА",
|
||||
"block.create.controller_rail.tooltip.summary": "_Все-направленные запитанные рельсы_, позволяющие _точную настройку_ _скорости_ вагонеток.",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "При размещении и питании от кинетической энергии",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "Собирает и сжимает воздух со скоростью, зависящей от скорости вращения.",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "БОТИНКИ ДЛЯ ДАЙВИНГА",
|
||||
"item.create.diving_boots.tooltip.summary": "Пара _тяжелых_ _ботинок_, позволяющая лучше передвигаться по океанскому дну.",
|
||||
"item.create.diving_boots.tooltip.condition1": "При ношении",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "Без присоединённых Удлинителей, Механический поршень не может двигаться",
|
||||
"create.ponder.piston_pole.text_2": "Длина стержня, добавленного к его задней части, определяет Диапазон выдвижения.",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "Портативном жидкостном интерфейсе на штуковинах",
|
||||
"create.ponder.portable_fluid_interface.text_1": "Жидкостные баки на движущихся штуковинах не могут быть доступны ни каким трубам",
|
||||
"create.ponder.portable_fluid_interface.text_2": "Этот интерфейс может взаимодействовать с жидкостными баками без необходимости останавливать штуковину",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "Управлении редстоуном",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "Редстоун сигнал предотвратит включение стационарного интерфейса",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "Управлении сигналами при помощи Питаемого рычага",
|
||||
"create.ponder.powered_latch.text_1": "Питаемый рычаг - управляемый редстоуном рычаг",
|
||||
"create.ponder.powered_latch.text_2": "Сигнал сзади включает его",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 491",
|
||||
"_": "Missing Localizations: 508",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "放下并接入动力时",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "基于转速从周围环境中_收集_并_加压空气_",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "潜水靴",
|
||||
"item.create.diving_boots.tooltip.summary": "一双_沉重的靴子_,让穿戴者可以更方便的探索海底。",
|
||||
"item.create.diving_boots.tooltip.condition1": "穿在脚上时",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "若无相接的活塞杆,动力活塞无法移动其他方块",
|
||||
"create.ponder.piston_pole.text_2": "在其背面安装的活塞杆长度,决定了活塞的推动范围",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "装置流体交换",
|
||||
"create.ponder.portable_fluid_interface.text_1": "管道无法与运动装置内的流体储罐直接交互",
|
||||
"create.ponder.portable_fluid_interface.text_2": "这一组件可以在不停止装置的情况下与装置内的流体存储进行交互",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "红石控制",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "通入红石信号可以阻止固定侧接口的连接行为",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "使用锁存器控制信号",
|
||||
"create.ponder.powered_latch.text_1": "锁存器是一种可以用红石信号控制的拉杆",
|
||||
"create.ponder.powered_latch.text_2": "后方输入的信号会将其设为开启状态",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 885",
|
||||
"_": "Missing Localizations: 902",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1954,9 +1954,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "容器將會從虛空中提供_無限量_的標記物品,並且任何放置到容器中的物品都會被_送入虛空_",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "控制鐵軌",
|
||||
"block.create.controller_rail.tooltip.summary": "單向電動導軌,能夠精細控制礦車的移動速度。",
|
||||
|
@ -2004,6 +2004,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "當放置時,由轉動來補充驅動",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "旋轉的速度決定收集_壓縮空氣_的速率",
|
||||
|
||||
"block.create.flywheel.tooltip": "UNLOCALIZED: FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "UNLOCALIZED: _Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "UNLOCALIZED: Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "潛水鞋",
|
||||
"item.create.diving_boots.tooltip.summary": "一雙_沈重的鞋子_,提供更好的水下移動",
|
||||
"item.create.diving_boots.tooltip.condition1": "當裝備時",
|
||||
|
@ -2633,6 +2638,16 @@
|
|||
"create.ponder.piston_pole.text_1": "若無相接的延長杆,動力活塞無法移動其他方塊",
|
||||
"create.ponder.piston_pole.text_2": "在其背面安裝的延長杆長度,決定了活塞的推動範圍",
|
||||
|
||||
"create.ponder.placement.header": "UNLOCALIZED: Placing Train Tracks",
|
||||
"create.ponder.placement.text_1": "UNLOCALIZED: A new type of rail designed for Train Contraptions",
|
||||
"create.ponder.placement.text_2": "UNLOCALIZED: To place rows of track in bulk, click on an existing track",
|
||||
"create.ponder.placement.text_3": "UNLOCALIZED: Then place or select a second track",
|
||||
"create.ponder.placement.text_4": "UNLOCALIZED: Tracks can also be placed as turns or slopes",
|
||||
"create.ponder.placement.text_5": "UNLOCALIZED: When connecting, tracks will try to make each turn equally sized",
|
||||
"create.ponder.placement.text_6": "UNLOCALIZED: Holding the sprint key while connecting...",
|
||||
"create.ponder.placement.text_7": "UNLOCALIZED: ...will create the longest fitting bend instead",
|
||||
"create.ponder.placement.text_8": "UNLOCALIZED: Materials in the off-hand will be paved under tracks automatically",
|
||||
|
||||
"create.ponder.portable_fluid_interface.header": "移動式液體口",
|
||||
"create.ponder.portable_fluid_interface.text_1": "任何管道線都無法與移動裝置上的液體罐連接",
|
||||
"create.ponder.portable_fluid_interface.text_2": "該元件可以與液體罐相互作用,而無需停止裝置",
|
||||
|
@ -2656,6 +2671,11 @@
|
|||
"create.ponder.portable_storage_interface_redstone.header": "紅石控制",
|
||||
"create.ponder.portable_storage_interface_redstone.text_1": "通入紅石訊號可以阻止固定側介面的連接行為",
|
||||
|
||||
"create.ponder.portal.header": "UNLOCALIZED: Tracks and the Nether",
|
||||
"create.ponder.portal.text_1": "UNLOCALIZED: Tracks placed up against a nether portal...",
|
||||
"create.ponder.portal.text_2": "UNLOCALIZED: ...will attempt to create a paired track on the other side",
|
||||
"create.ponder.portal.text_3": "UNLOCALIZED: Trains on this track are now able to travel across dimensions",
|
||||
|
||||
"create.ponder.powered_latch.header": "使用閂鎖器控制訊號",
|
||||
"create.ponder.powered_latch.text_1": "閂鎖器是一種可以用紅石訊號控制的拉杆",
|
||||
"create.ponder.powered_latch.text_2": "後方輸入的訊號會將其設為開啟狀態",
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.network.NetworkEvent.Context;
|
||||
|
||||
public class ContraptionRelocationPacket extends SimplePacketBase {
|
||||
|
||||
int entityID;
|
||||
|
||||
public ContraptionRelocationPacket(int entityID) {
|
||||
this.entityID = entityID;
|
||||
}
|
||||
|
||||
public ContraptionRelocationPacket(FriendlyByteBuf buffer) {
|
||||
entityID = buffer.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(entityID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Supplier<Context> context) {
|
||||
context.get()
|
||||
.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT,
|
||||
() -> () -> OrientedContraptionEntity.handleRelocationPacket(this)));
|
||||
context.get()
|
||||
.setPacketHandled(true);
|
||||
}
|
||||
|
||||
}
|
|
@ -22,6 +22,7 @@ import com.simibubi.create.foundation.utility.Couple;
|
|||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
|
@ -597,4 +598,10 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||
|
||||
return Vec3.ZERO;
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static void handleRelocationPacket(ContraptionRelocationPacket packet) {
|
||||
if (Minecraft.getInstance().level.getEntity(packet.entityID) instanceof OrientedContraptionEntity oce)
|
||||
oce.nonDamageTicks = 10;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,8 +119,12 @@ public class GlobalRailwayManager {
|
|||
|
||||
//
|
||||
|
||||
public TrackGraph getOrCreateGraph(UUID graphID) {
|
||||
return trackNetworks.computeIfAbsent(graphID, uid -> new TrackGraph(graphID));
|
||||
public TrackGraph getOrCreateGraph(UUID graphID, int netId) {
|
||||
return trackNetworks.computeIfAbsent(graphID, uid -> {
|
||||
TrackGraph trackGraph = new TrackGraph(graphID);
|
||||
trackGraph.netId = netId;
|
||||
return trackGraph;
|
||||
});
|
||||
}
|
||||
|
||||
public void putGraphWithDefaultGroup(TrackGraph graph) {
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.util.Random;
|
|||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
@ -29,6 +30,7 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.
|
|||
import com.simibubi.create.foundation.utility.Color;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.Pair;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
@ -41,7 +43,8 @@ import net.minecraft.world.phys.Vec3;
|
|||
|
||||
public class TrackGraph {
|
||||
|
||||
public static final AtomicInteger netIdGenerator = new AtomicInteger();
|
||||
public static final AtomicInteger graphNetIdGenerator = new AtomicInteger();
|
||||
public static final AtomicInteger nodeNetIdGenerator = new AtomicInteger();
|
||||
|
||||
public UUID id;
|
||||
public Color color;
|
||||
|
@ -54,6 +57,9 @@ public class TrackGraph {
|
|||
|
||||
List<TrackEdge> deferredIntersectionUpdates;
|
||||
|
||||
int netId;
|
||||
int checksum = 0;
|
||||
|
||||
public TrackGraph() {
|
||||
this(UUID.randomUUID());
|
||||
}
|
||||
|
@ -66,6 +72,7 @@ public class TrackGraph {
|
|||
connectionsByNode = new IdentityHashMap<>();
|
||||
edgePoints = new EdgePointStorage();
|
||||
deferredIntersectionUpdates = new ArrayList<>();
|
||||
netId = nextGraphId();
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -106,6 +113,7 @@ public class TrackGraph {
|
|||
}
|
||||
|
||||
public void invalidateBounds() {
|
||||
checksum = 0;
|
||||
bounds.clear();
|
||||
}
|
||||
|
||||
|
@ -230,7 +238,11 @@ public class TrackGraph {
|
|||
}
|
||||
|
||||
public static int nextNodeId() {
|
||||
return netIdGenerator.incrementAndGet();
|
||||
return nodeNetIdGenerator.incrementAndGet();
|
||||
}
|
||||
|
||||
public static int nextGraphId() {
|
||||
return graphNetIdGenerator.incrementAndGet();
|
||||
}
|
||||
|
||||
public void transferAll(TrackGraph toOther) {
|
||||
|
@ -267,7 +279,7 @@ public class TrackGraph {
|
|||
}
|
||||
|
||||
public Set<TrackGraph> findDisconnectedGraphs(@Nullable LevelAccessor level,
|
||||
@Nullable Map<Integer, UUID> preAssignedIds) {
|
||||
@Nullable Map<Integer, Pair<Integer, UUID>> splitSubGraphs) {
|
||||
Set<TrackGraph> dicovered = new HashSet<>();
|
||||
Set<TrackNodeLocation> vertices = new HashSet<>(nodes.keySet());
|
||||
List<TrackNodeLocation> frontier = new ArrayList<>();
|
||||
|
@ -293,8 +305,11 @@ public class TrackGraph {
|
|||
frontier.add(connected.getLocation());
|
||||
|
||||
if (target != null) {
|
||||
if (preAssignedIds != null && preAssignedIds.containsKey(currentNode.getNetId()))
|
||||
target.setId(preAssignedIds.get(currentNode.getNetId()));
|
||||
if (splitSubGraphs != null && splitSubGraphs.containsKey(currentNode.getNetId())) {
|
||||
Pair<Integer, UUID> ids = splitSubGraphs.get(currentNode.getNetId());
|
||||
target.setId(ids.getSecond());
|
||||
target.netId = ids.getFirst();
|
||||
}
|
||||
transfer(level, currentNode, target);
|
||||
}
|
||||
}
|
||||
|
@ -311,6 +326,18 @@ public class TrackGraph {
|
|||
color = Color.rainbowColor(new Random(id.getLeastSignificantBits()).nextInt());
|
||||
}
|
||||
|
||||
public void setNetId(int id) {
|
||||
this.netId = id;
|
||||
}
|
||||
|
||||
public int getChecksum() {
|
||||
if (checksum == 0)
|
||||
checksum = nodes.values()
|
||||
.stream()
|
||||
.collect(Collectors.summingInt(TrackNode::getNetId));
|
||||
return checksum;
|
||||
}
|
||||
|
||||
public void transfer(LevelAccessor level, TrackNode node, TrackGraph target) {
|
||||
target.addNode(node);
|
||||
target.invalidateBounds();
|
||||
|
|
|
@ -11,12 +11,13 @@ import net.minecraftforge.network.NetworkEvent.Context;
|
|||
public abstract class TrackGraphPacket extends SimplePacketBase {
|
||||
|
||||
public UUID graphId;
|
||||
public int netId;
|
||||
public boolean packetDeletesGraph;
|
||||
|
||||
@Override
|
||||
public void handle(Supplier<Context> context) {
|
||||
context.get()
|
||||
.enqueueWork(() -> handle(CreateClient.RAILWAYS, CreateClient.RAILWAYS.getOrCreateGraph(graphId)));
|
||||
.enqueueWork(() -> handle(CreateClient.RAILWAYS, CreateClient.RAILWAYS.getOrCreateGraph(graphId, netId)));
|
||||
context.get()
|
||||
.setPacketHandled(true);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
package com.simibubi.create.content.logistics.trains;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraftforge.network.NetworkEvent.Context;
|
||||
|
||||
public class TrackGraphRequestPacket extends SimplePacketBase {
|
||||
|
||||
private int netId;
|
||||
|
||||
public TrackGraphRequestPacket(int netId) {
|
||||
this.netId = netId;
|
||||
}
|
||||
|
||||
public TrackGraphRequestPacket(FriendlyByteBuf buffer) {
|
||||
netId = buffer.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(netId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Supplier<Context> context) {
|
||||
context.get()
|
||||
.enqueueWork(() -> {
|
||||
for (TrackGraph trackGraph : Create.RAILWAYS.trackNetworks.values()) {
|
||||
if (trackGraph.netId == netId) {
|
||||
Create.RAILWAYS.sync.sendFullGraphTo(trackGraph, context.get()
|
||||
.getSender());
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
context.get()
|
||||
.setPacketHandled(true);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package com.simibubi.create.content.logistics.trains;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.networking.AllPackets;
|
||||
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraftforge.network.NetworkEvent.Context;
|
||||
|
||||
public class TrackGraphRollCallPacket extends SimplePacketBase {
|
||||
|
||||
int[] ints;
|
||||
|
||||
public TrackGraphRollCallPacket() {
|
||||
GlobalRailwayManager manager = Create.RAILWAYS;
|
||||
ints = new int[manager.trackNetworks.size() * 2];
|
||||
int i = 0;
|
||||
for (TrackGraph trackGraph : manager.trackNetworks.values()) {
|
||||
ints[i] = trackGraph.netId;
|
||||
ints[i + 1] = trackGraph.getChecksum();
|
||||
i += 2;
|
||||
}
|
||||
}
|
||||
|
||||
public TrackGraphRollCallPacket(FriendlyByteBuf buffer) {
|
||||
ints = new int[buffer.readVarInt()];
|
||||
for (int i = 0; i < ints.length; i++)
|
||||
ints[i] = buffer.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeVarInt(ints.length);
|
||||
for (int i : ints)
|
||||
buffer.writeInt(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Supplier<Context> context) {
|
||||
context.get()
|
||||
.enqueueWork(() -> {
|
||||
|
||||
GlobalRailwayManager manager = Create.RAILWAYS.sided(null);
|
||||
Set<UUID> unusedIds = new HashSet<>(manager.trackNetworks.keySet());
|
||||
List<Integer> failedIds = new ArrayList<>();
|
||||
Map<Integer, UUID> idByNetId = new HashMap<>();
|
||||
manager.trackNetworks.forEach((uuid, g) -> idByNetId.put(g.netId, uuid));
|
||||
|
||||
for (int i = 0; i < ints.length; i += 2) {
|
||||
UUID uuid = idByNetId.get(ints[i]);
|
||||
if (uuid == null) {
|
||||
failedIds.add(ints[i]);
|
||||
continue;
|
||||
}
|
||||
unusedIds.remove(uuid);
|
||||
TrackGraph trackGraph = manager.trackNetworks.get(uuid);
|
||||
if (trackGraph.getChecksum() == ints[i + 1])
|
||||
continue;
|
||||
Create.LOGGER.warn("Track network: " + uuid.toString()
|
||||
.substring(0, 6) + " failed its checksum; Requesting refresh");
|
||||
failedIds.add(ints[i]);
|
||||
}
|
||||
|
||||
for (Integer failed : failedIds)
|
||||
AllPackets.channel.sendToServer(new TrackGraphRequestPacket(failed));
|
||||
for (UUID unused : unusedIds)
|
||||
manager.trackNetworks.remove(unused);
|
||||
|
||||
});
|
||||
context.get()
|
||||
.setPacketHandled(true);
|
||||
}
|
||||
|
||||
}
|
|
@ -24,44 +24,56 @@ import net.minecraftforge.network.PacketDistributor;
|
|||
public class TrackGraphSync {
|
||||
|
||||
List<TrackGraphPacket> queuedPackets = new ArrayList<>();
|
||||
int rollCallIn;
|
||||
|
||||
public void serverTick() {
|
||||
flushGraphPacket(null);
|
||||
if (queuedPackets.isEmpty())
|
||||
return;
|
||||
flushGraphPacket();
|
||||
|
||||
if (!queuedPackets.isEmpty()) {
|
||||
for (TrackGraphPacket packet : queuedPackets) {
|
||||
if (!packet.packetDeletesGraph && !Create.RAILWAYS.trackNetworks.containsKey(packet.graphId))
|
||||
continue;
|
||||
AllPackets.channel.send(PacketDistributor.ALL.noArg(), packet);
|
||||
rollCallIn = 3;
|
||||
}
|
||||
|
||||
queuedPackets.clear();
|
||||
}
|
||||
|
||||
if (rollCallIn <= 0)
|
||||
return;
|
||||
rollCallIn--;
|
||||
if (rollCallIn > 0)
|
||||
return;
|
||||
|
||||
sendRollCall();
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
public void nodeAdded(TrackGraph graph, TrackNode node) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.addedNodes.put(node.getNetId(), Pair.of(node.getLocation(), node.getNormal()));
|
||||
}
|
||||
|
||||
public void edgeAdded(TrackGraph graph, TrackNode node1, TrackNode node2, TrackEdge edge) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.addedEdges
|
||||
.add(Pair.of(Couple.create(node1.getNetId(), node2.getNetId()), edge.getTurn()));
|
||||
}
|
||||
|
||||
public void pointAdded(TrackGraph graph, TrackEdgePoint point) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.addedEdgePoints.add(point);
|
||||
}
|
||||
|
||||
public void pointRemoved(TrackGraph graph, TrackEdgePoint point) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.removedEdgePoints.add(point.getId());
|
||||
}
|
||||
|
||||
public void nodeRemoved(TrackGraph graph, TrackNode node) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
int nodeId = node.getNetId();
|
||||
if (currentGraphSyncPacket.addedNodes.remove(nodeId) == null)
|
||||
currentGraphSyncPacket.removedNodes.add(nodeId);
|
||||
|
@ -75,15 +87,15 @@ public class TrackGraphSync {
|
|||
}
|
||||
|
||||
public void graphSplit(TrackGraph graph, Set<TrackGraph> additional) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
additional.forEach(rg -> currentGraphSyncPacket.splitSubGraphs.put(rg.nodesById.keySet()
|
||||
.stream()
|
||||
.findFirst()
|
||||
.get(), rg.id));
|
||||
.get(), Pair.of(rg.netId, rg.id)));
|
||||
}
|
||||
|
||||
public void graphRemoved(TrackGraph graph) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.packetDeletesGraph = true;
|
||||
}
|
||||
|
||||
|
@ -106,18 +118,19 @@ public class TrackGraphSync {
|
|||
//
|
||||
|
||||
public void edgeDataChanged(TrackGraph graph, TrackNode node1, TrackNode node2, TrackEdge edge) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.syncEdgeData(node1, node2, edge);
|
||||
}
|
||||
|
||||
public void edgeDataChanged(TrackGraph graph, TrackNode node1, TrackNode node2, TrackEdge edge, TrackEdge edge2) {
|
||||
flushGraphPacket(graph.id);
|
||||
flushGraphPacket(graph);
|
||||
currentGraphSyncPacket.syncEdgeData(node1, node2, edge);
|
||||
currentGraphSyncPacket.syncEdgeData(node2, node1, edge2);
|
||||
}
|
||||
|
||||
public void sendFullGraphTo(TrackGraph graph, ServerPlayer player) {
|
||||
TrackGraphSyncPacket packet = new TrackGraphSyncPacket(graph.id);
|
||||
TrackGraphSyncPacket packet = new TrackGraphSyncPacket(graph.id, graph.netId);
|
||||
packet.fullWipe = true;
|
||||
int sent = 0;
|
||||
|
||||
for (TrackNode node : graph.nodes.values()) {
|
||||
|
@ -164,9 +177,13 @@ public class TrackGraphSync {
|
|||
flushAndCreateNew(graph, player, packet);
|
||||
}
|
||||
|
||||
private void sendRollCall() {
|
||||
AllPackets.channel.send(PacketDistributor.ALL.noArg(), new TrackGraphRollCallPacket());
|
||||
}
|
||||
|
||||
private TrackGraphSyncPacket flushAndCreateNew(TrackGraph graph, ServerPlayer player, TrackGraphSyncPacket packet) {
|
||||
AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> player), packet);
|
||||
packet = new TrackGraphSyncPacket(graph.id);
|
||||
packet = new TrackGraphSyncPacket(graph.id, graph.netId);
|
||||
return packet;
|
||||
}
|
||||
|
||||
|
@ -174,7 +191,15 @@ public class TrackGraphSync {
|
|||
|
||||
private TrackGraphSyncPacket currentGraphSyncPacket;
|
||||
|
||||
private void flushGraphPacket(@Nullable UUID graphId) {
|
||||
private void flushGraphPacket() {
|
||||
flushGraphPacket(null, 0);
|
||||
}
|
||||
|
||||
private void flushGraphPacket(TrackGraph graph) {
|
||||
flushGraphPacket(graph.id, graph.netId);
|
||||
}
|
||||
|
||||
private void flushGraphPacket(@Nullable UUID graphId, int netId) {
|
||||
if (currentGraphSyncPacket != null) {
|
||||
if (currentGraphSyncPacket.graphId.equals(graphId))
|
||||
return;
|
||||
|
@ -183,7 +208,7 @@ public class TrackGraphSync {
|
|||
}
|
||||
|
||||
if (graphId != null)
|
||||
currentGraphSyncPacket = new TrackGraphSyncPacket(graphId);
|
||||
currentGraphSyncPacket = new TrackGraphSyncPacket(graphId, netId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import java.util.Map.Entry;
|
|||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgeData;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePointType;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint;
|
||||
|
@ -25,13 +26,16 @@ public class TrackGraphSyncPacket extends TrackGraphPacket {
|
|||
List<Integer> removedNodes;
|
||||
List<TrackEdgePoint> addedEdgePoints;
|
||||
List<UUID> removedEdgePoints;
|
||||
Map<Integer, UUID> splitSubGraphs;
|
||||
Map<Integer, Pair<Integer, UUID>> splitSubGraphs;
|
||||
Map<Couple<Integer>, Pair<Integer, List<UUID>>> updatedEdgeData;
|
||||
|
||||
boolean fullWipe;
|
||||
|
||||
static final int NULL_GROUP = 0, PASSIVE_GROUP = 1, GROUP = 2;
|
||||
|
||||
public TrackGraphSyncPacket(UUID graphId) {
|
||||
public TrackGraphSyncPacket(UUID graphId, int netId) {
|
||||
this.graphId = graphId;
|
||||
this.netId = netId;
|
||||
addedNodes = new HashMap<>();
|
||||
addedEdges = new ArrayList<>();
|
||||
removedNodes = new ArrayList<>();
|
||||
|
@ -46,7 +50,9 @@ public class TrackGraphSyncPacket extends TrackGraphPacket {
|
|||
int size;
|
||||
|
||||
graphId = buffer.readUUID();
|
||||
netId = buffer.readInt();
|
||||
packetDeletesGraph = buffer.readBoolean();
|
||||
fullWipe = buffer.readBoolean();
|
||||
|
||||
if (packetDeletesGraph)
|
||||
return;
|
||||
|
@ -96,13 +102,15 @@ public class TrackGraphSyncPacket extends TrackGraphPacket {
|
|||
|
||||
size = buffer.readVarInt();
|
||||
for (int i = 0; i < size; i++)
|
||||
splitSubGraphs.put(buffer.readVarInt(), buffer.readUUID());
|
||||
splitSubGraphs.put(buffer.readVarInt(), Pair.of(buffer.readInt(), buffer.readUUID()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeUUID(graphId);
|
||||
buffer.writeInt(netId);
|
||||
buffer.writeBoolean(packetDeletesGraph);
|
||||
buffer.writeBoolean(fullWipe);
|
||||
|
||||
if (packetDeletesGraph)
|
||||
return;
|
||||
|
@ -152,9 +160,10 @@ public class TrackGraphSyncPacket extends TrackGraphPacket {
|
|||
}
|
||||
|
||||
buffer.writeVarInt(splitSubGraphs.size());
|
||||
splitSubGraphs.forEach((node, uuid) -> {
|
||||
splitSubGraphs.forEach((node, p) -> {
|
||||
buffer.writeVarInt(node);
|
||||
buffer.writeUUID(uuid);
|
||||
buffer.writeInt(p.getFirst());
|
||||
buffer.writeUUID(p.getSecond());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -165,6 +174,12 @@ public class TrackGraphSyncPacket extends TrackGraphPacket {
|
|||
return;
|
||||
}
|
||||
|
||||
if (fullWipe) {
|
||||
manager.removeGraph(graph);
|
||||
graph = Create.RAILWAYS.sided(null)
|
||||
.getOrCreateGraph(graphId, netId);
|
||||
}
|
||||
|
||||
for (int nodeId : removedNodes) {
|
||||
TrackNode node = graph.getNode(nodeId);
|
||||
if (node != null)
|
||||
|
|
|
@ -37,7 +37,7 @@ public class TrackGraphVisualizer {
|
|||
|
||||
Vec3 camera = cameraEntity.getEyePosition();
|
||||
Outliner outliner = CreateClient.OUTLINER;
|
||||
boolean ctrl = AllKeys.isKeyDown(GLFW.GLFW_KEY_LEFT_CONTROL);
|
||||
boolean ctrl = false; // AllKeys.isKeyDown(GLFW.GLFW_KEY_LEFT_CONTROL);
|
||||
Map<UUID, SignalEdgeGroup> allGroups = Create.RAILWAYS.sided(null).signalEdgeGroups;
|
||||
float width = 1 / 8f;
|
||||
|
||||
|
|
|
@ -258,6 +258,8 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
|
|||
}
|
||||
|
||||
DimensionalCarriageEntity dce = carriage.getDimensional(level);
|
||||
if (tickCount % 10 == 0)
|
||||
updateTrackGraph();
|
||||
|
||||
if (!dce.pointsInitialised)
|
||||
return;
|
||||
|
|
|
@ -4,7 +4,9 @@ import java.util.UUID;
|
|||
import java.util.function.Supplier;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionRelocationPacket;
|
||||
import com.simibubi.create.content.logistics.trains.track.BezierTrackPointLocation;
|
||||
import com.simibubi.create.foundation.networking.AllPackets;
|
||||
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
@ -16,6 +18,7 @@ import net.minecraft.server.level.ServerPlayer;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.network.NetworkEvent.Context;
|
||||
import net.minecraftforge.network.PacketDistributor;
|
||||
|
||||
public class TrainRelocationPacket extends SimplePacketBase {
|
||||
|
||||
|
@ -95,7 +98,11 @@ public class TrainRelocationPacket extends SimplePacketBase {
|
|||
if (TrainRelocator.relocate(train, sender.level, pos, hoveredBezier, direction, lookAngle, false)) {
|
||||
sender.displayClientMessage(Lang.translate("train.relocate.success")
|
||||
.withStyle(ChatFormatting.GREEN), true);
|
||||
train.carriages.forEach(c -> c.forEachPresentEntity(e -> e.nonDamageTicks = 10));
|
||||
train.carriages.forEach(c -> c.forEachPresentEntity(e -> {
|
||||
e.nonDamageTicks = 10;
|
||||
AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY.with(() -> e),
|
||||
new ContraptionRelocationPacket(e.getId()));
|
||||
}));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
|||
w += section.getSize() + (section.hasGap ? 8 : 1);
|
||||
}
|
||||
|
||||
ms.translate(flapTe.xSize * 16 - w / 2 + 1, 4, 0);
|
||||
ms.translate(flapTe.xSize * 16 - w / 2 + 1, 4.5f, 0);
|
||||
|
||||
Pose transform = ms.last();
|
||||
FlapDisplayRenderOutput renderOutput = new FlapDisplayRenderOutput(buffer, color, transform.pose(), light,
|
||||
|
@ -94,9 +94,9 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
|||
String text = section.renderCharsIndividually() || !section.spinning[0] ? section.text
|
||||
: section.cyclingOptions[((ticks / 3) + i * 13) % section.cyclingOptions.length];
|
||||
StringDecomposer.iterateFormatted(text, Style.EMPTY, renderOutput);
|
||||
ms.translate(0, 0, -1 / 4f);
|
||||
renderOutput.finish(0x55000000);
|
||||
ms.translate(0, 0, 1 / 4f);
|
||||
// ms.translate(0, 0, -1 / 4f);
|
||||
// renderOutput.finish(0x55000000);
|
||||
// ms.translate(0, 0, 1 / 4f);
|
||||
ms.translate(section.size + (section.hasGap ? 8 : 1), 0, 0);
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
|||
boolean paused) {
|
||||
this.bufferSource = buffer;
|
||||
this.lineIndex = lineIndex;
|
||||
this.a = (color >> 24 & 255) / 255f;
|
||||
this.a = .75f;
|
||||
this.r = (color >> 16 & 255) / 255f;
|
||||
this.g = (color >> 8 & 255) / 255f;
|
||||
this.b = (color & 255) / 255f;
|
||||
|
|
|
@ -125,6 +125,9 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable
|
|||
super.read(tag, clientPacket);
|
||||
invalidateRenderBoundingBox();
|
||||
|
||||
if (tag.contains("PrevTrainName"))
|
||||
lastDisassembledTrainName = Component.Serializer.fromJson(tag.getString("PrevTrainName"));
|
||||
|
||||
if (!clientPacket)
|
||||
return;
|
||||
if (!tag.contains("ImminentTrain")) {
|
||||
|
@ -148,6 +151,9 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable
|
|||
AssemblyException.write(tag, lastException);
|
||||
tag.putInt("FailedCarriageIndex", failedCarriageIndex);
|
||||
|
||||
if (lastDisassembledTrainName != null)
|
||||
tag.putString("PrevTrainName", Component.Serializer.toJson(lastDisassembledTrainName));
|
||||
|
||||
super.write(tag, clientPacket);
|
||||
|
||||
if (!clientPacket)
|
||||
|
|
|
@ -150,6 +150,7 @@ public class StandardBogeyBlock extends Block
|
|||
|
||||
private void renderBogey(float wheelAngle, PoseStack ms, int light, VertexConsumer vb, BlockState air) {
|
||||
CachedBufferer.partial(AllBlockPartials.BOGEY_FRAME, air)
|
||||
.scale(1 - 1 / 512f)
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
|
||||
|
@ -176,6 +177,7 @@ public class StandardBogeyBlock extends Block
|
|||
.renderInto(ms, vb);
|
||||
|
||||
CachedBufferer.partial(AllBlockPartials.BOGEY_DRIVE, air)
|
||||
.scale(1 - 1 / 512f)
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
CachedBufferer.partial(AllBlockPartials.BOGEY_PISTON, air)
|
||||
|
|
|
@ -10,6 +10,7 @@ import java.util.function.Supplier;
|
|||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionBlockChangedPacket;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionDisassemblyPacket;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionRelocationPacket;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionStallPacket;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.TrainCollisionPacket;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraptionUpdatePacket;
|
||||
|
@ -54,6 +55,8 @@ import com.simibubi.create.content.logistics.item.filter.FilterScreenPacket;
|
|||
import com.simibubi.create.content.logistics.packet.ConfigureStockswitchPacket;
|
||||
import com.simibubi.create.content.logistics.packet.FunnelFlapPacket;
|
||||
import com.simibubi.create.content.logistics.packet.TunnelFlapPacket;
|
||||
import com.simibubi.create.content.logistics.trains.TrackGraphRequestPacket;
|
||||
import com.simibubi.create.content.logistics.trains.TrackGraphRollCallPacket;
|
||||
import com.simibubi.create.content.logistics.trains.TrackGraphSyncPacket;
|
||||
import com.simibubi.create.content.logistics.trains.entity.TrainPacket;
|
||||
import com.simibubi.create.content.logistics.trains.entity.TrainPromptPacket;
|
||||
|
@ -144,6 +147,7 @@ public enum AllPackets {
|
|||
C_TRAIN_HONK(HonkPacket.Serverbound.class, HonkPacket.Serverbound::new, PLAY_TO_SERVER),
|
||||
OBSERVER_STRESSOMETER(GaugeObservedPacket.class, GaugeObservedPacket::new, PLAY_TO_SERVER),
|
||||
EJECTOR_AWARD(EjectorAwardPacket.class, EjectorAwardPacket::new, PLAY_TO_SERVER),
|
||||
TRACK_GRAPH_REQUEST(TrackGraphRequestPacket.class, TrackGraphRequestPacket::new, PLAY_TO_SERVER),
|
||||
|
||||
// Server to Client
|
||||
SYMMETRY_EFFECT(SymmetryEffectPacket.class, SymmetryEffectPacket::new, PLAY_TO_CLIENT),
|
||||
|
@ -178,6 +182,8 @@ public enum AllPackets {
|
|||
S_TRAIN_HUD(TrainHUDUpdatePacket.class, TrainHUDUpdatePacket::new, PLAY_TO_CLIENT),
|
||||
S_TRAIN_HONK(HonkPacket.class, HonkPacket::new, PLAY_TO_CLIENT),
|
||||
S_TRAIN_PROMPT(TrainPromptPacket.class, TrainPromptPacket::new, PLAY_TO_CLIENT),
|
||||
CONTRAPTION_RELOCATION(ContraptionRelocationPacket.class, ContraptionRelocationPacket::new, PLAY_TO_CLIENT),
|
||||
TRACK_GRAPH_ROLL_CALL(TrackGraphRollCallPacket.class, TrackGraphRollCallPacket::new, PLAY_TO_CLIENT),
|
||||
|
||||
;
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.simibubi.create.foundation.ponder.content.fluid.HosePulleyScenes;
|
|||
import com.simibubi.create.foundation.ponder.content.fluid.PipeScenes;
|
||||
import com.simibubi.create.foundation.ponder.content.fluid.PumpScenes;
|
||||
import com.simibubi.create.foundation.ponder.content.fluid.SpoutScenes;
|
||||
import com.simibubi.create.foundation.ponder.content.trains.TrackScenes;
|
||||
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
@ -294,6 +295,11 @@ public class PonderIndex {
|
|||
HELPER.forComponents(AllBlocks.REDSTONE_LINK)
|
||||
.addStoryBoard("redstone_link", RedstoneScenes::redstoneLink);
|
||||
|
||||
// Trains
|
||||
HELPER.forComponents(AllBlocks.TRACK)
|
||||
.addStoryBoard("train_track/placement", TrackScenes::placement)
|
||||
.addStoryBoard("train_track/portal", TrackScenes::portal);
|
||||
|
||||
// Debug scenes, can be found in game via the Brass Hand
|
||||
if (REGISTER_DEBUG_SCENES)
|
||||
DebugScenes.registerAll();
|
||||
|
|
|
@ -0,0 +1,342 @@
|
|||
package com.simibubi.create.foundation.ponder.content.trains;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.PonderPalette;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuilder;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
||||
import com.simibubi.create.foundation.ponder.element.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.element.ParrotElement;
|
||||
import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class TrackScenes {
|
||||
|
||||
public static void placement(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("placement", "Placing Train Tracks");
|
||||
scene.configureBasePlate(0, 0, 15);
|
||||
scene.scaleSceneView(.5f);
|
||||
scene.showBasePlate();
|
||||
// scene.debug.debugSchematic();
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
ElementLink<WorldSectionElement> bgTrack =
|
||||
scene.world.showIndependentSection(util.select.position(11, 4, 9), Direction.DOWN);
|
||||
scene.world.moveSection(bgTrack, util.vector.of(0, -2, 0), 0);
|
||||
|
||||
for (int i = 11; i >= 2; i--) {
|
||||
scene.world.showSectionAndMerge(util.select.position(i, 3, 9), Direction.DOWN, bgTrack);
|
||||
if (i == 5)
|
||||
scene.world.showSectionAndMerge(util.select.position(7, 4, 9), Direction.DOWN, bgTrack);
|
||||
scene.idle(2);
|
||||
}
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(5, 0, 9))
|
||||
.placeNearTarget()
|
||||
.text("A new type of rail designed for Train Contraptions");
|
||||
scene.idle(50);
|
||||
|
||||
ElementLink<WorldSectionElement> fgTrack =
|
||||
scene.world.showIndependentSection(util.select.position(3, 3, 5), Direction.DOWN);
|
||||
scene.world.moveSection(fgTrack, util.vector.of(0, -2, 0), 0);
|
||||
scene.idle(20);
|
||||
|
||||
Vec3 startTrack = util.vector.topOf(3, 0, 5);
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(startTrack)
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.GREEN)
|
||||
.attachKeyFrame()
|
||||
.text("To place rows of track in bulk, click on an existing track");
|
||||
scene.idle(30);
|
||||
|
||||
ItemStack trackStack = AllBlocks.TRACK.asStack();
|
||||
scene.overlay.showControls(new InputWindowElement(startTrack, Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 40);
|
||||
scene.idle(6);
|
||||
AABB bb = new AABB(util.grid.at(3, 1, 5)).contract(0, .75f, 0)
|
||||
.inflate(0, 0, .85f);
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, startTrack, bb, 32);
|
||||
scene.idle(45);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(startTrack.add(9, 0, 0), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 40);
|
||||
scene.idle(6);
|
||||
scene.overlay.showText(40)
|
||||
.pointAt(util.vector.topOf(12, 0, 5))
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.GREEN)
|
||||
.text("Then place or select a second track");
|
||||
scene.idle(20);
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, startTrack, bb.expandTowards(9, 0, 0), 30);
|
||||
|
||||
scene.world.showSectionAndMerge(util.select.fromTo(12, 3, 5, 4, 3, 5), Direction.WEST, fgTrack);
|
||||
scene.idle(55);
|
||||
|
||||
scene.world.hideIndependentSection(bgTrack, Direction.UP);
|
||||
scene.idle(7);
|
||||
scene.world.hideIndependentSection(fgTrack, Direction.UP);
|
||||
scene.idle(25);
|
||||
|
||||
scene.world.showSection(util.select.position(8, 1, 2), Direction.SOUTH);
|
||||
scene.idle(10);
|
||||
scene.addKeyframe();
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(8, 0, 2), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 15);
|
||||
scene.idle(15);
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(2, 0, 8), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 15);
|
||||
scene.idle(7);
|
||||
scene.world.showSection(util.select.position(2, 1, 8), Direction.DOWN);
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(7, 0, 7))
|
||||
.placeNearTarget()
|
||||
.text("Tracks can also be placed as turns or slopes");
|
||||
scene.idle(40);
|
||||
|
||||
scene.world.showSection(util.select.position(12, 1, 2), Direction.SOUTH);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(12, 0, 2), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 10);
|
||||
scene.idle(15);
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(2, 0, 12), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 10);
|
||||
scene.idle(7);
|
||||
scene.world.showSection(util.select.fromTo(12, 1, 3, 12, 1, 5), Direction.DOWN);
|
||||
scene.idle(3);
|
||||
scene.world.showSection(util.select.fromTo(12, 1, 6, 6, 1, 12), Direction.DOWN);
|
||||
scene.idle(3);
|
||||
scene.world.showSection(util.select.fromTo(5, 1, 12, 2, 1, 12), Direction.DOWN);
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.topOf(11, 0, 11))
|
||||
.colored(PonderPalette.GREEN)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.text("When connecting, tracks will try to make each turn equally sized");
|
||||
scene.idle(70);
|
||||
|
||||
scene.world.hideSection(util.select.fromTo(12, 1, 2, 12, 1, 5), Direction.NORTH);
|
||||
scene.world.hideSection(util.select.fromTo(5, 1, 12, 2, 1, 12), Direction.WEST);
|
||||
|
||||
bb = new AABB(util.grid.at(5, 1, 5)).contract(0, .75f, 0)
|
||||
.inflate(3, 0, 3)
|
||||
.expandTowards(.85f, 0, .85f);
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, startTrack, bb, 32);
|
||||
scene.idle(20);
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, startTrack, bb.move(4, 0, 4), 32);
|
||||
scene.idle(30);
|
||||
|
||||
scene.world.hideSection(util.select.fromTo(12, 1, 6, 6, 1, 12), Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(util.select.position(12, 1, 2), Direction.SOUTH);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(12, 0, 2), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack), 10);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(2, 0, 12), Pointing.DOWN).rightClick()
|
||||
.withItem(trackStack)
|
||||
.whileCTRL(), 60);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(2, 0, 12))
|
||||
.colored(PonderPalette.GREEN)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.text("Holding the sprint key while connecting...");
|
||||
scene.idle(50);
|
||||
|
||||
ElementLink<WorldSectionElement> longBend =
|
||||
scene.world.showIndependentSection(util.select.position(2, 2, 12), Direction.DOWN);
|
||||
scene.world.moveSection(longBend, util.vector.of(0, -1, 0), 0);
|
||||
scene.idle(30);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.centerOf(9, 1, 9))
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.text("...will create the longest fitting bend instead");
|
||||
scene.idle(70);
|
||||
|
||||
scene.world.hideIndependentSection(longBend, Direction.UP);
|
||||
scene.world.hideSection(util.select.position(12, 1, 2), Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.hideSection(util.select.fromTo(8, 1, 2, 2, 1, 8), Direction.UP);
|
||||
scene.idle(25);
|
||||
|
||||
ElementLink<WorldSectionElement> slopeStart =
|
||||
scene.world.showIndependentSection(util.select.fromTo(12, 6, 2, 12, 9, 12), Direction.DOWN);
|
||||
scene.world.moveSection(slopeStart, util.vector.of(0, -5, 0), 0);
|
||||
scene.idle(10);
|
||||
scene.world.showSectionAndMerge(util.select.fromTo(2, 6, 2, 2, 7, 4), Direction.DOWN, slopeStart);
|
||||
scene.world.showSectionAndMerge(util.select.fromTo(2, 6, 6, 2, 9, 8), Direction.DOWN, slopeStart);
|
||||
scene.world.showSectionAndMerge(util.select.fromTo(2, 6, 10, 2, 11, 12), Direction.DOWN, slopeStart);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(12, 3, 11), Pointing.LEFT).withItem(trackStack), 30);
|
||||
scene.idle(4);
|
||||
ItemStack smoothStone = new ItemStack(Blocks.SMOOTH_STONE);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.topOf(12, 3, 11), Pointing.RIGHT).withItem(smoothStone), 26);
|
||||
scene.idle(30);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(2, 6, 11), Pointing.LEFT).withItem(trackStack), 30);
|
||||
scene.idle(4);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.topOf(2, 6, 11), Pointing.RIGHT).withItem(smoothStone), 26);
|
||||
scene.idle(10);
|
||||
|
||||
scene.world.showSectionAndMerge(util.select.position(2, 12, 11), Direction.DOWN, slopeStart);
|
||||
scene.idle(2);
|
||||
scene.world.showSectionAndMerge(util.select.fromTo(11, 8, 10, 3, 11, 12), Direction.UP, slopeStart);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay.showText(100)
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(9, 3, 10), Direction.NORTH))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Materials in the off-hand will be paved under tracks automatically");
|
||||
scene.idle(80);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(12, 2, 7), Pointing.LEFT).withItem(trackStack), 30);
|
||||
scene.idle(4);
|
||||
smoothStone = new ItemStack(Blocks.SMOOTH_STONE_SLAB);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.topOf(12, 2, 7), Pointing.RIGHT).withItem(smoothStone), 26);
|
||||
scene.idle(30);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(2, 4, 7), Pointing.LEFT).withItem(trackStack), 30);
|
||||
scene.idle(4);
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(2, 4, 7), Pointing.RIGHT).withItem(smoothStone), 26);
|
||||
scene.idle(10);
|
||||
|
||||
scene.world.showSectionAndMerge(util.select.position(2, 10, 7), Direction.DOWN, slopeStart);
|
||||
scene.idle(2);
|
||||
scene.world.showSectionAndMerge(util.select.fromTo(11, 7, 6, 3, 11, 8), Direction.UP, slopeStart);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(12, 1, 3), Pointing.LEFT).withItem(trackStack), 30);
|
||||
scene.idle(4);
|
||||
smoothStone = AllBlocks.METAL_GIRDER.asStack();
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.topOf(12, 1, 3), Pointing.RIGHT).withItem(smoothStone), 26);
|
||||
scene.idle(30);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(2, 2, 3), Pointing.LEFT).withItem(trackStack), 30);
|
||||
scene.idle(4);
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(2, 2, 3), Pointing.RIGHT).withItem(smoothStone), 26);
|
||||
scene.idle(10);
|
||||
|
||||
scene.world.showSectionAndMerge(util.select.position(2, 8, 3), Direction.DOWN, slopeStart);
|
||||
}
|
||||
|
||||
public static void portal(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("portal", "Tracks and the Nether");
|
||||
scene.configureBasePlate(0, 0, 9);
|
||||
scene.scaleSceneView(.65f);
|
||||
scene.setSceneOffsetY(-1);
|
||||
scene.showBasePlate();
|
||||
scene.world.showSection(util.select.fromTo(2, 1, 7, 6, 6, 7), Direction.UP);
|
||||
// scene.debug.debugSchematic();
|
||||
scene.idle(10);
|
||||
|
||||
for (int i = 1; i <= 5; i++) {
|
||||
scene.world.showSection(util.select.position(4, 1, i), Direction.DOWN);
|
||||
scene.idle(2);
|
||||
}
|
||||
|
||||
scene.idle(15);
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(4, 0, 6))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Tracks placed up against a nether portal...");
|
||||
scene.idle(50);
|
||||
|
||||
scene.world.showSection(util.select.position(4, 1, 6), Direction.DOWN);
|
||||
|
||||
scene.idle(20);
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.topOf(4, 0, 6))
|
||||
.placeNearTarget()
|
||||
.text("...will attempt to create a paired track on the other side");
|
||||
scene.idle(40);
|
||||
|
||||
ElementLink<WorldSectionElement> t1 =
|
||||
scene.world.showIndependentSection(util.select.fromTo(5, 2, 1, 3, 3, 2), Direction.DOWN);
|
||||
ElementLink<WorldSectionElement> t2 =
|
||||
scene.world.showIndependentSection(util.select.fromTo(5, 2, 3, 3, 3, 3), Direction.DOWN);
|
||||
ElementLink<WorldSectionElement> t3 =
|
||||
scene.world.showIndependentSection(util.select.fromTo(5, 2, 4, 3, 3, 5), Direction.DOWN);
|
||||
|
||||
ElementLink<ParrotElement> birb =
|
||||
scene.special.createBirb(util.vector.centerOf(4, 3, 2), FacePointOfInterestPose::new);
|
||||
scene.special.movePointOfInterest(util.grid.at(4, 4, 10));
|
||||
|
||||
scene.addKeyframe();
|
||||
scene.idle(30);
|
||||
|
||||
for (ElementLink<WorldSectionElement> e : List.of(t1, t2, t3))
|
||||
scene.world.moveSection(e, util.vector.of(0, 0, 6), 30);
|
||||
scene.special.moveParrot(birb, util.vector.of(0, 0, 5.6), 28);
|
||||
|
||||
for (ElementLink<WorldSectionElement> e : List.of(t3, t2, t1)) {
|
||||
scene.idle(2);
|
||||
scene.world.hideIndependentSection(e, Direction.SOUTH);
|
||||
}
|
||||
|
||||
scene.world.hideSection(util.select.layers(0, 1), Direction.UP);
|
||||
scene.rotateCameraY(360);
|
||||
scene.idle(15);
|
||||
scene.special.movePointOfInterest(util.grid.at(4, 4, 0));
|
||||
ElementLink<WorldSectionElement> nether =
|
||||
scene.world.showIndependentSection(util.select.layers(7, 1), Direction.UP);
|
||||
scene.world.moveSection(nether, util.vector.of(0, -7, 0), 0);
|
||||
scene.special.moveParrot(birb, util.vector.of(0, 0, -.1f), 1);
|
||||
scene.idle(25);
|
||||
|
||||
ElementLink<WorldSectionElement> s1 =
|
||||
scene.world.showIndependentSection(util.select.fromTo(5, 2, 1, 3, 3, 5), Direction.NORTH);
|
||||
scene.world.rotateSection(s1, 0, 180, 0, 0);
|
||||
scene.world.moveSection(s1, util.vector.of(0, 0, 3.5f), 0);
|
||||
scene.world.moveSection(s1, util.vector.of(0, 0, -3.5f), 18);
|
||||
scene.special.moveParrot(birb, util.vector.of(0, 0, -3.5f), 18);
|
||||
scene.idle(30);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.topOf(util.grid.at(3, 2, 3)))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.text("Trains on this track are now able to travel across dimensions");
|
||||
scene.idle(40);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -127,6 +127,7 @@ public class TextWindowElement extends AnimatedOverlayElement {
|
|||
//PonderUI.renderBox(ms, targetX - 10, 3, boxWidth, boxHeight - 1, 0xaa000000, 0x30eebb00, 0x10eebb00);
|
||||
|
||||
int brighterColor = Color.mixColors(color, 0xFFffffdd, 1 / 2f);
|
||||
brighterColor = (0x00ffffff & brighterColor) | 0xff000000;
|
||||
if (vec != null) {
|
||||
ms.pushPose();
|
||||
ms.translate(sceneToScreen.x, 0, 0);
|
||||
|
|
|
@ -163,9 +163,9 @@
|
|||
"block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
||||
|
||||
"item.create.creative_blaze_cake.tooltip": "CREATIVE CAKE",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "R-Click on Blaze Burner",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "_Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
|
||||
"item.create.creative_blaze_cake.tooltip.summary": "A very special treat for your _Blaze Burners_. After eating this cake, Blaze Burners will _never run out of fuel_.",
|
||||
"item.create.creative_blaze_cake.tooltip.condition1": "When Used",
|
||||
"item.create.creative_blaze_cake.tooltip.behaviour1": "_Cycles_ a Blaze Burner's heat level.",
|
||||
|
||||
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
|
||||
"block.create.controller_rail.tooltip.summary": "A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
|
||||
|
@ -213,6 +213,11 @@
|
|||
"item.create.copper_backtank.tooltip.condition2": "When placed, Powered by Kinetics",
|
||||
"item.create.copper_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.",
|
||||
|
||||
"block.create.flywheel.tooltip": "FLYWHEEL",
|
||||
"block.create.flywheel.tooltip.summary": "_Embellish_ your _Machines_ with this imposing Wheel of Brass.",
|
||||
"block.create.flywheel.tooltip.condition1": "When Powered by Kinetics",
|
||||
"block.create.flywheel.tooltip.behaviour1": "Starts spinning.",
|
||||
|
||||
"item.create.diving_boots.tooltip": "DIVING BOOTS",
|
||||
"item.create.diving_boots.tooltip.summary": "A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.",
|
||||
"item.create.diving_boots.tooltip.condition1": "When Worn",
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
"2": "create:block/flap_display_front",
|
||||
"3": "create:block/dark_metal_block",
|
||||
"4": "create:block/flap_display_side",
|
||||
"5": "create:block/flap_display_top",
|
||||
"6": "create:block/flap_display_inside",
|
||||
"particle": "create:block/flap_display_front"
|
||||
},
|
||||
"elements": [
|
||||
|
@ -15,10 +17,10 @@
|
|||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"east": {"uv": [13, 0, 16, 16], "texture": "#4"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#6"},
|
||||
"west": {"uv": [0, 0, 3, 16], "texture": "#4"},
|
||||
"up": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"}
|
||||
"up": {"uv": [0, 0, 3, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -26,32 +28,32 @@
|
|||
"to": [16, 16, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 6]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||
"east": {"uv": [10, 0, 13, 16], "texture": "#4"},
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#6"},
|
||||
"east": {"uv": [3, 0, 6, 16], "texture": "#4"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||
"west": {"uv": [10, 0, 13, 16], "texture": "#4"},
|
||||
"up": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"}
|
||||
"up": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [0, 0, 3, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 6],
|
||||
"to": [16, 16, 10],
|
||||
"faces": {
|
||||
"east": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"west": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"}
|
||||
"east": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"west": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.95, 0.05, 6],
|
||||
"to": [0.05, 15.95, 10],
|
||||
"faces": {
|
||||
"east": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"west": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"}
|
||||
"east": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"west": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -5,8 +5,10 @@
|
|||
"2": "create:block/flap_display_front",
|
||||
"3": "create:block/dark_metal_block",
|
||||
"4": "create:block/flap_display_side",
|
||||
"1_2": "create:block/cogwheel",
|
||||
"particle": "create:block/flap_display_front"
|
||||
"5": "create:block/flap_display_top",
|
||||
"6": "create:block/flap_display_inside",
|
||||
"particle": "create:block/flap_display_front",
|
||||
"1_2": "create:block/cogwheel"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
@ -100,10 +102,10 @@
|
|||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"east": {"uv": [13, 0, 16, 16], "texture": "#4"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#6"},
|
||||
"west": {"uv": [0, 0, 3, 16], "texture": "#4"},
|
||||
"up": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"}
|
||||
"up": {"uv": [0, 0, 3, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -111,32 +113,32 @@
|
|||
"to": [16, 16, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 6]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 3, 16], "texture": "#4"},
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#6"},
|
||||
"east": {"uv": [3, 0, 6, 16], "texture": "#4"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 3, 16], "texture": "#4"},
|
||||
"up": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#4"}
|
||||
"west": {"uv": [10, 0, 13, 16], "texture": "#4"},
|
||||
"up": {"uv": [7, 0, 10, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [0, 0, 3, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 6],
|
||||
"to": [16, 16, 10],
|
||||
"faces": {
|
||||
"east": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"west": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"}
|
||||
"east": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"west": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.95, 0.05, 6],
|
||||
"to": [0.05, 15.95, 10],
|
||||
"faces": {
|
||||
"east": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"west": {"uv": [3, 0, 7, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#4"}
|
||||
"east": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"west": {"uv": [6, 0, 10, 16], "texture": "#4"},
|
||||
"up": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"},
|
||||
"down": {"uv": [3, 0, 7, 16], "rotation": 90, "texture": "#5"}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
@ -147,9 +149,11 @@
|
|||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
},
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9
|
||||
{
|
||||
"name": "block",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [6, 7, 8, 9]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
# Blender v3.1.2 OBJ File: 'engine.blend'
|
||||
# Blender v3.2.0 OBJ File: 'engine.blend'
|
||||
# www.blender.org
|
||||
mtllib flywheel.mtl
|
||||
o cube.008_cube.006
|
||||
|
@ -94,38 +94,6 @@ v 0.750000 0.812500 0.750000
|
|||
v 0.750000 0.812500 0.250000
|
||||
v 0.250000 0.812500 0.750000
|
||||
v 0.250000 0.812500 0.250000
|
||||
v 1.068750 0.687500 1.873085
|
||||
v 1.068750 0.312500 1.873085
|
||||
v 0.940102 0.312500 1.562500
|
||||
v 0.940102 0.687500 1.562500
|
||||
v 1.873085 0.687500 1.068751
|
||||
v 1.873084 0.312500 1.068751
|
||||
v 1.562500 0.312500 0.940102
|
||||
v 1.562500 0.687500 0.940102
|
||||
v 1.873085 0.687500 -0.068750
|
||||
v 1.873085 0.312500 -0.068750
|
||||
v 1.562500 0.312500 0.059898
|
||||
v 1.562500 0.687500 0.059898
|
||||
v 1.068750 0.687500 -0.873084
|
||||
v 1.068750 0.312500 -0.873084
|
||||
v 0.940102 0.312500 -0.562500
|
||||
v 0.940102 0.687500 -0.562500
|
||||
v -0.068750 0.687500 -0.873084
|
||||
v -0.068750 0.312500 -0.873084
|
||||
v 0.059898 0.312500 -0.562500
|
||||
v 0.059898 0.687500 -0.562500
|
||||
v -0.873084 0.687500 -0.068750
|
||||
v -0.873084 0.312500 -0.068750
|
||||
v -0.562500 0.312500 0.059898
|
||||
v -0.562499 0.687500 0.059898
|
||||
v -0.873084 0.687500 1.068750
|
||||
v -0.873084 0.312500 1.068750
|
||||
v -0.562500 0.312500 0.940102
|
||||
v -0.562500 0.687500 0.940102
|
||||
v -0.068750 0.687500 1.873084
|
||||
v -0.068750 0.312500 1.873084
|
||||
v 0.059898 0.312500 1.562499
|
||||
v 0.059898 0.687500 1.562499
|
||||
v 0.250000 0.375000 0.625000
|
||||
v 0.062500 0.375000 0.625000
|
||||
v 0.250000 0.187500 0.625000
|
||||
|
@ -244,6 +212,54 @@ v 0.625000 0.000000 0.375000
|
|||
v 0.625000 0.000000 0.625000
|
||||
v 0.625000 1.000000 0.375000
|
||||
v 0.625000 1.000000 0.625000
|
||||
v 1.068750 0.312500 1.873085
|
||||
v 0.940102 0.312500 1.562500
|
||||
v 1.873084 0.312500 1.068751
|
||||
v 1.562500 0.312500 0.940102
|
||||
v 1.873085 0.312500 -0.068750
|
||||
v 1.562500 0.312500 0.059898
|
||||
v 1.068750 0.312500 -0.873084
|
||||
v 0.940102 0.312500 -0.562500
|
||||
v -0.068750 0.312500 -0.873084
|
||||
v 0.059898 0.312500 -0.562500
|
||||
v -0.873084 0.312500 -0.068750
|
||||
v -0.562500 0.312500 0.059898
|
||||
v -0.873084 0.312500 1.068750
|
||||
v -0.562500 0.312500 0.940102
|
||||
v -0.068750 0.312500 1.873084
|
||||
v 0.059898 0.312500 1.562499
|
||||
v 0.940102 0.500000 1.562500
|
||||
v 0.059898 0.500000 1.562499
|
||||
v 1.562500 0.500000 0.940102
|
||||
v 1.562500 0.500000 0.059898
|
||||
v 0.940102 0.500000 -0.562500
|
||||
v 0.059898 0.500000 -0.562500
|
||||
v -0.562500 0.500000 0.059898
|
||||
v -0.562500 0.500000 0.940102
|
||||
v 1.068750 0.500000 1.873085
|
||||
v -0.068750 0.500000 1.873084
|
||||
v 1.873085 0.500000 1.068751
|
||||
v 1.873085 0.500000 -0.068750
|
||||
v 1.068750 0.500000 -0.873084
|
||||
v -0.068750 0.500000 -0.873084
|
||||
v -0.873084 0.500000 -0.068750
|
||||
v -0.873084 0.500000 1.068750
|
||||
v 1.068750 0.687500 1.873085
|
||||
v 0.940102 0.687500 1.562500
|
||||
v 1.873084 0.687500 1.068751
|
||||
v 1.562500 0.687500 0.940102
|
||||
v 1.873085 0.687500 -0.068750
|
||||
v 1.562500 0.687500 0.059898
|
||||
v 1.068750 0.687500 -0.873084
|
||||
v 0.940102 0.687500 -0.562500
|
||||
v -0.068750 0.687500 -0.873084
|
||||
v 0.059898 0.687500 -0.562500
|
||||
v -0.873084 0.687500 -0.068750
|
||||
v -0.562500 0.687500 0.059898
|
||||
v -0.873084 0.687500 1.068750
|
||||
v -0.562500 0.687500 0.940102
|
||||
v -0.068750 0.687500 1.873084
|
||||
v 0.059898 0.687500 1.562499
|
||||
vt 0.375000 0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.625000 1.000000
|
||||
|
@ -273,11 +289,11 @@ vt 0.562500 0.500000
|
|||
vt 0.687500 0.500000
|
||||
vt 0.687500 0.687500
|
||||
vt 0.812500 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.906250 0.781250
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.906250 0.781250
|
||||
vt 0.812500 1.000000
|
||||
vt 0.906250 0.781250
|
||||
vt 0.562500 0.687500
|
||||
vt 0.562500 0.500000
|
||||
vt 0.687500 0.500000
|
||||
|
@ -634,102 +650,6 @@ vt 0.218750 0.468750
|
|||
vt 0.468750 0.468750
|
||||
vt 0.468750 0.375000
|
||||
vt 0.218750 0.375000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.062500 0.468750
|
||||
vt 0.500000 0.468750
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.125000 0.250000
|
||||
vt 0.125000 0.312500
|
||||
vt 0.031250 0.312500
|
||||
|
@ -798,130 +718,242 @@ vt 0.125000 0.312500
|
|||
vt 0.125000 0.406250
|
||||
vt 0.218750 0.406250
|
||||
vt 0.218750 0.312500
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.7071 0.0000 0.7071
|
||||
vn 1.0000 0.0000 -0.0000
|
||||
vn 0.7071 0.0000 -0.7071
|
||||
vn -0.0000 0.0000 -1.0000
|
||||
vn -0.7071 0.0000 -0.7071
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.562500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.656250
|
||||
vt 0.500000 0.656250
|
||||
vt 0.562500 0.906250
|
||||
vt 0.000000 0.906250
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.062500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.656250
|
||||
vt 0.062500 0.656250
|
||||
vt 0.000000 0.812500
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
vn 0.7071 0.0000 0.7071
|
||||
vn 0.7071 -0.0000 -0.7071
|
||||
vn -0.7071 0.0000 -0.7071
|
||||
vn -0.7071 0.0000 0.7071
|
||||
vn -0.6060 -0.2741 -0.7468
|
||||
vn 0.0995 -0.2741 -0.9565
|
||||
vn 0.3827 -0.0000 -0.9239
|
||||
vn -0.3827 -0.0000 -0.9239
|
||||
vn -0.3822 0.8881 -0.2554
|
||||
vn -0.0897 0.8881 -0.4509
|
||||
vn -0.2554 -0.8881 0.3822
|
||||
vn -0.4509 -0.8881 0.0896
|
||||
vn -0.0207 0.3739 0.9272
|
||||
vn -0.6703 0.3739 0.6410
|
||||
vn 0.6066 -0.0001 0.7950
|
||||
vn -0.3699 0.2562 0.8930
|
||||
vn -0.3827 -0.0000 0.9239
|
||||
vn 0.3827 -0.0000 0.9239
|
||||
vn -0.9565 -0.2741 -0.0995
|
||||
vn -0.9239 -0.0000 -0.3827
|
||||
vn -0.4509 0.8881 0.0897
|
||||
vn 0.0896 -0.8881 0.4509
|
||||
vn 0.6410 0.3739 0.6703
|
||||
vn 0.9911 -0.0001 0.1332
|
||||
vn 0.9239 -0.0000 0.3827
|
||||
vn -0.7468 -0.2741 0.6060
|
||||
vn -0.9239 0.0000 0.3827
|
||||
vn -0.2554 0.8881 0.3822
|
||||
vn 0.3822 -0.8881 0.2554
|
||||
vn 0.9272 0.3739 0.0207
|
||||
vn 0.7950 -0.0001 -0.6066
|
||||
vn 0.9239 0.0000 -0.3827
|
||||
vn -0.0995 -0.2741 0.9565
|
||||
vn 0.0897 0.8881 0.4509
|
||||
vn 0.4509 -0.8881 -0.0896
|
||||
vn 0.6703 0.3739 -0.6410
|
||||
vn 0.6060 -0.2741 0.7468
|
||||
vn 0.3822 0.8881 0.2554
|
||||
vn 0.1332 -0.0002 -0.9911
|
||||
vn 0.3827 0.0000 -0.9239
|
||||
vn 0.2554 -0.8881 -0.3822
|
||||
vn 0.0207 0.3739 -0.9272
|
||||
vn 0.9565 -0.2741 0.0995
|
||||
vn 0.4509 0.8881 -0.0897
|
||||
vn -0.6066 0.0000 -0.7950
|
||||
vn -0.3827 -0.0000 -0.9239
|
||||
vn -0.0896 -0.8881 -0.4509
|
||||
vn -0.6410 0.3739 -0.6703
|
||||
vn 0.7468 -0.2741 -0.6060
|
||||
vn 0.2554 0.8881 -0.3822
|
||||
vn -0.9911 0.0000 -0.1332
|
||||
vn -0.9239 -0.0000 -0.3827
|
||||
vn -0.3822 -0.8881 -0.2554
|
||||
vn -0.9272 0.3739 -0.0207
|
||||
vn -0.7950 -0.0001 0.6066
|
||||
vn -0.9239 -0.0000 0.3827
|
||||
vn 0.0995 -0.2741 -0.9565
|
||||
vn 0.7468 -0.2741 -0.6060
|
||||
vn 0.8184 0.0000 -0.5746
|
||||
vn 0.3735 -0.2177 -0.9017
|
||||
vn 0.9565 -0.2741 0.0995
|
||||
vn 0.9850 0.0000 0.1724
|
||||
vn 0.6060 -0.2741 0.7468
|
||||
vn 0.5746 0.0000 0.8184
|
||||
vn -0.0995 -0.2741 0.9565
|
||||
vn -0.1724 -0.0001 0.9850
|
||||
vn -0.7468 -0.2741 0.6060
|
||||
vn -0.8184 0.0000 0.5746
|
||||
vn -0.9565 -0.2741 -0.0995
|
||||
vn -0.9850 0.0000 -0.1724
|
||||
vn -0.6060 -0.2741 -0.7468
|
||||
vn -0.5746 0.0000 -0.8184
|
||||
vn -0.2554 0.8881 0.3822
|
||||
vn -0.4509 0.8881 0.0896
|
||||
vn 0.0896 0.8881 0.4509
|
||||
vn 0.3822 0.8881 0.2554
|
||||
vn 0.4509 0.8881 -0.0896
|
||||
vn 0.2554 0.8881 -0.3822
|
||||
vn -0.0896 0.8881 -0.4509
|
||||
vn -0.3822 0.8881 -0.2554
|
||||
vn 0.0995 0.2741 -0.9565
|
||||
vn 0.7468 0.2741 -0.6060
|
||||
vn 0.9565 0.2741 0.0995
|
||||
vn 0.6060 0.2741 0.7468
|
||||
vn -0.0995 0.2741 0.9565
|
||||
vn -0.7468 0.2741 0.6060
|
||||
vn -0.9566 0.2739 -0.0994
|
||||
vn -0.6060 0.2741 -0.7468
|
||||
usemtl m_1
|
||||
s off
|
||||
f 235/1/1 236/2/1 238/3/1 237/4/1
|
||||
f 241/5/2 242/6/2 240/7/2 239/8/2
|
||||
f 237/9/3 241/10/3 239/11/3 235/12/3
|
||||
f 242/13/4 238/14/4 236/15/4 240/16/4
|
||||
f 203/1/1 204/2/1 206/3/1 205/4/1
|
||||
f 209/5/2 210/6/2 208/7/2 207/8/2
|
||||
f 205/9/3 209/10/3 207/11/3 203/12/3
|
||||
f 210/13/4 206/14/4 204/15/4 208/16/4
|
||||
usemtl m_2
|
||||
f 237/17/5 238/18/5 242/19/5 241/20/5
|
||||
f 239/21/6 240/22/6 236/23/6 235/24/6
|
||||
f 205/17/5 206/18/5 210/19/5 209/20/5
|
||||
f 207/21/6 208/22/6 204/23/6 203/24/6
|
||||
usemtl m_0
|
||||
f 19/25/4 74/26/4 9/27/4 20/28/4
|
||||
f 9/29/5 20/30/5 41/31/5
|
||||
f 19/32/6 74/33/6 40/34/6
|
||||
f 9/29/6 41/30/6 20/31/6
|
||||
f 19/32/5 40/33/5 74/34/5
|
||||
f 18/35/7 19/36/7 20/37/7 21/38/7
|
||||
f 20/39/5 21/40/5 41/31/5
|
||||
f 18/41/6 19/42/6 40/34/6
|
||||
f 20/39/6 41/30/6 21/40/6
|
||||
f 18/41/5 40/33/5 19/42/5
|
||||
f 28/43/2 18/44/2 21/45/2 38/46/2
|
||||
f 21/47/5 38/48/5 41/31/5
|
||||
f 28/49/6 18/50/6 40/34/6
|
||||
f 21/47/6 41/30/6 38/48/6
|
||||
f 28/49/5 40/33/5 18/50/5
|
||||
f 37/51/8 28/52/8 38/53/8 39/54/8
|
||||
f 38/55/5 39/56/5 41/31/5
|
||||
f 37/57/6 28/58/6 40/34/6
|
||||
f 38/55/6 41/30/6 39/56/6
|
||||
f 37/57/5 40/33/5 28/58/5
|
||||
f 58/59/3 37/60/3 39/61/3 59/62/3
|
||||
f 39/63/5 59/64/5 41/31/5
|
||||
f 58/65/6 37/66/6 40/34/6
|
||||
f 39/63/6 41/30/6 59/64/6
|
||||
f 58/65/5 40/33/5 37/66/5
|
||||
f 65/67/9 58/68/9 59/69/9 60/70/9
|
||||
f 59/71/5 60/72/5 41/31/5
|
||||
f 65/73/6 58/74/6 40/34/6
|
||||
f 59/71/6 41/30/6 60/72/6
|
||||
f 65/73/5 40/33/5 58/74/5
|
||||
f 75/75/1 65/76/1 60/77/1 76/78/1
|
||||
f 60/79/5 76/80/5 41/31/5
|
||||
f 75/81/6 65/82/6 40/34/6
|
||||
f 60/79/6 41/30/6 76/80/6
|
||||
f 75/81/5 40/33/5 65/82/5
|
||||
f 74/83/10 75/84/10 76/85/10 9/86/10
|
||||
f 76/87/5 9/88/5 41/31/5
|
||||
f 74/89/6 75/90/6 40/34/6
|
||||
f 133/91/1 134/92/1 136/93/1 135/94/1
|
||||
f 135/95/5 136/96/5 140/97/5 139/98/5
|
||||
f 139/99/2 140/100/2 138/101/2 137/102/2
|
||||
f 137/103/6 138/104/6 134/105/6 133/106/6
|
||||
f 140/107/4 136/108/4 134/109/4 138/110/4
|
||||
f 148/111/2 150/112/2 151/113/2 149/114/2
|
||||
f 150/115/5 154/116/5 155/117/5 151/118/5
|
||||
f 154/119/1 152/120/1 153/121/1 155/122/1
|
||||
f 152/123/6 148/124/6 149/125/6 153/126/6
|
||||
f 155/127/4 153/128/4 149/129/4 151/130/4
|
||||
f 164/131/1 166/132/1 167/133/1 165/134/1
|
||||
f 166/135/6 170/136/6 171/137/6 167/138/6
|
||||
f 170/139/2 168/140/2 169/141/2 171/142/2
|
||||
f 168/143/5 164/144/5 165/145/5 169/146/5
|
||||
f 171/147/4 169/148/4 165/149/4 167/150/4
|
||||
f 180/151/2 181/152/2 183/153/2 182/154/2
|
||||
f 182/155/6 183/156/6 187/157/6 186/158/6
|
||||
f 186/159/1 187/160/1 185/161/1 184/162/1
|
||||
f 184/163/5 185/164/5 181/165/5 180/166/5
|
||||
f 187/167/4 183/168/4 181/169/4 185/170/4
|
||||
f 192/171/1 194/172/1 195/173/1 193/174/1
|
||||
f 194/175/5 198/176/5 199/177/5 195/178/5
|
||||
f 198/179/2 196/180/2 197/181/2 199/182/2
|
||||
f 196/183/6 192/184/6 193/185/6 197/186/6
|
||||
f 199/187/3 197/188/3 193/189/3 195/190/3
|
||||
f 204/191/2 205/192/2 207/193/2 206/194/2
|
||||
f 206/195/5 207/196/5 211/197/5 210/198/5
|
||||
f 210/199/1 211/200/1 209/201/1 208/202/1
|
||||
f 208/203/6 209/204/6 205/205/6 204/206/6
|
||||
f 211/207/3 207/208/3 205/209/3 209/210/3
|
||||
f 216/211/1 217/212/1 219/213/1 218/214/1
|
||||
f 218/215/6 219/216/6 223/217/6 222/218/6
|
||||
f 222/219/2 223/220/2 221/221/2 220/222/2
|
||||
f 220/223/5 221/224/5 217/225/5 216/226/5
|
||||
f 223/227/3 219/228/3 217/229/3 221/230/3
|
||||
f 227/231/2 229/232/2 230/233/2 228/234/2
|
||||
f 229/235/6 233/236/6 234/237/6 230/238/6
|
||||
f 233/239/1 231/240/1 232/241/1 234/242/1
|
||||
f 231/243/5 227/244/5 228/245/5 232/246/5
|
||||
f 234/247/3 232/248/3 228/249/3 230/250/3
|
||||
f 76/87/6 41/30/6 9/88/6
|
||||
f 74/89/5 40/33/5 75/90/5
|
||||
f 101/91/1 102/92/1 104/93/1 103/94/1
|
||||
f 103/95/5 104/96/5 108/97/5 107/98/5
|
||||
f 107/99/2 108/100/2 106/101/2 105/102/2
|
||||
f 105/103/6 106/104/6 102/105/6 101/106/6
|
||||
f 108/107/4 104/108/4 102/109/4 106/110/4
|
||||
f 116/111/2 118/112/2 119/113/2 117/114/2
|
||||
f 118/115/5 122/116/5 123/117/5 119/118/5
|
||||
f 122/119/1 120/120/1 121/121/1 123/122/1
|
||||
f 120/123/6 116/124/6 117/125/6 121/126/6
|
||||
f 123/127/4 121/128/4 117/129/4 119/130/4
|
||||
f 132/131/1 134/132/1 135/133/1 133/134/1
|
||||
f 134/135/6 138/136/6 139/137/6 135/138/6
|
||||
f 138/139/2 136/140/2 137/141/2 139/142/2
|
||||
f 136/143/5 132/144/5 133/145/5 137/146/5
|
||||
f 139/147/4 137/148/4 133/149/4 135/150/4
|
||||
f 148/151/2 149/152/2 151/153/2 150/154/2
|
||||
f 150/155/6 151/156/6 155/157/6 154/158/6
|
||||
f 154/159/1 155/160/1 153/161/1 152/162/1
|
||||
f 152/163/5 153/164/5 149/165/5 148/166/5
|
||||
f 155/167/4 151/168/4 149/169/4 153/170/4
|
||||
f 160/171/1 162/172/1 163/173/1 161/174/1
|
||||
f 162/175/5 166/176/5 167/177/5 163/178/5
|
||||
f 166/179/2 164/180/2 165/181/2 167/182/2
|
||||
f 164/183/6 160/184/6 161/185/6 165/186/6
|
||||
f 167/187/3 165/188/3 161/189/3 163/190/3
|
||||
f 172/191/2 173/192/2 175/193/2 174/194/2
|
||||
f 174/195/5 175/196/5 179/197/5 178/198/5
|
||||
f 178/199/1 179/200/1 177/201/1 176/202/1
|
||||
f 176/203/6 177/204/6 173/205/6 172/206/6
|
||||
f 179/207/3 175/208/3 173/209/3 177/210/3
|
||||
f 184/211/1 185/212/1 187/213/1 186/214/1
|
||||
f 186/215/6 187/216/6 191/217/6 190/218/6
|
||||
f 190/219/2 191/220/2 189/221/2 188/222/2
|
||||
f 188/223/5 189/224/5 185/225/5 184/226/5
|
||||
f 191/227/3 187/228/3 185/229/3 189/230/3
|
||||
f 195/231/2 197/232/2 198/233/2 196/234/2
|
||||
f 197/235/6 201/236/6 202/237/6 198/238/6
|
||||
f 201/239/1 199/240/1 200/241/1 202/242/1
|
||||
f 199/243/5 195/244/5 196/245/5 200/246/5
|
||||
f 202/247/3 200/248/3 196/249/3 198/250/3
|
||||
s 1
|
||||
f 8/251/6 2/252/6 1/253/6 7/254/6
|
||||
f 2/252/2 4/255/2 3/256/2 1/253/2
|
||||
|
@ -931,10 +963,10 @@ f 17/263/6 11/264/6 10/265/6 16/266/6
|
|||
f 11/264/8 13/267/8 12/268/8 10/265/8
|
||||
f 13/269/5 15/270/5 14/271/5 12/272/5
|
||||
f 15/270/10 17/273/10 16/274/10 14/271/10
|
||||
f 27/275/6 201/276/6 22/277/6 26/278/6
|
||||
f 201/276/3 24/279/3 23/280/3 22/277/3
|
||||
f 24/281/5 173/282/5 25/283/5 23/284/5
|
||||
f 173/282/4 27/285/4 26/286/4 25/283/4
|
||||
f 27/275/6 169/276/6 22/277/6 26/278/6
|
||||
f 169/276/3 24/279/3 23/280/3 22/277/3
|
||||
f 24/281/5 141/282/5 25/283/5 23/284/5
|
||||
f 141/282/4 27/285/4 26/286/4 25/283/4
|
||||
f 36/287/6 30/288/6 29/289/6 35/290/6
|
||||
f 30/288/9 32/291/9 31/292/9 29/289/9
|
||||
f 32/293/5 34/294/5 33/295/5 31/296/5
|
||||
|
@ -947,10 +979,10 @@ f 57/311/6 51/312/6 50/313/6 56/314/6
|
|||
f 51/312/10 53/315/10 52/316/10 50/313/10
|
||||
f 53/317/5 55/318/5 54/319/5 52/320/5
|
||||
f 55/318/8 57/321/8 56/322/8 54/319/8
|
||||
f 189/323/6 126/324/6 61/325/6 64/326/6
|
||||
f 126/324/4 157/327/4 62/328/4 61/325/4
|
||||
f 157/329/5 213/330/5 63/331/5 62/332/5
|
||||
f 213/330/3 189/333/3 64/334/3 63/331/3
|
||||
f 157/323/6 94/324/6 61/325/6 64/326/6
|
||||
f 94/324/4 125/327/4 62/328/4 61/325/4
|
||||
f 125/329/5 181/330/5 63/331/5 62/332/5
|
||||
f 181/330/3 157/333/3 64/334/3 63/331/3
|
||||
f 73/335/6 67/336/6 66/337/6 72/338/6
|
||||
f 67/336/7 69/339/7 68/340/7 66/337/7
|
||||
f 69/341/5 71/342/5 70/343/5 68/344/5
|
||||
|
@ -967,67 +999,83 @@ f 87/377/4 85/378/4 89/379/4 91/380/4
|
|||
f 92/381/1 88/382/1 87/383/1 91/384/1
|
||||
f 90/385/5 92/386/5 91/380/5 89/379/5
|
||||
f 86/387/3 88/388/3 92/389/3 90/390/3
|
||||
f 95/391/11 123/392/12 124/393/13 96/394/14
|
||||
f 121/395/5 93/396/5 96/397/15 124/398/16
|
||||
f 94/399/17 122/400/18 123/392/6 95/391/6
|
||||
f 93/401/19 121/402/20 122/400/21 94/399/22
|
||||
f 99/403/23 95/404/11 96/405/14 100/406/24
|
||||
f 93/407/5 97/408/5 100/409/25 96/410/15
|
||||
f 98/411/26 94/412/17 95/404/6 99/403/6
|
||||
f 97/413/27 93/414/19 94/412/22 98/411/28
|
||||
f 103/415/29 99/416/23 100/417/24 104/418/30
|
||||
f 97/419/5 101/420/5 104/421/31 100/422/25
|
||||
f 102/423/32 98/424/26 99/416/6 103/415/6
|
||||
f 101/425/33 97/426/27 98/424/28 102/423/34
|
||||
f 107/427/35 103/428/29 104/429/30 108/430/21
|
||||
f 101/431/5 105/432/5 108/433/36 104/434/31
|
||||
f 106/435/37 102/436/32 103/428/6 107/427/6
|
||||
f 105/437/38 101/438/33 102/436/34 106/435/13
|
||||
f 111/439/39 107/440/35 108/441/21 112/442/22
|
||||
f 105/443/5 109/444/5 112/445/40 108/446/36
|
||||
f 110/447/41 106/448/37 107/440/6 111/439/6
|
||||
f 109/449/42 105/450/38 106/448/13 110/447/14
|
||||
f 115/451/43 111/452/39 112/453/22 116/454/28
|
||||
f 109/455/5 113/456/5 116/457/44 112/458/40
|
||||
f 114/459/45 110/460/41 111/452/6 115/451/6
|
||||
f 113/461/46 109/462/42 110/460/14 114/459/24
|
||||
f 119/463/47 115/464/43 116/465/28 120/466/34
|
||||
f 113/467/5 117/468/5 120/469/48 116/470/44
|
||||
f 118/471/49 114/472/45 115/464/6 119/463/6
|
||||
f 117/473/50 113/474/46 114/472/24 118/471/30
|
||||
f 123/475/12 119/476/47 120/477/34 124/478/13
|
||||
f 117/479/5 121/480/5 124/481/16 120/482/48
|
||||
f 122/483/18 118/484/49 119/476/6 123/475/6
|
||||
f 121/485/20 117/486/50 118/484/30 122/483/21
|
||||
f 131/487/1 128/488/1 126/489/1 129/490/1
|
||||
f 132/491/6 127/492/6 128/488/6 131/487/6
|
||||
f 126/493/4 128/494/4 127/495/4 125/496/4
|
||||
f 146/497/2 144/498/2 27/499/2 143/500/2
|
||||
f 147/501/6 146/497/6 143/500/6 142/502/6
|
||||
f 27/503/4 141/504/4 142/505/4 143/506/4
|
||||
f 162/507/1 160/508/1 157/509/1 159/510/1
|
||||
f 163/511/5 162/507/5 159/510/5 158/512/5
|
||||
f 157/513/4 156/514/4 158/515/4 159/516/4
|
||||
f 178/517/2 175/518/2 173/519/2 176/520/2
|
||||
f 179/521/5 174/522/5 175/518/5 178/517/5
|
||||
f 173/523/4 175/524/4 174/525/4 172/526/4
|
||||
f 131/487/1 129/490/1 189/527/1 191/528/1
|
||||
f 132/491/6 131/487/6 191/528/6 190/529/6
|
||||
f 189/530/3 188/531/3 190/532/3 191/533/3
|
||||
f 146/497/2 203/534/2 201/535/2 144/498/2
|
||||
f 147/501/6 202/536/6 203/534/6 146/497/6
|
||||
f 201/537/3 203/538/3 202/539/3 200/540/3
|
||||
f 162/507/1 215/541/1 213/542/1 160/508/1
|
||||
f 163/511/5 214/543/5 215/541/5 162/507/5
|
||||
f 213/544/3 215/545/3 214/546/3 212/547/3
|
||||
f 178/517/2 176/520/2 24/548/2 226/549/2
|
||||
f 179/521/5 178/517/5 226/549/5 225/550/5
|
||||
f 24/551/3 224/552/3 225/553/3 226/554/3
|
||||
l 132 130
|
||||
l 129 130
|
||||
f 99/391/1 96/392/1 94/393/1 97/394/1
|
||||
f 100/395/6 95/396/6 96/392/6 99/391/6
|
||||
f 94/397/4 96/398/4 95/399/4 93/400/4
|
||||
f 114/401/2 112/402/2 27/403/2 111/404/2
|
||||
f 115/405/6 114/401/6 111/404/6 110/406/6
|
||||
f 27/407/4 109/408/4 110/409/4 111/410/4
|
||||
f 130/411/1 128/412/1 125/413/1 127/414/1
|
||||
f 131/415/5 130/411/5 127/414/5 126/416/5
|
||||
f 125/417/4 124/418/4 126/419/4 127/420/4
|
||||
f 146/421/2 143/422/2 141/423/2 144/424/2
|
||||
f 147/425/5 142/426/5 143/422/5 146/421/5
|
||||
f 141/427/4 143/428/4 142/429/4 140/430/4
|
||||
f 99/391/1 97/394/1 157/431/1 159/432/1
|
||||
f 100/395/6 99/391/6 159/432/6 158/433/6
|
||||
f 157/434/3 156/435/3 158/436/3 159/437/3
|
||||
f 114/401/2 171/438/2 169/439/2 112/402/2
|
||||
f 115/405/6 170/440/6 171/438/6 114/401/6
|
||||
f 169/441/3 171/442/3 170/443/3 168/444/3
|
||||
f 130/411/1 183/445/1 181/446/1 128/412/1
|
||||
f 131/415/5 182/447/5 183/445/5 130/411/5
|
||||
f 181/448/3 183/449/3 182/450/3 180/451/3
|
||||
f 146/421/2 144/424/2 24/452/2 194/453/2
|
||||
f 147/425/5 146/421/5 194/453/5 193/454/5
|
||||
f 24/455/3 192/456/3 193/457/3 194/458/3
|
||||
f 211/459/11 225/460/12 226/461/6 212/462/6
|
||||
f 235/463/13 236/464/14 225/460/15 211/459/16
|
||||
f 213/465/17 211/466/11 212/467/6 214/468/6
|
||||
f 237/469/18 235/470/13 211/466/16 213/465/19
|
||||
f 215/471/20 213/472/17 214/473/6 216/474/6
|
||||
f 238/475/21 237/476/18 213/472/19 215/471/22
|
||||
f 217/477/23 215/478/20 216/479/6 218/480/6
|
||||
f 239/481/24 238/482/21 215/478/22 217/477/25
|
||||
f 219/483/26 217/484/23 218/485/6 220/486/6
|
||||
f 240/487/27 239/488/24 217/484/25 219/483/28
|
||||
f 221/489/29 219/490/26 220/491/6 222/492/6
|
||||
f 241/493/30 240/494/27 219/490/28 221/489/31
|
||||
f 223/495/32 221/496/29 222/497/6 224/498/6
|
||||
f 242/499/33 241/500/30 221/496/31 223/495/34
|
||||
f 225/501/12 223/502/32 224/503/6 226/504/6
|
||||
f 236/505/14 242/506/33 223/502/34 225/501/15
|
||||
f 226/504/35 224/503/36 234/507/37 228/508/38
|
||||
f 224/498/36 222/497/39 233/509/40 234/510/37
|
||||
f 222/492/39 220/491/41 232/511/42 233/512/40
|
||||
f 220/486/41 218/485/43 231/513/44 232/514/42
|
||||
f 218/480/43 216/479/45 230/515/46 231/516/44
|
||||
f 216/474/45 214/473/47 229/517/48 230/518/46
|
||||
f 214/468/47 212/467/49 227/519/50 229/520/48
|
||||
f 212/462/49 226/461/35 228/521/38 227/522/50
|
||||
f 243/523/51 244/524/5 258/525/5 257/526/52
|
||||
f 235/463/13 243/523/16 257/526/15 236/464/14
|
||||
f 245/527/53 246/528/5 244/529/5 243/530/51
|
||||
f 237/469/18 245/527/19 243/530/16 235/470/13
|
||||
f 247/531/54 248/532/5 246/533/5 245/534/53
|
||||
f 238/475/21 247/531/22 245/534/19 237/476/18
|
||||
f 249/535/55 250/536/5 248/537/5 247/538/54
|
||||
f 239/481/24 249/535/25 247/538/22 238/482/21
|
||||
f 251/539/56 252/540/5 250/541/5 249/542/55
|
||||
f 240/487/27 251/539/28 249/542/25 239/488/24
|
||||
f 253/543/57 254/544/5 252/545/5 251/546/56
|
||||
f 241/493/30 253/543/31 251/546/28 240/494/27
|
||||
f 255/547/58 256/548/5 254/549/5 253/550/57
|
||||
f 242/499/33 255/547/34 253/550/31 241/500/30
|
||||
f 257/551/52 258/552/5 256/553/5 255/554/58
|
||||
f 236/505/14 257/551/15 255/554/34 242/506/33
|
||||
f 258/552/59 228/508/38 234/507/37 256/553/60
|
||||
f 256/548/60 234/510/37 233/509/40 254/549/61
|
||||
f 254/544/61 233/512/40 232/511/42 252/545/62
|
||||
f 252/540/62 232/514/42 231/513/44 250/541/63
|
||||
f 250/536/63 231/516/44 230/515/46 248/537/64
|
||||
f 248/532/64 230/518/46 229/517/48 246/533/65
|
||||
f 246/528/65 229/520/48 227/519/50 244/529/66
|
||||
f 244/524/66 227/522/50 228/521/38 258/525/59
|
||||
l 100 98
|
||||
l 97 98
|
||||
l 115 113
|
||||
l 112 113
|
||||
l 131 129
|
||||
l 128 129
|
||||
l 147 145
|
||||
l 144 145
|
||||
l 163 161
|
||||
l 160 161
|
||||
l 179 177
|
||||
l 176 177
|
||||
|
|
Binary file not shown.
Binary file not shown.
BIN
src/main/resources/assets/create/ponder/train_track/portal.nbt
Normal file
BIN
src/main/resources/assets/create/ponder/train_track/portal.nbt
Normal file
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 217 B |
Binary file not shown.
After Width: | Height: | Size: 275 B |
Binary file not shown.
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 307 B |
Binary file not shown.
After Width: | Height: | Size: 260 B |
Loading…
Reference in a new issue