Merge branch 'mc1.15/dev' into mc1.16/dev

This commit is contained in:
simibubi 2020-10-20 21:02:50 +02:00
commit 41148a5e39
75 changed files with 5551 additions and 1894 deletions

1415
ko_kr.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -211,7 +211,7 @@ da612a05f94dc19e07e250efc35a7b2839d2ee76 assets/create/blockstates/mechanical_pi
debef0f5dde74103aaf4422de4bc90e4099b0c47 assets/create/blockstates/mechanical_plough.json
92269fe66d7b83095a2e04e121af0be792f55dd6 assets/create/blockstates/mechanical_press.json
b7c4a0ff0c6f16e14d71fc0fb7fc66d032b65cf3 assets/create/blockstates/mechanical_pump.json
1478fc76afb9b186fd3fddc20c29525d60d692bc assets/create/blockstates/mechanical_saw.json
264d72320ee0f1e014319f7d99dcc1fa953a4ad4 assets/create/blockstates/mechanical_saw.json
4e48ad0936647065c2322390e7c0fe115c853a98 assets/create/blockstates/millstone.json
468202df0802e17c75fcad0993daf1bc5300ca91 assets/create/blockstates/minecart_anchor.json
6a42f86aaff8ced70aaa6adb9460614ab40c21e5 assets/create/blockstates/mossy_andesite.json
@ -312,7 +312,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl
469e430d96cb0a5e1aaf6b7cc5d401d488c9e600 assets/create/blockstates/pulse_repeater.json
92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json
61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json
bdd56f32ce0a148b6e466a55ab2777f69fc08cfc assets/create/blockstates/radial_chassis.json
89b63c6e5875da07226854651079bcea85439f5b assets/create/blockstates/radial_chassis.json
da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json
722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json
8929677f2cc5354aa19ef182af69f9f0b41eb242 assets/create/blockstates/redstone_contact.json
@ -369,16 +369,16 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
33f621fe1a09a46426af59c9352c33e97c2bc00d assets/create/lang/en_ud.json
f68da0c370026f416745b46445b53c63457cdeac assets/create/lang/en_us.json
1fa1a84b7dae8c7636a667e094883646ad6fa1e2 assets/create/lang/unfinished/de_de.json
4b2501a9d7730b4fb469d241afd72483171ce36b assets/create/lang/unfinished/fr_fr.json
efff9eee3f434fa04b3a688e8e861ab7d36fb45f assets/create/lang/unfinished/it_it.json
6db6ebd43ec38e11ad81f4b997b5765857bdf8da assets/create/lang/unfinished/ja_jp.json
3975b1184f38e7d7150ba2be0179bd3cf36ed7ca assets/create/lang/unfinished/ko_kr.json
84c44b3b4805925d0b489e295b38a72dbf2703e1 assets/create/lang/unfinished/nl_nl.json
f82f1e6250dd9a5ca9a7b92078bf1f7429d14d00 assets/create/lang/unfinished/pt_br.json
72d5dcbaa454de0ff33ff0cb2108938c2a5e677a assets/create/lang/unfinished/ru_ru.json
fdc2007ea9e3f8d8b2a6f8dedc434b591a0bbf0a assets/create/lang/unfinished/zh_cn.json
25fba2944b4a86281bc40fddba4a8136d53e3c26 assets/create/lang/en_us.json
52ad08a48ec59354f826b9cfe7eb6ea79ec7bab9 assets/create/lang/unfinished/de_de.json
62bf8e59e095e3c5dfc0a00f68b25de09cbd1b7e assets/create/lang/unfinished/fr_fr.json
4fb16e3e63bd5df457d7c77c6290b4ce595fd4a8 assets/create/lang/unfinished/it_it.json
654032efb15080b3824536cc4a0b32507b006264 assets/create/lang/unfinished/ja_jp.json
fec915edfbc9bca029dcbd6b5bdd7f9c777fb08b assets/create/lang/unfinished/ko_kr.json
8de3030ee744fe793ad2c27c5f9f2e7a3b933e3c assets/create/lang/unfinished/nl_nl.json
5cebc2913e4c04b496e00e0841474118c7709c4e assets/create/lang/unfinished/pt_br.json
68beb3243e78a3f34426229286f97a7cf2f3e489 assets/create/lang/unfinished/ru_ru.json
bf38c2b2063126ca3c3ed9183726665c8aaea419 assets/create/lang/unfinished/zh_cn.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
@ -3153,8 +3153,10 @@ abbe5d7cc9d1705509257888154ed7ca23292586 data/create/tags/items/upright_on_belt.
50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json
16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json
81ced867d24ec814942909965dd4576eff1db685 data/forge/tags/blocks/glass_panes.json
4b700ee8aa748c2ec70c29ef1589844879c0deae data/forge/tags/blocks/ores.json
4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data/forge/tags/blocks/ores/copper.json
d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/blocks/ores/zinc.json
508730d3822c54d355329bf6a33d58071653afad data/forge/tags/blocks/storage_blocks.json
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/blocks/storage_blocks/brass.json
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/blocks/storage_blocks/copper.json
7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/blocks/storage_blocks/zinc.json
@ -3170,6 +3172,7 @@ bcf15289cbadd429a48bd9accb4d2d5f75353a61 data/forge/tags/items/nuggets.json
cc82188fe8d986f4457301ed4f75ae833d263601 data/forge/tags/items/nuggets/brass.json
7affb30e30a252566a77467994b0c99331f1076c data/forge/tags/items/nuggets/copper.json
0d8cb5092ee6ec01ea09324c80d649ba05549799 data/forge/tags/items/nuggets/zinc.json
4b700ee8aa748c2ec70c29ef1589844879c0deae data/forge/tags/items/ores.json
4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data/forge/tags/items/ores/copper.json
d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/items/ores/zinc.json
5d5ec04a61ff2b1ad19210e2859a9c96cc246ef8 data/forge/tags/items/plates.json
@ -3177,6 +3180,7 @@ d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/items/ores/zinc.json
c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data/forge/tags/items/plates/copper.json
fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json
04d947ed7a5066f3cfe75a8dc564fe2dca8a9c93 data/forge/tags/items/plates/iron.json
508730d3822c54d355329bf6a33d58071653afad data/forge/tags/items/storage_blocks.json
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/brass.json
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/copper.json
7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/items/storage_blocks/zinc.json

View file

@ -1,94 +1,48 @@
{
"variants": {
"axis_along_first=false,facing=down,running=false": {
"model": "create:block/mechanical_saw/vertical_inactive",
"x": 180
},
"axis_along_first=true,facing=down,running=false": {
"model": "create:block/mechanical_saw/vertical_inactive",
"x": 180,
"y": 90
},
"axis_along_first=false,facing=up,running=false": {
"model": "create:block/mechanical_saw/vertical_inactive"
},
"axis_along_first=true,facing=up,running=false": {
"model": "create:block/mechanical_saw/vertical_inactive",
"y": 90
},
"axis_along_first=false,facing=north,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive",
"y": 180
},
"axis_along_first=true,facing=north,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive",
"y": 180
},
"axis_along_first=false,facing=south,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive"
},
"axis_along_first=true,facing=south,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive"
},
"axis_along_first=false,facing=west,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive",
"y": 90
},
"axis_along_first=true,facing=west,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive",
"y": 90
},
"axis_along_first=false,facing=east,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive",
"y": 270
},
"axis_along_first=true,facing=east,running=false": {
"model": "create:block/mechanical_saw/horizontal_inactive",
"y": 270
},
"axis_along_first=false,facing=down,running=true": {
"axis_along_first=false,facing=down": {
"model": "create:block/mechanical_saw/vertical",
"x": 180
},
"axis_along_first=true,facing=down,running=true": {
"axis_along_first=true,facing=down": {
"model": "create:block/mechanical_saw/vertical",
"x": 180,
"y": 90
},
"axis_along_first=false,facing=up,running=true": {
"axis_along_first=false,facing=up": {
"model": "create:block/mechanical_saw/vertical"
},
"axis_along_first=true,facing=up,running=true": {
"axis_along_first=true,facing=up": {
"model": "create:block/mechanical_saw/vertical",
"y": 90
},
"axis_along_first=false,facing=north,running=true": {
"axis_along_first=false,facing=north": {
"model": "create:block/mechanical_saw/horizontal",
"y": 180
},
"axis_along_first=true,facing=north,running=true": {
"axis_along_first=true,facing=north": {
"model": "create:block/mechanical_saw/horizontal",
"y": 180
},
"axis_along_first=false,facing=south,running=true": {
"axis_along_first=false,facing=south": {
"model": "create:block/mechanical_saw/horizontal"
},
"axis_along_first=true,facing=south,running=true": {
"axis_along_first=true,facing=south": {
"model": "create:block/mechanical_saw/horizontal"
},
"axis_along_first=false,facing=west,running=true": {
"axis_along_first=false,facing=west": {
"model": "create:block/mechanical_saw/horizontal",
"y": 90
},
"axis_along_first=true,facing=west,running=true": {
"axis_along_first=true,facing=west": {
"model": "create:block/mechanical_saw/horizontal",
"y": 90
},
"axis_along_first=false,facing=east,running=true": {
"axis_along_first=false,facing=east": {
"model": "create:block/mechanical_saw/horizontal",
"y": 270
},
"axis_along_first=true,facing=east,running=true": {
"axis_along_first=true,facing=east": {
"model": "create:block/mechanical_saw/horizontal",
"y": 270
}

View file

@ -818,10 +818,10 @@
"create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed",
"create.schematicannon.status.schematicExpired": "Schematic File Expired",
"create.gui.filter.blacklist": "Blacklist",
"create.gui.filter.blacklist.description": "Items pass if they do NOT match any of the above. An empty Blacklist accepts everything.",
"create.gui.filter.whitelist": "Whitelist",
"create.gui.filter.whitelist.description": "Items pass if they match any of the above. An empty Whitelist rejects everything.",
"create.gui.filter.deny_list": "Deny-List",
"create.gui.filter.deny_list.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.",
"create.gui.filter.allow_list": "Allow-List",
"create.gui.filter.allow_list.description": "Items pass if they match any of the above. An empty Allow-List rejects everything.",
"create.gui.filter.respect_data": "Respect Data",
"create.gui.filter.respect_data.description": "Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "Ignore Data",
@ -864,12 +864,12 @@
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
"create.gui.attribute_filter.add_attribute": "Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "Whitelist (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "Whitelist (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "Blacklist",
"create.gui.attribute_filter.blacklist.description": "Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_disjunctive": "Allow-List (Any)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_conjunctive": "Allow-List (All)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.deny_list": "Deny-List",
"create.gui.attribute_filter.deny_list.description": "Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "Add Reference Item",
"create.tooltip.holdKey": "Hold [%1$s]",
@ -954,7 +954,7 @@
"block.create.andesite_casing.tooltip": "ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "_Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "_Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1001,6 +1001,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "SEAT",
"block.create.seat.tooltip.summary": "Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "Right click on Seat",
"block.create.seat.tooltip.action1": "Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "CHUTE",
"block.create.chute.tooltip.summary": "Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "When powered by a fan",
@ -1016,6 +1021,53 @@
"item.create.empty_blaze_burner.tooltip": "EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "_Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "_Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "Changes the optional window",
"block.create.fluid_valve.tooltip": "FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": " ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": " ~ ",
"block.create.spout.tooltip": "SPOUT",
"block.create.spout.tooltip.summary": "An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "Fluid Automation",
"block.create.spout.tooltip.behaviour2": "The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "While in Hand",
"block.create.mechanical_arm.tooltip.action1": "Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "SYMMETRY WAND",
"item.create.wand_of_symmetry.tooltip.summary": "Perfectly mirrors Block placement across configured planes.",
@ -1219,8 +1271,8 @@
"block.create.blaze_heater.tooltip": "BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "_Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "_Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "When fuel is used on the blaze heater",
@ -1233,8 +1285,8 @@
"block.create.mechanical_mixer.tooltip.summary": "A kinetic whisk for applying any shapeless crafting recipes to items beneath it. Requires constant _Rotational_ _Force_ and a _Basin_ placed below (with a gap in between).",
"block.create.mechanical_mixer.tooltip.condition1": "When above Basin",
"block.create.mechanical_mixer.tooltip.behaviour1": "Starts to mix items in the basin whenever all necessary ingredients are present.",
"block.create.mechanical_mixer.tooltip.condition2": "When used with Wrench",
"block.create.mechanical_mixer.tooltip.behaviour2": "_Configures_ the minimum amount of _total_ _ingredients_ for applied recipes. Use this option to _rule_ _out_ _unwanted_ _recipes_ with similar but less ingredients.",
"block.create.mechanical_mixer.tooltip.control1": "When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "A kinetic assembler for _automating_ any _shaped_ _crafting_ recipe. Place _multiple_ _in_ _a_ _grid_ corresponding to your recipe, and _arrange_ _their_ _belts_ to create a _flow_ that exits the grid on one of the crafters.",
@ -1260,7 +1312,7 @@
"block.create.portable_storage_interface.tooltip": "PORTABLE STORAGE INTERFACE",
"block.create.portable_storage_interface.tooltip.summary": "A portable interchange point for _moving_ _items_ to and from a _structure_ moved by a piston, bearing, minecart, or pulley.",
"block.create.portable_storage_interface.tooltip.condition1": "While Moving",
"block.create.portable_storage_interface.tooltip.behaviour1": "Interacts with stationary _transposers_ such that transposers _facing_ _away_ from the interface _pull_ _items_, and transposers targeting the interface will _insert_ _items_ from attached inventory. The contraption will briefly stall as items are exchanged.",
"block.create.portable_storage_interface.tooltip.behaviour1": "Interacts with stationary _portable_ _storage_ _interfaces_ to transfer items to or from the contraption. Direction of transfer is dependent on the blocks attached to the _Interface_. The contraption will briefly stall as items are exchanged.",
"block.create.rotation_speed_controller.tooltip": "ROTATION SPEED CONTROLLER",
"block.create.rotation_speed_controller.tooltip.summary": "A _configurable_ _relay_ able to speed up or slow down the target component to any desired speed.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 928",
"_": "Missing Localizations: 972",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "Bauplan nicht positioniert",
"create.schematicannon.status.schematicExpired": "Bauplandatei abgelaufen",
"create.gui.filter.blacklist": "UNLOCALIZED: Blacklist",
"create.gui.filter.blacklist.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Blacklist accepts everything.",
"create.gui.filter.whitelist": "UNLOCALIZED: Whitelist",
"create.gui.filter.whitelist.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Whitelist rejects everything.",
"create.gui.filter.deny_list": "UNLOCALIZED: Deny-List",
"create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.",
"create.gui.filter.allow_list": "UNLOCALIZED: Allow-List",
"create.gui.filter.allow_list.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Allow-List rejects everything.",
"create.gui.filter.respect_data": "UNLOCALIZED: Respect Data",
"create.gui.filter.respect_data.description": "UNLOCALIZED: Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "UNLOCALIZED: Ignore Data",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "UNLOCALIZED: Whitelist (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "UNLOCALIZED: Whitelist (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "UNLOCALIZED: Blacklist",
"create.gui.attribute_filter.blacklist.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_disjunctive": "UNLOCALIZED: Allow-List (Any)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_conjunctive": "UNLOCALIZED: Allow-List (All)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.deny_list": "UNLOCALIZED: Deny-List",
"create.gui.attribute_filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "UNLOCALIZED: Add Reference Item",
"create.tooltip.holdKey": "Halte [%1$s]",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "SYMMETRIESTAB",
"item.create.wand_of_symmetry.tooltip.summary": "Spiegelt deine Blockplatzierung perfekt über die konfigurierten Ebenen.",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "UNLOCALIZED: A kinetic whisk for applying any shapeless crafting recipes to items beneath it. Requires constant _Rotational_ _Force_ and a _Basin_ placed below (with a gap in between).",
"block.create.mechanical_mixer.tooltip.condition1": "UNLOCALIZED: When above Basin",
"block.create.mechanical_mixer.tooltip.behaviour1": "UNLOCALIZED: Starts to mix items in the basin whenever all necessary ingredients are present.",
"block.create.mechanical_mixer.tooltip.condition2": "UNLOCALIZED: When used with Wrench",
"block.create.mechanical_mixer.tooltip.behaviour2": "UNLOCALIZED: _Configures_ the minimum amount of _total_ _ingredients_ for applied recipes. Use this option to _rule_ _out_ _unwanted_ _recipes_ with similar but less ingredients.",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "UNLOCALIZED: MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "UNLOCALIZED: A kinetic assembler for _automating_ any _shaped_ _crafting_ recipe. Place _multiple_ _in_ _a_ _grid_ corresponding to your recipe, and _arrange_ _their_ _belts_ to create a _flow_ that exits the grid on one of the crafters.",
@ -1261,7 +1313,7 @@
"block.create.portable_storage_interface.tooltip": "UNLOCALIZED: PORTABLE STORAGE INTERFACE",
"block.create.portable_storage_interface.tooltip.summary": "UNLOCALIZED: A portable interchange point for _moving_ _items_ to and from a _structure_ moved by a piston, bearing, minecart, or pulley.",
"block.create.portable_storage_interface.tooltip.condition1": "UNLOCALIZED: While Moving",
"block.create.portable_storage_interface.tooltip.behaviour1": "UNLOCALIZED: Interacts with stationary _transposers_ such that transposers _facing_ _away_ from the interface _pull_ _items_, and transposers targeting the interface will _insert_ _items_ from attached inventory. The contraption will briefly stall as items are exchanged.",
"block.create.portable_storage_interface.tooltip.behaviour1": "UNLOCALIZED: Interacts with stationary _portable_ _storage_ _interfaces_ to transfer items to or from the contraption. Direction of transfer is dependent on the blocks attached to the _Interface_. The contraption will briefly stall as items are exchanged.",
"block.create.rotation_speed_controller.tooltip": "UNLOCALIZED: ROTATION SPEED CONTROLLER",
"block.create.rotation_speed_controller.tooltip.summary": "UNLOCALIZED: A _configurable_ _relay_ able to speed up or slow down the target component to any desired speed.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 555",
"_": "Missing Localizations: 601",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "Schéma non déployé",
"create.schematicannon.status.schematicExpired": "Fichier de schéma arrivé à expiration",
"create.gui.filter.blacklist": "Liste noire",
"create.gui.filter.blacklist.description": "Les articles réussissent s'ils ne correspondent à AUCUN des éléments ci-dessus. Une liste noire vide accepte tout.",
"create.gui.filter.whitelist": "Liste blanche",
"create.gui.filter.whitelist.description": "Les éléments réussissent s'ils correspondent à l'un des éléments ci-dessus. Une liste blanche vide rejette tout.",
"create.gui.filter.deny_list": "Liste noire",
"create.gui.filter.deny_list.description": "Les articles réussissent s'ils ne correspondent à AUCUN des éléments ci-dessus. Une liste noire vide accepte tout.",
"create.gui.filter.allow_list": "Liste blanche",
"create.gui.filter.allow_list.description": "Les éléments réussissent s'ils correspondent à l'un des éléments ci-dessus. Une liste blanche vide rejette tout.",
"create.gui.filter.respect_data": "Respect des données",
"create.gui.filter.respect_data.description": "Les objets ne correspondent que si leur durabilité, leurs enchantements et autres attributs correspondent également.",
"create.gui.filter.ignore_data": "Ignorer les données",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "Attributs sélectionnés:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "Liste blanche (n'importe)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Les objets réussissent s'ils possèdent l'un des attributs sélectionnés.",
"create.gui.attribute_filter.whitelist_conjunctive": "Liste blanche (tout)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Les objets ne passent que s'ils ont TOUS les attributs sélectionnés.",
"create.gui.attribute_filter.blacklist": "Liste noire",
"create.gui.attribute_filter.blacklist.description": "Les éléments réussissent s'ils n'ont AUCUN des attributs sélectionnés.",
"create.gui.attribute_filter.allow_list_disjunctive": "Liste blanche (n'importe)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "Les objets réussissent s'ils possèdent l'un des attributs sélectionnés.",
"create.gui.attribute_filter.allow_list_conjunctive": "Liste blanche (tout)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "Les objets ne passent que s'ils ont TOUS les attributs sélectionnés.",
"create.gui.attribute_filter.deny_list": "Liste noire",
"create.gui.attribute_filter.deny_list.description": "Les éléments réussissent s'ils n'ont AUCUN des attributs sélectionnés.",
"create.gui.attribute_filter.add_reference_item": "Ajouter un objet de référence",
"create.tooltip.holdKey": "Enfoncez [%1$s]",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "BÂTON DE SYMÉTRIE",
"item.create.wand_of_symmetry.tooltip.summary": "Reflète parfaitement le placement des blocs sur les plans configurés.",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "Un fouet cinétique pour appliquer toutes les recettes d'artisanat informes aux objets en dessous. Nécessite une _force_ _de_ _rotation_ constant et un _bassin_ placé en dessous (avec un espace entre les deux).",
"block.create.mechanical_mixer.tooltip.condition1": "Lorsqu'au-dessus d'un bassin",
"block.create.mechanical_mixer.tooltip.behaviour1": "Commence à mélanger les objets dans le bassin lorsque tous les ingrédients nécessaires sont présents.",
"block.create.mechanical_mixer.tooltip.condition2": "Lorsqu'utilisé avec une clé",
"block.create.mechanical_mixer.tooltip.behaviour2": "_Configure_ la quantité minimale du _total_ _d'ingredients_ pour les recettes appliquées. Utilisez cette option pour _exclure_ les _recettes_ _indésirables_ avec des ingrédients similaires mais moins.",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "ÉTABLI MÉCANIQUE",
"block.create.mechanical_crafter.tooltip.summary": "Un assembleur cinétique pour _automatiser_ n'importe quelle recette _en_ _forme_. Placez-en _plusieurs_ _dans_ _une_ _grille_ correspondant à votre recette, et _arrangez_ _leurs_ _tapis_ _roulant_ pour créer un _flux_ qui sort de la grille sur l'un des établis.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 539",
"_": "Missing Localizations: 585",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "Schematica Non Implementata",
"create.schematicannon.status.schematicExpired": "File Schematica Scaduto",
"create.gui.filter.blacklist": "Lista Nera",
"create.gui.filter.blacklist.description": "Gli oggetti passano se NON corrispondono a nessuno dei precedenti. Una Lista Nera vuota accetta tutto.",
"create.gui.filter.whitelist": "Lista Bianca",
"create.gui.filter.whitelist.description": "Gli oggetti passano se corrispondono a uno dei precedenti. Una Lista Bianca vuota rifiuta tutto.",
"create.gui.filter.deny_list": "Lista Nera",
"create.gui.filter.deny_list.description": "Gli oggetti passano se NON corrispondono a nessuno dei precedenti. Una Lista Nera vuota accetta tutto.",
"create.gui.filter.allow_list": "Lista Bianca",
"create.gui.filter.allow_list.description": "Gli oggetti passano se corrispondono a uno dei precedenti. Una Lista Bianca vuota rifiuta tutto.",
"create.gui.filter.respect_data": "Rispetto dei Dati",
"create.gui.filter.respect_data.description": "Gli oggetti corrispondono solo se la loro durata, incantesimi e altri attributi corrispondono.",
"create.gui.filter.ignore_data": "Ignora Dati",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "Attributi selezionati:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "Lista Bianca (Qualsiasi)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Gli oggetti passano se hanno uno degli attributi selezionati.",
"create.gui.attribute_filter.whitelist_conjunctive": "Lista Bianca (Tutti)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Gli oggetti passano solo se hanno TUTTI gli attributi selezionati.",
"create.gui.attribute_filter.blacklist": "Lista Nera",
"create.gui.attribute_filter.blacklist.description": "Gli oggetti passano se NON hanno nessuno degli attributi selezionati.",
"create.gui.attribute_filter.allow_list_disjunctive": "Lista Bianca (Qualsiasi)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "Gli oggetti passano se hanno uno degli attributi selezionati.",
"create.gui.attribute_filter.allow_list_conjunctive": "Lista Bianca (Tutti)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "Gli oggetti passano solo se hanno TUTTI gli attributi selezionati.",
"create.gui.attribute_filter.deny_list": "Lista Nera",
"create.gui.attribute_filter.deny_list.description": "Gli oggetti passano se NON hanno nessuno degli attributi selezionati.",
"create.gui.attribute_filter.add_reference_item": "Agg. Oggetto di Riferim.",
"create.tooltip.holdKey": "Premi [%1$s]",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "ASTA DI SIMETRIA",
"item.create.wand_of_symmetry.tooltip.summary": "Rispecchia perfettamente il posizionamento dei blocchi su piani configurati.",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "Una frusta cinetica per applicare qualsiasi ricetta di creazione informe agli oggetti sottostanti. Richiede una _Forza_ _di_ _Rotazione_ costante e una _Bacinella_ posizionata sotto (con uno spazio in mezzo).",
"block.create.mechanical_mixer.tooltip.condition1": "Quando sopra a una Bacinella",
"block.create.mechanical_mixer.tooltip.behaviour1": "Inizia a mescolare gli oggetti nella bacinella ogni volta che sono presenti tutti gli ingredienti necessari.",
"block.create.mechanical_mixer.tooltip.condition2": "Se utilizzato con la Chiave Inglese",
"block.create.mechanical_mixer.tooltip.behaviour2": "Configura la quantità minima di _ingredienti_ _totali_ per le ricette applicate. Utilizzare questa opzione per _escludere_ _ricette_ _indesiderate_ con ingredienti simili o meno.",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "COSTRUTTORE MECCANICO",
"block.create.mechanical_crafter.tooltip.summary": "Un assemblatore cinetico per _automatizzare_ qualsiasi ricetta di _creazione_ _modellata_. Posiziona i _multipli_ _in_ _una_ _griglia_ corrispondente alla tua ricetta, e _disponi_ _i_ _loro_ _nastri_ per creare un _flusso_ che esce dalla griglia su uno degli costruttori.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 538",
"_": "Missing Localizations: 584",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "配置されていない概略図です",
"create.schematicannon.status.schematicExpired": "概略図ファイルが期限切れです",
"create.gui.filter.blacklist": "ブラックリスト",
"create.gui.filter.blacklist.description": "上記のいずれにも一致しない場合、アイテムは通り抜けます。 空のブラックリストはすべてを受け入れます。",
"create.gui.filter.whitelist": "ホワイトリスト",
"create.gui.filter.whitelist.description": "上記のいずれかに一致した場合、アイテムは通り抜けます。 空のホワイトリストはすべてを拒否します。",
"create.gui.filter.deny_list": "ブラックリスト",
"create.gui.filter.deny_list.description": "上記のいずれにも一致しない場合、アイテムは通り抜けます。 空のブラックリストはすべてを受け入れます。",
"create.gui.filter.allow_list": "ホワイトリスト",
"create.gui.filter.allow_list.description": "上記のいずれかに一致した場合、アイテムは通り抜けます。 空のホワイトリストはすべてを拒否します。",
"create.gui.filter.respect_data": "データを重視",
"create.gui.filter.respect_data.description": "アイテムは、耐久性、エンチャント、その他の属性も一致する場合にのみ一致します。",
"create.gui.filter.ignore_data": "データを無視",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "選択された属性:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "ホワイトリスト(どれか)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "選択した属性のいずれかを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.whitelist_conjunctive": "ホワイトリスト(全て)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "選択した属性をすべてを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.blacklist": "ブラックリスト",
"create.gui.attribute_filter.blacklist.description": "選択された属性を持たない場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.allow_list_disjunctive": "ホワイトリスト(どれか)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "選択した属性のいずれかを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.allow_list_conjunctive": "ホワイトリスト(全て)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "選択した属性をすべてを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.deny_list": "ブラックリスト",
"create.gui.attribute_filter.deny_list.description": "選択された属性を持たない場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.add_reference_item": "参照アイテムを追加",
"create.tooltip.holdKey": "[%1$s] を長押し",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "対称性が必要",
"item.create.wand_of_symmetry.tooltip.summary": "構成されたプレーン全体のブロック配置を完全にミラーリングします。",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "その下のアイテムに形状のない製作レシピを適用するための動力ミキサー。 一定の_回転力_と下に配置された_鉢_が必要です間にギャップがあります。",
"block.create.mechanical_mixer.tooltip.condition1": "鉢の上にあるとき",
"block.create.mechanical_mixer.tooltip.behaviour1": "必要なすべての成分が存在するときはいつでも、鉢のアイテムの混合を開始します。",
"block.create.mechanical_mixer.tooltip.condition2": "レンチと併用したとき",
"block.create.mechanical_mixer.tooltip.behaviour2": "適用されるレシピの_総材料_の最小量を_構成_します。 このオプションを使用して、似ているが成分が少ない_不要なレシピを除外_します。",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "メカニカルクラフト",
"block.create.mechanical_crafter.tooltip.summary": "_あらゆる形状の製作レシピ_を自動化するための動的アセンブラー。 _レシピに対応するグリッドに複数を配置_し、_フェアベルトを配置して_、いずれかのクラフターのグリッドから出る_流れ_を作成します。",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 539",
"_": "Missing Localizations: 585",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "청사진이 전개되지 않음",
"create.schematicannon.status.schematicExpired": "청사진 파일이 제거됨",
"create.gui.filter.blacklist": "블랙리스트",
"create.gui.filter.blacklist.description": "위 목록에 맞지않는 아이템이면 통과합니다. 빈 블랙리스트는 모두 통과시킵니다.",
"create.gui.filter.whitelist": "화이트리스트",
"create.gui.filter.whitelist.description": "위 목록에 맞는 아이템이면 통과합니다. 빈 화이트리스트는 모두 통과시키지 않습니다.",
"create.gui.filter.deny_list": "블랙리스트",
"create.gui.filter.deny_list.description": "위 목록에 맞지않는 아이템이면 통과합니다. 빈 블랙리스트는 모두 통과시킵니다.",
"create.gui.filter.allow_list": "화이트리스트",
"create.gui.filter.allow_list.description": "위 목록에 맞는 아이템이면 통과합니다. 빈 화이트리스트는 모두 통과시키지 않습니다.",
"create.gui.filter.respect_data": "상세정보 일치",
"create.gui.filter.respect_data.description": "위 목록 아이템의 내구도, 마법부여, 그리고 다른 NBT와 일치할 때 통과시킵니다.",
"create.gui.filter.ignore_data": "상세정보 무시",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "선택된 속성:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "화이트리스트 (최소)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "아이템이 선택된 속성 중 하나라도 가지고 있다면 통과시킵니다.",
"create.gui.attribute_filter.whitelist_conjunctive": "화이트리스트 (모두)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "아이템이 선택된 속성 모두를 가지고 있어야 통과시킵니다.",
"create.gui.attribute_filter.blacklist": "블랙리스트",
"create.gui.attribute_filter.blacklist.description": "아이템이 선택된 속성이 없다면 통과시킵니다.",
"create.gui.attribute_filter.allow_list_disjunctive": "화이트리스트 (최소)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "아이템이 선택된 속성 중 하나라도 가지고 있다면 통과시킵니다.",
"create.gui.attribute_filter.allow_list_conjunctive": "화이트리스트 (모두)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "아이템이 선택된 속성 모두를 가지고 있어야 통과시킵니다.",
"create.gui.attribute_filter.deny_list": "블랙리스트",
"create.gui.attribute_filter.deny_list.description": "아이템이 선택된 속성이 없다면 통과시킵니다.",
"create.gui.attribute_filter.add_reference_item": "참고할 아이템을 추가하기",
"create.tooltip.holdKey": "[%1$s]를 눌러 설명보기",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "SYMMETRY WAND",
"item.create.wand_of_symmetry.tooltip.summary": "설정된 반사 모드에 따라 블럭 설치를 똑같이 재현합니다.",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "아래있는 아이템을 조합할 혼합기입니다. _지속적인_ _회전력_과 한 칸 아래에 _대야_가 필요합니다.",
"block.create.mechanical_mixer.tooltip.condition1": "대야 위에 있을 때",
"block.create.mechanical_mixer.tooltip.behaviour1": "모든 필요한 아이템이 준비될 때마다 대야 안의 아이템을 섞기 시작합니다.",
"block.create.mechanical_mixer.tooltip.condition2": "렌치를 사용할 때",
"block.create.mechanical_mixer.tooltip.behaviour2": "필요한 조합법의 _최소_ _재료_ _종류_를 설정합니다. 이는 적은 재료로 _원치_ _않은_ _조합법_이 작동되는 것을 막습니다.",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "모든 조합법을 _자동화_할 장치입니다. 조합법대로 여러개를 _격자_로 설치하고, 화살표를 돌려 _한_ _곳으로_ _모이게_ 설정해야합니다.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 867",
"_": "Missing Localizations: 913",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "Bouwtekening niet geplaatst",
"create.schematicannon.status.schematicExpired": "Bouwtekening verlopen",
"create.gui.filter.blacklist": "UNLOCALIZED: Blacklist",
"create.gui.filter.blacklist.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Blacklist accepts everything.",
"create.gui.filter.whitelist": "UNLOCALIZED: Whitelist",
"create.gui.filter.whitelist.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Whitelist rejects everything.",
"create.gui.filter.deny_list": "UNLOCALIZED: Deny-List",
"create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.",
"create.gui.filter.allow_list": "UNLOCALIZED: Allow-List",
"create.gui.filter.allow_list.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Allow-List rejects everything.",
"create.gui.filter.respect_data": "UNLOCALIZED: Respect Data",
"create.gui.filter.respect_data.description": "UNLOCALIZED: Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "UNLOCALIZED: Ignore Data",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "UNLOCALIZED: Whitelist (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "UNLOCALIZED: Whitelist (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "UNLOCALIZED: Blacklist",
"create.gui.attribute_filter.blacklist.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_disjunctive": "UNLOCALIZED: Allow-List (Any)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_conjunctive": "UNLOCALIZED: Allow-List (All)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.deny_list": "UNLOCALIZED: Deny-List",
"create.gui.attribute_filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "UNLOCALIZED: Add Reference Item",
"create.tooltip.holdKey": "Houd [%1$s] ingedrukt",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "SYMMETRIE STAF",
"item.create.wand_of_symmetry.tooltip.summary": "Spiegelt uw blokplaatsing perfect over de geconfigureerde vlakken.",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "Een kinetische garde voor het toepassen van vormloze recepten op objecten eronder. Vereist constante _Rotatiekracht_ en een _Bekken_ hieronder geplaatst (met een tussenruimte).",
"block.create.mechanical_mixer.tooltip.condition1": "Wanneer boven een Bekken",
"block.create.mechanical_mixer.tooltip.behaviour1": "Begint objecten in het bekken te mengen wanneer alle benodigde ingrediënten aanwezig zijn.",
"block.create.mechanical_mixer.tooltip.condition2": "Wanneer gebruikt met een Sleutel",
"block.create.mechanical_mixer.tooltip.behaviour2": "_Configureert_ de minimale hoeveelheid _totale_ _ingredienten_ voor toegepaste recepten. Gebruik deze optie om _ongewenste_ _recepten_ met vergelijkbare maar minder ingrediënten _te_ _vermijden._",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "UNLOCALIZED: MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "UNLOCALIZED: A kinetic assembler for _automating_ any _shaped_ _crafting_ recipe. Place _multiple_ _in_ _a_ _grid_ corresponding to your recipe, and _arrange_ _their_ _belts_ to create a _flow_ that exits the grid on one of the crafters.",
@ -1261,7 +1313,7 @@
"block.create.portable_storage_interface.tooltip": "UNLOCALIZED: PORTABLE STORAGE INTERFACE",
"block.create.portable_storage_interface.tooltip.summary": "UNLOCALIZED: A portable interchange point for _moving_ _items_ to and from a _structure_ moved by a piston, bearing, minecart, or pulley.",
"block.create.portable_storage_interface.tooltip.condition1": "UNLOCALIZED: While Moving",
"block.create.portable_storage_interface.tooltip.behaviour1": "UNLOCALIZED: Interacts with stationary _transposers_ such that transposers _facing_ _away_ from the interface _pull_ _items_, and transposers targeting the interface will _insert_ _items_ from attached inventory. The contraption will briefly stall as items are exchanged.",
"block.create.portable_storage_interface.tooltip.behaviour1": "UNLOCALIZED: Interacts with stationary _portable_ _storage_ _interfaces_ to transfer items to or from the contraption. Direction of transfer is dependent on the blocks attached to the _Interface_. The contraption will briefly stall as items are exchanged.",
"block.create.rotation_speed_controller.tooltip": "UNLOCALIZED: ROTATION SPEED CONTROLLER",
"block.create.rotation_speed_controller.tooltip.summary": "UNLOCALIZED: A _configurable_ _relay_ able to speed up or slow down the target component to any desired speed.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 935",
"_": "Missing Localizations: 979",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "Esquema não Colocado",
"create.schematicannon.status.schematicExpired": "Arquivo de Esquema Expirado",
"create.gui.filter.blacklist": "UNLOCALIZED: Blacklist",
"create.gui.filter.blacklist.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Blacklist accepts everything.",
"create.gui.filter.whitelist": "UNLOCALIZED: Whitelist",
"create.gui.filter.whitelist.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Whitelist rejects everything.",
"create.gui.filter.deny_list": "UNLOCALIZED: Deny-List",
"create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.",
"create.gui.filter.allow_list": "UNLOCALIZED: Allow-List",
"create.gui.filter.allow_list.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Allow-List rejects everything.",
"create.gui.filter.respect_data": "UNLOCALIZED: Respect Data",
"create.gui.filter.respect_data.description": "UNLOCALIZED: Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "UNLOCALIZED: Ignore Data",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "UNLOCALIZED: Whitelist (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "UNLOCALIZED: Whitelist (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "UNLOCALIZED: Blacklist",
"create.gui.attribute_filter.blacklist.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_disjunctive": "UNLOCALIZED: Allow-List (Any)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_conjunctive": "UNLOCALIZED: Allow-List (All)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.deny_list": "UNLOCALIZED: Deny-List",
"create.gui.attribute_filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "UNLOCALIZED: Add Reference Item",
"create.tooltip.holdKey": "Segure [%1$s]",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "VARINHA DE SIMETRIA",
"item.create.wand_of_symmetry.tooltip.summary": "Espelhar perfeitamente a colocação de blocos nos planos configurados.",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "UNLOCALIZED: A kinetic whisk for applying any shapeless crafting recipes to items beneath it. Requires constant _Rotational_ _Force_ and a _Basin_ placed below (with a gap in between).",
"block.create.mechanical_mixer.tooltip.condition1": "UNLOCALIZED: When above Basin",
"block.create.mechanical_mixer.tooltip.behaviour1": "UNLOCALIZED: Starts to mix items in the basin whenever all necessary ingredients are present.",
"block.create.mechanical_mixer.tooltip.condition2": "UNLOCALIZED: When used with Wrench",
"block.create.mechanical_mixer.tooltip.behaviour2": "UNLOCALIZED: _Configures_ the minimum amount of _total_ _ingredients_ for applied recipes. Use this option to _rule_ _out_ _unwanted_ _recipes_ with similar but less ingredients.",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "UNLOCALIZED: MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "UNLOCALIZED: A kinetic assembler for _automating_ any _shaped_ _crafting_ recipe. Place _multiple_ _in_ _a_ _grid_ corresponding to your recipe, and _arrange_ _their_ _belts_ to create a _flow_ that exits the grid on one of the crafters.",
@ -1261,7 +1313,7 @@
"block.create.portable_storage_interface.tooltip": "UNLOCALIZED: PORTABLE STORAGE INTERFACE",
"block.create.portable_storage_interface.tooltip.summary": "UNLOCALIZED: A portable interchange point for _moving_ _items_ to and from a _structure_ moved by a piston, bearing, minecart, or pulley.",
"block.create.portable_storage_interface.tooltip.condition1": "UNLOCALIZED: While Moving",
"block.create.portable_storage_interface.tooltip.behaviour1": "UNLOCALIZED: Interacts with stationary _transposers_ such that transposers _facing_ _away_ from the interface _pull_ _items_, and transposers targeting the interface will _insert_ _items_ from attached inventory. The contraption will briefly stall as items are exchanged.",
"block.create.portable_storage_interface.tooltip.behaviour1": "UNLOCALIZED: Interacts with stationary _portable_ _storage_ _interfaces_ to transfer items to or from the contraption. Direction of transfer is dependent on the blocks attached to the _Interface_. The contraption will briefly stall as items are exchanged.",
"block.create.rotation_speed_controller.tooltip": "UNLOCALIZED: ROTATION SPEED CONTROLLER",
"block.create.rotation_speed_controller.tooltip.summary": "UNLOCALIZED: A _configurable_ _relay_ able to speed up or slow down the target component to any desired speed.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 221",
"_": "Missing Localizations: 267",
"_": "->------------------------] Game Elements [------------------------<-",
@ -819,10 +819,10 @@
"create.schematicannon.status.schematicNotPlaced": "蓝图未部署",
"create.schematicannon.status.schematicExpired": "蓝图文件已过期",
"create.gui.filter.blacklist": "黑名单",
"create.gui.filter.blacklist.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过",
"create.gui.filter.whitelist": "白名单",
"create.gui.filter.whitelist.description": "只通过在白名单中的物品,如果白名单为空,所有物品都无法通过",
"create.gui.filter.deny_list": "黑名单",
"create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过",
"create.gui.filter.allow_list": "白名单",
"create.gui.filter.allow_list.description": "只通过在白名单中的物品,如果白名单为空,所有物品都无法通过",
"create.gui.filter.respect_data": "匹配物品属性",
"create.gui.filter.respect_data.description": "只有物品的耐久、附魔等其他属性相同时才可以匹配",
"create.gui.filter.ignore_data": "忽视物品属性",
@ -865,12 +865,12 @@
"create.gui.attribute_filter.selected_attributes": "已选择的属性:",
"create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "任意匹配白名单 (任何)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "只要有其中一项属性符合,就可以通过",
"create.gui.attribute_filter.whitelist_conjunctive": "全匹配白名单 (所有)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "只有所有属性都匹配才可以通过",
"create.gui.attribute_filter.blacklist": "黑名单",
"create.gui.attribute_filter.blacklist.description": "只要没有上述属性,就可以通过",
"create.gui.attribute_filter.allow_list_disjunctive": "任意匹配白名单 (任何)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "只要有其中一项属性符合,就可以通过",
"create.gui.attribute_filter.allow_list_conjunctive": "全匹配白名单 (所有)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "只有所有属性都匹配才可以通过",
"create.gui.attribute_filter.deny_list": "黑名单",
"create.gui.attribute_filter.deny_list.description": "只要没有上述属性,就可以通过",
"create.gui.attribute_filter.add_reference_item": "添加参考物品",
"create.tooltip.holdKey": "按住 [%1$s]",
@ -955,7 +955,7 @@
"block.create.andesite_casing.tooltip": "UNLOCALIZED: ANDESITE CASING",
"block.create.andesite_casing.tooltip.summary": "UNLOCALIZED: Simple machine casing with a variety of uses. Safe for decoration.",
"block.create.andesite_casing.tooltip.condition1": "UNLOCALIZED: When used on Mechanical Belt",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with a Brass foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_casing.tooltip.behaviour1": "UNLOCALIZED: _Reinforces_ _belts_ with an Andesite foundation. Reinforced Belts can support _Belt_ _Tunnels_ and allows _Chutes_ to directly take _items_.",
"block.create.andesite_funnel.tooltip": "UNLOCALIZED: ANDESITE FUNNEL",
"block.create.andesite_funnel.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and place them into the attached _Item_ _Container_. Can be disabled with a _Redstone_ _Signal_.",
@ -1002,6 +1002,11 @@
"block.create.copper_valve_handle.tooltip.condition1": "UNLOCALIZED: When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "UNLOCALIZED: Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "UNLOCALIZED: Right click on Seat",
"block.create.seat.tooltip.action1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "UNLOCALIZED: CHUTE",
"block.create.chute.tooltip.summary": "UNLOCALIZED: Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",
"block.create.chute.tooltip.control1": "UNLOCALIZED: When powered by a fan",
@ -1017,6 +1022,53 @@
"item.create.empty_blaze_burner.tooltip": "UNLOCALIZED: EMPTY BLAZE BURNER",
"item.create.empty_blaze_burner.tooltip.summary": "UNLOCALIZED: A little iron home for your fiery friends. I'm sure you could put them to good use.",
"item.create.empty_blaze_burner.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"item.create.empty_blaze_burner.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.fluid_pipe.tooltip": "UNLOCALIZED: FLUID PIPE",
"block.create.fluid_pipe.tooltip.summary": "UNLOCALIZED: Used for moving _fluids_ around. Needs a _Mechanical_ _Pump_ to get the _fluid_ moving.",
"block.create.fluid_pipe.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.fluid_pipe.tooltip.behaviour1": "UNLOCALIZED: Can connect to _fluid_ _containers_ such as _Tanks_ or _Basins_. Exposed _pipe_ ends can also drain or place fluid blocks. Be careful of leaks!",
"block.create.fluid_pipe.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_pipe.tooltip.action1": "UNLOCALIZED: Places a window on the pipe if available",
"block.create.fluid_tank.tooltip": "UNLOCALIZED: FLUID TANK",
"block.create.fluid_tank.tooltip.summary": "UNLOCALIZED: _Stores_ all your favourite _fluids_.",
"block.create.fluid_tank.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.fluid_tank.tooltip.action1": "UNLOCALIZED: Changes the optional window",
"block.create.fluid_valve.tooltip": "UNLOCALIZED: FLUID VALVE",
"block.create.fluid_valve.tooltip.summary": "UNLOCALIZED: Halts the flow of fluid down a pipe.",
"block.create.fluid_valve.tooltip.condition1": "UNLOCALIZED: Controllable flow",
"block.create.fluid_valve.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ will force the _valve_ to close, ceasing the flow of _fluids_. Reverse the direction of the _rotational_ _force_ to re-open the valve.",
"block.create.Mechanical_pump.tooltip": "UNLOCALIZED: MECHANICAL PUMP",
"block.create.Mechanical_pump.tooltip.summary": "UNLOCALIZED: Takes _rotational_ _force_ and uses it to move _fluid_ along a _pipe_.",
"block.create.Mechanical_pump.tooltip.condition1": "UNLOCALIZED: Fluid Flow",
"block.create.Mechanical_pump.tooltip.behaviour1": "UNLOCALIZED: Applied _rotational_ _force_ creates pressure that forces _fluid_ through the _pipe_ network. Reverse the direction of the _rotational_ _force_ to switch the direction that the _fluid_ flows.",
"block.create.Mechanical_pump.tooltip.control1": "UNLOCALIZED: Right-clicked with Wrench",
"block.create.Mechanical_pump.tooltip.action1": "UNLOCALIZED: Reverses the direction of the _pump_, switching the default direction of the flow",
"block.create.smart_fluid_pipe.tooltip": "UNLOCALIZED: SMART FLUID PIPE",
"block.create.smart_fluid_pipe.tooltip.summary": "UNLOCALIZED: A _fluid_ _pipe_ with a filter. Can specify which _fluids_ pass through.",
"block.create.smart_fluid_pipe.tooltip.control1": "UNLOCALIZED: ~ ",
"block.create.smart_fluid_pipe.tooltip.action1": "UNLOCALIZED: ~ ",
"block.create.spout.tooltip": "UNLOCALIZED: SPOUT",
"block.create.spout.tooltip.summary": "UNLOCALIZED: An injector for refilling your _fluid_ _items_",
"block.create.spout.tooltip.condition1": "UNLOCALIZED: Fluid Transfer",
"block.create.spout.tooltip.behaviour1": "UNLOCALIZED: When a _fluid_ _container_ _item_ such as a _bucket_ or _bottle_ is placed underneath, the spout will attempt to refill it with it's own stored _fluid_.",
"block.create.spout.tooltip.condition2": "UNLOCALIZED: Fluid Automation",
"block.create.spout.tooltip.behaviour2": "UNLOCALIZED: The spout placed above a _belt_ or _depot_ will react automatically with a _fluid_ _container_ _item_ that passes beneath it.",
"block.create.mechanical_arm.tooltip": "UNLOCALIZED: MECHANICAL ARM",
"block.create.mechanical_arm.tooltip.summary": "UNLOCALIZED: Advanced contraption for re-locating _items_.",
"block.create.mechanical_arm.tooltip.condition1": "UNLOCALIZED: Item Transfer",
"block.create.mechanical_arm.tooltip.behaviour1": "UNLOCALIZED: Can take or place items into any _accessible_ _inventory_, such as _Belts_, _Depots_, _Funnels_ and _Mechanical_ _Crafters_.",
"block.create.mechanical_arm.tooltip.control1": "UNLOCALIZED: While in Hand",
"block.create.mechanical_arm.tooltip.action1": "UNLOCALIZED: Right-Click an _accessible_ _item_ _inventory_ to set it as a _source_ for the _Mechanical_ _Arm_. Right-click twice to set it as the _destination_.",
"block.create.mechanical_arm.tooltip.control2": "UNLOCALIZED: Scroll with Wrench",
"block.create.mechanical_arm.tooltip.action2": "UNLOCALIZED: Sets the ordering behaviour for _items_ output by the _mechanical_ _Arm_.",
"item.create.wand_of_symmetry.tooltip": "SYMMETRY WAND",
"item.create.wand_of_symmetry.tooltip.summary": "完美地镜面复制工作区域内的方块放置与破坏",
@ -1220,8 +1272,8 @@
"block.create.blaze_heater.tooltip": "UNLOCALIZED: BLAZE HEATER",
"block.create.blaze_heater.tooltip.summary": "UNLOCALIZED: A block to heat a basin when housing a tamed blaze.",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When using on a blaze or blaze spawner",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a blaze in the item",
"block.create.blaze_heater.tooltip.condition1": "UNLOCALIZED: When used on a _Blaze_ or _Blaze_ _spawner_",
"block.create.blaze_heater.tooltip.behaviour1": "UNLOCALIZED: _Captures_ a Blaze in the item",
"block.create.blaze_heater.tooltip.condition2": "UNLOCALIZED: When placed below a basin",
"block.create.blaze_heater.tooltip.behaviour2": "UNLOCALIZED: Provides _heat_ to basin recipes.",
"block.create.blaze_heater.tooltip.condition3": "UNLOCALIZED: When fuel is used on the blaze heater",
@ -1234,8 +1286,8 @@
"block.create.mechanical_mixer.tooltip.summary": "一种能够动态进行搅拌的机器,需要恒定且够快的速度并且下方需要放置_工作盆_(中间需要一格高)",
"block.create.mechanical_mixer.tooltip.condition1": "当位于工作盆上方",
"block.create.mechanical_mixer.tooltip.behaviour1": "只要_工作盆_中有必要的物品,就会将物品进行搅拌",
"block.create.mechanical_mixer.tooltip.condition2": "当使用扳手时",
"block.create.mechanical_mixer.tooltip.behaviour2": "_配置_配方中物品合成所需的最小数目,通过这个配置能够_避免不需要_的、相似的配方",
"block.create.mechanical_mixer.tooltip.control1": "UNLOCALIZED: When powered by redstone",
"block.create.mechanical_mixer.tooltip.action1": "UNLOCALIZED: Stalls the Mixer, perfect for crafting that recipe for the very first time!",
"block.create.mechanical_crafter.tooltip": "MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "一种依靠_动能_的_自动_合成台。根据想要合成物品的_合成表_来摆放_相应数量_的机械制造机并且用扳手调整物品在制造机里的_传动方向_以让他们合在一起后被输出",

View file

@ -1,3 +1,3 @@
{
"parent": "create:block/mechanical_saw/horizontal"
"parent": "create:block/mechanical_saw/item"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"create:copper_ore",
"create:zinc_ore"
]
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"create:copper_block",
"create:zinc_block",
"create:brass_block"
]
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"create:copper_ore",
"create:zinc_ore"
]
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"create:copper_block",
"create:zinc_block",
"create:brass_block"
]
}

View file

@ -45,7 +45,14 @@ public class AllBlockPartials {
MECHANICAL_MIXER_HEAD = get("mechanical_mixer/head"), MECHANICAL_CRAFTER_LID = get("mechanical_crafter/lid"),
MECHANICAL_CRAFTER_ARROW = get("mechanical_crafter/arrow"),
MECHANICAL_CRAFTER_BELT_FRAME = get("mechanical_crafter/belt"),
MECHANICAL_CRAFTER_BELT = get("mechanical_crafter/belt_animated"), GAUGE_DIAL = get("gauge/dial"),
MECHANICAL_CRAFTER_BELT = get("mechanical_crafter/belt_animated"),
SAW_BLADE_HORIZONTAL_ACTIVE = get("mechanical_saw/blade_horizontal_active"),
SAW_BLADE_HORIZONTAL_INACTIVE = get("mechanical_saw/blade_horizontal_inactive"),
SAW_BLADE_HORIZONTAL_REVERSED = get("mechanical_saw/blade_horizontal_reversed"),
SAW_BLADE_VERTICAL_ACTIVE = get("mechanical_saw/blade_vertical_active"),
SAW_BLADE_VERTICAL_INACTIVE = get("mechanical_saw/blade_vertical_inactive"),
SAW_BLADE_VERTICAL_REVERSED = get("mechanical_saw/blade_vertical_reversed"),
GAUGE_DIAL = get("gauge/dial"),
GAUGE_INDICATOR = get("gauge/indicator"), GAUGE_HEAD_SPEED = get("gauge/speedometer/head"),
GAUGE_HEAD_STRESS = get("gauge/stressometer/head"), BEARING_TOP = get("bearing/top"),
DRILL_HEAD = get("mechanical_drill/head"), HARVESTER_BLADE = get("mechanical_harvester/blade"),

View file

@ -162,6 +162,7 @@ import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.generators.ConfiguredModel;
import net.minecraftforge.common.Tags;
import net.minecraftforge.common.ToolType;
public class AllBlocks {
@ -511,7 +512,7 @@ public class AllBlocks {
.item()
.transform(customItemModel())
.register();
public static final BlockEntry<FluidValveBlock> FLUID_VALVE = REGISTRATE.block("fluid_valve", FluidValveBlock::new)
.initialProperties(SharedProperties::softMetal)
.blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p,
@ -776,6 +777,7 @@ public class AllBlocks {
.addCriterion("has_seat", RegistrateRecipeProvider.hasItem(AllItemTags.SEATS.tag))
.build(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_seat"));
})
.onRegisterAfter(Item.class, v -> TooltipHelper.referTo(v, "block.create.seat"))
.tag(AllBlockTags.SEATS.tag)
.item()
.tag(AllItemTags.SEATS.tag)
@ -1033,7 +1035,9 @@ public class AllBlocks {
REGISTRATE.block("copper_ore", p -> new OxidizingBlock(p, 1))
.initialProperties(() -> Blocks.IRON_ORE)
.transform(oxidizedBlockstate())
.tag(Tags.Blocks.ORES)
.transform(tagBlockAndItem("ores/copper"))
.tag(Tags.Items.ORES)
.transform(oxidizedItemModel())
.register();
@ -1042,14 +1046,18 @@ public class AllBlocks {
.properties(p -> p.harvestLevel(2)
.harvestTool(ToolType.PICKAXE)
.sound(SoundType.STONE))
.tag(Tags.Blocks.ORES)
.transform(tagBlockAndItem("ores/zinc"))
.tag(Tags.Items.ORES)
.build()
.register();
public static final BlockEntry<OxidizingBlock> COPPER_BLOCK =
REGISTRATE.block("copper_block", p -> new OxidizingBlock(p, 1 / 32f))
.initialProperties(() -> Blocks.IRON_BLOCK)
.tag(Tags.Blocks.STORAGE_BLOCKS)
.transform(tagBlockAndItem("storage_blocks/copper"))
.tag(Tags.Items.STORAGE_BLOCKS)
.transform(oxidizedItemModel())
.transform(oxidizedBlockstate())
.register();
@ -1072,14 +1080,18 @@ public class AllBlocks {
public static final BlockEntry<Block> ZINC_BLOCK = REGISTRATE.block("zinc_block", p -> new Block(p))
.initialProperties(() -> Blocks.IRON_BLOCK)
.tag(Tags.Blocks.STORAGE_BLOCKS)
.transform(tagBlockAndItem("storage_blocks/zinc"))
.tag(Tags.Items.STORAGE_BLOCKS)
.build()
.register();
public static final BlockEntry<Block> BRASS_BLOCK =
REGISTRATE.block("brass_block", p -> new Block(p))
.initialProperties(() -> Blocks.IRON_BLOCK)
.tag(Tags.Blocks.STORAGE_BLOCKS)
.transform(tagBlockAndItem("storage_blocks/brass"))
.tag(Tags.Items.STORAGE_BLOCKS)
.build()
.register();

View file

@ -178,8 +178,8 @@ public class BasinCategory extends CreateRecipeCategory<BasinRecipe> {
AllGuiTextures heatBar = noHeat ? AllGuiTextures.JEI_NO_HEAT_BAR : AllGuiTextures.JEI_HEAT_BAR;
heatBar.draw(matrixStack, 4, 80);
Minecraft.getInstance().fontRenderer.drawWithShadow(matrixStack, Lang.translate(requiredHeat.getTranslationKey()), 9,
85, requiredHeat.getColor());
Minecraft.getInstance().fontRenderer.draw(matrixStack, Lang.translate(requiredHeat.getTranslationKey()), 9,
86, requiredHeat.getColor());
}
}

View file

@ -1,6 +1,7 @@
package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
import com.simibubi.create.foundation.gui.AllGuiTextures;
@ -21,20 +22,24 @@ public class AnimatedSaw extends AnimatedKinetics {
matrixStack.translate(0, 0, 200);
matrixStack.translate(29, 17, 0);
matrixStack.multiply(Vector3f.POSITIVE_X.getDegreesQuaternion(-22.5f));
matrixStack.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(90-225f));
matrixStack.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(90 - 225f));
int scale = 25;
GuiGameElement.of(shaft(Axis.X))
.rotateBlock(-getCurrentAngle(), 0, 0)
.scale(scale)
.render(matrixStack);
.rotateBlock(-getCurrentAngle(), 0, 0)
.scale(scale)
.render(matrixStack);
GuiGameElement.of(AllBlocks.MECHANICAL_SAW.getDefaultState()
.with(SawBlock.FACING, Direction.UP)
.with(SawBlock.RUNNING, true))
.rotateBlock(0, 0, 0)
.scale(scale)
.render(matrixStack);
.with(SawBlock.FACING, Direction.UP))
.rotateBlock(0, 0, 0)
.scale(scale)
.render(matrixStack);
GuiGameElement.of(AllBlockPartials.SAW_BLADE_VERTICAL_ACTIVE)
.rotateBlock(0, -90, -90)
.scale(scale)
.render(matrixStack);
matrixStack.pop();
}

View file

@ -25,7 +25,8 @@ public class BellMovementBehaviour extends MovementBehaviour {
@Override
public void stopMoving(MovementContext context) {
context.world.playSound(null, new BlockPos(context.position), SoundEvents.BLOCK_BELL_USE, SoundCategory.BLOCKS,
2.0F, 1.0F);
if (context.position != null)
context.world.playSound(null, new BlockPos(context.position), SoundEvents.BLOCK_BELL_USE, SoundCategory.BLOCKS,
2.0F, 1.0F);
}
}

View file

@ -92,8 +92,9 @@ public abstract class BlockBreakingKineticTileEntity extends KineticTileEntity {
return;
if (getSpeed() == 0)
return;
if (breakingPos == null)
breakingPos = getBreakingPos();
breakingPos = getBreakingPos();
if (ticksUntilNextProgress < 0)
return;
if (ticksUntilNextProgress-- > 0)

View file

@ -1,6 +1,8 @@
package com.simibubi.create.content.contraptions.components.actors;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
import com.simibubi.create.content.contraptions.components.saw.SawRenderer;
import com.simibubi.create.content.contraptions.components.saw.SawTileEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
import com.simibubi.create.foundation.utility.BlockHelper;
@ -9,20 +11,25 @@ import com.simibubi.create.foundation.utility.TreeCutter.Tree;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.tags.BlockTags;
import net.minecraft.util.DamageSource;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.items.ItemHandlerHelper;
public class SawMovementBehaviour extends BlockBreakingMovementBehaviour {
@Override
public boolean isActive(MovementContext context) {
return SawBlock.isHorizontal(context.state);
return !VecHelper.isVecPointingTowards(context.relativeMotion, context.state.get(SawBlock.FACING)
.getOpposite());
}
@Override
@ -30,6 +37,19 @@ public class SawMovementBehaviour extends BlockBreakingMovementBehaviour {
return Vector3d.of(context.state.get(SawBlock.FACING).getDirectionVec()).scale(.65f);
}
@Override
public void visitNewPosition(MovementContext context, BlockPos pos) {
super.visitNewPosition(context, pos);
Vec3d facingVec = new Vec3d(context.state.get(SawBlock.FACING).getDirectionVec());
facingVec = context.rotation.apply(facingVec);
Direction closestToFacing = Direction.getFacingFromVector(facingVec.x, facingVec.y, facingVec.z);
if(closestToFacing.getAxis().isVertical() && context.data.contains("BreakingPos")) {
context.data.remove("BreakingPos");
context.stall = false;
}
}
@Override
public boolean canBreak(World world, BlockPos breakingPos, BlockState state) {
return super.canBreak(world, breakingPos, state) && SawTileEntity.isSawable(state);
@ -62,6 +82,13 @@ public class SawMovementBehaviour extends BlockBreakingMovementBehaviour {
world.addEntity(entity);
}
@Override
@OnlyIn(value = Dist.CLIENT)
public void renderInContraption(MovementContext context, MatrixStack ms, MatrixStack msLocal,
IRenderTypeBuffer buffer) {
SawRenderer.renderInContraption(context, ms, msLocal, buffer);
}
@Override
protected DamageSource getDamageSource() {
return SawBlock.damageSourceSaw;

View file

@ -68,7 +68,8 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity {
stoppingCooldown = compound.getInt("Cooldown");
super.fromTag(state, compound, clientPacket);
if (clientPacket)
visualSpeed.withSpeed(1 / 32f).target(getGeneratedSpeed());
visualSpeed.withSpeed(1 / 32f)
.target(getGeneratedSpeed());
}
@Override
@ -82,6 +83,14 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity {
angle %= 360;
return;
}
/*
* After getting moved by pistons the generatedSpeed attribute reads 16 but the
* actual speed stays at 0, if it happens update rotation
*/
if (getGeneratedSpeed() != 0 && getSpeed() == 0)
updateGeneratedRotation();
if (stoppingCooldown == 0)
return;

View file

@ -35,13 +35,10 @@ import net.minecraft.world.World;
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public class SawBlock extends DirectionalAxisKineticBlock implements ITE<SawTileEntity> {
public static final BooleanProperty RUNNING = BooleanProperty.create("running");
public static DamageSource damageSourceSaw = new DamageSource("create.mechanical_saw").setDamageBypassesArmor();
public SawBlock(Properties properties) {
super(properties);
setDefaultState(getDefaultState().with(RUNNING, false));
}
@Override
@ -53,12 +50,6 @@ public class SawBlock extends DirectionalAxisKineticBlock implements ITE<SawTile
return stateForPlacement.with(AXIS_ALONG_FIRST_COORDINATE, facing.getAxis() == Axis.X);
}
@Override
protected void fillStateContainer(Builder<Block, BlockState> builder) {
builder.add(RUNNING);
super.fillStateContainer(builder);
}
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return AllTileEntities.SAW.create();

View file

@ -33,10 +33,9 @@ public class SawGenerator extends SpecialBlockStateGen {
String orientation = state.get(SawBlock.FACING)
.getAxis()
.isVertical() ? "vertical" : "horizontal";
String active = state.get(SawBlock.RUNNING) ? "" : "_inactive";
return prov.models()
.getExistingFile(prov.modLoc(path + orientation + active));
.getExistingFile(prov.modLoc(path + orientation));
}
}

View file

@ -7,9 +7,13 @@ import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.CreateClient;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer;
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.MatrixStacker;
import com.simibubi.create.foundation.utility.SuperByteBuffer;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft;
@ -23,6 +27,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.Direction;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector3f;
public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
@ -30,25 +35,66 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
public SawRenderer(TileEntityRendererDispatcher dispatcher) {
super(dispatcher);
}
@Override
protected void renderSafe(SawTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light,
int overlay) {
int overlay) {
renderBlade(te, ms, buffer, light);
renderItems(te, partialTicks, ms, buffer, light, overlay);
FilteringRenderer.renderOnTileEntity(te, partialTicks, ms, buffer, light, overlay);
renderShaft(te, ms, buffer, light, overlay);
}
protected void renderShaft(SawTileEntity te, MatrixStack ms, IRenderTypeBuffer buffer, int light,
int overlay) {
KineticTileEntityRenderer.renderRotatingBuffer(te, getRotatedModel(te), ms, buffer.getBuffer(RenderType.getSolid()), light);
protected void renderBlade(SawTileEntity te, MatrixStack ms, IRenderTypeBuffer buffer, int light) {
BlockState blockState = te.getBlockState();
SuperByteBuffer superBuffer;
AllBlockPartials partial;
float speed = te.getSpeed();
ms.push();
if (SawBlock.isHorizontal(blockState)) {
if (speed > 0) {
partial = AllBlockPartials.SAW_BLADE_HORIZONTAL_ACTIVE;
} else if (speed < 0) {
partial = AllBlockPartials.SAW_BLADE_HORIZONTAL_REVERSED;
} else {
partial = AllBlockPartials.SAW_BLADE_HORIZONTAL_INACTIVE;
}
} else {
if (te.getSpeed() > 0) {
partial = AllBlockPartials.SAW_BLADE_VERTICAL_ACTIVE;
} else if (speed < 0) {
partial = AllBlockPartials.SAW_BLADE_VERTICAL_REVERSED;
} else {
partial = AllBlockPartials.SAW_BLADE_VERTICAL_INACTIVE;
}
if (!blockState.get(SawBlock.AXIS_ALONG_FIRST_COORDINATE))
MatrixStacker.of(ms)
.centre()
.rotateY(90)
.unCentre();
}
superBuffer = partial.renderOnDirectionalSouth(blockState);
superBuffer.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.getCutoutMipped()));
ms.pop();
}
protected void renderItems(SawTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light,
int overlay) {
boolean processingMode = te.getBlockState().get(SawBlock.FACING) == Direction.UP;
protected void renderShaft(SawTileEntity te, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) {
KineticTileEntityRenderer.renderRotatingBuffer(te, getRotatedModel(te), ms,
buffer.getBuffer(RenderType.getSolid()), light);
}
protected void renderItems(SawTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer,
int light, int overlay) {
boolean processingMode = te.getBlockState()
.get(SawBlock.FACING) == Direction.UP;
if (processingMode && !te.inventory.isEmpty()) {
boolean alongZ = !te.getBlockState().get(SawBlock.AXIS_ALONG_FIRST_COORDINATE);
boolean alongZ = !te.getBlockState()
.get(SawBlock.AXIS_ALONG_FIRST_COORDINATE);
ms.push();
boolean moving = te.inventory.recipeDuration != 0;
@ -65,13 +111,14 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
ItemStack stack = te.inventory.getStackInSlot(i);
if (stack.isEmpty())
continue;
ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
ItemRenderer itemRenderer = Minecraft.getInstance()
.getItemRenderer();
IBakedModel modelWithOverrides = itemRenderer.getItemModelWithOverrides(stack, te.getWorld(), null);
boolean blockItem = modelWithOverrides.isGui3d();
ms.translate(alongZ ? offset : .5, blockItem ? .925f : 13f / 16f, alongZ ? .5 : offset);
ms.scale(.5f, .5f, .5f);
if (alongZ)
ms.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(90));
@ -79,7 +126,7 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
itemRenderer.renderItem(stack, ItemCameraTransforms.TransformType.FIXED, light, overlay, ms, buffer);
break;
}
ms.pop();
}
}
@ -87,7 +134,7 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
protected SuperByteBuffer getRotatedModel(KineticTileEntity te) {
BlockState state = te.getBlockState();
if (state.get(FACING).getAxis().isHorizontal())
return AllBlockPartials.SHAFT_HALF.renderOnDirectionalSouth(state.rotate(Rotation.CLOCKWISE_180));
return AllBlockPartials.SHAFT_HALF.renderOnDirectionalSouth(state.rotate(te.getWorld(), te.getPos(), Rotation.CLOCKWISE_180));
return CreateClient.bufferCache.renderBlockIn(KineticTileEntityRenderer.KINETIC_TILE,
getRenderedBlockState(te));
}
@ -96,4 +143,53 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
return KineticTileEntityRenderer.shaft(KineticTileEntityRenderer.getRotationAxisOf(te));
}
public static void renderInContraption(MovementContext context, MatrixStack ms, MatrixStack msLocal,
IRenderTypeBuffer buffer) {
MatrixStack[] matrixStacks = new MatrixStack[] { ms, msLocal };
BlockState state = context.state;
SuperByteBuffer superBuffer;
Direction facing = state.get(SawBlock.FACING);
Vector3d facingVec = Vector3d.of(context.state.get(SawBlock.FACING)
.getDirectionVec());
facingVec = context.rotation.apply(facingVec);
Direction closestToFacing = Direction.getFacingFromVector(facingVec.x, facingVec.y, facingVec.z);
boolean horizontal = closestToFacing.getAxis()
.isHorizontal();
boolean backwards = VecHelper.isVecPointingTowards(context.relativeMotion, facing.getOpposite());
boolean moving = context.getAnimationSpeed() != 0;
boolean shouldAnimate =
(context.contraption.stalled && horizontal) || (!context.contraption.stalled && !backwards && moving);
if (SawBlock.isHorizontal(state)) {
if (shouldAnimate)
superBuffer = AllBlockPartials.SAW_BLADE_HORIZONTAL_ACTIVE.renderOn(state);
else
superBuffer = AllBlockPartials.SAW_BLADE_HORIZONTAL_INACTIVE.renderOn(state);
} else {
if (shouldAnimate)
superBuffer = AllBlockPartials.SAW_BLADE_VERTICAL_ACTIVE.renderOn(state);
else
superBuffer = AllBlockPartials.SAW_BLADE_VERTICAL_INACTIVE.renderOn(state);
}
for (MatrixStack m : matrixStacks) {
MatrixStacker.of(m)
.centre()
.rotateY(AngleHelper.horizontalAngle(facing))
.rotateX(AngleHelper.verticalAngle(facing));
if (!SawBlock.isHorizontal(state))
MatrixStacker.of(m)
.rotateZ(state.get(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 0 : 90);
MatrixStacker.of(m)
.unCentre();
}
superBuffer.light(msLocal.peek()
.getModel())
.renderInto(ms, buffer.getBuffer(RenderType.getCutoutMipped()));
}
}

View file

@ -1,7 +1,5 @@
package com.simibubi.create.content.contraptions.components.saw;
import static com.simibubi.create.content.contraptions.components.saw.SawBlock.RUNNING;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@ -64,7 +62,6 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
private int recipeIndex;
private LazyOptional<IItemHandler> invProvider = LazyOptional.empty();
private FilteringBehaviour filtering;
private boolean destroyed;
public SawTileEntity(TileEntityType<? extends SawTileEntity> type) {
super(type);
@ -82,15 +79,6 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
behaviours.add(new DirectBeltInputBehaviour(this));
}
@Override
public void onSpeedChanged(float prevSpeed) {
super.onSpeedChanged(prevSpeed);
boolean shouldRun = Math.abs(getSpeed()) > 1 / 64f;
boolean running = getBlockState().get(RUNNING);
if (shouldRun != running && !destroyed)
world.setBlockState(pos, getBlockState().with(RUNNING, shouldRun), 2 | 16);
}
@Override
public void write(CompoundNBT compound, boolean clientPacket) {
compound.put("Inventory", inventory.serializeNBT());
@ -189,7 +177,6 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
@Override
public void remove() {
invProvider.invalidate();
destroyed = true;
super.remove();
}

View file

@ -395,8 +395,6 @@ public abstract class Contraption {
protected Pair<BlockInfo, TileEntity> capture(World world, BlockPos pos) {
BlockState blockstate = world.getBlockState(pos);
if (AllBlocks.MECHANICAL_SAW.has(blockstate))
blockstate = blockstate.with(SawBlock.RUNNING, true);
if (blockstate.getBlock() instanceof ChestBlock)
blockstate = blockstate.with(ChestBlock.TYPE, ChestType.SINGLE);
if (AllBlocks.ADJUSTABLE_CRATE.has(blockstate))
@ -656,9 +654,6 @@ public abstract class Contraption {
state = state.updatePostPlacement(face, world.getBlockState(targetPos.offset(face)), world,
targetPos, targetPos.offset(face));
if (AllBlocks.MECHANICAL_SAW.has(state))
state = state.with(SawBlock.RUNNING, false);
BlockState blockState = world.getBlockState(targetPos);
if (blockState.getBlockHardness(world, targetPos) == -1 || (state.getCollisionShape(world, targetPos)
.isEmpty()

View file

@ -25,6 +25,7 @@ import net.minecraft.entity.item.minecart.AbstractMinecartEntity;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.INBT;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;
@ -33,6 +34,7 @@ import net.minecraftforge.common.capabilities.CapabilityInject;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.common.util.NonNullConsumer;
import net.minecraftforge.event.AttachCapabilitiesEvent;
import net.minecraftforge.event.world.ChunkEvent;
@ -45,6 +47,37 @@ public class CapabilityMinecartController implements ICapabilitySerializable<Com
static WorldAttached<List<AbstractMinecartEntity>> queuedAdditions;
static WorldAttached<List<UUID>> queuedUnloads;
/**
* This callback wrapper ensures that the listeners map in the controller
* capability only ever contains one instance
*/
public static class MinecartRemovalListener implements NonNullConsumer<LazyOptional<MinecartController>> {
private World world;
private AbstractMinecartEntity cart;
public MinecartRemovalListener(World world, AbstractMinecartEntity cart) {
this.world = world;
this.cart = cart;
}
@Override
public boolean equals(Object obj) {
return obj instanceof MinecartRemovalListener;
}
@Override
public int hashCode() {
return 100;
}
@Override
public void accept(LazyOptional<MinecartController> t) {
onCartRemoved(world, cart);
}
}
static {
loadedMinecartsByUUID = new WorldAttached<>(HashMap::new);
loadedMinecartsWithCoupling = new WorldAttached<>(HashSet::new);
@ -66,10 +99,12 @@ public class CapabilityMinecartController implements ICapabilitySerializable<Com
for (AbstractMinecartEntity cart : queued) {
UUID uniqueID = cart.getUniqueID();
cartsWithCoupling.remove(uniqueID);
LazyOptional<MinecartController> capability = cart.getCapability(MINECART_CONTROLLER_CAPABILITY);
MinecartController controller = capability.orElse(null);
capability.addListener(cap -> onCartRemoved(world, cart));
capability.addListener(new MinecartRemovalListener(world, cart));
carts.put(uniqueID, controller);
capability.ifPresent(mc -> {
if (mc.isLeadingCoupling())
cartsWithCoupling.add(uniqueID);
@ -128,14 +163,14 @@ public class CapabilityMinecartController implements ICapabilitySerializable<Com
MinecartController next = CouplingHandler.getNextInCouplingChain(world, controller, forward);
if (next == null || next == MinecartController.EMPTY)
continue;
next.removeConnection(!forward);
if (controller.hasContraptionCoupling(forward))
continue;
AbstractMinecartEntity cart = next.cart();
if (cart == null)
continue;
Vector3d itemPos = cart.getPositionVec()
.add(removedPos)
.scale(.5f);
@ -165,8 +200,13 @@ public class CapabilityMinecartController implements ICapabilitySerializable<Com
Entity entity = event.getObject();
if (!(entity instanceof AbstractMinecartEntity))
return;
event.addCapability(Create.asResource("minecart_controller"),
new CapabilityMinecartController((AbstractMinecartEntity) entity));
CapabilityMinecartController capability = new CapabilityMinecartController((AbstractMinecartEntity) entity);
ResourceLocation id = Create.asResource("minecart_controller");
event.addCapability(id, capability);
event.addListener(() -> {
if (capability.cap.isPresent())
capability.cap.invalidate();
});
queuedAdditions.get(entity.getEntityWorld())
.add((AbstractMinecartEntity) entity);
}

View file

@ -63,9 +63,8 @@ public class MinecartController implements INBTSerializable<CompoundNBT> {
World world = getWorld();
if (needsEntryRefresh) {
List<AbstractMinecartEntity> list = CapabilityMinecartController.queuedAdditions.get(world);
if (list != null)
list.add(cart);
CapabilityMinecartController.queuedAdditions.get(world).add(cart);
needsEntryRefresh = false;
}
stallData.forEach(opt -> opt.ifPresent(sd -> sd.tick(cart)));

View file

@ -7,7 +7,7 @@ import com.simibubi.create.foundation.utility.Lang;
public enum HeatCondition {
NONE(0xffffff), HEATED(0xFFD528), SUPERHEATED(0xA2DFFF),
NONE(0xffffff), HEATED(0xE88300), SUPERHEATED(0x5C93E8),
;

View file

@ -111,6 +111,12 @@ public class RedstoneLinkNetworkHandler {
break;
}
// fix one-to-one loading order problem
if(actor.isListening()){
actor.newPosition = true;
actor.updateReceiver(power);
}
for (Iterator<LinkBehaviour> iterator = network.iterator(); iterator.hasNext();) {
LinkBehaviour other = iterator.next();
if (other.tileEntity.isRemoved()) {

View file

@ -13,6 +13,7 @@ import com.simibubi.create.content.contraptions.components.crafter.MechanicalCra
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
@ -217,8 +218,8 @@ public abstract class ArmInteractionPoint {
@Override
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
return AllBlocks.MECHANICAL_SAW.has(state) && state.get(SawBlock.RUNNING)
&& state.get(SawBlock.FACING) == Direction.UP;
return AllBlocks.MECHANICAL_SAW.has(state) && state.get(SawBlock.FACING) == Direction.UP
&& ((KineticTileEntity)reader.getTileEntity(pos)).getSpeed() != 0;
}
}

View file

@ -61,7 +61,7 @@ public class ArmRenderer extends KineticTileEntityRenderer {
SuperByteBuffer upperBody = AllBlockPartials.ARM_UPPER_BODY.renderOn(blockState).light(light);
SuperByteBuffer head = AllBlockPartials.ARM_HEAD.renderOn(blockState).light(light);
SuperByteBuffer claw = AllBlockPartials.ARM_CLAW_BASE.renderOn(blockState).light(light);
SuperByteBuffer clawGrip = AllBlockPartials.ARM_CLAW_GRIP.renderOn(blockState).light(light);
SuperByteBuffer clawGrip = AllBlockPartials.ARM_CLAW_GRIP.renderOn(blockState);
msr.centre();
@ -101,7 +101,7 @@ public class ArmRenderer extends KineticTileEntityRenderer {
ms.push();
ms.translate(0, flip * 3 / 16d, -1 / 16d);
msr.rotateX(flip * (hasItem ? isBlockItem ? 0 : -35 : 0));
clawGrip.renderInto(ms, builder);
clawGrip.light(light).renderInto(ms, builder);
ms.pop();
}

View file

@ -1,5 +1,10 @@
package com.simibubi.create.content.logistics.block.mechanicalArm;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.logistics.block.mechanicalArm.ArmInteractionPoint.Jukebox;
import com.simibubi.create.content.logistics.block.mechanicalArm.ArmInteractionPoint.Mode;
@ -15,6 +20,7 @@ import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.NBTHelper;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.block.BlockState;
import net.minecraft.block.JukeboxBlock;
import net.minecraft.item.ItemStack;
@ -23,14 +29,13 @@ import net.minecraft.nbt.INBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.Direction;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.util.Constants.NBT;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
public class ArmTileEntity extends KineticTileEntity {
// Server
@ -132,6 +137,12 @@ public class ArmTileEntity extends KineticTileEntity {
sendData();
}
}
@Override
@OnlyIn(Dist.CLIENT)
public AxisAlignedBB getRenderBoundingBox() {
return super.getRenderBoundingBox().grow(3);
}
private boolean checkForMusicAmong(List<ArmInteractionPoint> list) {
for (ArmInteractionPoint armInteractionPoint : list) {

View file

@ -38,12 +38,12 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
private ITextComponent addDESC = Lang.translate(PREFIX + "add_attribute");
private ITextComponent addInvertedDESC = Lang.translate(PREFIX + "add_inverted_attribute");
private ITextComponent whitelistDisN = Lang.translate(PREFIX + "whitelist_disjunctive");
private ITextComponent whitelistDisDESC = Lang.translate(PREFIX + "whitelist_disjunctive.description");
private ITextComponent whitelistConN = Lang.translate(PREFIX + "whitelist_conjunctive");
private ITextComponent whitelistConDESC = Lang.translate(PREFIX + "whitelist_conjunctive.description");
private ITextComponent blacklistN = Lang.translate(PREFIX + "blacklist");
private ITextComponent blacklistDESC = Lang.translate(PREFIX + "blacklist.description");
private ITextComponent allowDisN = Lang.translate(PREFIX + "allow_list_disjunctive");
private ITextComponent allowDisDESC = Lang.translate(PREFIX + "allow_list_disjunctive.description");
private ITextComponent allowConN = Lang.translate(PREFIX + "allow_list_conjunctive");
private ITextComponent allowConDESC = Lang.translate(PREFIX + "allow_list_conjunctive.description");
private ITextComponent denyN = Lang.translate(PREFIX + "deny_list");
private ITextComponent denyDESC = Lang.translate(PREFIX + "deny_list.description");
private ITextComponent referenceH = Lang.translate(PREFIX + "add_reference_item");
private ITextComponent noSelectedT = Lang.translate(PREFIX + "no_selected_attributes");
@ -66,11 +66,11 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
int y = guiTop;
whitelistDis = new IconButton(x + 47, y + 59, AllIcons.I_WHITELIST_OR);
whitelistDis.setToolTip(whitelistDisN);
whitelistDis.setToolTip(allowDisN);
whitelistCon = new IconButton(x + 65, y + 59, AllIcons.I_WHITELIST_AND);
whitelistCon.setToolTip(whitelistConN);
whitelistCon.setToolTip(allowConN);
blacklist = new IconButton(x + 83, y + 59, AllIcons.I_WHITELIST_NOT);
blacklist.setToolTip(blacklistN);
blacklist.setToolTip(denyN);
whitelistDisIndicator = new Indicator(x + 47, y + 53, StringTextComponent.EMPTY);
whitelistConIndicator = new Indicator(x + 65, y + 53, StringTextComponent.EMPTY);
@ -86,7 +86,8 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
handleIndicators();
attributeSelectorLabel = new Label(x + 43, y + 26, StringTextComponent.EMPTY).colored(0xF3EBDE).withShadow();
attributeSelectorLabel = new Label(x + 43, y + 26, StringTextComponent.EMPTY).colored(0xF3EBDE)
.withShadow();
attributeSelector = new SelectionScrollInput(x + 39, y + 21, 137, 18);
attributeSelector.forOptions(Arrays.asList(StringTextComponent.EMPTY));
attributeSelector.removeCallback();
@ -96,9 +97,12 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
widgets.add(attributeSelectorLabel);
selectedAttributes.clear();
selectedAttributes
.add((container.selectedAttributes.isEmpty() ? noSelectedT : selectedT).copy().formatted(TextFormatting.YELLOW));
container.selectedAttributes.forEach(at -> selectedAttributes.add(new StringTextComponent("- ").append(at.toString()).formatted(TextFormatting.GRAY)));
selectedAttributes.add((container.selectedAttributes.isEmpty() ? noSelectedT : selectedT).copy()
.formatted(TextFormatting.YELLOW));
container.selectedAttributes.forEach(at -> selectedAttributes.add(new StringTextComponent("- ")
.append(at.getFirst()
.format(at.getSecond()))
.formatted(TextFormatting.GRAY)));
}
@ -108,7 +112,8 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
if (stack.isEmpty()) {
attributeSelector.active = false;
attributeSelector.visible = false;
attributeSelectorLabel.text = referenceH.copy().formatted(TextFormatting.ITALIC);
attributeSelectorLabel.text = referenceH.copy()
.formatted(TextFormatting.ITALIC);
add.active = false;
addInverted.active = false;
attributeSelector.calling(s -> {
@ -119,11 +124,15 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
add.active = true;
addInverted.active = true;
attributeSelector.titled(stack.getDisplayName().copy().append("..."));
attributeSelector.titled(stack.getDisplayName()
.copy()
.append("..."));
attributesOfItem.clear();
for (ItemAttribute itemAttribute : ItemAttribute.types)
attributesOfItem.addAll(itemAttribute.listAttributesOf(stack, client.world));
List<ITextComponent> options = attributesOfItem.stream().map(a -> a.format(false)).collect(Collectors.toList());
List<ITextComponent> options = attributesOfItem.stream()
.map(a -> a.format(false))
.collect(Collectors.toList());
attributeSelector.forOptions(options);
attributeSelector.active = true;
attributeSelector.visible = true;
@ -193,7 +202,7 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
@Override
protected List<IFormattableTextComponent> getTooltipDescriptions() {
return Arrays.asList(blacklistDESC.copy(), whitelistConDESC.copy(), whitelistDisDESC.copy());
return Arrays.asList(denyDESC.copy(), allowConDESC.copy(), allowDisDESC.copy());
}
@Override
@ -242,15 +251,18 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
.sendToServer(new FilterScreenPacket(inverted ? Option.ADD_INVERTED_TAG : Option.ADD_TAG, tag));
container.appendSelectedAttribute(itemAttribute, inverted);
if (container.selectedAttributes.size() == 1)
selectedAttributes.set(0, selectedT.copy().formatted(TextFormatting.YELLOW));
selectedAttributes.add(new StringTextComponent("- ").append(itemAttribute.format(inverted)).formatted(TextFormatting.GRAY));
selectedAttributes.set(0, selectedT.copy()
.formatted(TextFormatting.YELLOW));
selectedAttributes.add(new StringTextComponent("- ").append(itemAttribute.format(inverted))
.formatted(TextFormatting.GRAY));
return true;
}
@Override
protected void contentsCleared() {
selectedAttributes.clear();
selectedAttributes.add(noSelectedT.copy().formatted(TextFormatting.YELLOW));
selectedAttributes.add(noSelectedT.copy()
.formatted(TextFormatting.YELLOW));
if (!lastItemScanned.isEmpty()) {
add.active = true;
addInverted.active = true;

View file

@ -19,10 +19,10 @@ public class FilterScreen extends AbstractFilterScreen<FilterContainer> {
private static final String PREFIX = "gui.filter.";
private ITextComponent whitelistN = Lang.translate(PREFIX + "whitelist");
private ITextComponent whitelistDESC = Lang.translate(PREFIX + "whitelist.description");
private ITextComponent blacklistN = Lang.translate(PREFIX + "blacklist");
private ITextComponent blacklistDESC = Lang.translate(PREFIX + "blacklist.description");
private ITextComponent allowN = Lang.translate(PREFIX + "allow_list");
private ITextComponent allowDESC = Lang.translate(PREFIX + "allow_list.description");
private ITextComponent denyN = Lang.translate(PREFIX + "deny_list");
private ITextComponent denyDESC = Lang.translate(PREFIX + "deny_list.description");
private ITextComponent respectDataN = Lang.translate(PREFIX + "respect_data");
private ITextComponent respectDataDESC = Lang.translate(PREFIX + "respect_data.description");
@ -45,9 +45,9 @@ public class FilterScreen extends AbstractFilterScreen<FilterContainer> {
int y = guiTop;
blacklist = new IconButton(x + 18, y + 73, AllIcons.I_BLACKLIST);
blacklist.setToolTip(blacklistN);
blacklist.setToolTip(denyN);
whitelist = new IconButton(x + 36, y + 73, AllIcons.I_WHITELIST);
whitelist.setToolTip(whitelistN);
whitelist.setToolTip(allowN);
blacklistIndicator = new Indicator(x + 18, y + 67, StringTextComponent.EMPTY);
whitelistIndicator = new Indicator(x + 36, y + 67, StringTextComponent.EMPTY);
widgets.addAll(Arrays.asList(blacklist, whitelist, blacklistIndicator, whitelistIndicator));
@ -103,7 +103,7 @@ public class FilterScreen extends AbstractFilterScreen<FilterContainer> {
@Override
protected List<IFormattableTextComponent> getTooltipDescriptions() {
return Arrays.asList(blacklistDESC.copy(), whitelistDESC.copy(), respectDataDESC.copy(), ignoreDataDESC.copy());
return Arrays.asList(denyDESC.copy(), allowDESC.copy(), respectDataDESC.copy(), ignoreDataDESC.copy());
}
@Override

View file

@ -14,6 +14,15 @@ import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Predicates;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.logistics.InWorldProcessing;
import com.simibubi.create.content.logistics.item.filter.attribute.BookAuthorAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.BookCopyAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.EnchantAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.FluidContentsAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.ItemNameAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryAmuletAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryAttunementAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryCrystalAttribute;
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryPerkGemAttribute;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.inventory.IInventory;
@ -30,6 +39,7 @@ import net.minecraft.util.text.TranslationTextComponent;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fml.ModContainer;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.forgespi.language.IModInfo;
@ -44,6 +54,15 @@ public interface ItemAttribute {
static ItemAttribute inTag = register(new InTag(new ResourceLocation("dummy")));
static ItemAttribute inItemGroup = register(new InItemGroup(ItemGroup.MISC));
static ItemAttribute addedBy = register(new InItemGroup.AddedBy("dummy"));
static ItemAttribute hasEnchant = register(EnchantAttribute.EMPTY);
static ItemAttribute hasFluid = register(FluidContentsAttribute.EMPTY);
static ItemAttribute hasName = register(new ItemNameAttribute("dummy"));
static ItemAttribute astralAmulet = register(new AstralSorceryAmuletAttribute("dummy", -1));
static ItemAttribute astralAttunement = register(new AstralSorceryAttunementAttribute("dummy"));
static ItemAttribute astralCrystal = register(new AstralSorceryCrystalAttribute("dummy"));
static ItemAttribute astralPerkGem = register(new AstralSorceryPerkGemAttribute("dummy"));
static ItemAttribute bookAuthor = register(new BookAuthorAttribute("dummy"));
static ItemAttribute bookCopy = register(new BookCopyAttribute(-1));
static ItemAttribute register(ItemAttribute attributeType) {
types.add(attributeType);
@ -106,7 +125,9 @@ public interface ItemAttribute {
DUMMY(s -> false),
PLACEABLE(s -> s.getItem() instanceof BlockItem),
CONSUMABLE(ItemStack::isFood),
FLUID_CONTAINER(s -> s.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY).isPresent()),
ENCHANTED(ItemStack::isEnchanted),
RENAMED(ItemStack::hasDisplayName),
DAMAGED(ItemStack::isDamaged),
BADLY_DAMAGED(s -> s.isDamaged() && s.getDamage() / s.getMaxDamage() > 3 / 4f),
NOT_STACKABLE(Predicates.not(ItemStack::isStackable)),

View file

@ -0,0 +1,63 @@
package com.simibubi.create.content.logistics.item.filter.attribute;
import com.google.gson.JsonParseException;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.item.ItemStack;
import net.minecraft.item.WrittenBookItem;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.text.ITextComponent;
import java.util.ArrayList;
import java.util.List;
public class BookAuthorAttribute implements ItemAttribute {
String author;
public BookAuthorAttribute(String author) {
this.author = author;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
return extractAuthor(itemStack).equals(author);
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
String name = extractAuthor(itemStack);
List<ItemAttribute> atts = new ArrayList<>();
if(name.length() > 0) {
atts.add(new BookAuthorAttribute(name));
}
return atts;
}
@Override
public String getTranslationKey() {
return "book_author";
}
@Override
public Object[] getTranslationParameters() {
return new Object[] {author};
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putString("author", this.author);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new BookAuthorAttribute(nbt.getString("author"));
}
private String extractAuthor(ItemStack stack) {
CompoundNBT nbt = stack.getTag();
if (nbt != null && nbt.contains("author")) {
return nbt.getString("author");
}
return "";
}
}

View file

@ -0,0 +1,66 @@
package com.simibubi.create.content.logistics.item.filter.attribute;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.item.WrittenBookItem;
import net.minecraft.nbt.CompoundNBT;
import java.util.ArrayList;
import java.util.List;
public class BookCopyAttribute implements ItemAttribute {
int generation;
public BookCopyAttribute(int generation) {
this.generation = generation;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
return extractGeneration(itemStack) == generation;
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
int generation = extractGeneration(itemStack);
List<ItemAttribute> atts = new ArrayList<>();
if(generation >= 0) {
atts.add(new BookCopyAttribute(generation));
}
return atts;
}
@Override
public String getTranslationKey() {
switch(generation){
case 0:
return "book_copy_original";
case 1:
return "book_copy_first";
case 2:
return "book_copy_second";
default:
return "book_copy_tattered";
}
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putInt("generation", this.generation);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new BookCopyAttribute(nbt.getInt("generation"));
}
private int extractGeneration(ItemStack stack) {
CompoundNBT nbt = stack.getTag();
if (nbt != null && stack.getItem() instanceof WrittenBookItem) {
return nbt.getInt("generation");
}
return -1;
}
}

View file

@ -0,0 +1,62 @@
package com.simibubi.create.content.logistics.item.filter.attribute;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.registries.ForgeRegistries;
import javax.annotation.Nullable;
import java.util.List;
import java.util.stream.Collectors;
public class EnchantAttribute implements ItemAttribute {
public static final EnchantAttribute EMPTY = new EnchantAttribute(null);
private final Enchantment enchantment;
public EnchantAttribute(@Nullable Enchantment enchantment) {
this.enchantment = enchantment;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
return EnchantmentHelper.getEnchantments(itemStack).containsKey(enchantment);
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
return EnchantmentHelper.getEnchantments(itemStack).keySet().stream().map(EnchantAttribute::new).collect(Collectors.toList());
}
@Override
public String getTranslationKey() {
return "has_enchant";
}
@Override
public Object[] getTranslationParameters() {
String parameter = "";
if(enchantment != null)
parameter = new TranslationTextComponent(enchantment.getName()).getString();
return new Object[] { parameter };
}
@Override
public void writeNBT(CompoundNBT nbt) {
if (enchantment == null)
return;
ResourceLocation id = ForgeRegistries.ENCHANTMENTS.getKey(enchantment);
if (id == null)
return;
nbt.putString("id", id.toString());
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return nbt.contains("id") ? new EnchantAttribute(ForgeRegistries.ENCHANTMENTS.getValue(ResourceLocation.tryCreate(nbt.getString("id")))) : EMPTY;
}
}

View file

@ -0,0 +1,80 @@
package com.simibubi.create.content.logistics.item.filter.attribute;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.fluid.Fluid;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandlerItem;
import net.minecraftforge.registries.ForgeRegistries;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class FluidContentsAttribute implements ItemAttribute {
public static final FluidContentsAttribute EMPTY = new FluidContentsAttribute(null);
private final Fluid fluid;
public FluidContentsAttribute(@Nullable Fluid fluid) {
this.fluid = fluid;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
return extractFluids(itemStack).contains(fluid);
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
return extractFluids(itemStack).stream().map(FluidContentsAttribute::new).collect(Collectors.toList());
}
@Override
public String getTranslationKey() {
return "has_fluid";
}
@Override
public Object[] getTranslationParameters() {
String parameter = "";
if(fluid != null)
parameter = new TranslationTextComponent(fluid.getAttributes().getTranslationKey()).getString();
return new Object[] { parameter };
}
@Override
public void writeNBT(CompoundNBT nbt) {
if (fluid == null)
return;
ResourceLocation id = ForgeRegistries.FLUIDS.getKey(fluid);
if (id == null)
return;
nbt.putString("id", id.toString());
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return nbt.contains("id") ? new FluidContentsAttribute(ForgeRegistries.FLUIDS.getValue(ResourceLocation.tryCreate(nbt.getString("id")))) : EMPTY;
}
private List<Fluid> extractFluids(ItemStack stack) {
List<Fluid> fluids = new ArrayList<>();
LazyOptional<IFluidHandlerItem> capability =
stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY);
capability.ifPresent((cap) -> {
for(int i = 0; i < cap.getTanks(); i++) {
fluids.add(cap.getFluidInTank(i).getFluid());
}
});
return fluids;
}
}

View file

@ -0,0 +1,71 @@
package com.simibubi.create.content.logistics.item.filter.attribute;
import com.google.gson.JsonParseException;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TranslationTextComponent;
import java.util.ArrayList;
import java.util.List;
public class ItemNameAttribute implements ItemAttribute {
String itemName;
public ItemNameAttribute(String itemName) {
this.itemName = itemName;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
return extractCustomName(itemStack).equals(itemName);
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
String name = extractCustomName(itemStack);
List<ItemAttribute> atts = new ArrayList<>();
if(name.length() > 0) {
atts.add(new ItemNameAttribute(name));
}
return atts;
}
@Override
public String getTranslationKey() {
return "has_name";
}
@Override
public Object[] getTranslationParameters() {
return new Object[] { itemName };
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putString("name", this.itemName);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new ItemNameAttribute(nbt.getString("name"));
}
private String extractCustomName(ItemStack stack) {
CompoundNBT compoundnbt = stack.getChildTag("display");
if (compoundnbt != null && compoundnbt.contains("Name", 8)) {
try {
ITextComponent itextcomponent = ITextComponent.Serializer.fromJson(compoundnbt.getString("Name"));
if (itextcomponent != null) {
return itextcomponent.getString();
}
} catch (JsonParseException ignored) {
}
}
return "";
}
}

View file

@ -0,0 +1,81 @@
package com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.INBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.ArrayList;
import java.util.List;
public class AstralSorceryAmuletAttribute implements ItemAttribute {
String enchName;
int enchType;
public AstralSorceryAmuletAttribute(String enchName, int enchType) {
this.enchName = enchName;
this.enchType = enchType;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
for (INBT trait : extractTraitList(itemStack)) {
if(((CompoundNBT) trait).getString("ench").equals(this.enchName)
&& ((CompoundNBT)trait).getInt("type") == this.enchType)
return true;
}
return false;
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
ListNBT traits = extractTraitList(itemStack);
List<ItemAttribute> atts = new ArrayList<>();
for (int i = 0; i < traits.size(); i++) {
atts.add(new AstralSorceryAmuletAttribute(
traits.getCompound(i).getString("ench"),
traits.getCompound(i).getInt("type")));
}
return atts;
}
@Override
public String getTranslationKey() {
return "astralsorcery_amulet";
}
@Override
public Object[] getTranslationParameters() {
ResourceLocation traitResource = new ResourceLocation(enchName);
String something = "";
Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(ResourceLocation.tryCreate(enchName));
if(enchant != null) {
something = new TranslationTextComponent(enchant.getName()).getString();
}
if(enchType == 1) something = "existing " + something;
return new Object[] { something };
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putString("enchName", this.enchName);
nbt.putInt("enchType", this.enchType);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new AstralSorceryAmuletAttribute(nbt.getString("enchName"), nbt.getInt("enchType"));
}
private ListNBT extractTraitList(ItemStack stack) {
return stack.getTag() != null ? stack.getTag().getCompound("astralsorcery").getList("amuletEnchantments", 10) : new ListNBT();
}
}

View file

@ -0,0 +1,76 @@
package com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TranslationTextComponent;
import java.util.ArrayList;
import java.util.List;
public class AstralSorceryAttunementAttribute implements ItemAttribute {
String constellationName;
public AstralSorceryAttunementAttribute(String constellationName) {
this.constellationName = constellationName;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
CompoundNBT nbt = extractAstralNBT(itemStack);
String constellation = nbt.contains("constellation") ? nbt.getString("constellation") : nbt.getString("constellationName");
// Special handling for shifting stars
ResourceLocation itemResource = itemStack.getItem().getRegistryName();
if(itemResource != null && itemResource.toString().contains("shifting_star_")) {
constellation = itemResource.toString().replace("shifting_star_", "");
}
return constellation.equals(constellationName);
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
CompoundNBT nbt = extractAstralNBT(itemStack);
String constellation = nbt.contains("constellation") ? nbt.getString("constellation") : nbt.getString("constellationName");
// Special handling for shifting stars
ResourceLocation itemResource = itemStack.getItem().getRegistryName();
if(itemResource != null && itemResource.toString().contains("shifting_star_")) {
constellation = itemResource.toString().replace("shifting_star_", "");
}
List<ItemAttribute> atts = new ArrayList<>();
if(constellation.length() > 0) {
atts.add(new AstralSorceryAttunementAttribute(constellation));
}
return atts;
}
@Override
public String getTranslationKey() {
return "astralsorcery_constellation";
}
@Override
public Object[] getTranslationParameters() {
ResourceLocation constResource = new ResourceLocation(constellationName);
String something = new TranslationTextComponent(String.format("%s.constellation.%s", constResource.getNamespace(), constResource.getPath())).getString();
return new Object[] { something };
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putString("constellation", this.constellationName);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new AstralSorceryAttunementAttribute(nbt.getString("constellation"));
}
private CompoundNBT extractAstralNBT(ItemStack stack) {
return stack.getTag() != null ? stack.getTag().getCompound("astralsorcery") : new CompoundNBT();
}
}

View file

@ -0,0 +1,65 @@
package com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.INBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TranslationTextComponent;
import java.util.ArrayList;
import java.util.List;
public class AstralSorceryCrystalAttribute implements ItemAttribute {
String traitName;
public AstralSorceryCrystalAttribute(String traitName) {
this.traitName = traitName;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
for (INBT trait : extractTraitList(itemStack)) {
if(((CompoundNBT) trait).getString("property").equals(this.traitName))
return true;
}
return false;
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
ListNBT traits = extractTraitList(itemStack);
List<ItemAttribute> atts = new ArrayList<>();
for (int i = 0; i < traits.size(); i++) {
atts.add(new AstralSorceryCrystalAttribute(traits.getCompound(i).getString("property")));
}
return atts;
}
@Override
public String getTranslationKey() {
return "astralsorcery_crystal";
}
@Override
public Object[] getTranslationParameters() {
ResourceLocation traitResource = new ResourceLocation(traitName);
String something = new TranslationTextComponent(String.format("crystal.property.%s.%s.name", traitResource.getNamespace(), traitResource.getPath())).getString();
return new Object[] { something };
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putString("property", this.traitName);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new AstralSorceryCrystalAttribute(nbt.getString("property"));
}
private ListNBT extractTraitList(ItemStack stack) {
return stack.getTag() != null ? stack.getTag().getCompound("astralsorcery").getCompound("crystalProperties").getList("attributes", 10) : new ListNBT();
}
}

View file

@ -0,0 +1,65 @@
package com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery;
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.INBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TranslationTextComponent;
import java.util.ArrayList;
import java.util.List;
public class AstralSorceryPerkGemAttribute implements ItemAttribute {
String traitName;
public AstralSorceryPerkGemAttribute(String traitName) {
this.traitName = traitName;
}
@Override
public boolean appliesTo(ItemStack itemStack) {
for (INBT trait : extractTraitList(itemStack)) {
if(((CompoundNBT) trait).getString("type").equals(this.traitName))
return true;
}
return false;
}
@Override
public List<ItemAttribute> listAttributesOf(ItemStack itemStack) {
ListNBT traits = extractTraitList(itemStack);
List<ItemAttribute> atts = new ArrayList<>();
for (int i = 0; i < traits.size(); i++) {
atts.add(new AstralSorceryPerkGemAttribute(traits.getCompound(i).getString("type")));
}
return atts;
}
@Override
public String getTranslationKey() {
return "astralsorcery_perk_gem";
}
@Override
public Object[] getTranslationParameters() {
ResourceLocation traitResource = new ResourceLocation(traitName);
String something = new TranslationTextComponent(String.format("perk.attribute.%s.%s.name", traitResource.getNamespace(), traitResource.getPath())).getString();
return new Object[] { something };
}
@Override
public void writeNBT(CompoundNBT nbt) {
nbt.putString("type", this.traitName);
}
@Override
public ItemAttribute readNBT(CompoundNBT nbt) {
return new AstralSorceryPerkGemAttribute(nbt.getString("type"));
}
private ListNBT extractTraitList(ItemStack stack) {
return stack.getTag() != null ? stack.getTag().getCompound("astralsorcery").getList("attribute_modifiers", 10) : new ListNBT();
}
}

View file

@ -220,14 +220,14 @@ public class SchematicHandler {
}
public boolean mouseScrolled(double delta) {
if (!active || Minecraft.getInstance().player.isSneaking())
if (!active)
return false;
if (selectionScreen.focused) {
selectionScreen.cycle((int) delta);
return true;
}
if (AllKeys.ACTIVATE_TOOL.isPressed())
if (!AllKeys.ctrlDown())
return currentTool.getTool()
.handleMouseWheel(delta);
return false;

View file

@ -15,6 +15,8 @@ public class SchematicHotbarSlotOverlay extends AbstractGui {
int x = mainWindow.getScaledWidth() / 2 - 88;
int y = mainWindow.getScaledHeight() - 19;
RenderSystem.enableAlphaTest();
RenderSystem.enableDepthTest();
RenderSystem.enableBlend();
AllGuiTextures.SCHEMATIC_SLOT.draw(matrixStack, this, x + 20 * slot, y);
RenderSystem.disableAlphaTest();
}

View file

@ -40,7 +40,7 @@ public class TooltipHelper {
public static final Map<String, ItemDescription> cachedTooltips = new HashMap<>();
public static Language cachedLanguage;
private static boolean gogglesMode;
private static final Map<Item, Supplier<? extends IItemProvider>> tooltipReferrals = new HashMap<>();
private static final Map<Item, Supplier<String>> tooltipReferrals = new HashMap<>();
public static IFormattableTextComponent holdShift(Palette color, boolean highlighted) {
TextFormatting colorFormat = highlighted ? color.hColor : color.color;
@ -50,7 +50,13 @@ public class TooltipHelper {
}
public static void referTo(IItemProvider item, Supplier<? extends IItemProvider> itemWithTooltip) {
tooltipReferrals.put(item.asItem(), itemWithTooltip);
tooltipReferrals.put(item.asItem(), () -> itemWithTooltip.get()
.asItem()
.getTranslationKey());
}
public static void referTo(IItemProvider item, String string) {
tooltipReferrals.put(item.asItem(), () -> string);
}
@Deprecated
@ -250,11 +256,7 @@ public class TooltipHelper {
}
if (tooltipReferrals.containsKey(item))
return tooltipReferrals.get(item)
.get()
.asItem()
.getTranslationKey() + ".tooltip";
return tooltipReferrals.get(item) + ".tooltip";
return item.getTranslationKey(stack) + ".tooltip";
}

View file

@ -302,10 +302,10 @@
"create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed",
"create.schematicannon.status.schematicExpired": "Schematic File Expired",
"create.gui.filter.blacklist": "Deny-List",
"create.gui.filter.blacklist.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.",
"create.gui.filter.whitelist": "Allow-List",
"create.gui.filter.whitelist.description": "Items pass if they match any of the above. An empty Allow-List rejects everything.",
"create.gui.filter.deny_list": "Deny-List",
"create.gui.filter.deny_list.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.",
"create.gui.filter.allow_list": "Allow-List",
"create.gui.filter.allow_list.description": "Items pass if they match any of the above. An empty Allow-List rejects everything.",
"create.gui.filter.respect_data": "Respect Data",
"create.gui.filter.respect_data.description": "Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "Ignore Data",
@ -348,12 +348,12 @@
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
"create.gui.attribute_filter.add_attribute": "Add attribute to List",
"create.gui.attribute_filter.add_inverted_attribute": "Add opposite attribute to List",
"create.gui.attribute_filter.whitelist_disjunctive": "Allow-List (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "Allow-List (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "Deny-List",
"create.gui.attribute_filter.blacklist.description": "Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_disjunctive": "Allow-List (Any)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.allow_list_conjunctive": "Allow-List (All)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.deny_list": "Deny-List",
"create.gui.attribute_filter.deny_list.description": "Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "Add Reference Item",
"create.tooltip.holdKey": "Hold [%1$s]",

View file

@ -59,10 +59,10 @@
"block.create.copper_valve_handle.tooltip.condition1": "When Used",
"block.create.copper_valve_handle.tooltip.behaviour1": "Provides _Rotational_ _Force_ to an attached contraption. _Sneak_ _to_ _reverse_ the rotation.",
"block.create.white_seat.tooltip": "WHITE SEAT",
"block.create.white_seat.tooltip.summary": "Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.white_seat.tooltip.control1": "Right click on Seat",
"block.create.white_seat.tooltip.action1": "Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.seat.tooltip": "SEAT",
"block.create.seat.tooltip.summary": "Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
"block.create.seat.tooltip.control1": "Right click on Seat",
"block.create.seat.tooltip.action1": "Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
"block.create.chute.tooltip": "CHUTE",
"block.create.chute.tooltip.summary": "Will _Collect_ items and transport them vertically. Can both take and place items into _item_ _containers_.",

View file

@ -556,10 +556,10 @@
"create.gui.requester.requestedItemCount": "Quantité exigée",
"create.gui.storage.passiveModeOnly": "Le stockage des articles est passif uniquement",
"create.gui.filter.blacklist": "Liste noire",
"create.gui.filter.blacklist.description": "Les articles réussissent s'ils ne correspondent à AUCUN des éléments ci-dessus. Une liste noire vide accepte tout.",
"create.gui.filter.whitelist": "Liste blanche",
"create.gui.filter.whitelist.description": "Les éléments réussissent s'ils correspondent à l'un des éléments ci-dessus. Une liste blanche vide rejette tout.",
"create.gui.filter.deny_list": "Liste noire",
"create.gui.filter.deny_list.description": "Les articles réussissent s'ils ne correspondent à AUCUN des éléments ci-dessus. Une liste noire vide accepte tout.",
"create.gui.filter.allow_list": "Liste blanche",
"create.gui.filter.allow_list.description": "Les éléments réussissent s'ils correspondent à l'un des éléments ci-dessus. Une liste blanche vide rejette tout.",
"create.gui.filter.respect_data": "Respect des données",
"create.gui.filter.respect_data.description": "Les objets ne correspondent que si leur durabilité, leurs enchantements et autres attributs correspondent également.",
"create.gui.filter.ignore_data": "Ignorer les données",
@ -579,12 +579,12 @@
"create.gui.attribute_filter.no_selected_attributes": "Aucun attribut sélectionné",
"create.gui.attribute_filter.selected_attributes": "Attributs sélectionnés:",
"create.gui.attribute_filter.whitelist_disjunctive": "Liste blanche (n'importe)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Les objets réussissent s'ils possèdent l'un des attributs sélectionnés.",
"create.gui.attribute_filter.whitelist_conjunctive": "Liste blanche (tout)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Les objets ne passent que s'ils ont TOUS les attributs sélectionnés.",
"create.gui.attribute_filter.blacklist": "Liste noire",
"create.gui.attribute_filter.blacklist.description": "Les éléments réussissent s'ils n'ont AUCUN des attributs sélectionnés.",
"create.gui.attribute_filter.allow_list_disjunctive": "Liste blanche (n'importe)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "Les objets réussissent s'ils possèdent l'un des attributs sélectionnés.",
"create.gui.attribute_filter.allow_list_conjunctive": "Liste blanche (tout)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "Les objets ne passent que s'ils ont TOUS les attributs sélectionnés.",
"create.gui.attribute_filter.deny_list": "Liste noire",
"create.gui.attribute_filter.deny_list.description": "Les éléments réussissent s'ils n'ont AUCUN des attributs sélectionnés.",
"create.gui.attribute_filter.add_reference_item": "Ajouter un objet de référence",
"create.tooltip.holdKey": "Enfoncez [%1$s]",

View file

@ -533,10 +533,10 @@
"create.schematicannon.status.schematicNotPlaced": "Schematica Non Implementata",
"create.schematicannon.status.schematicExpired": "File Schematica Scaduto",
"create.gui.filter.blacklist": "Lista Nera",
"create.gui.filter.blacklist.description": "Gli oggetti passano se NON corrispondono a nessuno dei precedenti. Una Lista Nera vuota accetta tutto.",
"create.gui.filter.whitelist": "Lista Bianca",
"create.gui.filter.whitelist.description": "Gli oggetti passano se corrispondono a uno dei precedenti. Una Lista Bianca vuota rifiuta tutto.",
"create.gui.filter.deny_list": "Lista Nera",
"create.gui.filter.deny_list.description": "Gli oggetti passano se NON corrispondono a nessuno dei precedenti. Una Lista Nera vuota accetta tutto.",
"create.gui.filter.allow_list": "Lista Bianca",
"create.gui.filter.allow_list.description": "Gli oggetti passano se corrispondono a uno dei precedenti. Una Lista Bianca vuota rifiuta tutto.",
"create.gui.filter.respect_data": "Rispetto dei Dati",
"create.gui.filter.respect_data.description": "Gli oggetti corrispondono solo se la loro durata, incantesimi e altri attributi corrispondono.",
"create.gui.filter.ignore_data": "Ignora Dati",
@ -560,12 +560,12 @@
"create.gui.attribute_filter.no_selected_attributes": "Nessun attributo selezionato",
"create.gui.attribute_filter.selected_attributes": "Attributi selezionati:",
"create.gui.attribute_filter.whitelist_disjunctive": "Lista Bianca (Qualsiasi)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Gli oggetti passano se hanno uno degli attributi selezionati.",
"create.gui.attribute_filter.whitelist_conjunctive": "Lista Bianca (Tutti)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Gli oggetti passano solo se hanno TUTTI gli attributi selezionati.",
"create.gui.attribute_filter.blacklist": "Lista Nera",
"create.gui.attribute_filter.blacklist.description": "Gli oggetti passano se NON hanno nessuno degli attributi selezionati.",
"create.gui.attribute_filter.allow_list_disjunctive": "Lista Bianca (Qualsiasi)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "Gli oggetti passano se hanno uno degli attributi selezionati.",
"create.gui.attribute_filter.allow_list_conjunctive": "Lista Bianca (Tutti)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "Gli oggetti passano solo se hanno TUTTI gli attributi selezionati.",
"create.gui.attribute_filter.deny_list": "Lista Nera",
"create.gui.attribute_filter.deny_list.description": "Gli oggetti passano se NON hanno nessuno degli attributi selezionati.",
"create.gui.attribute_filter.add_reference_item": "Agg. Oggetto di Riferim.",
"create.tooltip.holdKey": "Premi [%1$s]",

View file

@ -534,10 +534,10 @@
"create.schematicannon.status.schematicNotPlaced": "配置されていない概略図です",
"create.schematicannon.status.schematicExpired": "概略図ファイルが期限切れです",
"create.gui.filter.blacklist": "ブラックリスト",
"create.gui.filter.blacklist.description": "上記のいずれにも一致しない場合、アイテムは通り抜けます。 空のブラックリストはすべてを受け入れます。",
"create.gui.filter.whitelist": "ホワイトリスト",
"create.gui.filter.whitelist.description": "上記のいずれかに一致した場合、アイテムは通り抜けます。 空のホワイトリストはすべてを拒否します。",
"create.gui.filter.deny_list": "ブラックリスト",
"create.gui.filter.deny_list.description": "上記のいずれにも一致しない場合、アイテムは通り抜けます。 空のブラックリストはすべてを受け入れます。",
"create.gui.filter.allow_list": "ホワイトリスト",
"create.gui.filter.allow_list.description": "上記のいずれかに一致した場合、アイテムは通り抜けます。 空のホワイトリストはすべてを拒否します。",
"create.gui.filter.respect_data": "データを重視",
"create.gui.filter.respect_data.description": "アイテムは、耐久性、エンチャント、その他の属性も一致する場合にのみ一致します。",
"create.gui.filter.ignore_data": "データを無視",
@ -561,12 +561,12 @@
"create.gui.attribute_filter.no_selected_attributes": "属性が選択されていません",
"create.gui.attribute_filter.selected_attributes": "選択された属性:",
"create.gui.attribute_filter.whitelist_disjunctive": "ホワイトリスト(どれか)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "選択した属性のいずれかを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.whitelist_conjunctive": "ホワイトリスト(全て)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "選択した属性をすべてを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.blacklist": "ブラックリスト",
"create.gui.attribute_filter.blacklist.description": "選択された属性を持たない場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.allow_list_disjunctive": "ホワイトリスト(どれか)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "選択した属性のいずれかを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.allow_list_conjunctive": "ホワイトリスト(全て)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "選択した属性をすべてを持っている場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.deny_list": "ブラックリスト",
"create.gui.attribute_filter.deny_list.description": "選択された属性を持たない場合、アイテムは通り抜けます。",
"create.gui.attribute_filter.add_reference_item": "参照アイテムを追加",
"create.tooltip.holdKey": "[%1$s] を長押し",

View file

@ -543,10 +543,10 @@
"create.schematicannon.status.schematicNotPlaced": "청사진이 전개되지 않음",
"create.schematicannon.status.schematicExpired": "청사진 파일이 제거됨",
"create.gui.filter.blacklist": "블랙리스트",
"create.gui.filter.blacklist.description": "위 목록에 맞지않는 아이템이면 통과합니다. 빈 블랙리스트는 모두 통과시킵니다.",
"create.gui.filter.whitelist": "화이트리스트",
"create.gui.filter.whitelist.description": "위 목록에 맞는 아이템이면 통과합니다. 빈 화이트리스트는 모두 통과시키지 않습니다.",
"create.gui.filter.deny_list": "블랙리스트",
"create.gui.filter.deny_list.description": "위 목록에 맞지않는 아이템이면 통과합니다. 빈 블랙리스트는 모두 통과시킵니다.",
"create.gui.filter.allow_list": "화이트리스트",
"create.gui.filter.allow_list.description": "위 목록에 맞는 아이템이면 통과합니다. 빈 화이트리스트는 모두 통과시키지 않습니다.",
"create.gui.filter.respect_data": "상세정보 일치",
"create.gui.filter.respect_data.description": "위 목록 아이템의 내구도, 마법부여, 그리고 다른 NBT와 일치할 때 통과시킵니다.",
"create.gui.filter.ignore_data": "상세정보 무시",
@ -570,12 +570,12 @@
"create.gui.attribute_filter.no_selected_attributes": "속성이 선택되지 않음",
"create.gui.attribute_filter.selected_attributes": "선택된 속성:",
"create.gui.attribute_filter.whitelist_disjunctive": "화이트리스트 (최소)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "아이템이 선택된 속성 중 하나라도 가지고 있다면 통과시킵니다.",
"create.gui.attribute_filter.whitelist_conjunctive": "화이트리스트 (모두)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "아이템이 선택된 속성 모두를 가지고 있어야 통과시킵니다.",
"create.gui.attribute_filter.blacklist": "블랙리스트",
"create.gui.attribute_filter.blacklist.description": "아이템이 선택된 속성이 없다면 통과시킵니다.",
"create.gui.attribute_filter.allow_list_disjunctive": "화이트리스트 (최소)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "아이템이 선택된 속성 중 하나라도 가지고 있다면 통과시킵니다.",
"create.gui.attribute_filter.allow_list_conjunctive": "화이트리스트 (모두)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "아이템이 선택된 속성 모두를 가지고 있어야 통과시킵니다.",
"create.gui.attribute_filter.deny_list": "블랙리스트",
"create.gui.attribute_filter.deny_list.description": "아이템이 선택된 속성이 없다면 통과시킵니다.",
"create.gui.attribute_filter.add_reference_item": "참고할 아이템을 추가하기",
"create.tooltip.holdKey": "[%1$s]를 눌러 설명보기",

File diff suppressed because it is too large Load diff

View file

@ -744,10 +744,10 @@
"create.schematicannon.status.schematicNotPlaced": "蓝图未部署",
"create.schematicannon.status.schematicExpired": "蓝图文件已过期",
"create.gui.filter.blacklist": "黑名单",
"create.gui.filter.blacklist.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过",
"create.gui.filter.whitelist": "白名单",
"create.gui.filter.whitelist.description": "只通过在白名单中的物品,如果白名单为空,所有物品都无法通过",
"create.gui.filter.deny_list": "黑名单",
"create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过",
"create.gui.filter.allow_list": "白名单",
"create.gui.filter.allow_list.description": "只通过在白名单中的物品,如果白名单为空,所有物品都无法通过",
"create.gui.filter.respect_data": "匹配物品属性",
"create.gui.filter.respect_data.description": "只有物品的耐久、附魔等其他属性相同时才可以匹配",
"create.gui.filter.ignore_data": "忽视物品属性",
@ -771,12 +771,12 @@
"create.gui.attribute_filter.no_selected_attributes": "没有标记任何属性",
"create.gui.attribute_filter.selected_attributes": "已选择的属性:",
"create.gui.attribute_filter.whitelist_disjunctive": "任意匹配白名单 (任何)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "只要有其中一项属性符合,就可以通过",
"create.gui.attribute_filter.whitelist_conjunctive": "全匹配白名单 (所有)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "只有所有属性都匹配才可以通过",
"create.gui.attribute_filter.blacklist": "黑名单",
"create.gui.attribute_filter.blacklist.description": "只要没有上述属性,就可以通过",
"create.gui.attribute_filter.allow_list_disjunctive": "任意匹配白名单 (任何)",
"create.gui.attribute_filter.allow_list_disjunctive.description": "只要有其中一项属性符合,就可以通过",
"create.gui.attribute_filter.allow_list_conjunctive": "全匹配白名单 (所有)",
"create.gui.attribute_filter.allow_list_conjunctive.description": "只有所有属性都匹配才可以通过",
"create.gui.attribute_filter.deny_list": "黑名单",
"create.gui.attribute_filter.deny_list.description": "只要没有上述属性,就可以通过",
"create.gui.attribute_filter.add_reference_item": "添加参考物品",
"create.tooltip.holdKey": "按住 [%1$s]",

View file

@ -0,0 +1,19 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"textures": {
"stonecutter_saw": "minecraft:block/stonecutter_saw",
"stonecutter_saw_reversed" : "create:block/saw_reversed"
},
"parent": "create:block/block",
"elements": [
{
"name": "Blade",
"from": [ 1, 8, 11 ],
"to": [ 15, 8.062, 18 ],
"faces": {
"up": { "texture": "#stonecutter_saw", "uv": [ 1, 9, 15, 16 ], "rotation": 180 },
"down": { "texture": "#stonecutter_saw_reversed", "uv": [ 1, 9, 15, 16 ] }
}
}
]
}

View file

@ -0,0 +1,7 @@
{
"parent": "create:block/mechanical_saw/blade_horizontal_active",
"textures": {
"stonecutter_saw": "create:block/static_saw",
"stonecutter_saw_reversed": "create:block/static_saw"
}
}

View file

@ -0,0 +1,7 @@
{
"parent": "create:block/mechanical_saw/blade_horizontal_active",
"textures": {
"stonecutter_saw": "create:block/saw_reversed",
"stonecutter_saw": "minecraft:block/stonecutter_saw"
}
}

View file

@ -0,0 +1,18 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"textures": {
"stonecutter_saw": "minecraft:block/stonecutter_saw",
"stonecutter_saw_reversed" : "create:block/saw_reversed"
},
"elements": [
{
"name": "Saw",
"from": [ 0, 8, 11 ],
"to": [ 16, 8, 19 ],
"faces": {
"up": { "texture": "#stonecutter_saw", "uv": [ 0, 8, 16, 16 ], "rotation": 180 },
"down": { "texture": "#stonecutter_saw_reversed", "uv": [ 0, 8, 16, 16 ] }
}
}
]
}

View file

@ -0,0 +1,7 @@
{
"parent": "create:block/mechanical_saw/blade_vertical_active",
"textures": {
"stonecutter_saw": "create:block/static_saw",
"stonecutter_saw_reversed": "create:block/static_saw"
}
}

View file

@ -0,0 +1,7 @@
{
"parent": "create:block/mechanical_saw/blade_vertical_active",
"textures": {
"stonecutter_saw": "create:block/saw_reversed",
"stonecutter_saw_reversed": "minecraft:block/stonecutter_saw"
}
}

View file

@ -5,7 +5,6 @@
"slit": "create:block/mechanical_saw_top",
"gearbox_top": "create:block/gearbox_top",
"encased_belt": "create:block/encased_belt",
"stonecutter_saw": "minecraft:block/stonecutter_saw",
"gearbox": "create:block/gearbox",
"andesite_casing_short": "create:block/andesite_casing_short"
},
@ -66,15 +65,6 @@
"south": { "texture": "#slit", "uv": [ 1, 7, 15, 9 ] }
}
},
{
"name": "Blade",
"from": [ 1, 8, 11 ],
"to": [ 15, 8.062, 18 ],
"faces": {
"up": { "texture": "#stonecutter_saw", "uv": [ 1, 9, 15, 16 ], "rotation": 180 },
"down": { "texture": "#stonecutter_saw", "uv": [ 1, 9, 15, 16 ] }
}
},
{
"name": "Back",
"from": [ 14, 2, 0 ],

View file

@ -1,6 +0,0 @@
{
"parent": "create:block/mechanical_saw/horizontal",
"textures": {
"stonecutter_saw": "create:block/static_saw"
}
}

View file

@ -0,0 +1,98 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"textures": {
"particle": "create:block/gearbox_top",
"slit": "create:block/mechanical_saw_top",
"stonecutter_saw": "create:block/static_saw",
"gearbox_top": "create:block/gearbox_top",
"encased_belt": "create:block/encased_belt",
"gearbox": "create:block/gearbox",
"andesite_casing_short": "create:block/andesite_casing_short"
},
"parent": "create:block/block",
"elements": [
{
"name": "Bottom",
"from": [ 0, 0, 0 ],
"to": [ 16, 2, 12 ],
"faces": {
"north": { "texture": "#andesite_casing_short", "uv": [ 0, 14, 16, 16 ] },
"east": { "texture": "#andesite_casing_short", "uv": [ 4, 14, 16, 16 ] },
"south": { "texture": "#encased_belt", "uv": [ 0, 14, 16, 16 ] },
"west": { "texture": "#andesite_casing_short", "uv": [ 0, 14, 12, 16 ] },
"up": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] },
"down": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] }
}
},
{
"name": "Top",
"from": [ 0, 14, 0 ],
"to": [ 16, 16, 12 ],
"faces": {
"north": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 6 ] },
"east": { "texture": "#andesite_casing_short", "uv": [ 4, 4, 16, 6 ] },
"south": { "texture": "#encased_belt", "uv": [ 0, 0, 16, 2 ] },
"west": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 12, 6 ] },
"up": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] },
"down": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] }
}
},
{
"name": "Back",
"from": [ 0, 2, 0 ],
"to": [ 2, 14, 2 ],
"faces": {
"north": { "texture": "#gearbox_top", "uv": [ 14, 2, 16, 14 ] },
"east": { "texture": "#gearbox_top", "uv": [ 14, 2, 16, 14 ] },
"south": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] },
"west": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] }
}
},
{
"name": "Inner",
"from": [ 0, 2, 2 ],
"to": [ 16, 14, 11 ],
"faces": {
"east": { "texture": "#andesite_casing_short", "uv": [ 2, 6, 14, 15 ], "rotation": 90 },
"south": { "texture": "#gearbox_top", "uv": [ 0, 2, 16, 14 ] },
"west": { "texture": "#andesite_casing_short", "uv": [ 2, 6, 14, 15 ], "rotation": 270 }
}
},
{
"name": "SawSlit",
"from": [ 1, 7, 11.062 ],
"to": [ 15, 9, 11.062 ],
"faces": {
"south": { "texture": "#slit", "uv": [ 1, 7, 15, 9 ] }
}
},
{
"name": "Blade",
"from": [ 1, 8, 11 ],
"to": [ 15, 8.062, 18 ],
"faces": {
"up": { "texture": "#stonecutter_saw", "uv": [ 1, 9, 15, 16 ], "rotation": 180 },
"down": { "texture": "#stonecutter_saw", "uv": [ 1, 9, 15, 16 ] }
}
},
{
"name": "Back",
"from": [ 14, 2, 0 ],
"to": [ 16, 14, 2 ],
"faces": {
"north": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] },
"east": { "texture": "#gearbox_top", "uv": [ 14, 2, 16, 14 ] },
"south": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] },
"west": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] }
}
},
{
"name": "Back",
"from": [ 2, 2, 1 ],
"to": [ 14, 14, 2 ],
"faces": {
"north": { "texture": "#gearbox", "uv": [ 2, 2, 14, 14 ] }
}
}
]
}

View file

@ -3,7 +3,6 @@
"textures": {
"gearbox_top": "create:block/gearbox_top",
"gearbox": "create:block/gearbox",
"stonecutter_saw": "minecraft:block/stonecutter_saw",
"andesite_casing_short": "create:block/andesite_casing_short",
"mechanical_saw_top": "create:block/mechanical_saw_top",
"particle": "create:block/mechanical_saw_top"
@ -57,15 +56,6 @@
"up": { "texture": "#gearbox_top", "uv": [ 0, 14, 16, 16 ], "rotation": 270 }
}
},
{
"name": "Saw",
"from": [ 0, 11, 8 ],
"to": [ 16, 19, 8 ],
"faces": {
"north": { "texture": "#stonecutter_saw", "uv": [ 0, 8, 16, 16 ] },
"south": { "texture": "#stonecutter_saw", "uv": [ 0, 8, 16, 16 ] }
}
},
{
"name": "Top",
"from": [ 0, 12, 2 ],

View file

@ -1,6 +0,0 @@
{
"parent": "create:block/mechanical_saw/vertical",
"textures": {
"stonecutter_saw": "create:block/static_saw"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB