go teach them
- Ponder scenes for portable storage interface - More work on tags - Fixed tag screen on small resolution
This commit is contained in:
parent
e2c50663a5
commit
83a641c3b8
27 changed files with 840 additions and 215 deletions
|
@ -401,19 +401,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
2384c6457ecf24c7b38358179b8fa6eb93b9627a assets/create/lang/en_ud.json
|
||||
52fd28525a66b08652bac2d1a4a5543956b47091 assets/create/lang/en_us.json
|
||||
00751ce98f978b4568723ebeaa0350d77a380cd8 assets/create/lang/unfinished/de_de.json
|
||||
2d8c801b475cabc33c7d0f8f318ef9068a4b8cea assets/create/lang/unfinished/es_es.json
|
||||
1b18ac809eda5655000a56190bd8be467062beab assets/create/lang/unfinished/es_mx.json
|
||||
93340db6d63864fa23bf663954221b68d345a37f assets/create/lang/unfinished/fr_fr.json
|
||||
299731bb461adb0c55393fa9c1d814861b002ebd assets/create/lang/unfinished/it_it.json
|
||||
947363f4bcec709f398904ece57a5d66294dd6f8 assets/create/lang/unfinished/ja_jp.json
|
||||
11798cdf3c66152fc736cdba465b795c0abac0b4 assets/create/lang/unfinished/ko_kr.json
|
||||
b30301ea195e3c08dc8d1fecfd9a546255ac75b8 assets/create/lang/unfinished/nl_nl.json
|
||||
feb0ab7a4c616447dd74e4cf808a003447cfdfe1 assets/create/lang/unfinished/pt_br.json
|
||||
d12dde0c45bbf29613ade488619b57949ee7068c assets/create/lang/unfinished/ru_ru.json
|
||||
b904d41c0cda0d56b1aa519a45a35800589445d5 assets/create/lang/unfinished/zh_cn.json
|
||||
47e89b425362abb4241b4ffe73bfaa22fef0b6f0 assets/create/lang/unfinished/zh_tw.json
|
||||
3df303c4115c5ebac291b8c62f844812706fc1a2 assets/create/lang/en_us.json
|
||||
7e3384a3417e42c6af669a1de71520f91917c173 assets/create/lang/unfinished/de_de.json
|
||||
1b96fec34e10b77750ff9df5ab8ba7d70a781f8a assets/create/lang/unfinished/es_es.json
|
||||
500288690ba8d9541f49f0e97e6e5d0fe03c5878 assets/create/lang/unfinished/es_mx.json
|
||||
71f5958650b1300534cb03a602449620d8cede48 assets/create/lang/unfinished/fr_fr.json
|
||||
305e0f563cf8548ab671a0468dbf98b5b429b7be assets/create/lang/unfinished/it_it.json
|
||||
0476653ed29767f05370c56415224f6adf711cea assets/create/lang/unfinished/ja_jp.json
|
||||
284cc716b6ecb3be8b9686cea842dc1f80377104 assets/create/lang/unfinished/ko_kr.json
|
||||
2113c093bddcda9161bdb7993545115097267c96 assets/create/lang/unfinished/nl_nl.json
|
||||
d4418c9eab8786dc3167661896910093f1ec36ff assets/create/lang/unfinished/pt_br.json
|
||||
7d8050786296c33dc5b05f0a8bae7fe1e5f03d46 assets/create/lang/unfinished/ru_ru.json
|
||||
87aae73838184ee67353f57e1468c3d28f834172 assets/create/lang/unfinished/zh_cn.json
|
||||
755792dde83c565808b5ade4c48db1cbb4792d49 assets/create/lang/unfinished/zh_tw.json
|
||||
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json
|
||||
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json
|
||||
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
|
|
@ -1811,10 +1811,22 @@
|
|||
"create.ponder.shared.movement_anchors": "With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "Ctrl +",
|
||||
"create.ponder.tag.arm_access": "Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1872,8 +1884,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1066",
|
||||
"_": "Missing Localizations: 1087",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 109",
|
||||
"_": "Missing Localizations: 130",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 996",
|
||||
"_": "Missing Localizations: 1017",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 778",
|
||||
"_": "Missing Localizations: 799",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 114",
|
||||
"_": "Missing Localizations: 135",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 121",
|
||||
"_": "Missing Localizations: 142",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 167",
|
||||
"_": "Missing Localizations: 188",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1265",
|
||||
"_": "Missing Localizations: 1286",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1331",
|
||||
"_": "Missing Localizations: 1352",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 117",
|
||||
"_": "Missing Localizations: 138",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 115",
|
||||
"_": "Missing Localizations: 136",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 120",
|
||||
"_": "Missing Localizations: 141",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1812,10 +1812,22 @@
|
|||
"create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.",
|
||||
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
|
||||
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
|
||||
"create.ponder.tag.arm_access": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_access.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.kinetics": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetics.description": "UNLOCALIZED: Components which help generating, relaying and making use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources",
|
||||
"create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force",
|
||||
"create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors",
|
||||
"create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption",
|
||||
"create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms",
|
||||
"create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm",
|
||||
"create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation",
|
||||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors",
|
||||
"create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways",
|
||||
"create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances",
|
||||
"create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force",
|
||||
"create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks",
|
||||
"create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere",
|
||||
"create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators",
|
||||
"create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids",
|
||||
|
||||
"create.ponder.brass_funnel.scene_0.header": "UNLOCALIZED: The Brass Funnel",
|
||||
"create.ponder.brass_funnel.scene_0.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.",
|
||||
|
@ -1873,8 +1885,17 @@
|
|||
"create.ponder.shaft.scene_1.text_1": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_0.header": "UNLOCALIZED: Contraption Storage Exchange",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_6": "UNLOCALIZED: Items can now be inserted...",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_7": "UNLOCALIZED: ...or extracted from the contraption",
|
||||
"create.ponder.portable_storage_interface.scene_0.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way",
|
||||
|
||||
"create.ponder.portable_storage_interface.scene_1.header": "UNLOCALIZED: Redstone Control",
|
||||
"create.ponder.portable_storage_interface.scene_1.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging",
|
||||
|
||||
"create.ponder.andesite_funnel.scene_0.header": "UNLOCALIZED: Using funnels",
|
||||
"create.ponder.andesite_funnel.scene_0.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
|
|
@ -55,8 +55,9 @@ public abstract class PortableStorageInterfaceTileEntity extends SmartTileEntity
|
|||
public void tick() {
|
||||
super.tick();
|
||||
boolean wasConnected = isConnected();
|
||||
int timeUnit = getTransferTimeout() / 2;
|
||||
|
||||
if (transferTimer > 0) {
|
||||
if (transferTimer > 0 && (!isVirtual() || transferTimer != timeUnit)) {
|
||||
transferTimer--;
|
||||
if (transferTimer == 0 || powered)
|
||||
stopTransferring();
|
||||
|
@ -67,7 +68,6 @@ public abstract class PortableStorageInterfaceTileEntity extends SmartTileEntity
|
|||
markDirty();
|
||||
|
||||
float progress = 0;
|
||||
int timeUnit = getTransferTimeout() / 2;
|
||||
if (isConnected)
|
||||
progress = 1;
|
||||
else if (transferTimer >= timeUnit * 3)
|
||||
|
@ -106,12 +106,13 @@ public abstract class PortableStorageInterfaceTileEntity extends SmartTileEntity
|
|||
powered = isBlockPowered;
|
||||
sendData();
|
||||
}
|
||||
|
||||
|
||||
public boolean isPowered() {
|
||||
return powered;
|
||||
}
|
||||
|
||||
protected AxisAlignedBB cachedBoundingBox;
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
|
|
@ -25,7 +25,8 @@ import net.minecraft.util.Direction;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity implements IBearingTileEntity, IDisplayAssemblyExceptions {
|
||||
public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity
|
||||
implements IBearingTileEntity, IDisplayAssemblyExceptions {
|
||||
|
||||
protected ScrollOptionBehaviour<RotationMode> movementMode;
|
||||
protected ControlledContraptionEntity movedContraption;
|
||||
|
@ -35,6 +36,8 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
|
|||
protected float clientAngleDiff;
|
||||
protected AssemblyException lastException;
|
||||
|
||||
private float prevAngle;
|
||||
|
||||
public MechanicalBearingTileEntity(TileEntityType<? extends MechanicalBearingTileEntity> type) {
|
||||
super(type);
|
||||
setLazyTickRate(3);
|
||||
|
@ -87,6 +90,8 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
|
|||
|
||||
@Override
|
||||
public float getInterpolatedAngle(float partialTicks) {
|
||||
if (isVirtual())
|
||||
return MathHelper.lerp(partialTicks + .5f, prevAngle, angle);
|
||||
if (movedContraption == null || movedContraption.isStalled() || !running)
|
||||
partialTicks = 0;
|
||||
return MathHelper.lerp(partialTicks, angle, angle + getAngularSpeed());
|
||||
|
@ -145,7 +150,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
|
|||
AllTriggers.triggerForNearbyPlayers(AllTriggers.WINDMILL, world, pos, 5);
|
||||
if (contraption.getSailBlocks() >= 16 * 8)
|
||||
AllTriggers.triggerForNearbyPlayers(AllTriggers.MAXED_WINDMILL, world, pos, 5);
|
||||
|
||||
|
||||
contraption.removeBlocksFromWorld(world, BlockPos.ZERO);
|
||||
movedContraption = ControlledContraptionEntity.create(world, this, contraption);
|
||||
BlockPos anchor = pos.offset(direction);
|
||||
|
@ -179,6 +184,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
|
|||
public void tick() {
|
||||
super.tick();
|
||||
|
||||
prevAngle = angle;
|
||||
if (world.isRemote)
|
||||
clientAngleDiff /= 2;
|
||||
|
||||
|
@ -291,7 +297,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
|
|||
BlockState state = getBlockState();
|
||||
if (!(state.getBlock() instanceof BearingBlock))
|
||||
return false;
|
||||
|
||||
|
||||
BlockState attachedState = world.getBlockState(pos.offset(state.get(BearingBlock.FACING)));
|
||||
if (attachedState.getMaterial()
|
||||
.isReplaceable())
|
||||
|
@ -304,4 +310,9 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
|
|||
public boolean shouldRenderAsTE() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setAngle(float forcedAngle) {
|
||||
angle = forcedAngle;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,10 +1,29 @@
|
|||
package com.simibubi.create.foundation.ponder;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry.PonderStoryBoard;
|
||||
import com.simibubi.create.foundation.ponder.content.*;
|
||||
import com.simibubi.create.foundation.ponder.content.PonderChapter;
|
||||
import com.simibubi.create.foundation.ponder.content.PonderChapterRegistry;
|
||||
import com.simibubi.create.foundation.ponder.content.PonderIndex;
|
||||
import com.simibubi.create.foundation.ponder.content.PonderTag;
|
||||
import com.simibubi.create.foundation.ponder.content.PonderTagRegistry;
|
||||
import com.simibubi.create.foundation.ponder.content.SharedText;
|
||||
import com.tterrag.registrate.util.entry.ItemProviderEntry;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.nbt.CompressedStreamTools;
|
||||
|
@ -14,14 +33,6 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.world.gen.feature.template.PlacementSettings;
|
||||
import net.minecraft.world.gen.feature.template.Template;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
public class PonderRegistry {
|
||||
|
||||
public static final PonderTagRegistry tags = new PonderTagRegistry();
|
||||
|
@ -60,9 +71,8 @@ public class PonderRegistry {
|
|||
|
||||
public static List<PonderScene> compile(List<PonderStoryBoardEntry> entries) {
|
||||
if (PonderIndex.EDITOR_MODE) {
|
||||
//PonderLocalization.shared.clear();
|
||||
//PonderLocalization.specific.clear();
|
||||
//SharedText.gatherText();
|
||||
PonderLocalization.shared.clear();
|
||||
SharedText.gatherText();
|
||||
}
|
||||
|
||||
List<PonderScene> scenes = new ArrayList<>();
|
||||
|
|
|
@ -21,6 +21,7 @@ import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
|
|||
import com.simibubi.create.foundation.ponder.elements.ParrotElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.TextWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.ponder.instructions.AnimateTileEntityInstruction;
|
||||
import com.simibubi.create.foundation.ponder.instructions.AnimateWorldSectionInstruction;
|
||||
import com.simibubi.create.foundation.ponder.instructions.ChaseAABBInstruction;
|
||||
import com.simibubi.create.foundation.ponder.instructions.CreateParrotInstruction;
|
||||
|
@ -373,10 +374,23 @@ public class SceneBuilder {
|
|||
AnimateWorldSectionInstruction.rotate(link, new Vec3d(xRotation, yRotation, zRotation), duration));
|
||||
}
|
||||
|
||||
public void configureCenterOfRotation(ElementLink<WorldSectionElement> link, Vec3d anchor) {
|
||||
addInstruction(scene -> scene.resolve(link)
|
||||
.setCenterOfRotation(anchor));
|
||||
}
|
||||
|
||||
public void moveSection(ElementLink<WorldSectionElement> link, Vec3d offset, int duration) {
|
||||
addInstruction(AnimateWorldSectionInstruction.move(link, offset, duration));
|
||||
}
|
||||
|
||||
public void rotateBearing(BlockPos pos, float angle, int duration) {
|
||||
addInstruction(AnimateTileEntityInstruction.bearing(pos, angle, duration));
|
||||
}
|
||||
|
||||
public void movePulley(BlockPos pos, float distance, int duration) {
|
||||
addInstruction(AnimateTileEntityInstruction.pulley(pos, distance, duration));
|
||||
}
|
||||
|
||||
public void setBlocks(Selection selection, BlockState state, boolean spawnParticles) {
|
||||
addInstruction(new ReplaceBlocksInstruction(selection, $ -> state, true, spawnParticles));
|
||||
}
|
||||
|
|
|
@ -1,27 +1,189 @@
|
|||
package com.simibubi.create.foundation.ponder.content;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PortableItemInterfaceTileEntity;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuilder;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
||||
import com.simibubi.create.foundation.ponder.Selection;
|
||||
import com.simibubi.create.foundation.ponder.elements.EntityElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.ItemEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
||||
public class MovementActorScenes {
|
||||
|
||||
|
||||
public static void psiTransfer(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("Contraption Storage Exchange");
|
||||
scene.configureBasePlate(0, 0, 6);
|
||||
scene.configureBasePlate(0, 0, 8);
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(util.select.layersFrom(1), Direction.DOWN);
|
||||
|
||||
|
||||
BlockPos bearing = util.grid.at(5, 1, 2);
|
||||
scene.world.showSection(util.select.position(bearing), Direction.DOWN);
|
||||
scene.idle(5);
|
||||
ElementLink<WorldSectionElement> contraption =
|
||||
scene.world.showIndependentSection(util.select.fromTo(5, 2, 2, 6, 3, 2), Direction.DOWN);
|
||||
scene.world.configureCenterOfRotation(contraption, util.vector.centerOf(bearing));
|
||||
scene.idle(10);
|
||||
scene.world.rotateBearing(bearing, 360, 70);
|
||||
scene.world.rotateSection(contraption, 0, 360, 0, 70);
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(bearing.up(2)))
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.text("Inventories on moving contraptions cannot be accessed by players.");
|
||||
|
||||
scene.idle(70);
|
||||
BlockPos psi = util.grid.at(4, 2, 2);
|
||||
scene.world.showSectionAndMerge(util.select.position(psi), Direction.EAST, contraption);
|
||||
scene.idle(13);
|
||||
scene.effects.superGlue(psi, Direction.EAST, true);
|
||||
|
||||
scene.overlay.showText(80)
|
||||
.pointAt(util.vector.topOf(psi))
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.text("This component can interact with storage without the need to stop the contraption.");
|
||||
scene.idle(90);
|
||||
|
||||
BlockPos psi2 = psi.west(2);
|
||||
scene.world.showSection(util.select.position(psi2), Direction.DOWN);
|
||||
scene.overlay.showSelectionWithText(util.select.position(psi.west()), 50)
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.text("Place a second one with a gap of 1 or 2 blocks inbetween");
|
||||
scene.idle(55);
|
||||
|
||||
scene.world.rotateBearing(bearing, 360, 60);
|
||||
scene.world.rotateSection(contraption, 0, 360, 0, 60);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay.showText(40)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.of(3, 3, 2.5))
|
||||
.text("Whenever they pass by each other, they will engage in a connection");
|
||||
scene.idle(35);
|
||||
|
||||
Selection both = util.select.fromTo(2, 2, 2, 4, 2, 2);
|
||||
Class<PortableItemInterfaceTileEntity> psiClass = PortableItemInterfaceTileEntity.class;
|
||||
|
||||
scene.world.modifyTileNBT(both, psiClass, nbt -> {
|
||||
nbt.putFloat("Distance", 1);
|
||||
nbt.putFloat("Timer", 40);
|
||||
});
|
||||
|
||||
scene.idle(20);
|
||||
scene.overlay.showOutline(PonderPalette.GREEN, psi, util.select.fromTo(5, 3, 2, 6, 3, 2), 80);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showSelectionWithText(util.select.position(psi2), 70)
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.GREEN)
|
||||
.text("While engaged, the stationary interface will represent ALL inventories on the contraption");
|
||||
|
||||
scene.idle(80);
|
||||
|
||||
BlockPos hopper = util.grid.at(2, 3, 2);
|
||||
scene.world.showSection(util.select.position(hopper), Direction.DOWN);
|
||||
scene.overlay.showText(70)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(hopper))
|
||||
.text("Items can now be inserted...");
|
||||
|
||||
ItemStack itemStack = AllItems.COPPER_INGOT.asStack();
|
||||
Vec3d entitySpawn = util.vector.topOf(hopper.up(3));
|
||||
|
||||
ElementLink<EntityElement> entity1 =
|
||||
scene.world.createItemEntity(entitySpawn, util.vector.of(0, 0.2, 0), itemStack);
|
||||
scene.idle(10);
|
||||
ElementLink<EntityElement> entity2 =
|
||||
scene.world.createItemEntity(entitySpawn, util.vector.of(0, 0.2, 0), itemStack);
|
||||
scene.idle(10);
|
||||
scene.world.modifyEntity(entity1, Entity::remove);
|
||||
scene.idle(10);
|
||||
scene.world.modifyEntity(entity2, Entity::remove);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(6, 3, 2), Pointing.DOWN).withItem(itemStack), 40);
|
||||
|
||||
scene.idle(30);
|
||||
scene.world.hideSection(util.select.position(hopper), Direction.UP);
|
||||
scene.idle(15);
|
||||
|
||||
BlockPos beltPos = util.grid.at(1, 1, 2);
|
||||
scene.world.showSection(util.select.fromTo(0, 1, 0, 1, 2, 6), Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.createItemOnBelt(beltPos, Direction.EAST, itemStack.copy());
|
||||
scene.overlay.showText(40)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(beltPos.up()))
|
||||
.text("...or extracted from the contraption");
|
||||
scene.idle(15);
|
||||
scene.world.createItemOnBelt(beltPos, Direction.EAST, itemStack);
|
||||
|
||||
scene.idle(20);
|
||||
scene.world.modifyEntities(ItemEntity.class, Entity::remove);
|
||||
scene.idle(15);
|
||||
scene.world.modifyEntities(ItemEntity.class, Entity::remove);
|
||||
|
||||
scene.overlay.showText(120)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(psi2))
|
||||
.text("After no items have been exchanged for a while, the contraption will continue on its way");
|
||||
scene.world.modifyTileNBT(both, psiClass, nbt -> nbt.putFloat("Timer", 9));
|
||||
|
||||
scene.idle(15);
|
||||
scene.markAsFinished();
|
||||
scene.world.rotateBearing(bearing, 270, 120);
|
||||
scene.world.rotateSection(contraption, 0, 270, 0, 120);
|
||||
}
|
||||
|
||||
|
||||
public static void psiRedstone(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("Redstone Control");
|
||||
scene.configureBasePlate(0, 0, 6);
|
||||
|
||||
Class<PortableItemInterfaceTileEntity> psiClass = PortableItemInterfaceTileEntity.class;
|
||||
Selection psis = util.select.fromTo(1, 1, 3, 1, 3, 3);
|
||||
scene.world.modifyTileNBT(psis, psiClass, nbt -> {
|
||||
nbt.putFloat("Distance", 1);
|
||||
nbt.putFloat("Timer", 40);
|
||||
});
|
||||
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(util.select.layersFrom(1), Direction.DOWN);
|
||||
scene.world.showSection(util.select.layer(1), Direction.DOWN);
|
||||
scene.idle(5);
|
||||
|
||||
ElementLink<WorldSectionElement> contraption =
|
||||
scene.world.showIndependentSection(util.select.layersFrom(2), Direction.DOWN);
|
||||
BlockPos bearing = util.grid.at(3, 1, 3);
|
||||
scene.world.configureCenterOfRotation(contraption, util.vector.topOf(bearing));
|
||||
scene.idle(20);
|
||||
scene.world.modifyTileNBT(psis, psiClass, nbt -> nbt.putFloat("Timer", 9));
|
||||
scene.idle(20);
|
||||
scene.world.rotateBearing(bearing, 360 * 3 + 270, 240 + 60);
|
||||
scene.world.rotateSection(contraption, 0, 360 * 3 + 270, 0, 240 + 60);
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 1, 1, 1, 2));
|
||||
scene.effects.indicateRedstone(util.grid.at(1, 1, 1));
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showSelectionWithText(util.select.position(1, 1, 3), 120)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Redstone power will prevent the stationary interface from engaging");
|
||||
|
||||
scene.idle(20);
|
||||
scene.markAsFinished();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.simibubi.create.AllItems;
|
|||
import com.simibubi.create.foundation.ponder.PonderRegistry;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.item.Items;
|
||||
|
||||
public class PonderIndex {
|
||||
|
||||
|
@ -17,10 +16,8 @@ public class PonderIndex {
|
|||
// (!) Modifications inside storyboard methods only require re-opening the ui
|
||||
|
||||
PonderRegistry.forComponents(AllBlocks.SHAFT)
|
||||
.addStoryBoard("shaft/relay", KineticsScenes::shaftAsRelay, b -> b.highlightAllTags()
|
||||
.chapter(PonderChapter.of("basic_kinetics")))
|
||||
.addStoryBoard("shaft/encasing", KineticsScenes::shaftsCanBeEncased,
|
||||
b -> b.chapter(PonderChapter.of("encasing")));
|
||||
.addStoryBoard("shaft/relay", KineticsScenes::shaftAsRelay)
|
||||
.addStoryBoard("shaft/encasing", KineticsScenes::shaftsCanBeEncased);
|
||||
|
||||
// Funnels
|
||||
PonderRegistry.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass);
|
||||
|
@ -51,24 +48,102 @@ public class PonderIndex {
|
|||
}
|
||||
|
||||
public static void registerTags() {
|
||||
// Add items to tags here
|
||||
|
||||
PonderRegistry.tags.forItems(AllBlocks.SHAFT.getId())
|
||||
.add(PonderTag.KINETICS);
|
||||
PonderRegistry.tags.forTag(PonderTag.KINETIC_RELAYS)
|
||||
.add(AllBlocks.SHAFT)
|
||||
.add(AllBlocks.COGWHEEL)
|
||||
.add(AllBlocks.LARGE_COGWHEEL)
|
||||
.add(AllItems.BELT_CONNECTOR)
|
||||
.add(AllBlocks.ENCASED_CHAIN_DRIVE);
|
||||
|
||||
PonderRegistry.tags.forItems(AllBlocks.ANDESITE_FUNNEL.getId(), AllBlocks.BRASS_FUNNEL.getId())
|
||||
.add(PonderTag.ARM_ACCESS)
|
||||
.add(PonderTag.ITEM_TRANSFER)
|
||||
.add(PonderTag.REDSTONE_CONTROL);
|
||||
PonderRegistry.tags.forTag(PonderTag.KINETIC_SOURCES)
|
||||
.add(AllBlocks.HAND_CRANK)
|
||||
.add(AllBlocks.COPPER_VALVE_HANDLE)
|
||||
.add(AllBlocks.WATER_WHEEL)
|
||||
.add(AllBlocks.ENCASED_FAN)
|
||||
.add(AllBlocks.WINDMILL_BEARING)
|
||||
.add(AllBlocks.FURNACE_ENGINE);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.REDSTONE_CONTROL)
|
||||
.add(Items.REDSTONE.getRegistryName())
|
||||
.add(Blocks.LEVER.getRegistryName());
|
||||
PonderRegistry.tags.forTag(PonderTag.KINETIC_APPLIANCES)
|
||||
.add(AllBlocks.MILLSTONE)
|
||||
.add(AllBlocks.TURNTABLE)
|
||||
.add(AllBlocks.MECHANICAL_PRESS)
|
||||
.add(AllBlocks.MECHANICAL_MIXER)
|
||||
.add(AllBlocks.MECHANICAL_CRAFTER)
|
||||
.add(AllBlocks.MECHANICAL_DRILL)
|
||||
.add(AllBlocks.MECHANICAL_SAW)
|
||||
.add(AllBlocks.MECHANICAL_PUMP)
|
||||
.add(AllBlocks.MECHANICAL_ARM)
|
||||
.add(AllBlocks.MECHANICAL_PISTON)
|
||||
.add(AllBlocks.ROPE_PULLEY)
|
||||
.add(AllBlocks.MECHANICAL_BEARING)
|
||||
.add(AllBlocks.GANTRY_SHAFT)
|
||||
.add(AllBlocks.GANTRY_CARRIAGE)
|
||||
.add(AllBlocks.CLOCKWORK_BEARING)
|
||||
.add(AllBlocks.CRUSHING_WHEEL);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.KINETICS)
|
||||
.add(AllBlocks.COGWHEEL.getId())
|
||||
.add(AllBlocks.LARGE_COGWHEEL.getId())
|
||||
.add(AllItems.BELT_CONNECTOR.getId())
|
||||
.add(AllBlocks.ENCASED_CHAIN_DRIVE.getId());
|
||||
PonderRegistry.tags.forTag(PonderTag.FLUIDS)
|
||||
.add(AllBlocks.FLUID_PIPE)
|
||||
.add(AllBlocks.MECHANICAL_PUMP)
|
||||
.add(AllBlocks.FLUID_VALVE)
|
||||
.add(AllBlocks.SMART_FLUID_PIPE)
|
||||
.add(AllBlocks.FLUID_TANK)
|
||||
.add(AllBlocks.ITEM_DRAIN)
|
||||
.add(AllBlocks.HOSE_PULLEY);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.ARM_TARGETS)
|
||||
.add(AllItems.BELT_CONNECTOR)
|
||||
.add(AllBlocks.CHUTE)
|
||||
.add(AllBlocks.DEPOT)
|
||||
.add(AllBlocks.BASIN)
|
||||
.add(AllBlocks.ANDESITE_FUNNEL)
|
||||
.add(AllBlocks.BRASS_FUNNEL)
|
||||
.add(AllBlocks.MECHANICAL_CRAFTER)
|
||||
.add(AllBlocks.MILLSTONE)
|
||||
.add(AllBlocks.DEPLOYER)
|
||||
.add(AllBlocks.MECHANICAL_SAW)
|
||||
.add(Blocks.COMPOSTER)
|
||||
.add(AllBlocks.BLAZE_BURNER)
|
||||
.add(Blocks.JUKEBOX)
|
||||
.add(AllBlocks.CRUSHING_WHEEL);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.LOGISTICS)
|
||||
.add(AllItems.BELT_CONNECTOR)
|
||||
.add(AllBlocks.CHUTE)
|
||||
.add(AllBlocks.SMART_CHUTE)
|
||||
.add(AllBlocks.DEPOT)
|
||||
.add(AllBlocks.MECHANICAL_ARM)
|
||||
.add(AllBlocks.ANDESITE_FUNNEL)
|
||||
.add(AllBlocks.BRASS_FUNNEL)
|
||||
.add(AllBlocks.ANDESITE_TUNNEL)
|
||||
.add(AllBlocks.BRASS_TUNNEL);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.MOVEMENT_ANCHOR)
|
||||
.add(AllBlocks.MECHANICAL_PISTON)
|
||||
.add(AllBlocks.WINDMILL_BEARING)
|
||||
.add(AllBlocks.MECHANICAL_BEARING)
|
||||
.add(AllBlocks.CLOCKWORK_BEARING)
|
||||
.add(AllBlocks.ROPE_PULLEY)
|
||||
.add(AllBlocks.GANTRY_CARRIAGE)
|
||||
.add(AllBlocks.CART_ASSEMBLER);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.CONTRAPTION_ACTOR)
|
||||
.add(AllBlocks.MECHANICAL_HARVESTER)
|
||||
.add(AllBlocks.MECHANICAL_PLOUGH)
|
||||
.add(AllBlocks.MECHANICAL_DRILL)
|
||||
.add(AllBlocks.MECHANICAL_SAW)
|
||||
.add(AllBlocks.DEPLOYER)
|
||||
.add(AllBlocks.PORTABLE_STORAGE_INTERFACE)
|
||||
.add(AllBlocks.PORTABLE_FLUID_INTERFACE)
|
||||
.add(AllBlocks.MECHANICAL_BEARING)
|
||||
.add(AllBlocks.ANDESITE_FUNNEL)
|
||||
.add(AllBlocks.BRASS_FUNNEL)
|
||||
.add(AllBlocks.SEATS[0])
|
||||
.add(AllBlocks.REDSTONE_CONTACT)
|
||||
.add(Blocks.BELL)
|
||||
.add(Blocks.DISPENSER)
|
||||
.add(Blocks.DROPPER);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -6,11 +6,11 @@ import com.simibubi.create.foundation.gui.GuiGameElement;
|
|||
import com.simibubi.create.foundation.gui.IScreenRenderable;
|
||||
import com.simibubi.create.foundation.ponder.PonderLocalization;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.AbstractGui;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.util.IItemProvider;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
@ -21,18 +21,41 @@ public class PonderTag implements IScreenRenderable {
|
|||
|
||||
public static final PonderTag
|
||||
|
||||
KINETICS = new PonderTag("kinetics").item(AllBlocks.COGWHEEL.get()
|
||||
.asItem(), true, false)
|
||||
.defaultLang("Kinetic Blocks", "Components which help generating, relaying and making use of Rotational Force"),
|
||||
FLUID_TRANSFER = new PonderTag("fluid_transfer").idAsIcon(),
|
||||
OPEN_INVENTORY = new PonderTag("open_inventory").item(AllBlocks.BASIN.get()
|
||||
.asItem()),
|
||||
ARM_ACCESS = new PonderTag("arm_access").item(AllBlocks.MECHANICAL_ARM.get()
|
||||
.asItem())
|
||||
KINETIC_RELAYS = new PonderTag("kinetic_relays").item(AllBlocks.COGWHEEL.get(), true, false)
|
||||
.defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere"),
|
||||
|
||||
KINETIC_SOURCES = new PonderTag("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false)
|
||||
.defaultLang("Kinetic Sources", "Components which generate Rotational Force"),
|
||||
|
||||
KINETIC_APPLIANCES = new PonderTag("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false)
|
||||
.defaultLang("Kinetic Appliances", "Components which make use of Rotational Force"),
|
||||
|
||||
FLUIDS = new PonderTag("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false)
|
||||
.defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids"),
|
||||
|
||||
LOGISTICS = new PonderTag("logistics").item(Blocks.CHEST, true, false)
|
||||
.defaultLang("Item Transportation", "Components which help moving items around"),
|
||||
|
||||
MOVEMENT_ANCHOR = new PonderTag("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false)
|
||||
.defaultLang("Movement Anchors",
|
||||
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways"),
|
||||
|
||||
CONTRAPTION_ACTOR = new PonderTag("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false)
|
||||
.defaultLang("Contraption Actors",
|
||||
"Components which expose special behaviour when attached to a moving contraption"),
|
||||
|
||||
// FLUID_TRANSFER = new PonderTag("fluid_transfer").idAsIcon(),
|
||||
//
|
||||
// OPEN_INVENTORY = new PonderTag("open_inventory").item(AllBlocks.BASIN.get()
|
||||
// .asItem()),
|
||||
//
|
||||
// REDSTONE_CONTROL = new PonderTag("redstone_control").item(Items.REDSTONE, true, false),
|
||||
//
|
||||
// ITEM_TRANSFER = new PonderTag("item_transfer").idAsIcon(),
|
||||
|
||||
ARM_TARGETS = new PonderTag("arm_targets").item(AllBlocks.MECHANICAL_ARM.get())
|
||||
.defaultLang("Targets for Mechanical Arms",
|
||||
"Components which can be selected as inputs or outputs to the Mechanical Arm"),
|
||||
REDSTONE_CONTROL = new PonderTag("redstone_control").item(Items.REDSTONE, true, false),
|
||||
ITEM_TRANSFER = new PonderTag("item_transfer").idAsIcon();
|
||||
"Components which can be selected as inputs or outputs to the Mechanical Arm");
|
||||
|
||||
public static class Highlight {
|
||||
public static final PonderTag ALL = new PonderTag("_all");
|
||||
|
@ -81,11 +104,11 @@ public class PonderTag implements IScreenRenderable {
|
|||
return this;
|
||||
}
|
||||
|
||||
public PonderTag item(Item item) {
|
||||
public PonderTag item(IItemProvider item) {
|
||||
return this.item(item, true, true);
|
||||
}
|
||||
|
||||
public PonderTag item(Item item, boolean useAsIcon, boolean useAsMainItem) {
|
||||
public PonderTag item(IItemProvider item, boolean useAsIcon, boolean useAsMainItem) {
|
||||
if (useAsIcon)
|
||||
this.itemIcon = new ItemStack(item);
|
||||
if (useAsMainItem)
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
package com.simibubi.create.foundation.ponder.content;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.LinkedHashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.simibubi.create.foundation.ponder.PonderRegistry;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.LinkedHashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.simibubi.create.foundation.ponder.PonderRegistry;
|
||||
import com.tterrag.registrate.util.entry.ItemProviderEntry;
|
||||
|
||||
import net.minecraft.util.IItemProvider;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class PonderTagRegistry {
|
||||
|
||||
private final Multimap<ResourceLocation, PonderTag> tags;
|
||||
|
@ -30,21 +33,19 @@ public class PonderTagRegistry {
|
|||
}
|
||||
|
||||
public Set<ResourceLocation> getItems(PonderTag tag) {
|
||||
return tags
|
||||
.entries()
|
||||
.stream()
|
||||
.filter(e -> e.getValue() == tag)
|
||||
.map(Map.Entry::getKey)
|
||||
.collect(ImmutableSet.toImmutableSet());
|
||||
return tags.entries()
|
||||
.stream()
|
||||
.filter(e -> e.getValue() == tag)
|
||||
.map(Map.Entry::getKey)
|
||||
.collect(ImmutableSet.toImmutableSet());
|
||||
}
|
||||
|
||||
public Set<PonderChapter> getChapters(PonderTag tag) {
|
||||
return chapterTags
|
||||
.entries()
|
||||
.stream()
|
||||
.filter(e -> e.getValue() == tag)
|
||||
.map(Map.Entry::getKey)
|
||||
.collect(ImmutableSet.toImmutableSet());
|
||||
return chapterTags.entries()
|
||||
.stream()
|
||||
.filter(e -> e.getValue() == tag)
|
||||
.map(Map.Entry::getKey)
|
||||
.collect(ImmutableSet.toImmutableSet());
|
||||
}
|
||||
|
||||
public void add(PonderTag tag, ResourceLocation item) {
|
||||
|
@ -90,5 +91,14 @@ public class PonderTagRegistry {
|
|||
PonderRegistry.tags.add(tag, item);
|
||||
return this;
|
||||
}
|
||||
|
||||
public TagBuilder add(IItemProvider item) {
|
||||
return add(item.asItem()
|
||||
.getRegistryName());
|
||||
}
|
||||
|
||||
public TagBuilder add(ItemProviderEntry<?> entry) {
|
||||
return add(entry.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,13 +34,11 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
protected final PonderTag tag;
|
||||
protected final List<Item> items;
|
||||
private final double itemXmult = 0.5;
|
||||
private final double itemYmult = 0.4;
|
||||
protected Rectangle2d itemArea;
|
||||
protected final List<PonderChapter> chapters;
|
||||
private final double chapterXmult = 0.5;
|
||||
private final double chapterYmult = 0.75;
|
||||
protected Rectangle2d chapterArea;
|
||||
// private final double mainXmult = 0.5;
|
||||
private final double mainYmult = 0.15;
|
||||
|
||||
private ItemStack hoveredItem = ItemStack.EMPTY;
|
||||
|
@ -76,7 +74,7 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
LayoutHelper layout = LayoutHelper.centeredHorizontal(items.size(), rowCount, 28, 28, 8);
|
||||
itemArea = layout.getArea();
|
||||
int itemCenterX = (int) (width * itemXmult);
|
||||
int itemCenterY = (int) (height * itemYmult);
|
||||
int itemCenterY = getItemsY();
|
||||
|
||||
for (Item i : items) {
|
||||
PonderButton button =
|
||||
|
@ -92,6 +90,23 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
layout.next();
|
||||
}
|
||||
|
||||
if (!tag.getMainItem()
|
||||
.isEmpty()) {
|
||||
PonderButton button =
|
||||
new PonderButton(itemCenterX - layout.getTotalWidth() / 2 - 42, itemCenterY - 10, (mouseX, mouseY) -> {
|
||||
if (!PonderRegistry.all.containsKey(tag.getMainItem()
|
||||
.getItem()
|
||||
.getRegistryName()))
|
||||
return;
|
||||
centerScalingOn(mouseX, mouseY);
|
||||
ScreenOpener.transitionTo(PonderUI.of(tag.getMainItem()));
|
||||
}).showing(tag.getMainItem());
|
||||
|
||||
button.fade(1);
|
||||
// button.flash();
|
||||
widgets.add(button);
|
||||
}
|
||||
|
||||
// chapters
|
||||
chapters.clear();
|
||||
chapters.addAll(PonderRegistry.tags.getChapters(tag));
|
||||
|
@ -137,48 +152,6 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
|
||||
renderChapters(mouseX, mouseY, partialTicks);
|
||||
|
||||
//
|
||||
// int x = (int) (width * mainXmult);
|
||||
// int y = (int) (height * mainYmult);
|
||||
//
|
||||
// RenderSystem.pushMatrix();
|
||||
// RenderSystem.translated(x, y, 0);
|
||||
// RenderSystem.translated(-150, 0, 0);
|
||||
//
|
||||
// if (!tag.getMainItem()
|
||||
// .isEmpty()) {
|
||||
// RenderSystem.translated(-25, 0, 0);
|
||||
// PonderUI.renderBox(0, -10, 20, 20, false);
|
||||
// RenderSystem.pushMatrix();
|
||||
// RenderSystem.translated(-2, -12, 0);
|
||||
// RenderSystem.scaled(1.5, 1.5, 1);
|
||||
// GuiGameElement.of(tag.getMainItem())
|
||||
// .render();
|
||||
//
|
||||
// RenderSystem.popMatrix();
|
||||
//
|
||||
// RenderSystem.translated(75, 0, 0);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// RenderSystem.pushMatrix();
|
||||
//// RenderSystem.scaled(1.5, 1.5, 1);
|
||||
//
|
||||
// // render icon & box
|
||||
// PonderUI.renderBox(-8, -20, 40, 40, false);
|
||||
// RenderSystem.translated(0, -10, 100);
|
||||
// RenderSystem.scaled(1.5, 1.5, 1);
|
||||
// tag.draw(this, 0, 0);
|
||||
//
|
||||
// RenderSystem.popMatrix();
|
||||
//
|
||||
// // tag name & description
|
||||
// UIRenderHelper.streak(0, 36, 0, 39, 350, 0x101010);
|
||||
// drawString(font, Lang.translate("ponder.tag." + tag.getId()), 41, -16, 0xffff_ffff);
|
||||
// drawString(font, Lang.translate("ponder.tag." + tag.getId() + ".desc"), 41, -4, 0xffff_ffff);
|
||||
//
|
||||
// RenderSystem.popMatrix();
|
||||
|
||||
RenderSystem.pushMatrix();
|
||||
RenderSystem.translated(width / 2 - 120, height * mainYmult - 40, 0);
|
||||
|
||||
|
@ -196,7 +169,6 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
drawString(font, Lang.translate(PonderUI.PONDERING), x, y - 6, 0xffa3a3a3);
|
||||
y += 8;
|
||||
x += 0;
|
||||
// RenderSystem.translated(0, 3 * (indexDiff), 0);
|
||||
RenderSystem.translated(x, y, 0);
|
||||
RenderSystem.translated(0, 0, 5);
|
||||
font.drawString(title, 0, 0, 0xeeeeee);
|
||||
|
@ -212,7 +184,7 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
RenderSystem.pushMatrix();
|
||||
int w = (int) (width * .45);
|
||||
x = (width - w) / 2;
|
||||
y = (int) (height * itemYmult + itemArea.getHeight() + 20);
|
||||
y = getItemsY() - 10 + Math.max(itemArea.getHeight(), 48);
|
||||
|
||||
String desc = tag.getDescription();
|
||||
int h = font.getWordWrappedHeight(desc, w);
|
||||
|
@ -228,7 +200,7 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
return;
|
||||
|
||||
int x = (int) (width * itemXmult);
|
||||
int y = (int) (height * itemYmult);
|
||||
int y = getItemsY();
|
||||
|
||||
String relatedTitle = Lang.translate(ASSOCIATED);
|
||||
int stringWidth = font.getStringWidth(relatedTitle);
|
||||
|
@ -248,6 +220,10 @@ public class PonderTagScreen extends AbstractSimiScreen {
|
|||
|
||||
}
|
||||
|
||||
public int getItemsY() {
|
||||
return (int) (mainYmult * height + 85);
|
||||
}
|
||||
|
||||
protected void renderChapters(int mouseX, int mouseY, float partialTicks) {
|
||||
if (chapters.isEmpty())
|
||||
return;
|
||||
|
|
|
@ -24,7 +24,7 @@ public class InputWindowElement extends AnimatedOverlayElement {
|
|||
AllIcons icon;
|
||||
ItemStack item = ItemStack.EMPTY;
|
||||
private Vec3d sceneSpace;
|
||||
|
||||
|
||||
public InputWindowElement clone() {
|
||||
InputWindowElement inputWindowElement = new InputWindowElement(sceneSpace, direction);
|
||||
inputWindowElement.key = key;
|
||||
|
@ -129,7 +129,7 @@ public class InputWindowElement extends AnimatedOverlayElement {
|
|||
|
||||
if (hasItem) {
|
||||
GuiGameElement.of(item)
|
||||
.at(keyWidth + 24, 0)
|
||||
.at(keyWidth + (hasIcon ? 24 : 0), 0)
|
||||
.scale(1.5)
|
||||
.render();
|
||||
RenderSystem.disableDepthTest();
|
||||
|
|
|
@ -96,10 +96,13 @@ public class WorldSectionElement extends AnimatedSceneElement {
|
|||
|
||||
private void applyNewSelection(Selection selection) {
|
||||
this.section = selection;
|
||||
centerOfRotation = this.section.getCenter();
|
||||
queueRedraw();
|
||||
}
|
||||
|
||||
public void setCenterOfRotation(Vec3d center) {
|
||||
centerOfRotation = center;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(PonderScene scene) {
|
||||
super.reset(scene);
|
||||
|
@ -189,6 +192,8 @@ public class WorldSectionElement extends AnimatedSceneElement {
|
|||
float pt = AnimationTickHolder.getPartialTicks();
|
||||
in = in.subtract(VecHelper.lerp(pt, prevAnimatedOffset, animatedOffset));
|
||||
if (!animatedRotation.equals(Vec3d.ZERO) || !prevAnimatedRotation.equals(Vec3d.ZERO)) {
|
||||
if (centerOfRotation == null)
|
||||
centerOfRotation = section.getCenter();
|
||||
in = in.subtract(centerOfRotation);
|
||||
in = VecHelper.rotate(in, -MathHelper.lerp(pt, prevAnimatedRotation.x, animatedRotation.x), Axis.X);
|
||||
in = VecHelper.rotate(in, -MathHelper.lerp(pt, prevAnimatedRotation.z, animatedRotation.z), Axis.Z);
|
||||
|
@ -201,13 +206,16 @@ public class WorldSectionElement extends AnimatedSceneElement {
|
|||
public void transformMS(MatrixStack ms, float pt) {
|
||||
MatrixStacker.of(ms)
|
||||
.translate(VecHelper.lerp(pt, prevAnimatedOffset, animatedOffset));
|
||||
if (!animatedRotation.equals(Vec3d.ZERO) || !prevAnimatedRotation.equals(Vec3d.ZERO))
|
||||
if (!animatedRotation.equals(Vec3d.ZERO) || !prevAnimatedRotation.equals(Vec3d.ZERO)) {
|
||||
if (centerOfRotation == null)
|
||||
centerOfRotation = section.getCenter();
|
||||
MatrixStacker.of(ms)
|
||||
.translate(centerOfRotation)
|
||||
.rotateX(MathHelper.lerp(pt, prevAnimatedRotation.x, animatedRotation.x))
|
||||
.rotateZ(MathHelper.lerp(pt, prevAnimatedRotation.z, animatedRotation.z))
|
||||
.rotateY(MathHelper.lerp(pt, prevAnimatedRotation.y, animatedRotation.y))
|
||||
.translateBack(centerOfRotation);
|
||||
}
|
||||
}
|
||||
|
||||
public void tick(PonderScene scene) {
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
package com.simibubi.create.foundation.ponder.instructions;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
|
||||
import com.simibubi.create.foundation.ponder.PonderScene;
|
||||
import com.simibubi.create.foundation.ponder.PonderWorld;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
||||
public class AnimateTileEntityInstruction extends TickingInstruction {
|
||||
|
||||
protected double deltaPerTick;
|
||||
protected double totalDelta;
|
||||
protected double target;
|
||||
protected final BlockPos location;
|
||||
|
||||
private BiConsumer<PonderWorld, Float> setter;
|
||||
private Function<PonderWorld, Float> getter;
|
||||
|
||||
public static AnimateTileEntityInstruction bearing(BlockPos location, float totalDelta, int ticks) {
|
||||
return new AnimateTileEntityInstruction(location, totalDelta, ticks,
|
||||
(w, f) -> castIfPresent(w, location, MechanicalBearingTileEntity.class).ifPresent(bte -> bte.setAngle(f)),
|
||||
(w) -> castIfPresent(w, location, MechanicalBearingTileEntity.class).map(bte -> bte.getInterpolatedAngle(0))
|
||||
.orElse(0f));
|
||||
}
|
||||
|
||||
public static AnimateTileEntityInstruction pulley(BlockPos location, float totalDelta, int ticks) {
|
||||
return new AnimateTileEntityInstruction(location, totalDelta, ticks,
|
||||
(w, f) -> castIfPresent(w, location, PulleyTileEntity.class).ifPresent(pulley -> pulley.offset = f),
|
||||
(w) -> castIfPresent(w, location, PulleyTileEntity.class).map(pulley -> pulley.offset)
|
||||
.orElse(0f));
|
||||
}
|
||||
|
||||
protected AnimateTileEntityInstruction(BlockPos location, float totalDelta, int ticks,
|
||||
BiConsumer<PonderWorld, Float> setter, Function<PonderWorld, Float> getter) {
|
||||
super(false, ticks);
|
||||
this.location = location;
|
||||
this.setter = setter;
|
||||
this.getter = getter;
|
||||
this.deltaPerTick = totalDelta * (1d / ticks);
|
||||
this.totalDelta = totalDelta;
|
||||
this.target = totalDelta;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void firstTick(PonderScene scene) {
|
||||
super.firstTick(scene);
|
||||
target = getter.apply(scene.getWorld()) + totalDelta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick(PonderScene scene) {
|
||||
super.tick(scene);
|
||||
PonderWorld world = scene.getWorld();
|
||||
setter.accept(world, (float) (remainingTicks == 0 ? target : getter.apply(world) + deltaPerTick));
|
||||
}
|
||||
|
||||
private static <T> Optional<T> castIfPresent(PonderWorld world, BlockPos pos, Class<T> teType) {
|
||||
TileEntity tileEntity = world.getTileEntity(pos);
|
||||
if (teType.isInstance(tileEntity))
|
||||
return Optional.of(teType.cast(tileEntity));
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
}
|
|
@ -21,12 +21,7 @@ public interface LayoutHelper {
|
|||
default Rectangle2d getArea() {
|
||||
int lWidth = getTotalWidth();
|
||||
int lHeight = getTotalHeight();
|
||||
return new Rectangle2d(
|
||||
-lWidth/2,
|
||||
-lHeight/2,
|
||||
lWidth,
|
||||
lHeight
|
||||
);
|
||||
return new Rectangle2d(-lWidth / 2, -lHeight / 2, lWidth, lHeight);
|
||||
}
|
||||
|
||||
class CenteredHorizontalLayoutHelper implements LayoutHelper {
|
||||
|
@ -77,7 +72,7 @@ public interface LayoutHelper {
|
|||
public void next() {
|
||||
currentColumn++;
|
||||
if (currentColumn >= rowCounts[currentRow]) {
|
||||
//nextRow
|
||||
// nextRow
|
||||
if (++currentRow >= rows) {
|
||||
x = 0;
|
||||
y = 0;
|
||||
|
@ -96,10 +91,8 @@ public interface LayoutHelper {
|
|||
private void init() {
|
||||
prepareX();
|
||||
prepareY();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void prepareX() {
|
||||
int rowWidth = rowCounts[currentRow] * width + (rowCounts[currentRow] - 1) * spacing;
|
||||
x = -(rowWidth / 2);
|
||||
|
@ -120,7 +113,6 @@ public interface LayoutHelper {
|
|||
return rows * height + (rows > 1 ? ((rows - 1) * spacing) : 0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue