Merge branch 'mc1.18/dev' into mc1.19/dev

This commit is contained in:
simibubi 2022-09-23 20:54:40 +02:00
commit 2d31364eef
148 changed files with 4445 additions and 1553 deletions

View file

@ -49,6 +49,7 @@ body:
label: Mod Version label: Mod Version
description: The version of the mod you were using when the bug occured description: The version of the mod you were using when the bug occured
options: options:
- "0.5.0e"
- "0.5.0d" - "0.5.0d"
- "0.5.0c" - "0.5.0c"
- "0.5.0b" - "0.5.0b"

View file

@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G
org.gradle.daemon = false org.gradle.daemon = false
# mod version info # mod version info
mod_version = 0.5.0.d mod_version = 0.5.0.e
artifact_minecraft_version = 1.19.2 artifact_minecraft_version = 1.19.2
minecraft_version = 1.19.2 minecraft_version = 1.19.2
@ -21,7 +21,7 @@ parchment_version = 2022.08.10
# dependency versions # dependency versions
registrate_version = MC1.19-1.1.5 registrate_version = MC1.19-1.1.5
flywheel_minecraft_version = 1.19.2 flywheel_minecraft_version = 1.19.2
flywheel_version = 0.6.5-4 flywheel_version = 0.6.6-5
jei_minecraft_version = 1.19.2 jei_minecraft_version = 1.19.2
jei_version = 11.2.0.254 jei_version = 11.2.0.254
curios_minecraft_version = 1.19.2 curios_minecraft_version = 1.19.2

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/black_valve_handle", "model": "create:block/black_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/black_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/black_valve_handle", "model": "create:block/black_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/black_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/black_valve_handle", "model": "create:block/black_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/black_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/black_valve_handle", "model": "create:block/black_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/black_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/black_valve_handle" "model": "create:block/black_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/black_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/black_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/black_valve_handle", "model": "create:block/black_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/blue_valve_handle", "model": "create:block/blue_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/blue_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/blue_valve_handle", "model": "create:block/blue_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/blue_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/blue_valve_handle", "model": "create:block/blue_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/blue_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/blue_valve_handle", "model": "create:block/blue_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/blue_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/blue_valve_handle" "model": "create:block/blue_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/blue_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/blue_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/blue_valve_handle", "model": "create:block/blue_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/brown_valve_handle", "model": "create:block/brown_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/brown_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/brown_valve_handle", "model": "create:block/brown_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/brown_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/brown_valve_handle", "model": "create:block/brown_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/brown_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/brown_valve_handle", "model": "create:block/brown_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/brown_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/brown_valve_handle" "model": "create:block/brown_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/brown_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/brown_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/brown_valve_handle", "model": "create:block/brown_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/copper_valve_handle", "model": "create:block/copper_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/copper_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/copper_valve_handle", "model": "create:block/copper_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/copper_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/copper_valve_handle", "model": "create:block/copper_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/copper_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/copper_valve_handle", "model": "create:block/copper_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/copper_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/copper_valve_handle" "model": "create:block/copper_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/copper_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/copper_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/copper_valve_handle", "model": "create:block/copper_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/cyan_valve_handle", "model": "create:block/cyan_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/cyan_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/cyan_valve_handle", "model": "create:block/cyan_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/cyan_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/cyan_valve_handle", "model": "create:block/cyan_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/cyan_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/cyan_valve_handle", "model": "create:block/cyan_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/cyan_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/cyan_valve_handle" "model": "create:block/cyan_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/cyan_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/cyan_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/cyan_valve_handle", "model": "create:block/cyan_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,98 +1,194 @@
{ {
"variants": { "variants": {
"axis_along_first=false,enabled=false,facing=down": { "axis_along_first=false,enabled=false,facing=down,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"x": 270, "x": 270,
"y": 90 "y": 90
}, },
"axis_along_first=false,enabled=false,facing=east": { "axis_along_first=false,enabled=false,facing=down,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"x": 270,
"y": 90
},
"axis_along_first=false,enabled=false,facing=east,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"y": 270 "y": 270
}, },
"axis_along_first=false,enabled=false,facing=north": { "axis_along_first=false,enabled=false,facing=east,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"y": 270
},
"axis_along_first=false,enabled=false,facing=north,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_closed", "model": "create:block/fluid_valve/block_vertical_closed",
"y": 180 "y": 180
}, },
"axis_along_first=false,enabled=false,facing=south": { "axis_along_first=false,enabled=false,facing=north,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_closed",
"y": 180
},
"axis_along_first=false,enabled=false,facing=south,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_closed" "model": "create:block/fluid_valve/block_vertical_closed"
}, },
"axis_along_first=false,enabled=false,facing=up": { "axis_along_first=false,enabled=false,facing=south,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_closed"
},
"axis_along_first=false,enabled=false,facing=up,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"axis_along_first=false,enabled=false,facing=west": { "axis_along_first=false,enabled=false,facing=up,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"x": 90,
"y": 90
},
"axis_along_first=false,enabled=false,facing=west,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"y": 90 "y": 90
}, },
"axis_along_first=false,enabled=true,facing=down": { "axis_along_first=false,enabled=false,facing=west,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"y": 90
},
"axis_along_first=false,enabled=true,facing=down,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"x": 270, "x": 270,
"y": 90 "y": 90
}, },
"axis_along_first=false,enabled=true,facing=east": { "axis_along_first=false,enabled=true,facing=down,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"x": 270,
"y": 90
},
"axis_along_first=false,enabled=true,facing=east,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"y": 270 "y": 270
}, },
"axis_along_first=false,enabled=true,facing=north": { "axis_along_first=false,enabled=true,facing=east,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"y": 270
},
"axis_along_first=false,enabled=true,facing=north,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_open", "model": "create:block/fluid_valve/block_vertical_open",
"y": 180 "y": 180
}, },
"axis_along_first=false,enabled=true,facing=south": { "axis_along_first=false,enabled=true,facing=north,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_open",
"y": 180
},
"axis_along_first=false,enabled=true,facing=south,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_open" "model": "create:block/fluid_valve/block_vertical_open"
}, },
"axis_along_first=false,enabled=true,facing=up": { "axis_along_first=false,enabled=true,facing=south,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_open"
},
"axis_along_first=false,enabled=true,facing=up,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"axis_along_first=false,enabled=true,facing=west": { "axis_along_first=false,enabled=true,facing=up,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"x": 90,
"y": 90
},
"axis_along_first=false,enabled=true,facing=west,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"y": 90 "y": 90
}, },
"axis_along_first=true,enabled=false,facing=down": { "axis_along_first=false,enabled=true,facing=west,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"y": 90
},
"axis_along_first=true,enabled=false,facing=down,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"x": 270 "x": 270
}, },
"axis_along_first=true,enabled=false,facing=east": { "axis_along_first=true,enabled=false,facing=down,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"x": 270
},
"axis_along_first=true,enabled=false,facing=east,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_closed", "model": "create:block/fluid_valve/block_vertical_closed",
"y": 270 "y": 270
}, },
"axis_along_first=true,enabled=false,facing=north": { "axis_along_first=true,enabled=false,facing=east,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_closed",
"y": 270
},
"axis_along_first=true,enabled=false,facing=north,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"y": 180 "y": 180
}, },
"axis_along_first=true,enabled=false,facing=south": { "axis_along_first=true,enabled=false,facing=north,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"y": 180
},
"axis_along_first=true,enabled=false,facing=south,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed" "model": "create:block/fluid_valve/block_horizontal_closed"
}, },
"axis_along_first=true,enabled=false,facing=up": { "axis_along_first=true,enabled=false,facing=south,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed"
},
"axis_along_first=true,enabled=false,facing=up,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_closed", "model": "create:block/fluid_valve/block_horizontal_closed",
"x": 90 "x": 90
}, },
"axis_along_first=true,enabled=false,facing=west": { "axis_along_first=true,enabled=false,facing=up,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_closed",
"x": 90
},
"axis_along_first=true,enabled=false,facing=west,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_closed", "model": "create:block/fluid_valve/block_vertical_closed",
"y": 90 "y": 90
}, },
"axis_along_first=true,enabled=true,facing=down": { "axis_along_first=true,enabled=false,facing=west,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_closed",
"y": 90
},
"axis_along_first=true,enabled=true,facing=down,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"x": 270 "x": 270
}, },
"axis_along_first=true,enabled=true,facing=east": { "axis_along_first=true,enabled=true,facing=down,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"x": 270
},
"axis_along_first=true,enabled=true,facing=east,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_open", "model": "create:block/fluid_valve/block_vertical_open",
"y": 270 "y": 270
}, },
"axis_along_first=true,enabled=true,facing=north": { "axis_along_first=true,enabled=true,facing=east,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_open",
"y": 270
},
"axis_along_first=true,enabled=true,facing=north,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"y": 180 "y": 180
}, },
"axis_along_first=true,enabled=true,facing=south": { "axis_along_first=true,enabled=true,facing=north,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"y": 180
},
"axis_along_first=true,enabled=true,facing=south,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open" "model": "create:block/fluid_valve/block_horizontal_open"
}, },
"axis_along_first=true,enabled=true,facing=up": { "axis_along_first=true,enabled=true,facing=south,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open"
},
"axis_along_first=true,enabled=true,facing=up,waterlogged=false": {
"model": "create:block/fluid_valve/block_horizontal_open", "model": "create:block/fluid_valve/block_horizontal_open",
"x": 90 "x": 90
}, },
"axis_along_first=true,enabled=true,facing=west": { "axis_along_first=true,enabled=true,facing=up,waterlogged=true": {
"model": "create:block/fluid_valve/block_horizontal_open",
"x": 90
},
"axis_along_first=true,enabled=true,facing=west,waterlogged=false": {
"model": "create:block/fluid_valve/block_vertical_open",
"y": 90
},
"axis_along_first=true,enabled=true,facing=west,waterlogged=true": {
"model": "create:block/fluid_valve/block_vertical_open", "model": "create:block/fluid_valve/block_vertical_open",
"y": 90 "y": 90
} }

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/gray_valve_handle", "model": "create:block/gray_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/gray_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/gray_valve_handle", "model": "create:block/gray_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/gray_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/gray_valve_handle", "model": "create:block/gray_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/gray_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/gray_valve_handle", "model": "create:block/gray_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/gray_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/gray_valve_handle" "model": "create:block/gray_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/gray_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/gray_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/gray_valve_handle", "model": "create:block/gray_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/green_valve_handle", "model": "create:block/green_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/green_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/green_valve_handle", "model": "create:block/green_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/green_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/green_valve_handle", "model": "create:block/green_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/green_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/green_valve_handle", "model": "create:block/green_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/green_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/green_valve_handle" "model": "create:block/green_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/green_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/green_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/green_valve_handle", "model": "create:block/green_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/hand_crank/block", "model": "create:block/hand_crank/block",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/hand_crank/block",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/hand_crank/block", "model": "create:block/hand_crank/block",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/hand_crank/block",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/hand_crank/block", "model": "create:block/hand_crank/block",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/hand_crank/block",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/hand_crank/block", "model": "create:block/hand_crank/block",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/hand_crank/block",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/hand_crank/block" "model": "create:block/hand_crank/block"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/hand_crank/block"
},
"facing=west,waterlogged=false": {
"model": "create:block/hand_crank/block",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/hand_crank/block", "model": "create:block/hand_crank/block",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/light_blue_valve_handle", "model": "create:block/light_blue_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/light_blue_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/light_blue_valve_handle", "model": "create:block/light_blue_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/light_blue_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/light_blue_valve_handle", "model": "create:block/light_blue_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/light_blue_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/light_blue_valve_handle", "model": "create:block/light_blue_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/light_blue_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/light_blue_valve_handle" "model": "create:block/light_blue_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/light_blue_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/light_blue_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/light_blue_valve_handle", "model": "create:block/light_blue_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/light_gray_valve_handle", "model": "create:block/light_gray_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/light_gray_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/light_gray_valve_handle", "model": "create:block/light_gray_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/light_gray_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/light_gray_valve_handle", "model": "create:block/light_gray_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/light_gray_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/light_gray_valve_handle", "model": "create:block/light_gray_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/light_gray_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/light_gray_valve_handle" "model": "create:block/light_gray_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/light_gray_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/light_gray_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/light_gray_valve_handle", "model": "create:block/light_gray_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/lime_valve_handle", "model": "create:block/lime_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/lime_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/lime_valve_handle", "model": "create:block/lime_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/lime_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/lime_valve_handle", "model": "create:block/lime_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/lime_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/lime_valve_handle", "model": "create:block/lime_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/lime_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/lime_valve_handle" "model": "create:block/lime_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/lime_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/lime_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/lime_valve_handle", "model": "create:block/lime_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/magenta_valve_handle", "model": "create:block/magenta_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/magenta_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/magenta_valve_handle", "model": "create:block/magenta_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/magenta_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/magenta_valve_handle", "model": "create:block/magenta_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/magenta_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/magenta_valve_handle", "model": "create:block/magenta_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/magenta_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/magenta_valve_handle" "model": "create:block/magenta_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/magenta_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/magenta_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/magenta_valve_handle", "model": "create:block/magenta_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/orange_valve_handle", "model": "create:block/orange_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/orange_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/orange_valve_handle", "model": "create:block/orange_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/orange_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/orange_valve_handle", "model": "create:block/orange_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/orange_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/orange_valve_handle", "model": "create:block/orange_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/orange_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/orange_valve_handle" "model": "create:block/orange_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/orange_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/orange_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/orange_valve_handle", "model": "create:block/orange_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/pink_valve_handle", "model": "create:block/pink_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/pink_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/pink_valve_handle", "model": "create:block/pink_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/pink_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/pink_valve_handle", "model": "create:block/pink_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/pink_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/pink_valve_handle", "model": "create:block/pink_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/pink_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/pink_valve_handle" "model": "create:block/pink_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/pink_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/pink_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/pink_valve_handle", "model": "create:block/pink_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/purple_valve_handle", "model": "create:block/purple_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/purple_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/purple_valve_handle", "model": "create:block/purple_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/purple_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/purple_valve_handle", "model": "create:block/purple_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/purple_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/purple_valve_handle", "model": "create:block/purple_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/purple_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/purple_valve_handle" "model": "create:block/purple_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/purple_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/purple_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/purple_valve_handle", "model": "create:block/purple_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/red_valve_handle", "model": "create:block/red_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/red_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/red_valve_handle", "model": "create:block/red_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/red_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/red_valve_handle", "model": "create:block/red_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/red_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/red_valve_handle", "model": "create:block/red_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/red_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/red_valve_handle" "model": "create:block/red_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/red_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/red_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/red_valve_handle", "model": "create:block/red_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,54 +1,107 @@
{ {
"variants": { "variants": {
"face=ceiling,facing=east": { "face=ceiling,facing=east,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 180, "x": 180,
"y": 90 "y": 90
}, },
"face=ceiling,facing=north": { "face=ceiling,facing=east,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 180,
"y": 90
},
"face=ceiling,facing=north,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 180 "x": 180
}, },
"face=ceiling,facing=south": { "face=ceiling,facing=north,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 180
},
"face=ceiling,facing=south,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 180, "x": 180,
"y": 180 "y": 180
}, },
"face=ceiling,facing=west": { "face=ceiling,facing=south,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 180,
"y": 180
},
"face=ceiling,facing=west,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 180, "x": 180,
"y": 270 "y": 270
}, },
"face=floor,facing=east": { "face=ceiling,facing=west,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 180,
"y": 270
},
"face=floor,facing=east,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"y": 270 "y": 270
}, },
"face=floor,facing=north": { "face=floor,facing=east,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"y": 270
},
"face=floor,facing=north,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"y": 180 "y": 180
}, },
"face=floor,facing=south": { "face=floor,facing=north,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"y": 180
},
"face=floor,facing=south,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block" "model": "create:block/smart_fluid_pipe/block"
}, },
"face=floor,facing=west": { "face=floor,facing=south,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block"
},
"face=floor,facing=west,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"y": 90 "y": 90
}, },
"face=wall,facing=east": { "face=floor,facing=west,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"y": 90
},
"face=wall,facing=east,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 270, "x": 270,
"y": 270 "y": 270
}, },
"face=wall,facing=north": { "face=wall,facing=east,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 270,
"y": 270
},
"face=wall,facing=north,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 270, "x": 270,
"y": 180 "y": 180
}, },
"face=wall,facing=south": { "face=wall,facing=north,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 270,
"y": 180
},
"face=wall,facing=south,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 270 "x": 270
}, },
"face=wall,facing=west": { "face=wall,facing=south,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block",
"x": 270
},
"face=wall,facing=west,waterlogged=false": {
"model": "create:block/smart_fluid_pipe/block",
"x": 270,
"y": 90
},
"face=wall,facing=west,waterlogged=true": {
"model": "create:block/smart_fluid_pipe/block", "model": "create:block/smart_fluid_pipe/block",
"x": 270, "x": 270,
"y": 90 "y": 90

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/white_valve_handle", "model": "create:block/white_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/white_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/white_valve_handle", "model": "create:block/white_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/white_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/white_valve_handle", "model": "create:block/white_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/white_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/white_valve_handle", "model": "create:block/white_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/white_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/white_valve_handle" "model": "create:block/white_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/white_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/white_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/white_valve_handle", "model": "create:block/white_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1,27 +1,53 @@
{ {
"variants": { "variants": {
"facing=down": { "facing=down,waterlogged=false": {
"model": "create:block/yellow_valve_handle", "model": "create:block/yellow_valve_handle",
"x": 180 "x": 180
}, },
"facing=east": { "facing=down,waterlogged=true": {
"model": "create:block/yellow_valve_handle",
"x": 180
},
"facing=east,waterlogged=false": {
"model": "create:block/yellow_valve_handle", "model": "create:block/yellow_valve_handle",
"x": 90, "x": 90,
"y": 90 "y": 90
}, },
"facing=north": { "facing=east,waterlogged=true": {
"model": "create:block/yellow_valve_handle",
"x": 90,
"y": 90
},
"facing=north,waterlogged=false": {
"model": "create:block/yellow_valve_handle", "model": "create:block/yellow_valve_handle",
"x": 90 "x": 90
}, },
"facing=south": { "facing=north,waterlogged=true": {
"model": "create:block/yellow_valve_handle",
"x": 90
},
"facing=south,waterlogged=false": {
"model": "create:block/yellow_valve_handle", "model": "create:block/yellow_valve_handle",
"x": 90, "x": 90,
"y": 180 "y": 180
}, },
"facing=up": { "facing=south,waterlogged=true": {
"model": "create:block/yellow_valve_handle",
"x": 90,
"y": 180
},
"facing=up,waterlogged=false": {
"model": "create:block/yellow_valve_handle" "model": "create:block/yellow_valve_handle"
}, },
"facing=west": { "facing=up,waterlogged=true": {
"model": "create:block/yellow_valve_handle"
},
"facing=west,waterlogged=false": {
"model": "create:block/yellow_valve_handle",
"x": 90,
"y": 270
},
"facing=west,waterlogged=true": {
"model": "create:block/yellow_valve_handle", "model": "create:block/yellow_valve_handle",
"x": 90, "x": 90,
"y": 270 "y": 270

View file

@ -1486,6 +1486,7 @@
"create.schedule.condition.threshold.equal": "exactly", "create.schedule.condition.threshold.equal": "exactly",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "Matching Content", "create.schedule.condition.threshold.matching_content": "Matching Content",
"create.schedule.condition.threshold.anything": "Anything",
"create.schedule.condition.threshold.item_measure": "Item Measure", "create.schedule.condition.threshold.item_measure": "Item Measure",
"create.schedule.condition.threshold.items": "Items", "create.schedule.condition.threshold.items": "Items",
"create.schedule.condition.threshold.stacks": "Stacks", "create.schedule.condition.threshold.stacks": "Stacks",
@ -1493,6 +1494,7 @@
"create.schedule.condition.threshold.status": "Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "Reference Item", "create.schedule.condition.threshold.place_item": "Reference Item",
"create.schedule.condition.threshold.place_item_2": "Filters can be used", "create.schedule.condition.threshold.place_item_2": "Filters can be used",
"create.schedule.condition.threshold.place_item_3": "Leave empty to match any",
"create.schedule.condition.fluid_threshold": "Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "Item Cargo Condition", "create.schedule.condition.item_threshold": "Item Cargo Condition",
"create.schedule.condition.redstone_link": "Redstone Link", "create.schedule.condition.redstone_link": "Redstone Link",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "genau", "create.schedule.condition.threshold.equal": "genau",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s %3$s",
"create.schedule.condition.threshold.matching_content": "passender Inhalt", "create.schedule.condition.threshold.matching_content": "passender Inhalt",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "Maßeinheit", "create.schedule.condition.threshold.item_measure": "Maßeinheit",
"create.schedule.condition.threshold.items": "Items", "create.schedule.condition.threshold.items": "Items",
"create.schedule.condition.threshold.stacks": "Stacks", "create.schedule.condition.threshold.stacks": "Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "Zugladestand: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "Zugladestand: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "Referenz-Item", "create.schedule.condition.threshold.place_item": "Referenz-Item",
"create.schedule.condition.threshold.place_item_2": "Filter können verwendet werden", "create.schedule.condition.threshold.place_item_2": "Filter können verwendet werden",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "Flüssigkeitsladestand", "create.schedule.condition.fluid_threshold": "Flüssigkeitsladestand",
"create.schedule.condition.item_threshold": "Item-Ladestand", "create.schedule.condition.item_threshold": "Item-Ladestand",
"create.schedule.condition.redstone_link": "Redstone-Link", "create.schedule.condition.redstone_link": "Redstone-Link",
@ -1613,7 +1615,7 @@
"create.train.status.end_of_track": "Ein Waggon hat das Ende seines Gleises erreicht", "create.train.status.end_of_track": "Ein Waggon hat das Ende seines Gleises erreicht",
"create.train.status.double_portal": "Ein Waggon kann kein Portal während des Verlassens eines anderen betreten", "create.train.status.double_portal": "Ein Waggon kann kein Portal während des Verlassens eines anderen betreten",
"create.train.status.coupling_stress": "Zwangsbremsung aufgrund von Spannung an einer Kopplung", "create.train.status.coupling_stress": "Zwangsbremsung aufgrund von Spannung an einer Kopplung",
"create.train.status.track_missing": "Gleisen fehlen unter dem Zug", "create.train.status.track_missing": "Gleise fehlen unter dem Zug",
"create.train.status.paused_for_manual": "Fahrplan für manuelle Fahrt pausiert", "create.train.status.paused_for_manual": "Fahrplan für manuelle Fahrt pausiert",
"create.train.status.opposite_driver": "Pfad erfordert einen in die andere Richtung zeigenden Fahrer", "create.train.status.opposite_driver": "Pfad erfordert einen in die andere Richtung zeigenden Fahrer",
"create.train.status.missing_driver": "Fahrer ist verschwunden", "create.train.status.missing_driver": "Fahrer ist verschwunden",
@ -1686,7 +1688,7 @@
"create.display_source.station_summary.platform_column": "Spalte 'Gleis' Größe", "create.display_source.station_summary.platform_column": "Spalte 'Gleis' Größe",
"create.display_source.station_summary.now": "jetzt", "create.display_source.station_summary.now": "jetzt",
"create.display_source.station_summary.minutes": "min", "create.display_source.station_summary.minutes": "min",
"create.display_source.station_summary.seconds": "%1$sen", "create.display_source.station_summary.seconds": "%1$ss",
"create.display_source.observed_train_name": "Zugnamen ermitteln", "create.display_source.observed_train_name": "Zugnamen ermitteln",
"create.display_source.max_enchant_level": "Max. Verzauberungskosten", "create.display_source.max_enchant_level": "Max. Verzauberungskosten",
"create.display_source.boiler_status": "Kesselstatus", "create.display_source.boiler_status": "Kesselstatus",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "exactamente", "create.schedule.condition.threshold.equal": "exactamente",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s de %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s de %3$s",
"create.schedule.condition.threshold.matching_content": "Contenido coincidente", "create.schedule.condition.threshold.matching_content": "Contenido coincidente",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "Medición de objetos", "create.schedule.condition.threshold.item_measure": "Medición de objetos",
"create.schedule.condition.threshold.items": "Objetos", "create.schedule.condition.threshold.items": "Objetos",
"create.schedule.condition.threshold.stacks": "Pilas de objetos", "create.schedule.condition.threshold.stacks": "Pilas de objetos",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "Cargamento: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "Cargamento: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "Objeto de referencia", "create.schedule.condition.threshold.place_item": "Objeto de referencia",
"create.schedule.condition.threshold.place_item_2": "Los filtros se pueden usar", "create.schedule.condition.threshold.place_item_2": "Los filtros se pueden usar",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "Condición de cargamento de fluidos", "create.schedule.condition.fluid_threshold": "Condición de cargamento de fluidos",
"create.schedule.condition.item_threshold": "Condición de cargamento de objetos", "create.schedule.condition.item_threshold": "Condición de cargamento de objetos",
"create.schedule.condition.redstone_link": "Enlace de redstone", "create.schedule.condition.redstone_link": "Enlace de redstone",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -1,5 +1,5 @@
{ {
"_": "Missing Localizations: 8", "_": "Missing Localizations: 4",
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
@ -22,13 +22,13 @@
"block.create.belt": "Nastro", "block.create.belt": "Nastro",
"block.create.birch_window": "Finestra di betulla", "block.create.birch_window": "Finestra di betulla",
"block.create.birch_window_pane": "Pannello di finestra di betulla", "block.create.birch_window_pane": "Pannello di finestra di betulla",
"block.create.black_nixie_tube": "Tubo di Nixie nero", "block.create.black_nixie_tube": "Tubo Nixie nero",
"block.create.black_sail": "Vela nera", "block.create.black_sail": "Vela nera",
"block.create.black_seat": "Sedile nero", "block.create.black_seat": "Sedile nero",
"block.create.black_toolbox": "Cassetta degli attrezzi nera", "block.create.black_toolbox": "Cassetta degli attrezzi nera",
"block.create.black_valve_handle": "Maniglia per valvola nera", "block.create.black_valve_handle": "Maniglia per valvola nera",
"block.create.blaze_burner": "Inceneritore a blaze", "block.create.blaze_burner": "Inceneritore a blaze",
"block.create.blue_nixie_tube": "Tubo di Nixie blu", "block.create.blue_nixie_tube": "Tubo Nixie blu",
"block.create.blue_sail": "Vela blu", "block.create.blue_sail": "Vela blu",
"block.create.blue_seat": "Sedile blu", "block.create.blue_seat": "Sedile blu",
"block.create.blue_toolbox": "Cassetta degli attrezzi blu", "block.create.blue_toolbox": "Cassetta degli attrezzi blu",
@ -42,7 +42,7 @@
"block.create.brass_funnel": "Imbuto di ottone", "block.create.brass_funnel": "Imbuto di ottone",
"block.create.brass_ladder": "Scala a pioli in ottone", "block.create.brass_ladder": "Scala a pioli in ottone",
"block.create.brass_tunnel": "Tunnel di ottone", "block.create.brass_tunnel": "Tunnel di ottone",
"block.create.brown_nixie_tube": "Tubo di Nixie marrone", "block.create.brown_nixie_tube": "Tubo Nixie marrone",
"block.create.brown_sail": "Vela marrone", "block.create.brown_sail": "Vela marrone",
"block.create.brown_seat": "Sedile marrone", "block.create.brown_seat": "Sedile marrone",
"block.create.brown_toolbox": "Cassetta degli attrezzi marrone", "block.create.brown_toolbox": "Cassetta degli attrezzi marrone",
@ -189,7 +189,7 @@
"block.create.cut_veridium_slab": "Lastra di veridio tagliato", "block.create.cut_veridium_slab": "Lastra di veridio tagliato",
"block.create.cut_veridium_stairs": "Scalini di veridio tagliato", "block.create.cut_veridium_stairs": "Scalini di veridio tagliato",
"block.create.cut_veridium_wall": "Muretto di veridio tagliato", "block.create.cut_veridium_wall": "Muretto di veridio tagliato",
"block.create.cyan_nixie_tube": "Tubo di Nixie ciano", "block.create.cyan_nixie_tube": "Tubo Nixie ciano",
"block.create.cyan_sail": "Vela ciano", "block.create.cyan_sail": "Vela ciano",
"block.create.cyan_seat": "Sedile ciano", "block.create.cyan_seat": "Sedile ciano",
"block.create.cyan_toolbox": "Cassetta degli attrezzi ciano", "block.create.cyan_toolbox": "Cassetta degli attrezzi ciano",
@ -228,12 +228,12 @@
"block.create.gearshift": "Cambio", "block.create.gearshift": "Cambio",
"block.create.glass_fluid_pipe": "Tubo per fluidi con vetrata", "block.create.glass_fluid_pipe": "Tubo per fluidi con vetrata",
"block.create.granite_pillar": "Pilastro di granito", "block.create.granite_pillar": "Pilastro di granito",
"block.create.gray_nixie_tube": "Tubo di Nixie grigio", "block.create.gray_nixie_tube": "Tubo Nixie grigio",
"block.create.gray_sail": "Vela grigia", "block.create.gray_sail": "Vela grigia",
"block.create.gray_seat": "Sedile grigio", "block.create.gray_seat": "Sedile grigio",
"block.create.gray_toolbox": "Cassetta degli attrezzi grigia", "block.create.gray_toolbox": "Cassetta degli attrezzi grigia",
"block.create.gray_valve_handle": "Maniglia per valvola grigia", "block.create.gray_valve_handle": "Maniglia per valvola grigia",
"block.create.green_nixie_tube": "Tubo di Nixie verde", "block.create.green_nixie_tube": "Tubo Nixie verde",
"block.create.green_sail": "Vela verde", "block.create.green_sail": "Vela verde",
"block.create.green_seat": "Sedile verde", "block.create.green_seat": "Sedile verde",
"block.create.green_toolbox": "Cassetta degli attrezzi verde", "block.create.green_toolbox": "Cassetta degli attrezzi verde",
@ -265,17 +265,17 @@
"block.create.layered_tuff": "Tufo stratificato", "block.create.layered_tuff": "Tufo stratificato",
"block.create.layered_veridium": "Veridio stratificato", "block.create.layered_veridium": "Veridio stratificato",
"block.create.lectern_controller": "Leggio con pulsantiera", "block.create.lectern_controller": "Leggio con pulsantiera",
"block.create.light_blue_nixie_tube": "Tubo di Nixie azzurro", "block.create.light_blue_nixie_tube": "Tubo Nixie azzurro",
"block.create.light_blue_sail": "Vela azzurra", "block.create.light_blue_sail": "Vela azzurra",
"block.create.light_blue_seat": "Sedile azzurro", "block.create.light_blue_seat": "Sedile azzurro",
"block.create.light_blue_toolbox": "Cassetta degli attrezzi azzurra", "block.create.light_blue_toolbox": "Cassetta degli attrezzi azzurra",
"block.create.light_blue_valve_handle": "Maniglia per valvola azzurra", "block.create.light_blue_valve_handle": "Maniglia per valvola azzurra",
"block.create.light_gray_nixie_tube": "Tubo di Nixie grigio chiaro", "block.create.light_gray_nixie_tube": "Tubo Nixie grigio chiaro",
"block.create.light_gray_sail": "Vela grigio chiaro", "block.create.light_gray_sail": "Vela grigio chiaro",
"block.create.light_gray_seat": "Sedile grigio chiaro", "block.create.light_gray_seat": "Sedile grigio chiaro",
"block.create.light_gray_toolbox": "Cassetta degli attrezzi grigia chiaro", "block.create.light_gray_toolbox": "Cassetta degli attrezzi grigia chiaro",
"block.create.light_gray_valve_handle": "Maniglia per valvola grigio chiaro", "block.create.light_gray_valve_handle": "Maniglia per valvola grigio chiaro",
"block.create.lime_nixie_tube": "Tubo di Nixie lime", "block.create.lime_nixie_tube": "Tubo Nixie lime",
"block.create.lime_sail": "Vela lime", "block.create.lime_sail": "Vela lime",
"block.create.lime_seat": "Sedile lime", "block.create.lime_seat": "Sedile lime",
"block.create.lime_toolbox": "Cassetta degli attrezzi lime", "block.create.lime_toolbox": "Cassetta degli attrezzi lime",
@ -284,7 +284,7 @@
"block.create.limestone_pillar": "Pilastro di calcare", "block.create.limestone_pillar": "Pilastro di calcare",
"block.create.linear_chassis": "Telaio lineare", "block.create.linear_chassis": "Telaio lineare",
"block.create.lit_blaze_burner": "Inceneritore a blaze acceso", "block.create.lit_blaze_burner": "Inceneritore a blaze acceso",
"block.create.magenta_nixie_tube": "Tubo di Nixie magenta", "block.create.magenta_nixie_tube": "Tubo Nixie magenta",
"block.create.magenta_sail": "Vela magenta", "block.create.magenta_sail": "Vela magenta",
"block.create.magenta_seat": "Sedile magenta", "block.create.magenta_seat": "Sedile magenta",
"block.create.magenta_toolbox": "Cassetta degli attrezzi magenta", "block.create.magenta_toolbox": "Cassetta degli attrezzi magenta",
@ -307,7 +307,7 @@
"block.create.millstone": "Macina", "block.create.millstone": "Macina",
"block.create.minecart_anchor": "Ancora per carrello da miniera", "block.create.minecart_anchor": "Ancora per carrello da miniera",
"block.create.mysterious_cuckoo_clock": "Orologio a cucù misterioso", "block.create.mysterious_cuckoo_clock": "Orologio a cucù misterioso",
"block.create.nixie_tube": "Tubo di Nixie", "block.create.nixie_tube": "Tubo Nixie",
"block.create.nozzle": "Dispersore", "block.create.nozzle": "Dispersore",
"block.create.oak_window": "Finestra di quercia", "block.create.oak_window": "Finestra di quercia",
"block.create.oak_window_pane": "Pannello di finestra di quercia", "block.create.oak_window_pane": "Pannello di finestra di quercia",
@ -326,7 +326,7 @@
"block.create.oxidized_copper_tile_stairs": "Scalini di mattonelle di rame ossidato", "block.create.oxidized_copper_tile_stairs": "Scalini di mattonelle di rame ossidato",
"block.create.oxidized_copper_tiles": "Mattonelle di rame ossidato", "block.create.oxidized_copper_tiles": "Mattonelle di rame ossidato",
"block.create.peculiar_bell": "Campana peculiare", "block.create.peculiar_bell": "Campana peculiare",
"block.create.pink_nixie_tube": "Tubo di Nixie rosa", "block.create.pink_nixie_tube": "Tubo Nixie rosa",
"block.create.pink_sail": "Vela rosa", "block.create.pink_sail": "Vela rosa",
"block.create.pink_seat": "Sedile rosa", "block.create.pink_seat": "Sedile rosa",
"block.create.pink_toolbox": "Cassetta degli attrezzi rosa", "block.create.pink_toolbox": "Cassetta degli attrezzi rosa",
@ -397,7 +397,7 @@
"block.create.pulley_magnet": "Magnete della carrucola", "block.create.pulley_magnet": "Magnete della carrucola",
"block.create.pulse_extender": "Estensore di impulsi", "block.create.pulse_extender": "Estensore di impulsi",
"block.create.pulse_repeater": "Ripetitore di impulsi", "block.create.pulse_repeater": "Ripetitore di impulsi",
"block.create.purple_nixie_tube": "Tubo di Nixie viola", "block.create.purple_nixie_tube": "Tubo Nixie viola",
"block.create.purple_sail": "Vela viola", "block.create.purple_sail": "Vela viola",
"block.create.purple_seat": "Sedile viola", "block.create.purple_seat": "Sedile viola",
"block.create.purple_toolbox": "Cassetta degli attrezzi viola", "block.create.purple_toolbox": "Cassetta degli attrezzi viola",
@ -405,7 +405,7 @@
"block.create.radial_chassis": "Telaio radiale", "block.create.radial_chassis": "Telaio radiale",
"block.create.railway_casing": "Rivestimento di treno", "block.create.railway_casing": "Rivestimento di treno",
"block.create.raw_zinc_block": "Blocco di zinco grezzo", "block.create.raw_zinc_block": "Blocco di zinco grezzo",
"block.create.red_nixie_tube": "Tubo di Nixie rosso", "block.create.red_nixie_tube": "Tubo Nixie rosso",
"block.create.red_sail": "Vela rossa", "block.create.red_sail": "Vela rossa",
"block.create.red_seat": "Sedile rosso", "block.create.red_seat": "Sedile rosso",
"block.create.red_toolbox": "Cassetta degli attrezzi rossa", "block.create.red_toolbox": "Cassetta degli attrezzi rossa",
@ -549,14 +549,14 @@
"block.create.weathered_copper_tile_stairs": "Scalini di mattonelle di rame corroso", "block.create.weathered_copper_tile_stairs": "Scalini di mattonelle di rame corroso",
"block.create.weathered_copper_tiles": "Mattonelle di rame corroso", "block.create.weathered_copper_tiles": "Mattonelle di rame corroso",
"block.create.weighted_ejector": "Espulsore di pesi", "block.create.weighted_ejector": "Espulsore di pesi",
"block.create.white_nixie_tube": "Tubo di Nixie bianco", "block.create.white_nixie_tube": "Tubo Nixie bianco",
"block.create.white_sail": "Vela bianca", "block.create.white_sail": "Vela bianca",
"block.create.white_seat": "Sedile bianco", "block.create.white_seat": "Sedile bianco",
"block.create.white_toolbox": "Cassetta degli attrezzi bianca", "block.create.white_toolbox": "Cassetta degli attrezzi bianca",
"block.create.white_valve_handle": "Maniglia per valvola bianca", "block.create.white_valve_handle": "Maniglia per valvola bianca",
"block.create.windmill_bearing": "Supporto per mulino a vento", "block.create.windmill_bearing": "Supporto per mulino a vento",
"block.create.wooden_bracket": "Supporto di legno", "block.create.wooden_bracket": "Supporto di legno",
"block.create.yellow_nixie_tube": "Tubo di Nixie giallo", "block.create.yellow_nixie_tube": "Tubo Nixie giallo",
"block.create.yellow_sail": "Vela gialla", "block.create.yellow_sail": "Vela gialla",
"block.create.yellow_seat": "Sedile giallo", "block.create.yellow_seat": "Sedile giallo",
"block.create.yellow_toolbox": "Cassetta degli attrezzi gialla", "block.create.yellow_toolbox": "Cassetta degli attrezzi gialla",
@ -1262,8 +1262,8 @@
"create.item_attributes.smokable.inverted": "non può essere affumicato", "create.item_attributes.smokable.inverted": "non può essere affumicato",
"create.item_attributes.blastable": "è fondibile in un forno fusorio", "create.item_attributes.blastable": "è fondibile in un forno fusorio",
"create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio", "create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio",
"create.item_attributes.compostable": "UNLOCALIZED: can be composted", "create.item_attributes.compostable": "può essere gettato in una compstiera",
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.compostable.inverted": "non può essere gettato in una compstiera",
"create.item_attributes.shulker_level": "è uno shulker %1$s", "create.item_attributes.shulker_level": "è uno shulker %1$s",
"create.item_attributes.shulker_level.inverted": "non è uno shulker %1$s", "create.item_attributes.shulker_level.inverted": "non è uno shulker %1$s",
"create.item_attributes.shulker_level.full": "pieno", "create.item_attributes.shulker_level.full": "pieno",
@ -1370,10 +1370,10 @@
"create.tooltip.chute.fans_pull_up": "Il ventilatore tira da sopra", "create.tooltip.chute.fans_pull_up": "Il ventilatore tira da sopra",
"create.tooltip.chute.fans_pull_down": "Il ventilatore tira da sotto", "create.tooltip.chute.fans_pull_down": "Il ventilatore tira da sotto",
"create.tooltip.chute.contains": "Contiene: %1$s x%2$s", "create.tooltip.chute.contains": "Contiene: %1$s x%2$s",
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information", "create.tooltip.deployer.header": "Informazioni sull'Installatore",
"create.tooltip.deployer.using": "UNLOCALIZED: Mode: Use", "create.tooltip.deployer.using": "Modalità: Utilizzo",
"create.tooltip.deployer.punching": "UNLOCALIZED: Mode: Attack", "create.tooltip.deployer.punching": "Modalità: Attacco",
"create.tooltip.deployer.contains": "UNLOCALIZED: Item: %1$s x%2$s", "create.tooltip.deployer.contains": "Oggetto: %1$s x%2$s",
"create.tooltip.brass_tunnel.contains": "Sta distribuendo:", "create.tooltip.brass_tunnel.contains": "Sta distribuendo:",
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
"create.tooltip.brass_tunnel.retrieve": "Click destro per recuperare", "create.tooltip.brass_tunnel.retrieve": "Click destro per recuperare",
@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "esattamente", "create.schedule.condition.threshold.equal": "esattamente",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s di %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s di %3$s",
"create.schedule.condition.threshold.matching_content": "Contenuto corrispondente", "create.schedule.condition.threshold.matching_content": "Contenuto corrispondente",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "Misura", "create.schedule.condition.threshold.item_measure": "Misura",
"create.schedule.condition.threshold.items": "Oggetti", "create.schedule.condition.threshold.items": "Oggetti",
"create.schedule.condition.threshold.stacks": "Stack", "create.schedule.condition.threshold.stacks": "Stack",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "Carico: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "Carico: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "Oggetto di riferimento", "create.schedule.condition.threshold.place_item": "Oggetto di riferimento",
"create.schedule.condition.threshold.place_item_2": "È permesso usare Filtri", "create.schedule.condition.threshold.place_item_2": "È permesso usare Filtri",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "Carico di fluidi", "create.schedule.condition.fluid_threshold": "Carico di fluidi",
"create.schedule.condition.item_threshold": "Carico di oggetti", "create.schedule.condition.item_threshold": "Carico di oggetti",
"create.schedule.condition.redstone_link": "Connessione redstone", "create.schedule.condition.redstone_link": "Connessione redstone",
@ -1653,7 +1655,7 @@
"create.display_source.list_items": "Lista di oggetti filtrati", "create.display_source.list_items": "Lista di oggetti filtrati",
"create.display_source.fluid_amount": "Quantità di fluidi filtrati", "create.display_source.fluid_amount": "Quantità di fluidi filtrati",
"create.display_source.list_fluids": "Lista di fluidi filtrati", "create.display_source.list_fluids": "Lista di fluidi filtrati",
"create.display_source.nixie_tube": "Copia Tubo di Nixie", "create.display_source.nixie_tube": "Copia Tubo Nixie",
"create.display_source.fill_level": "Livello di riempimento", "create.display_source.fill_level": "Livello di riempimento",
"create.display_source.fill_level.display": "Formato di visualizzazione", "create.display_source.fill_level.display": "Formato di visualizzazione",
"create.display_source.fill_level.percent": "Percentuale", "create.display_source.fill_level.percent": "Percentuale",
@ -3024,7 +3026,7 @@
"create.ponder.windmill_source.text_7": "Fai click destro sul Supporto in qualsiasi momento per fermarlo e poter modificare di nuovo la struttura", "create.ponder.windmill_source.text_7": "Fai click destro sul Supporto in qualsiasi momento per fermarlo e poter modificare di nuovo la struttura",
"create.ponder.windmill_structure.header": "Macchinari per Mulini a vento", "create.ponder.windmill_structure.header": "Macchinari per Mulini a vento",
"create.ponder.windmill_structure.text_1": "Qualsiasi struttura può essere un Mulino a vento vaido, purché contenga almeno 8 blocchi che possano essere considerati vele.", "create.ponder.windmill_structure.text_1": "Qualsiasi struttura può essere un Mulino a vento valido, purché contenga almeno 8 blocchi che possano essere considerati vele.",
"_": "Thank you for translating Create!" "_": "Thank you for translating Create!"

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "ぴったり", "create.schedule.condition.threshold.equal": "ぴったり",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$sの%3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$sの%3$s",
"create.schedule.condition.threshold.matching_content": "一致する貨物", "create.schedule.condition.threshold.matching_content": "一致する貨物",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "アイテム単位", "create.schedule.condition.threshold.item_measure": "アイテム単位",
"create.schedule.condition.threshold.items": "個", "create.schedule.condition.threshold.items": "個",
"create.schedule.condition.threshold.stacks": "スタック", "create.schedule.condition.threshold.stacks": "スタック",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "貨物: %1$s/%2$s%3$s", "create.schedule.condition.threshold.status": "貨物: %1$s/%2$s%3$s",
"create.schedule.condition.threshold.place_item": "参照アイテム", "create.schedule.condition.threshold.place_item": "参照アイテム",
"create.schedule.condition.threshold.place_item_2": "フィルターも使えます", "create.schedule.condition.threshold.place_item_2": "フィルターも使えます",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "液体貨物の状態", "create.schedule.condition.fluid_threshold": "液体貨物の状態",
"create.schedule.condition.item_threshold": "アイテム貨物の状態", "create.schedule.condition.item_threshold": "アイテム貨物の状態",
"create.schedule.condition.redstone_link": "レッドストーンリンク", "create.schedule.condition.redstone_link": "レッドストーンリンク",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "다음과 동일하면", "create.schedule.condition.threshold.equal": "다음과 동일하면",
"create.schedule.condition.threshold.x_units_of_item": "%3$s %1$s %2$s", "create.schedule.condition.threshold.x_units_of_item": "%3$s %1$s %2$s",
"create.schedule.condition.threshold.matching_content": "내용물 일치", "create.schedule.condition.threshold.matching_content": "내용물 일치",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "아이템 단위", "create.schedule.condition.threshold.item_measure": "아이템 단위",
"create.schedule.condition.threshold.items": "개", "create.schedule.condition.threshold.items": "개",
"create.schedule.condition.threshold.stacks": "스택", "create.schedule.condition.threshold.stacks": "스택",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "저장소: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "저장소: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "기준 아이템", "create.schedule.condition.threshold.place_item": "기준 아이템",
"create.schedule.condition.threshold.place_item_2": "필터를 사용할 수 있음", "create.schedule.condition.threshold.place_item_2": "필터를 사용할 수 있음",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "액체 저장소 조건", "create.schedule.condition.fluid_threshold": "액체 저장소 조건",
"create.schedule.condition.item_threshold": "아이템 저장소 조건", "create.schedule.condition.item_threshold": "아이템 저장소 조건",
"create.schedule.condition.redstone_link": "레드스톤 링크", "create.schedule.condition.redstone_link": "레드스톤 링크",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -564,14 +564,14 @@
"block.create.zinc_block": "Blok cynku", "block.create.zinc_block": "Blok cynku",
"block.create.zinc_ore": "Złoże cynku", "block.create.zinc_ore": "Złoże cynku",
"enchantment.create.capacity": "Pojameność", "enchantment.create.capacity": "Pojemność",
"enchantment.create.potato_recovery": "Odzyskiwanie", "enchantment.create.potato_recovery": "Odzyskiwanie",
"entity.create.carriage_contraption": "Maszyna wagonowa", "entity.create.carriage_contraption": "Maszyna wagonowa",
"entity.create.contraption": "Maszyna", "entity.create.contraption": "Maszyna",
"entity.create.crafting_blueprint": "Szablon konstruowania", "entity.create.crafting_blueprint": "Szablon konstruowania",
"entity.create.gantry_contraption": "Maszyna suwnicowa", "entity.create.gantry_contraption": "Maszyna suwnicowa",
"entity.create.potato_projectile": "Zimniaczany pocisk", "entity.create.potato_projectile": "Ziemniaczany pocisk",
"entity.create.seat": "Siedzenie", "entity.create.seat": "Siedzenie",
"entity.create.stationary_contraption": "Maszyna stacjonarna", "entity.create.stationary_contraption": "Maszyna stacjonarna",
"entity.create.super_glue": "Super Glue", "entity.create.super_glue": "Super Glue",
@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "dokładnie", "create.schedule.condition.threshold.equal": "dokładnie",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s: %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s: %3$s",
"create.schedule.condition.threshold.matching_content": "Pasująca zawartość", "create.schedule.condition.threshold.matching_content": "Pasująca zawartość",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "Jednostka przedmiotów", "create.schedule.condition.threshold.item_measure": "Jednostka przedmiotów",
"create.schedule.condition.threshold.items": "Przemioty", "create.schedule.condition.threshold.items": "Przemioty",
"create.schedule.condition.threshold.stacks": "Stosy", "create.schedule.condition.threshold.stacks": "Stosy",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "Ładunek: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "Ładunek: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "Przedmiot odniesienia", "create.schedule.condition.threshold.place_item": "Przedmiot odniesienia",
"create.schedule.condition.threshold.place_item_2": "Filtry mogą zostać użyte", "create.schedule.condition.threshold.place_item_2": "Filtry mogą zostać użyte",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "Warunek ładunku płynów", "create.schedule.condition.fluid_threshold": "Warunek ładunku płynów",
"create.schedule.condition.item_threshold": "Warunek ładunku przedmiotów", "create.schedule.condition.item_threshold": "Warunek ładunku przedmiotów",
"create.schedule.condition.redstone_link": "Emiter sygnału", "create.schedule.condition.redstone_link": "Emiter sygnału",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly", "create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content", "create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure", "create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items", "create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks", "create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item", "create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used", "create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition", "create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link", "create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "恰好", "create.schedule.condition.threshold.equal": "恰好",
"create.schedule.condition.threshold.x_units_of_item": "%1$s%2$s%3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s%2$s%3$s",
"create.schedule.condition.threshold.matching_content": "匹配内容", "create.schedule.condition.threshold.matching_content": "匹配内容",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "物品度量", "create.schedule.condition.threshold.item_measure": "物品度量",
"create.schedule.condition.threshold.items": "个", "create.schedule.condition.threshold.items": "个",
"create.schedule.condition.threshold.stacks": "组", "create.schedule.condition.threshold.stacks": "组",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "货物:%1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "货物:%1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "参考物品", "create.schedule.condition.threshold.place_item": "参考物品",
"create.schedule.condition.threshold.place_item_2": "可以使用过滤器", "create.schedule.condition.threshold.place_item_2": "可以使用过滤器",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "流体货物条件", "create.schedule.condition.fluid_threshold": "流体货物条件",
"create.schedule.condition.item_threshold": "物品货物条件", "create.schedule.condition.item_threshold": "物品货物条件",
"create.schedule.condition.redstone_link": "无线红石", "create.schedule.condition.redstone_link": "无线红石",

View file

@ -1487,6 +1487,7 @@
"create.schedule.condition.threshold.equal": "剛好", "create.schedule.condition.threshold.equal": "剛好",
"create.schedule.condition.threshold.x_units_of_item": "%1$s%2$s %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s%2$s %3$s",
"create.schedule.condition.threshold.matching_content": "比對內容", "create.schedule.condition.threshold.matching_content": "比對內容",
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
"create.schedule.condition.threshold.item_measure": "物品單位", "create.schedule.condition.threshold.item_measure": "物品單位",
"create.schedule.condition.threshold.items": "個", "create.schedule.condition.threshold.items": "個",
"create.schedule.condition.threshold.stacks": "組", "create.schedule.condition.threshold.stacks": "組",
@ -1494,6 +1495,7 @@
"create.schedule.condition.threshold.status": "貨物:%1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "貨物:%1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "參考物品", "create.schedule.condition.threshold.place_item": "參考物品",
"create.schedule.condition.threshold.place_item_2": "可以使用過濾器", "create.schedule.condition.threshold.place_item_2": "可以使用過濾器",
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
"create.schedule.condition.fluid_threshold": "流體貨物條件", "create.schedule.condition.fluid_threshold": "流體貨物條件",
"create.schedule.condition.item_threshold": "物品貨物條件", "create.schedule.condition.item_threshold": "物品貨物條件",
"create.schedule.condition.redstone_link": "無線紅石連接", "create.schedule.condition.redstone_link": "無線紅石連接",

View file

@ -65,7 +65,7 @@ public class Create {
public static final String ID = "create"; public static final String ID = "create";
public static final String NAME = "Create"; public static final String NAME = "Create";
public static final String VERSION = "0.5d"; public static final String VERSION = "0.5e";
public static final Logger LOGGER = LogManager.getLogger(); public static final Logger LOGGER = LogManager.getLogger();

View file

@ -187,6 +187,7 @@ public class CreateJEI implements IModPlugin {
.build("automatic_shapeless", MixingCategory::autoShapeless), .build("automatic_shapeless", MixingCategory::autoShapeless),
brewing = builder(BasinRecipe.class) brewing = builder(BasinRecipe.class)
.enableWhen(c -> c.allowBrewingInMixer)
.addRecipes(() -> PotionMixingRecipes.ALL) .addRecipes(() -> PotionMixingRecipes.ALL)
.catalyst(AllBlocks.MECHANICAL_MIXER::get) .catalyst(AllBlocks.MECHANICAL_MIXER::get)
.catalyst(AllBlocks.BASIN::get) .catalyst(AllBlocks.BASIN::get)

View file

@ -58,6 +58,8 @@ public class BlockBreakingMovementBehaviour implements MovementBehaviour {
continue; continue;
if (entity instanceof AbstractContraptionEntity) if (entity instanceof AbstractContraptionEntity)
continue; continue;
if (entity.isPassengerOfSameVehicle(context.contraption.entity))
continue;
if (entity instanceof AbstractMinecart) if (entity instanceof AbstractMinecart)
for (Entity passenger : entity.getIndirectPassengers()) for (Entity passenger : entity.getIndirectPassengers())
if (passenger instanceof AbstractContraptionEntity if (passenger instanceof AbstractContraptionEntity

View file

@ -100,7 +100,8 @@ public class MechanicalCrafterBlock extends HorizontalKineticBlock
if (crafter != null) { if (crafter != null) {
if (crafter.covered) if (crafter.covered)
Block.popResource(worldIn, pos, AllItems.CRAFTER_SLOT_COVER.asStack()); Block.popResource(worldIn, pos, AllItems.CRAFTER_SLOT_COVER.asStack());
crafter.ejectWholeGrid(); if (!isMoving)
crafter.ejectWholeGrid();
} }
for (Direction direction : Iterate.directions) { for (Direction direction : Iterate.directions) {

View file

@ -7,6 +7,7 @@ import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock;
import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.advancement.AllAdvancements;
import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Couple;
@ -19,11 +20,14 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.RenderShape;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.CollisionContext;
@ -31,10 +35,12 @@ import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
public class HandCrankBlock extends DirectionalKineticBlock implements ITE<HandCrankTileEntity> { public class HandCrankBlock extends DirectionalKineticBlock
implements ITE<HandCrankTileEntity>, ProperWaterloggedBlock {
public HandCrankBlock(Properties properties) { public HandCrankBlock(Properties properties) {
super(properties); super(properties);
registerDefaultState(defaultBlockState().setValue(WATERLOGGED, false));
} }
@Override @Override
@ -42,6 +48,11 @@ public class HandCrankBlock extends DirectionalKineticBlock implements ITE<HandC
return AllShapes.CRANK.get(state.getValue(FACING)); return AllShapes.CRANK.get(state.getValue(FACING));
} }
@Override
protected void createBlockStateDefinition(Builder<Block, BlockState> builder) {
super.createBlockStateDefinition(builder.add(WATERLOGGED));
}
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public PartialModel getRenderedHandle() { public PartialModel getRenderedHandle() {
return AllBlockPartials.HAND_CRANK_HANDLE; return AllBlockPartials.HAND_CRANK_HANDLE;
@ -61,21 +72,22 @@ public class HandCrankBlock extends DirectionalKineticBlock implements ITE<HandC
BlockHitResult hit) { BlockHitResult hit) {
withTileEntityDo(worldIn, pos, te -> te.turn(player.isShiftKeyDown())); withTileEntityDo(worldIn, pos, te -> te.turn(player.isShiftKeyDown()));
player.causeFoodExhaustion(getRotationSpeed() * AllConfigs.SERVER.kinetics.crankHungerMultiplier.getF()); player.causeFoodExhaustion(getRotationSpeed() * AllConfigs.SERVER.kinetics.crankHungerMultiplier.getF());
if (player.getFoodData() if (player.getFoodData()
.getFoodLevel() == 0) .getFoodLevel() == 0)
AllAdvancements.HAND_CRANK.awardTo(player); AllAdvancements.HAND_CRANK.awardTo(player);
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;
} }
@Override @Override
public BlockState getStateForPlacement(BlockPlaceContext context) { public BlockState getStateForPlacement(BlockPlaceContext context) {
Direction preferred = getPreferredFacing(context); Direction preferred = getPreferredFacing(context);
BlockState defaultBlockState = withWater(defaultBlockState(), context);
if (preferred == null || (context.getPlayer() != null && context.getPlayer() if (preferred == null || (context.getPlayer() != null && context.getPlayer()
.isShiftKeyDown())) .isShiftKeyDown()))
return defaultBlockState().setValue(FACING, context.getClickedFace()); return defaultBlockState.setValue(FACING, context.getClickedFace());
return defaultBlockState().setValue(FACING, preferred.getOpposite()); return defaultBlockState.setValue(FACING, preferred.getOpposite());
} }
@Override @Override
@ -102,6 +114,18 @@ public class HandCrankBlock extends DirectionalKineticBlock implements ITE<HandC
} }
} }
} }
@Override
public BlockState updateShape(BlockState pState, Direction pDirection, BlockState pNeighborState,
LevelAccessor pLevel, BlockPos pCurrentPos, BlockPos pNeighborPos) {
updateWater(pLevel, pState, pCurrentPos);
return pState;
}
@Override
public FluidState getFluidState(BlockState pState) {
return fluidState(pState);
}
@Override @Override
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
@ -129,7 +153,7 @@ public class HandCrankBlock extends DirectionalKineticBlock implements ITE<HandC
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
return false; return false;
} }
public static Couple<Integer> getSpeedRange() { public static Couple<Integer> getSpeedRange() {
return Couple.create(32, 32); return Couple.create(32, 32);
} }

View file

@ -218,10 +218,18 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity {
protected List<Recipe<?>> getMatchingRecipes() { protected List<Recipe<?>> getMatchingRecipes() {
List<Recipe<?>> matchingRecipes = super.getMatchingRecipes(); List<Recipe<?>> matchingRecipes = super.getMatchingRecipes();
if (!AllConfigs.SERVER.recipes.allowBrewingInMixer.get())
return matchingRecipes;
Optional<BasinTileEntity> basin = getBasin(); Optional<BasinTileEntity> basin = getBasin();
if (!basin.isPresent()) if (!basin.isPresent())
return matchingRecipes; return matchingRecipes;
IItemHandler availableItems = basin.get()
BasinTileEntity basinTileEntity = basin.get();
if (basin.isEmpty())
return matchingRecipes;
IItemHandler availableItems = basinTileEntity
.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) .getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
.orElse(null); .orElse(null);
if (availableItems == null) if (availableItems == null)

View file

@ -139,6 +139,10 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
public boolean collisionEnabled() { public boolean collisionEnabled() {
return true; return true;
} }
public void registerColliding(Entity collidingEntity) {
collidingEntities.put(collidingEntity, new MutableInt());
}
public void addSittingPassenger(Entity passenger, int seatIndex) { public void addSittingPassenger(Entity passenger, int seatIndex) {
for (Entity entity : getPassengers()) { for (Entity entity : getPassengers()) {

View file

@ -7,7 +7,6 @@ import java.util.List;
import org.apache.commons.lang3.mutable.MutableBoolean; import org.apache.commons.lang3.mutable.MutableBoolean;
import org.apache.commons.lang3.mutable.MutableFloat; import org.apache.commons.lang3.mutable.MutableFloat;
import org.apache.commons.lang3.mutable.MutableInt;
import org.apache.commons.lang3.mutable.MutableObject; import org.apache.commons.lang3.mutable.MutableObject;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
@ -88,11 +87,12 @@ public class ContraptionCollider {
if (playerType == PlayerType.REMOTE) if (playerType == PlayerType.REMOTE)
continue; continue;
entity.getSelfAndPassengers().forEach(e -> { entity.getSelfAndPassengers()
if (e instanceof ServerPlayer) .forEach(e -> {
((ServerPlayer) e).connection.aboveGroundTickCount = 0; if (e instanceof ServerPlayer)
}); ((ServerPlayer) e).connection.aboveGroundTickCount = 0;
});
if (playerType == PlayerType.SERVER) if (playerType == PlayerType.SERVER)
continue; continue;
@ -329,50 +329,15 @@ public class ContraptionCollider {
entityPosition.z + allowedMovement.z); entityPosition.z + allowedMovement.z);
entityPosition = entity.position(); entityPosition = entity.position();
if (contraptionEntity instanceof CarriageContraptionEntity cce && entity.isOnGround() entityMotion =
&& !(entity instanceof ItemEntity) && cce.nonDamageTicks == 0 handleDamageFromTrain(world, contraptionEntity, contraptionMotion, entity, entityMotion, playerType);
&& AllConfigs.SERVER.trains.trainsCauseDamage.get()) {
Vec3 diffMotion = contraptionMotion.subtract(entity.getDeltaMovement());
if (diffMotion.length() > 0.35f && contraptionMotion.length() > 0.35f) {
EntityDamageSource pSource = new EntityDamageSource("create.run_over", contraptionEntity);
double damage = diffMotion.length();
if (entity.getClassification(false) == MobCategory.MONSTER)
damage *= 2;
if (!(entity instanceof Player p) || !p.isCreative() && !p.isSpectator()) {
if (playerType == PlayerType.CLIENT) {
AllPackets.channel
.sendToServer(new TrainCollisionPacket((int) (damage * 16), contraptionEntity.getId()));
world.playSound((Player) entity, entity.blockPosition(), SoundEvents.PLAYER_ATTACK_CRIT,
SoundSource.NEUTRAL, 1, .75f);
} else {
entity.hurt(pSource, (int) (damage * 16));
world.playSound(null, entity.blockPosition(), SoundEvents.PLAYER_ATTACK_CRIT,
SoundSource.NEUTRAL, 1, .75f);
if (!entity.isAlive())
contraptionEntity.getControllingPlayer()
.map(world::getPlayerByUUID)
.ifPresent(AllAdvancements.TRAIN_ROADKILL::awardTo);
}
Vec3 added = entityMotion.add(contraptionMotion.multiply(1, 0, 1)
.normalize()
.add(0, .25, 0)
.scale(damage * 4))
.add(diffMotion);
entityMotion = VecHelper.clamp(added, 3);
}
}
}
entity.hurtMarked = true; entity.hurtMarked = true;
Vec3 contactPointMotion = Vec3.ZERO; Vec3 contactPointMotion = Vec3.ZERO;
if (surfaceCollision.isTrue()) { if (surfaceCollision.isTrue()) {
contraptionEntity.registerColliding(entity);
entity.fallDistance = 0; entity.fallDistance = 0;
contraptionEntity.collidingEntities.put(entity, new MutableInt(0));
boolean canWalk = bounce != 0 || slide == 0; boolean canWalk = bounce != 0 || slide == 0;
if (canWalk || !rotation.hasVerticalRotation()) { if (canWalk || !rotation.hasVerticalRotation()) {
if (canWalk) if (canWalk)
@ -401,6 +366,57 @@ public class ContraptionCollider {
} }
private static Vec3 handleDamageFromTrain(Level world, AbstractContraptionEntity contraptionEntity,
Vec3 contraptionMotion, Entity entity, Vec3 entityMotion, PlayerType playerType) {
if (!(contraptionEntity instanceof CarriageContraptionEntity cce))
return entityMotion;
if (!entity.isOnGround())
return entityMotion;
if (cce.collidingEntities.containsKey(entity))
return entityMotion;
if (entity instanceof ItemEntity)
return entityMotion;
if (cce.nonDamageTicks != 0)
return entityMotion;
if (!AllConfigs.SERVER.trains.trainsCauseDamage.get())
return entityMotion;
Vec3 diffMotion = contraptionMotion.subtract(entity.getDeltaMovement());
if (diffMotion.length() <= 0.35f || contraptionMotion.length() <= 0.35f)
return entityMotion;
EntityDamageSource pSource = new EntityDamageSource("create.run_over", contraptionEntity);
double damage = diffMotion.length();
if (entity.getClassification(false) == MobCategory.MONSTER)
damage *= 2;
if (entity instanceof Player p && (p.isCreative() || p.isSpectator()))
return entityMotion;
if (playerType == PlayerType.CLIENT) {
AllPackets.channel.sendToServer(new TrainCollisionPacket((int) (damage * 16), contraptionEntity.getId()));
world.playSound((Player) entity, entity.blockPosition(), SoundEvents.PLAYER_ATTACK_CRIT,
SoundSource.NEUTRAL, 1, .75f);
} else {
entity.hurt(pSource, (int) (damage * 16));
world.playSound(null, entity.blockPosition(), SoundEvents.PLAYER_ATTACK_CRIT, SoundSource.NEUTRAL, 1, .75f);
if (!entity.isAlive())
contraptionEntity.getControllingPlayer()
.map(world::getPlayerByUUID)
.ifPresent(AllAdvancements.TRAIN_ROADKILL::awardTo);
}
Vec3 added = entityMotion.add(contraptionMotion.multiply(1, 0, 1)
.normalize()
.add(0, .25, 0)
.scale(damage * 4))
.add(diffMotion);
return VecHelper.clamp(added, 3);
}
static boolean bounceEntity(Entity entity, Vec3 normal, AbstractContraptionEntity contraption, double factor) { static boolean bounceEntity(Entity entity, Vec3 normal, AbstractContraptionEntity contraption, double factor) {
if (factor == 0) if (factor == 0)
return false; return false;
@ -473,10 +489,10 @@ public class ContraptionCollider {
boolean flag = p_20273_.x != vec3.x; boolean flag = p_20273_.x != vec3.x;
boolean flag1 = p_20273_.y != vec3.y; boolean flag1 = p_20273_.y != vec3.y;
boolean flag2 = p_20273_.z != vec3.z; boolean flag2 = p_20273_.z != vec3.z;
boolean flag3 = e.isOnGround() || flag1 && p_20273_.y < 0.0D; boolean flag3 = flag1 && p_20273_.y < 0.0D;
if (e.getStepHeight() > 0.0F && flag3 && (flag || flag2)) { if (e.getStepHeight() > 0.0F && flag3 && (flag || flag2)) {
Vec3 vec31 = Vec3 vec31 = collideBoundingBox(e, new Vec3(p_20273_.x, (double) e.getStepHeight(), p_20273_.z), aabb,
collideBoundingBox(e, new Vec3(p_20273_.x, (double) e.getStepHeight(), p_20273_.z), aabb, e.level, list); e.level, list);
Vec3 vec32 = collideBoundingBox(e, new Vec3(0.0D, (double) e.getStepHeight(), 0.0D), Vec3 vec32 = collideBoundingBox(e, new Vec3(0.0D, (double) e.getStepHeight(), 0.0D),
aabb.expandTowards(p_20273_.x, 0.0D, p_20273_.z), e.level, list); aabb.expandTowards(p_20273_.x, 0.0D, p_20273_.z), e.level, list);
if (vec32.y < (double) e.getStepHeight()) { if (vec32.y < (double) e.getStepHeight()) {

View file

@ -5,12 +5,17 @@ import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.apache.commons.lang3.tuple.MutablePair;
import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams; import com.google.common.io.ByteStreams;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItems;
import com.simibubi.create.AllMovementBehaviours;
import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceMovement;
import com.simibubi.create.content.contraptions.components.deployer.DeployerFakePlayer; import com.simibubi.create.content.contraptions.components.deployer.DeployerFakePlayer;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity;
import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.advancement.AllAdvancements;
import com.simibubi.create.foundation.config.ContraptionMovementSetting; import com.simibubi.create.foundation.config.ContraptionMovementSetting;
@ -41,6 +46,7 @@ import net.minecraft.world.level.block.BaseRailBlock;
import net.minecraft.world.level.block.DispenserBlock; import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.RailShape; import net.minecraft.world.level.block.state.properties.RailShape;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.Material;
import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
@ -218,11 +224,13 @@ public class MinecartContraptionItem extends Item {
List<Entity> passengers = cart.getPassengers(); List<Entity> passengers = cart.getPassengers();
if (passengers.isEmpty() || !(passengers.get(0) instanceof OrientedContraptionEntity)) if (passengers.isEmpty() || !(passengers.get(0) instanceof OrientedContraptionEntity))
return; return;
OrientedContraptionEntity contraption = (OrientedContraptionEntity) passengers.get(0); OrientedContraptionEntity oce = (OrientedContraptionEntity) passengers.get(0);
Contraption contraption = oce.getContraption();
if(ContraptionMovementSetting.isNoPickup(contraption.getContraption().getBlocks().values())) { if (ContraptionMovementSetting.isNoPickup(contraption.getBlocks()
.values())) {
player.displayClientMessage(Lang.translateDirect("contraption.minecart_contraption_illegal_pickup") player.displayClientMessage(Lang.translateDirect("contraption.minecart_contraption_illegal_pickup")
.withStyle(ChatFormatting.RED), true); .withStyle(ChatFormatting.RED), true);
return; return;
} }
@ -232,7 +240,13 @@ public class MinecartContraptionItem extends Item {
return; return;
} }
ItemStack generatedStack = create(type, contraption).setHoverName(entity.getCustomName()); contraption.stop(event.getWorld());
for (MutablePair<StructureBlockInfo, MovementContext> pair : contraption.getActors())
if (AllMovementBehaviours.getBehaviour(pair.left.state)instanceof PortableStorageInterfaceMovement psim)
psim.reset(pair.right);
ItemStack generatedStack = create(type, oce).setHoverName(entity.getCustomName());
try { try {
ByteArrayDataOutput dataOutput = ByteStreams.newDataOutput(); ByteArrayDataOutput dataOutput = ByteStreams.newDataOutput();
@ -249,13 +263,13 @@ public class MinecartContraptionItem extends Item {
return; return;
} }
if (contraption.getContraption() if (contraption.getBlocks()
.getBlocks()
.size() > 200) .size() > 200)
AllAdvancements.CART_PICKUP.awardTo(player); AllAdvancements.CART_PICKUP.awardTo(player);
player.getInventory().placeItemBackInInventory(generatedStack); player.getInventory()
contraption.discard(); .placeItemBackInInventory(generatedStack);
oce.discard();
entity.discard(); entity.discard();
event.setCancellationResult(InteractionResult.SUCCESS); event.setCancellationResult(InteractionResult.SUCCESS);
event.setCanceled(true); event.setCanceled(true);

View file

@ -7,6 +7,7 @@ import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock; import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock;
import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.content.contraptions.fluids.FluidPropagator;
import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@ -15,26 +16,31 @@ import net.minecraft.core.Direction.Axis;
import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.network.protocol.game.DebugPackets;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.RandomSource; import net.minecraft.util.RandomSource;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder; import net.minecraft.world.level.block.state.StateDefinition.Builder;
import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraft.world.ticks.TickPriority; import net.minecraft.world.ticks.TickPriority;
public class FluidValveBlock extends DirectionalAxisKineticBlock implements IAxisPipe, ITE<FluidValveTileEntity> { public class FluidValveBlock extends DirectionalAxisKineticBlock
implements IAxisPipe, ITE<FluidValveTileEntity>, ProperWaterloggedBlock {
public static final BooleanProperty ENABLED = BooleanProperty.create("enabled"); public static final BooleanProperty ENABLED = BooleanProperty.create("enabled");
public FluidValveBlock(Properties properties) { public FluidValveBlock(Properties properties) {
super(properties); super(properties);
registerDefaultState(defaultBlockState().setValue(ENABLED, false)); registerDefaultState(defaultBlockState().setValue(ENABLED, false)
.setValue(WATERLOGGED, false));
} }
@Override @Override
@ -45,7 +51,7 @@ public class FluidValveBlock extends DirectionalAxisKineticBlock implements IAxi
@Override @Override
protected void createBlockStateDefinition(Builder<Block, BlockState> builder) { protected void createBlockStateDefinition(Builder<Block, BlockState> builder) {
super.createBlockStateDefinition(builder.add(ENABLED)); super.createBlockStateDefinition(builder.add(ENABLED, WATERLOGGED));
} }
@Override @Override
@ -124,7 +130,7 @@ public class FluidValveBlock extends DirectionalAxisKineticBlock implements IAxi
public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) {
FluidPropagator.propagateChangedPipe(world, pos, state); FluidPropagator.propagateChangedPipe(world, pos, state);
} }
@Override @Override
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
return false; return false;
@ -140,4 +146,21 @@ public class FluidValveBlock extends DirectionalAxisKineticBlock implements IAxi
return AllTileEntities.FLUID_VALVE.get(); return AllTileEntities.FLUID_VALVE.get();
} }
@Override
public BlockState getStateForPlacement(BlockPlaceContext context) {
return withWater(super.getStateForPlacement(context), context);
}
@Override
public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState, LevelAccessor world,
BlockPos pos, BlockPos neighbourPos) {
updateWater(world, state, pos);
return state;
}
@Override
public FluidState getFluidState(BlockState state) {
return fluidState(state);
}
} }

View file

@ -6,6 +6,7 @@ import com.simibubi.create.content.contraptions.fluids.FluidPropagator;
import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.content.contraptions.wrench.IWrenchable;
import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.advancement.AdvancementBehaviour;
import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
import com.simibubi.create.foundation.utility.VoxelShaper; import com.simibubi.create.foundation.utility.VoxelShaper;
@ -20,6 +21,7 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock; import net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock;
@ -27,22 +29,23 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder; import net.minecraft.world.level.block.state.StateDefinition.Builder;
import net.minecraft.world.level.block.state.properties.AttachFace; import net.minecraft.world.level.block.state.properties.AttachFace;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraft.world.ticks.TickPriority; import net.minecraft.world.ticks.TickPriority;
public class SmartFluidPipeBlock extends FaceAttachedHorizontalDirectionalBlock public class SmartFluidPipeBlock extends FaceAttachedHorizontalDirectionalBlock
implements ITE<SmartFluidPipeTileEntity>, IAxisPipe, IWrenchable { implements ITE<SmartFluidPipeTileEntity>, IAxisPipe, IWrenchable, ProperWaterloggedBlock {
public SmartFluidPipeBlock(Properties p_i48339_1_) { public SmartFluidPipeBlock(Properties p_i48339_1_) {
super(p_i48339_1_); super(p_i48339_1_);
registerDefaultState(defaultBlockState().setValue(WATERLOGGED, false));
} }
@Override @Override
protected void createBlockStateDefinition(Builder<Block, BlockState> builder) { protected void createBlockStateDefinition(Builder<Block, BlockState> builder) {
builder.add(FACE) builder.add(FACE, FACING, WATERLOGGED);
.add(FACING);
} }
@Override @Override
@ -75,7 +78,7 @@ public class SmartFluidPipeBlock extends FaceAttachedHorizontalDirectionalBlock
} }
} }
return stateForPlacement; return withWater(stateForPlacement, ctx);
} }
protected boolean prefersConnectionTo(LevelReader reader, BlockPos pos, Direction facing) { protected boolean prefersConnectionTo(LevelReader reader, BlockPos pos, Direction facing) {
@ -157,6 +160,18 @@ public class SmartFluidPipeBlock extends FaceAttachedHorizontalDirectionalBlock
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
return false; return false;
} }
@Override
public BlockState updateShape(BlockState pState, Direction pFacing, BlockState pFacingState, LevelAccessor pLevel,
BlockPos pCurrentPos, BlockPos pFacingPos) {
updateWater(pLevel, pState, pCurrentPos);
return pState;
}
@Override
public FluidState getFluidState(BlockState pState) {
return fluidState(pState);
}
@Override @Override
public Class<SmartFluidPipeTileEntity> getTileEntityClass() { public Class<SmartFluidPipeTileEntity> getTileEntityClass() {

View file

@ -1,5 +1,6 @@
package com.simibubi.create.content.contraptions.processing; package com.simibubi.create.content.contraptions.processing;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -64,7 +65,8 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
return true; return true;
if (level == null || level.isClientSide) if (level == null || level.isClientSide)
return true; return true;
if (!getBasin().filter(BasinTileEntity::canContinueProcessing) Optional<BasinTileEntity> basin = getBasin();
if (!basin.filter(BasinTileEntity::canContinueProcessing)
.isPresent()) .isPresent())
return true; return true;
@ -118,6 +120,10 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
} }
protected List<Recipe<?>> getMatchingRecipes() { protected List<Recipe<?>> getMatchingRecipes() {
if (getBasin().map(BasinTileEntity::isEmpty)
.orElse(true))
return new ArrayList<>();
List<Recipe<?>> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters); List<Recipe<?>> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters);
return list.stream() return list.stream()
.filter(this::matchBasinRecipe) .filter(this::matchBasinRecipe)

View file

@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.processing;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -78,7 +77,6 @@ public class BasinRecipe extends ProcessingRecipe<SmartInventory> {
List<FluidStack> recipeOutputFluids = new ArrayList<>(); List<FluidStack> recipeOutputFluids = new ArrayList<>();
List<Ingredient> ingredients = new LinkedList<>(recipe.getIngredients()); List<Ingredient> ingredients = new LinkedList<>(recipe.getIngredients());
ingredients.sort(Comparator.comparingInt(i -> i.getItems().length));
List<FluidIngredient> fluidIngredients = List<FluidIngredient> fluidIngredients =
isBasinRecipe ? ((BasinRecipe) recipe).getFluidIngredients() : Collections.emptyList(); isBasinRecipe ? ((BasinRecipe) recipe).getFluidIngredients() : Collections.emptyList();

View file

@ -88,6 +88,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
Direction preferredSpoutput; Direction preferredSpoutput;
protected List<ItemStack> spoutputBuffer; protected List<ItemStack> spoutputBuffer;
protected List<FluidStack> spoutputFluidBuffer; protected List<FluidStack> spoutputFluidBuffer;
int recipeBackupCheck;
public static final int OUTPUT_ANIMATION_TIME = 10; public static final int OUTPUT_ANIMATION_TIME = 10;
List<IntAttached<ItemStack>> visualizedOutputItems; List<IntAttached<ItemStack>> visualizedOutputItems;
@ -115,6 +116,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
preferredSpoutput = null; preferredSpoutput = null;
spoutputBuffer = new ArrayList<>(); spoutputBuffer = new ArrayList<>();
spoutputFluidBuffer = new ArrayList<>(); spoutputFluidBuffer = new ArrayList<>();
recipeBackupCheck = 20;
} }
@Override @Override
@ -227,19 +229,32 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
@Override @Override
public void lazyTick() { public void lazyTick() {
super.lazyTick(); super.lazyTick();
updateSpoutput();
if (!level.isClientSide) if (!level.isClientSide) {
updateSpoutput();
if (recipeBackupCheck-- > 0)
return;
recipeBackupCheck = 20;
if (isEmpty())
return;
notifyChangeOfContents();
return; return;
}
BlockEntity tileEntity = level.getBlockEntity(worldPosition.above(2)); BlockEntity tileEntity = level.getBlockEntity(worldPosition.above(2));
if (!(tileEntity instanceof MechanicalMixerTileEntity)) { if (!(tileEntity instanceof MechanicalMixerTileEntity)) {
setAreFluidsMoving(false); setAreFluidsMoving(false);
return; return;
} }
MechanicalMixerTileEntity mixer = (MechanicalMixerTileEntity) tileEntity; MechanicalMixerTileEntity mixer = (MechanicalMixerTileEntity) tileEntity;
setAreFluidsMoving(mixer.running && mixer.runningTicks <= 20); setAreFluidsMoving(mixer.running && mixer.runningTicks <= 20);
} }
public boolean isEmpty() {
return inputInventory.isEmpty() && outputInventory.isEmpty() && inputTank.isEmpty() && outputTank.isEmpty();
}
public void onWrenched(Direction face) { public void onWrenched(Direction face) {
BlockState blockState = getBlockState(); BlockState blockState = getBlockState();
Direction currentFacing = blockState.getValue(BasinBlock.FACING); Direction currentFacing = blockState.getValue(BasinBlock.FACING);
@ -256,15 +271,8 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
} }
private void updateSpoutput() { private void updateSpoutput() {
if (level.isClientSide)
return;
BlockState blockState = getBlockState(); BlockState blockState = getBlockState();
Direction currentFacing = blockState.getValue(BasinBlock.FACING); Direction currentFacing = blockState.getValue(BasinBlock.FACING);
if (currentFacing != Direction.DOWN)
notifyChangeOfContents();
Direction newFacing = Direction.DOWN; Direction newFacing = Direction.DOWN;
for (Direction test : Iterate.horizontalDirections) { for (Direction test : Iterate.horizontalDirections) {
boolean canOutputTo = BasinBlock.canOutputTo(level, worldPosition, test); boolean canOutputTo = BasinBlock.canOutputTo(level, worldPosition, test);

View file

@ -464,7 +464,7 @@ public class BeltTileEntity extends KineticTileEntity {
return inserted; return inserted;
if (!simulate) { if (!simulate) {
BeltTunnelInteractionHandler.flapTunnel(nextInventory, index, side.getOpposite(), true); BeltTunnelInteractionHandler.flapTunnel(nextInventory, index, side.getOpposite(), true);
tunnelTE.setStackToDistribute(inserted); tunnelTE.setStackToDistribute(inserted, side.getOpposite());
} }
return empty; return empty;
} }

View file

@ -54,7 +54,7 @@ public class BeltTunnelInteractionHandler {
if (!brassTunnel.canTakeItems()) if (!brassTunnel.canTakeItems())
return true; return true;
if (onServer) { if (onServer) {
brassTunnel.setStackToDistribute(current.stack); brassTunnel.setStackToDistribute(current.stack, movementFacing.getOpposite());
current.stack = ItemStack.EMPTY; current.stack = ItemStack.EMPTY;
beltInventory.belt.sendData(); beltInventory.belt.sendData();
beltInventory.belt.setChanged(); beltInventory.belt.setChanged();

View file

@ -3,7 +3,6 @@ package com.simibubi.create.content.logistics.block.belts.tunnel;
import java.util.List; import java.util.List;
import com.simibubi.create.AllTileEntities; import com.simibubi.create.AllTileEntities;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
@ -44,7 +43,7 @@ public class BrassTunnelBlock extends BeltTunnelBlock {
for (ItemStack itemStack : stacksOfGroup) for (ItemStack itemStack : stacksOfGroup)
player.getInventory().placeItemBackInInventory(itemStack.copy()); player.getInventory().placeItemBackInInventory(itemStack.copy());
world.playSound(null, pos, SoundEvents.ITEM_PICKUP, SoundSource.PLAYERS, .2f, world.playSound(null, pos, SoundEvents.ITEM_PICKUP, SoundSource.PLAYERS, .2f,
1f + Create.RANDOM.nextFloat()); 1f + world.random.nextFloat());
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;
}); });
} }
@ -61,16 +60,16 @@ public class BrassTunnelBlock extends BeltTunnelBlock {
} }
@Override @Override
public void onRemove(BlockState p_196243_1_, Level p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_, public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) {
boolean p_196243_5_) { if (state.hasBlockEntity() && (state.getBlock() != newState.getBlock() || !newState.hasBlockEntity())) {
if (p_196243_1_.hasBlockEntity() TileEntityBehaviour.destroy(level, pos, FilteringBehaviour.TYPE);
&& (p_196243_1_.getBlock() != p_196243_4_.getBlock() || !p_196243_4_.hasBlockEntity())) { withTileEntityDo(level, pos, te -> {
TileEntityBehaviour.destroy(p_196243_2_, p_196243_3_, FilteringBehaviour.TYPE); if (!(te instanceof BrassTunnelTileEntity btte))
withTileEntityDo(p_196243_2_, p_196243_3_, te -> { return;
if (te instanceof BrassTunnelTileEntity) Block.popResource(level, pos, btte.stackToDistribute);
Block.popResource(p_196243_2_, p_196243_3_, ((BrassTunnelTileEntity) te).stackToDistribute); btte.stackEnteredFrom = null;
}); });
p_196243_2_.removeBlockEntity(p_196243_3_); level.removeBlockEntity(pos);
} }
} }

View file

@ -34,7 +34,7 @@ public class BrassTunnelItemHandler implements IItemHandler {
if (!te.canTakeItems()) if (!te.canTakeItems())
return stack; return stack;
if (!simulate) if (!simulate)
te.setStackToDistribute(stack); te.setStackToDistribute(stack, null);
return ItemStack.EMPTY; return ItemStack.EMPTY;
} }

View file

@ -17,6 +17,9 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper; import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape;
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform;
@ -61,6 +64,8 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
boolean connectedRight; boolean connectedRight;
ItemStack stackToDistribute; ItemStack stackToDistribute;
Direction stackEnteredFrom;
float distributionProgress; float distributionProgress;
int distributionDistanceLeft; int distributionDistanceLeft;
int distributionDistanceRight; int distributionDistanceRight;
@ -81,6 +86,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
distributionTargets = Couple.create(ArrayList::new); distributionTargets = Couple.create(ArrayList::new);
syncSet = new HashSet<>(); syncSet = new HashSet<>();
stackToDistribute = ItemStack.EMPTY; stackToDistribute = ItemStack.EMPTY;
stackEnteredFrom = null;
beltCapability = LazyOptional.empty(); beltCapability = LazyOptional.empty();
tunnelCapability = LazyOptional.of(() -> new BrassTunnelItemHandler(this)); tunnelCapability = LazyOptional.of(() -> new BrassTunnelItemHandler(this));
previousOutputIndex = 0; previousOutputIndex = 0;
@ -183,6 +189,8 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
for (Pair<BlockPos, Direction> pair : list) { for (Pair<BlockPos, Direction> pair : list) {
BlockPos tunnelPos = pair.getKey(); BlockPos tunnelPos = pair.getKey();
Direction output = pair.getValue(); Direction output = pair.getValue();
if (tunnelPos.equals(worldPosition) && output == stackEnteredFrom)
continue;
BlockEntity te = level.getBlockEntity(tunnelPos); BlockEntity te = level.getBlockEntity(tunnelPos);
if (!(te instanceof BrassTunnelTileEntity)) if (!(te instanceof BrassTunnelTileEntity))
continue; continue;
@ -306,13 +314,16 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
toDistribute.grow(failedTransferrals); toDistribute.grow(failedTransferrals);
stackToDistribute = ItemHandlerHelper.copyStackWithSize(stackToDistribute, toDistribute.getCount()); stackToDistribute = ItemHandlerHelper.copyStackWithSize(stackToDistribute, toDistribute.getCount());
if (stackToDistribute.isEmpty())
stackEnteredFrom = null;
previousOutputIndex++; previousOutputIndex++;
previousOutputIndex %= amountTargets; previousOutputIndex %= amountTargets;
notifyUpdate(); notifyUpdate();
} }
public void setStackToDistribute(ItemStack stack) { public void setStackToDistribute(ItemStack stack, @Nullable Direction enteredFrom) {
stackToDistribute = stack; stackToDistribute = stack;
stackEnteredFrom = enteredFrom;
distributionProgress = -1; distributionProgress = -1;
sendData(); sendData();
setChanged(); setChanged();
@ -329,7 +340,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
if (!own.isEmpty()) { if (!own.isEmpty()) {
list.add(own); list.add(own);
if (!simulate) if (!simulate)
setStackToDistribute(ItemStack.EMPTY); setStackToDistribute(ItemStack.EMPTY, null);
} }
for (boolean left : Iterate.trueAndFalse) { for (boolean left : Iterate.trueAndFalse) {
@ -345,7 +356,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
continue; continue;
list.add(other); list.add(other);
if (!simulate) if (!simulate)
adjacent.setStackToDistribute(ItemStack.EMPTY); adjacent.setStackToDistribute(ItemStack.EMPTY, null);
} }
} }
@ -514,22 +525,30 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
continue; continue;
if (direction == movementFacing.getOpposite()) if (direction == movementFacing.getOpposite())
continue; continue;
if (tunnelTE.sides.contains(direction)) { if (!tunnelTE.sides.contains(direction))
BlockPos offset = tunnelTE.worldPosition.below() continue;
.relative(direction);
DirectBeltInputBehaviour inputBehaviour = BlockPos offset = tunnelTE.worldPosition.below()
TileEntityBehaviour.get(level, offset, DirectBeltInputBehaviour.TYPE); .relative(direction);
if (inputBehaviour == null) {
if (direction == movementFacing) BlockState potentialFunnel = level.getBlockState(offset.above());
if (!BlockHelper.hasBlockSolidSide(level.getBlockState(offset), level, offset, if (potentialFunnel.getBlock() instanceof BeltFunnelBlock
direction.getOpposite())) && potentialFunnel.getValue(BeltFunnelBlock.SHAPE) == Shape.PULLING
validOutputs.add(Pair.of(tunnelTE, direction)); && FunnelBlock.getFunnelFacing(potentialFunnel) == direction)
continue; continue;
}
if (inputBehaviour.canInsertFromSide(direction)) DirectBeltInputBehaviour inputBehaviour =
validOutputs.add(Pair.of(tunnelTE, direction)); TileEntityBehaviour.get(level, offset, DirectBeltInputBehaviour.TYPE);
if (inputBehaviour == null) {
if (direction == movementFacing)
if (!BlockHelper.hasBlockSolidSide(level.getBlockState(offset), level, offset,
direction.getOpposite()))
validOutputs.add(Pair.of(tunnelTE, direction));
continue; continue;
} }
if (inputBehaviour.canInsertFromSide(direction))
validOutputs.add(Pair.of(tunnelTE, direction));
continue;
} }
} }
} }
@ -559,7 +578,11 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
compound.putBoolean("SyncedOutput", syncedOutputActive); compound.putBoolean("SyncedOutput", syncedOutputActive);
compound.putBoolean("ConnectedLeft", connectedLeft); compound.putBoolean("ConnectedLeft", connectedLeft);
compound.putBoolean("ConnectedRight", connectedRight); compound.putBoolean("ConnectedRight", connectedRight);
compound.put("StackToDistribute", stackToDistribute.serializeNBT()); compound.put("StackToDistribute", stackToDistribute.serializeNBT());
if (stackEnteredFrom != null)
NBTHelper.writeEnum(compound, "StackEnteredFrom", stackEnteredFrom);
compound.putFloat("DistributionProgress", distributionProgress); compound.putFloat("DistributionProgress", distributionProgress);
compound.putInt("PreviousIndex", previousOutputIndex); compound.putInt("PreviousIndex", previousOutputIndex);
compound.putInt("DistanceLeft", distributionDistanceLeft); compound.putInt("DistanceLeft", distributionDistanceLeft);
@ -587,7 +610,12 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
syncedOutputActive = compound.getBoolean("SyncedOutput"); syncedOutputActive = compound.getBoolean("SyncedOutput");
connectedLeft = compound.getBoolean("ConnectedLeft"); connectedLeft = compound.getBoolean("ConnectedLeft");
connectedRight = compound.getBoolean("ConnectedRight"); connectedRight = compound.getBoolean("ConnectedRight");
stackToDistribute = ItemStack.of(compound.getCompound("StackToDistribute")); stackToDistribute = ItemStack.of(compound.getCompound("StackToDistribute"));
stackEnteredFrom =
compound.contains("StackEnteredFrom") ? NBTHelper.readEnum(compound, "StackEnteredFrom", Direction.class)
: null;
distributionProgress = compound.getFloat("DistributionProgress"); distributionProgress = compound.getFloat("DistributionProgress");
previousOutputIndex = compound.getInt("PreviousIndex"); previousOutputIndex = compound.getInt("PreviousIndex");
distributionDistanceLeft = compound.getInt("DistanceLeft"); distributionDistanceLeft = compound.getInt("DistanceLeft");

View file

@ -56,6 +56,11 @@ public class BookCopyAttribute implements ItemAttribute {
return new BookCopyAttribute(nbt.getInt("generation")); return new BookCopyAttribute(nbt.getInt("generation"));
} }
@Override
public String getNBTKey() {
return "book_copy";
}
private int extractGeneration(ItemStack stack) { private int extractGeneration(ItemStack stack) {
CompoundTag nbt = stack.getTag(); CompoundTag nbt = stack.getTag();
if (nbt != null && stack.getItem() instanceof WrittenBookItem) { if (nbt != null && stack.getItem() instanceof WrittenBookItem) {

View file

@ -5,20 +5,29 @@ import com.simibubi.create.content.logistics.trains.DimensionPalette;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.NbtUtils;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
public abstract class SingleTileEdgePoint extends TrackEdgePoint { public abstract class SingleTileEdgePoint extends TrackEdgePoint {
public ResourceKey<Level> tileDimension;
public BlockPos tilePos; public BlockPos tilePos;
public BlockPos getTilePos() { public BlockPos getTilePos() {
return tilePos; return tilePos;
} }
public ResourceKey<Level> getTileDimension() {
return tileDimension;
}
@Override @Override
public void tileAdded(BlockEntity tile, boolean front) { public void tileAdded(BlockEntity tile, boolean front) {
this.tilePos = tile.getBlockPos(); this.tilePos = tile.getBlockPos();
this.tileDimension = tile.getLevel()
.dimension();
} }
@Override @Override
@ -42,12 +51,14 @@ public abstract class SingleTileEdgePoint extends TrackEdgePoint {
if (migration) if (migration)
return; return;
tilePos = NbtUtils.readBlockPos(nbt.getCompound("TilePos")); tilePos = NbtUtils.readBlockPos(nbt.getCompound("TilePos"));
tileDimension = dimensions.decode(nbt.contains("TileDimension") ? nbt.getInt("TileDimension") : -1);
} }
@Override @Override
public void write(CompoundTag nbt, DimensionPalette dimensions) { public void write(CompoundTag nbt, DimensionPalette dimensions) {
super.write(nbt, dimensions); super.write(nbt, dimensions);
nbt.put("TilePos", NbtUtils.writeBlockPos(tilePos)); nbt.put("TilePos", NbtUtils.writeBlockPos(tilePos));
nbt.putInt("TileDimension", dimensions.encode(tileDimension));
} }
} }

View file

@ -110,6 +110,8 @@ public abstract class CargoThresholdCondition extends LazyTickedScheduleConditio
public List<Component> getSecondLineTooltip(int slot) { public List<Component> getSecondLineTooltip(int slot) {
return ImmutableList.of(Lang.translateDirect("schedule.condition.threshold.place_item"), return ImmutableList.of(Lang.translateDirect("schedule.condition.threshold.place_item"),
Lang.translateDirect("schedule.condition.threshold.place_item_2") Lang.translateDirect("schedule.condition.threshold.place_item_2")
.withStyle(ChatFormatting.GRAY),
Lang.translateDirect("schedule.condition.threshold.place_item_3")
.withStyle(ChatFormatting.GRAY)); .withStyle(ChatFormatting.GRAY));
} }

View file

@ -44,9 +44,6 @@ public class FluidThresholdCondition extends CargoThresholdCondition {
Ops operator = getOperator(); Ops operator = getOperator();
int target = getThreshold(); int target = getThreshold();
if (compareStack.isEmpty())
return true;
int foundFluid = 0; int foundFluid = 0;
for (Carriage carriage : train.carriages) { for (Carriage carriage : train.carriages) {
IFluidHandler fluids = carriage.storage.getFluids(); IFluidHandler fluids = carriage.storage.getFluids();
@ -100,9 +97,10 @@ public class FluidThresholdCondition extends CargoThresholdCondition {
Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))), Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))),
Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(), Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(),
Lang.translateDirect("schedule.condition.threshold.buckets"), Lang.translateDirect("schedule.condition.threshold.buckets"),
compareStack.getItem() instanceof FilterItem compareStack.isEmpty() ? Lang.translateDirect("schedule.condition.threshold.anything")
? Lang.translateDirect("schedule.condition.threshold.matching_content") : compareStack.getItem() instanceof FilterItem
: loadFluid().getDisplayName()) ? Lang.translateDirect("schedule.condition.threshold.matching_content")
: loadFluid().getDisplayName())
.withStyle(ChatFormatting.DARK_AQUA)); .withStyle(ChatFormatting.DARK_AQUA));
} }

View file

@ -41,9 +41,6 @@ public class ItemThresholdCondition extends CargoThresholdCondition {
int target = getThreshold(); int target = getThreshold();
boolean stacks = inStacks(); boolean stacks = inStacks();
if (stack.isEmpty())
return true;
int foundItems = 0; int foundItems = 0;
for (Carriage carriage : train.carriages) { for (Carriage carriage : train.carriages) {
IItemHandlerModifiable items = carriage.storage.getItems(); IItemHandlerModifiable items = carriage.storage.getItems();
@ -97,8 +94,10 @@ public class ItemThresholdCondition extends CargoThresholdCondition {
Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))), Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))),
Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(), Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(),
Lang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items")), Lang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items")),
stack.getItem() instanceof FilterItem ? Lang.translateDirect("schedule.condition.threshold.matching_content") stack.isEmpty() ? Lang.translateDirect("schedule.condition.threshold.anything")
: stack.getHoverName()) : stack.getItem() instanceof FilterItem
? Lang.translateDirect("schedule.condition.threshold.matching_content")
: stack.getHoverName())
.withStyle(ChatFormatting.DARK_AQUA)); .withStyle(ChatFormatting.DARK_AQUA));
} }

View file

@ -10,7 +10,10 @@ import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@ -26,9 +29,14 @@ public class StationPoweredCondition extends ScheduleWaitCondition {
if (currentStation == null) if (currentStation == null)
return false; return false;
BlockPos stationPos = currentStation.getTilePos(); BlockPos stationPos = currentStation.getTilePos();
if (!level.isLoaded(stationPos)) ResourceKey<Level> stationDim = currentStation.getTileDimension();
MinecraftServer server = level.getServer();
if (server == null)
return false; return false;
return level.hasNeighborSignal(stationPos); ServerLevel stationLevel = server.getLevel(stationDim);
if (stationLevel == null || !stationLevel.isLoaded(stationPos))
return false;
return stationLevel.hasNeighborSignal(stationPos);
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.RandomSource; import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@ -20,6 +21,7 @@ import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder; import net.minecraft.world.level.block.state.StateDefinition.Builder;
import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.pathfinder.BlockPathTypes;
import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShape;
@ -42,6 +44,11 @@ public class FakeTrackBlock extends Block implements EntityBlock, ProperWaterlog
public RenderShape getRenderShape(BlockState pState) { public RenderShape getRenderShape(BlockState pState) {
return RenderShape.ENTITYBLOCK_ANIMATED; return RenderShape.ENTITYBLOCK_ANIMATED;
} }
@Override
public BlockPathTypes getAiPathNodeType(BlockState state, BlockGetter world, BlockPos pos, Mob entity) {
return BlockPathTypes.DAMAGE_OTHER;
}
@Override @Override
protected void createBlockStateDefinition(Builder<Block, BlockState> pBuilder) { protected void createBlockStateDefinition(Builder<Block, BlockState> pBuilder) {

View file

@ -67,6 +67,7 @@ import net.minecraft.util.RandomSource;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.BlockPlaceContext;
@ -90,6 +91,7 @@ import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.PushReaction; import net.minecraft.world.level.material.PushReaction;
import net.minecraft.world.level.pathfinder.BlockPathTypes;
import net.minecraft.world.level.portal.PortalForcer; import net.minecraft.world.level.portal.PortalForcer;
import net.minecraft.world.level.portal.PortalInfo; import net.minecraft.world.level.portal.PortalInfo;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
@ -120,6 +122,11 @@ public class TrackBlock extends Block
protected void createBlockStateDefinition(Builder<Block, BlockState> p_49915_) { protected void createBlockStateDefinition(Builder<Block, BlockState> p_49915_) {
super.createBlockStateDefinition(p_49915_.add(SHAPE, HAS_TE, WATERLOGGED)); super.createBlockStateDefinition(p_49915_.add(SHAPE, HAS_TE, WATERLOGGED));
} }
@Override
public BlockPathTypes getAiPathNodeType(BlockState state, BlockGetter world, BlockPos pos, Mob entity) {
return BlockPathTypes.RAIL;
}
@Override @Override
public FluidState getFluidState(BlockState state) { public FluidState getFluidState(BlockState state) {

View file

@ -17,6 +17,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag; import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.StringTag; import net.minecraft.nbt.StringTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.HoverEvent;
import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.Style; import net.minecraft.network.chat.Style;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
@ -154,7 +155,11 @@ public class MaterialChecklist {
private Component entry(ItemStack item, int amount, boolean unfinished) { private Component entry(ItemStack item, int amount, boolean unfinished) {
int stacks = amount / 64; int stacks = amount / 64;
int remainder = amount % 64; int remainder = amount % 64;
MutableComponent tc = Components.translatable(item.getDescriptionId()); MutableComponent tc = Components.empty();
tc.append(Components.translatable(item.getDescriptionId())
.setStyle(Style.EMPTY
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_ITEM, new HoverEvent.ItemStackInfo(item)))));
if (!unfinished) if (!unfinished)
tc.append(" \u2714"); tc.append(" \u2714");
tc.withStyle(unfinished ? ChatFormatting.BLUE : ChatFormatting.DARK_GREEN); tc.withStyle(unfinished ? ChatFormatting.BLUE : ChatFormatting.DARK_GREEN);

View file

@ -4,6 +4,7 @@ public class CRecipes extends ConfigBase {
public final ConfigBool bulkPressing = b(false, "bulkPressing", Comments.bulkPressing); public final ConfigBool bulkPressing = b(false, "bulkPressing", Comments.bulkPressing);
public final ConfigBool bulkCutting = b(false, "bulkCutting", Comments.bulkCutting); public final ConfigBool bulkCutting = b(false, "bulkCutting", Comments.bulkCutting);
public final ConfigBool allowBrewingInMixer = b(true, "allowBrewingInMixer", Comments.allowBrewingInMixer);
public final ConfigBool allowShapelessInMixer = b(true, "allowShapelessInMixer", Comments.allowShapelessInMixer); public final ConfigBool allowShapelessInMixer = b(true, "allowShapelessInMixer", Comments.allowShapelessInMixer);
public final ConfigBool allowShapedSquareInPress = b(true, "allowShapedSquareInPress", Comments.allowShapedSquareInPress); public final ConfigBool allowShapedSquareInPress = b(true, "allowShapedSquareInPress", Comments.allowShapedSquareInPress);
public final ConfigBool allowRegularCraftingInCrafter = public final ConfigBool allowRegularCraftingInCrafter =
@ -28,8 +29,9 @@ public class CRecipes extends ConfigBase {
private static class Comments { private static class Comments {
static String bulkPressing = "Allow the Mechanical Press to process entire stacks at a time."; static String bulkPressing = "Allow the Mechanical Press to process entire stacks at a time.";
static String bulkCutting = "Allow the Mechanical Saw to process entire stacks at a time."; static String bulkCutting = "Allow the Mechanical Saw to process entire stacks at a time.";
static String allowBrewingInMixer = "Allow supported potions to be brewed by a Mechanical Mixer + Basin.";
static String allowShapelessInMixer = static String allowShapelessInMixer =
"Allow allows any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin."; "Allow any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin.";
static String allowShapedSquareInPress = static String allowShapedSquareInPress =
"Allow any single-ingredient 2x2 or 3x3 crafting recipes to be processed by a Mechanical Press + Basin."; "Allow any single-ingredient 2x2 or 3x3 crafting recipes to be processed by a Mechanical Press + Basin.";
static String allowRegularCraftingInCrafter = static String allowRegularCraftingInCrafter =

View file

@ -4,6 +4,7 @@ import java.lang.ref.Reference;
import java.util.Set; import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.logging.log4j.util.TriConsumer; import org.apache.logging.log4j.util.TriConsumer;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
@ -56,18 +57,21 @@ public abstract class EntityContraptionInteractionMixin extends CapabilityProvid
protected abstract void playStepSound(BlockPos p_180429_1_, BlockState p_180429_2_); protected abstract void playStepSound(BlockPos p_180429_1_, BlockState p_180429_2_);
private Set<AbstractContraptionEntity> getIntersectingContraptions() { private Set<AbstractContraptionEntity> getIntersectingContraptions() {
Set<AbstractContraptionEntity> contraptions = ContraptionHandler.loadedContraptions.get(self.level) Set<AbstractContraptionEntity> contraptions = getIntersectionContraptionsStream().collect(Collectors.toSet());
.values()
.stream()
.map(Reference::get)
.filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey(self))
.collect(Collectors.toSet());
contraptions.addAll(self.level.getEntitiesOfClass(AbstractContraptionEntity.class, self.getBoundingBox() contraptions.addAll(self.level.getEntitiesOfClass(AbstractContraptionEntity.class, self.getBoundingBox()
.inflate(1f))); .inflate(1f)));
return contraptions; return contraptions;
} }
private Stream<AbstractContraptionEntity> getIntersectionContraptionsStream() {
return ContraptionHandler.loadedContraptions.get(self.level)
.values()
.stream()
.map(Reference::get)
.filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey(self));
}
private void forCollision(Vec3 anchorPos, TriConsumer<Contraption, BlockState, BlockPos> action) { private void forCollision(Vec3 anchorPos, TriConsumer<Contraption, BlockState, BlockPos> action) {
getIntersectingContraptions().forEach(cEntity -> { getIntersectingContraptions().forEach(cEntity -> {
Vec3 localPos = ContraptionCollider.getWorldToLocalTranslation(anchorPos, cEntity); Vec3 localPos = ContraptionCollider.getWorldToLocalTranslation(anchorPos, cEntity);
@ -88,7 +92,7 @@ public abstract class EntityContraptionInteractionMixin extends CapabilityProvid
@Inject(at = @At(value = "JUMP", opcode = 154, // IFNE line 661 injecting before `!blockstate.isAir(this.world, blockpos)` @Inject(at = @At(value = "JUMP", opcode = 154, // IFNE line 661 injecting before `!blockstate.isAir(this.world, blockpos)`
ordinal = 7), method = "move") ordinal = 7), method = "move")
private void movementMixin(MoverType mover, Vec3 movement, CallbackInfo ci) { private void movementStepMixin(MoverType mover, Vec3 movement, CallbackInfo ci) { // involves block step sounds on contraptions
Vec3 worldPos = self.position() Vec3 worldPos = self.position()
.add(0, -0.2, 0); .add(0, -0.2, 0);
AtomicBoolean stepped = new AtomicBoolean(false); AtomicBoolean stepped = new AtomicBoolean(false);
@ -104,6 +108,39 @@ public abstract class EntityContraptionInteractionMixin extends CapabilityProvid
this.nextStep = this.nextStep(); this.nextStep = this.nextStep();
} }
@Inject(at = @At(value = "TAIL"), method = "move")
private void movementMixin(MoverType mover, Vec3 movement, CallbackInfo ci) {
// involves client-side view bobbing animation on contraptions
if (!self.level.isClientSide)
return;
if (self.isOnGround())
return;
Vec3 worldPos = self.position()
.add(0, -0.2, 0);
boolean onAtLeastOneContraption = getIntersectionContraptionsStream().anyMatch(cEntity -> {
Vec3 localPos = ContraptionCollider.getWorldToLocalTranslation(worldPos, cEntity);
localPos = worldPos.add(localPos);
BlockPos blockPos = new BlockPos(localPos);
Contraption contraption = cEntity.getContraption();
StructureTemplate.StructureBlockInfo info = contraption.getBlocks()
.get(blockPos);
if (info == null)
return false;
cEntity.registerColliding(self);
return true;
});
if (!onAtLeastOneContraption)
return;
self.setOnGround(true);
}
@Inject(method = { "spawnSprintParticle" }, at = @At(value = "TAIL")) @Inject(method = { "spawnSprintParticle" }, at = @At(value = "TAIL"))
private void createRunningParticlesMixin(CallbackInfo ci) { private void createRunningParticlesMixin(CallbackInfo ci) {
Vec3 worldPos = self.position() Vec3 worldPos = self.position()

View file

@ -250,6 +250,8 @@ public class BlockHelper {
state = Blocks.COMPOSTER.defaultBlockState(); state = Blocks.COMPOSTER.defaultBlockState();
else if (state.getBlock() != Blocks.SEA_PICKLE && state.getBlock() instanceof IPlantable) else if (state.getBlock() != Blocks.SEA_PICKLE && state.getBlock() instanceof IPlantable)
state = ((IPlantable) state.getBlock()).getPlant(world, target); state = ((IPlantable) state.getBlock()).getPlant(world, target);
else if (state.is(BlockTags.CAULDRONS))
state = Blocks.CAULDRON.defaultBlockState();
if (world.dimensionType() if (world.dimensionType()
.ultraWarm() && state.getFluidState().is(FluidTags.WATER)) { .ultraWarm() && state.getFluidState().is(FluidTags.WATER)) {

View file

@ -33,6 +33,6 @@ Technology that empowers the player.'''
[[dependencies.create]] [[dependencies.create]]
modId="flywheel" modId="flywheel"
mandatory=true mandatory=true
versionRange="[0.6.5,0.6.6)" versionRange="[0.6.5,0.6.7)"
ordering="AFTER" ordering="AFTER"
side="CLIENT" side="CLIENT"

View file

@ -1602,7 +1602,7 @@
"create.train.status.end_of_track": "Ein Waggon hat das Ende seines Gleises erreicht", "create.train.status.end_of_track": "Ein Waggon hat das Ende seines Gleises erreicht",
"create.train.status.double_portal": "Ein Waggon kann kein Portal während des Verlassens eines anderen betreten", "create.train.status.double_portal": "Ein Waggon kann kein Portal während des Verlassens eines anderen betreten",
"create.train.status.coupling_stress": "Zwangsbremsung aufgrund von Spannung an einer Kopplung", "create.train.status.coupling_stress": "Zwangsbremsung aufgrund von Spannung an einer Kopplung",
"create.train.status.track_missing": "Gleisen fehlen unter dem Zug", "create.train.status.track_missing": "Gleise fehlen unter dem Zug",
"create.train.status.paused_for_manual": "Fahrplan für manuelle Fahrt pausiert", "create.train.status.paused_for_manual": "Fahrplan für manuelle Fahrt pausiert",
"create.train.status.opposite_driver": "Pfad erfordert einen in die andere Richtung zeigenden Fahrer", "create.train.status.opposite_driver": "Pfad erfordert einen in die andere Richtung zeigenden Fahrer",
"create.train.status.missing_driver": "Fahrer ist verschwunden", "create.train.status.missing_driver": "Fahrer ist verschwunden",
@ -1675,7 +1675,7 @@
"create.display_source.station_summary.platform_column": "Spalte 'Gleis' Größe", "create.display_source.station_summary.platform_column": "Spalte 'Gleis' Größe",
"create.display_source.station_summary.now": "jetzt", "create.display_source.station_summary.now": "jetzt",
"create.display_source.station_summary.minutes": "min", "create.display_source.station_summary.minutes": "min",
"create.display_source.station_summary.seconds": "%1$sen", "create.display_source.station_summary.seconds": "%1$ss",
"create.display_source.observed_train_name": "Zugnamen ermitteln", "create.display_source.observed_train_name": "Zugnamen ermitteln",
"create.display_source.max_enchant_level": "Max. Verzauberungskosten", "create.display_source.max_enchant_level": "Max. Verzauberungskosten",
"create.display_source.boiler_status": "Kesselstatus", "create.display_source.boiler_status": "Kesselstatus",
@ -2041,4 +2041,4 @@
"_": "Thank you for translating Create!" "_": "Thank you for translating Create!"
} }

View file

@ -652,6 +652,7 @@
"create.schedule.condition.threshold.equal": "exactly", "create.schedule.condition.threshold.equal": "exactly",
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s of %3$s", "create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s of %3$s",
"create.schedule.condition.threshold.matching_content": "Matching Content", "create.schedule.condition.threshold.matching_content": "Matching Content",
"create.schedule.condition.threshold.anything": "Anything",
"create.schedule.condition.threshold.item_measure": "Item Measure", "create.schedule.condition.threshold.item_measure": "Item Measure",
"create.schedule.condition.threshold.items": "Items", "create.schedule.condition.threshold.items": "Items",
"create.schedule.condition.threshold.stacks": "Stacks", "create.schedule.condition.threshold.stacks": "Stacks",
@ -659,6 +660,7 @@
"create.schedule.condition.threshold.status": "Cargo: %1$s/%2$s %3$s", "create.schedule.condition.threshold.status": "Cargo: %1$s/%2$s %3$s",
"create.schedule.condition.threshold.place_item": "Reference Item", "create.schedule.condition.threshold.place_item": "Reference Item",
"create.schedule.condition.threshold.place_item_2": "Filters can be used", "create.schedule.condition.threshold.place_item_2": "Filters can be used",
"create.schedule.condition.threshold.place_item_3": "Leave empty to match any",
"create.schedule.condition.fluid_threshold": "Fluid Cargo Condition", "create.schedule.condition.fluid_threshold": "Fluid Cargo Condition",
"create.schedule.condition.item_threshold": "Item Cargo Condition", "create.schedule.condition.item_threshold": "Item Cargo Condition",
"create.schedule.condition.redstone_link": "Redstone Link", "create.schedule.condition.redstone_link": "Redstone Link",

View file

@ -1,5 +1,5 @@
{ {
"_": "->------------------------] Game Elements [------------------------<-", "_": "->------------------------] Game Elements [------------------------<-",
"block.create.acacia_window": "Finestra di acacia", "block.create.acacia_window": "Finestra di acacia",
"block.create.acacia_window_pane": "Pannello di finestra di acacia", "block.create.acacia_window_pane": "Pannello di finestra di acacia",
@ -20,13 +20,13 @@
"block.create.belt": "Nastro", "block.create.belt": "Nastro",
"block.create.birch_window": "Finestra di betulla", "block.create.birch_window": "Finestra di betulla",
"block.create.birch_window_pane": "Pannello di finestra di betulla", "block.create.birch_window_pane": "Pannello di finestra di betulla",
"block.create.black_nixie_tube": "Tubo di Nixie nero", "block.create.black_nixie_tube": "Tubo Nixie nero",
"block.create.black_sail": "Vela nera", "block.create.black_sail": "Vela nera",
"block.create.black_seat": "Sedile nero", "block.create.black_seat": "Sedile nero",
"block.create.black_toolbox": "Cassetta degli attrezzi nera", "block.create.black_toolbox": "Cassetta degli attrezzi nera",
"block.create.black_valve_handle": "Maniglia per valvola nera", "block.create.black_valve_handle": "Maniglia per valvola nera",
"block.create.blaze_burner": "Inceneritore a blaze", "block.create.blaze_burner": "Inceneritore a blaze",
"block.create.blue_nixie_tube": "Tubo di Nixie blu", "block.create.blue_nixie_tube": "Tubo Nixie blu",
"block.create.blue_sail": "Vela blu", "block.create.blue_sail": "Vela blu",
"block.create.blue_seat": "Sedile blu", "block.create.blue_seat": "Sedile blu",
"block.create.blue_toolbox": "Cassetta degli attrezzi blu", "block.create.blue_toolbox": "Cassetta degli attrezzi blu",
@ -40,7 +40,7 @@
"block.create.brass_funnel": "Imbuto di ottone", "block.create.brass_funnel": "Imbuto di ottone",
"block.create.brass_ladder": "Scala a pioli in ottone", "block.create.brass_ladder": "Scala a pioli in ottone",
"block.create.brass_tunnel": "Tunnel di ottone", "block.create.brass_tunnel": "Tunnel di ottone",
"block.create.brown_nixie_tube": "Tubo di Nixie marrone", "block.create.brown_nixie_tube": "Tubo Nixie marrone",
"block.create.brown_sail": "Vela marrone", "block.create.brown_sail": "Vela marrone",
"block.create.brown_seat": "Sedile marrone", "block.create.brown_seat": "Sedile marrone",
"block.create.brown_toolbox": "Cassetta degli attrezzi marrone", "block.create.brown_toolbox": "Cassetta degli attrezzi marrone",
@ -187,7 +187,7 @@
"block.create.cut_veridium_slab": "Lastra di veridio tagliato", "block.create.cut_veridium_slab": "Lastra di veridio tagliato",
"block.create.cut_veridium_stairs": "Scalini di veridio tagliato", "block.create.cut_veridium_stairs": "Scalini di veridio tagliato",
"block.create.cut_veridium_wall": "Muretto di veridio tagliato", "block.create.cut_veridium_wall": "Muretto di veridio tagliato",
"block.create.cyan_nixie_tube": "Tubo di Nixie ciano", "block.create.cyan_nixie_tube": "Tubo Nixie ciano",
"block.create.cyan_sail": "Vela ciano", "block.create.cyan_sail": "Vela ciano",
"block.create.cyan_seat": "Sedile ciano", "block.create.cyan_seat": "Sedile ciano",
"block.create.cyan_toolbox": "Cassetta degli attrezzi ciano", "block.create.cyan_toolbox": "Cassetta degli attrezzi ciano",
@ -226,12 +226,12 @@
"block.create.gearshift": "Cambio", "block.create.gearshift": "Cambio",
"block.create.glass_fluid_pipe": "Tubo per fluidi con vetrata", "block.create.glass_fluid_pipe": "Tubo per fluidi con vetrata",
"block.create.granite_pillar": "Pilastro di granito", "block.create.granite_pillar": "Pilastro di granito",
"block.create.gray_nixie_tube": "Tubo di Nixie grigio", "block.create.gray_nixie_tube": "Tubo Nixie grigio",
"block.create.gray_sail": "Vela grigia", "block.create.gray_sail": "Vela grigia",
"block.create.gray_seat": "Sedile grigio", "block.create.gray_seat": "Sedile grigio",
"block.create.gray_toolbox": "Cassetta degli attrezzi grigia", "block.create.gray_toolbox": "Cassetta degli attrezzi grigia",
"block.create.gray_valve_handle": "Maniglia per valvola grigia", "block.create.gray_valve_handle": "Maniglia per valvola grigia",
"block.create.green_nixie_tube": "Tubo di Nixie verde", "block.create.green_nixie_tube": "Tubo Nixie verde",
"block.create.green_sail": "Vela verde", "block.create.green_sail": "Vela verde",
"block.create.green_seat": "Sedile verde", "block.create.green_seat": "Sedile verde",
"block.create.green_toolbox": "Cassetta degli attrezzi verde", "block.create.green_toolbox": "Cassetta degli attrezzi verde",
@ -263,17 +263,17 @@
"block.create.layered_tuff": "Tufo stratificato", "block.create.layered_tuff": "Tufo stratificato",
"block.create.layered_veridium": "Veridio stratificato", "block.create.layered_veridium": "Veridio stratificato",
"block.create.lectern_controller": "Leggio con pulsantiera", "block.create.lectern_controller": "Leggio con pulsantiera",
"block.create.light_blue_nixie_tube": "Tubo di Nixie azzurro", "block.create.light_blue_nixie_tube": "Tubo Nixie azzurro",
"block.create.light_blue_sail": "Vela azzurra", "block.create.light_blue_sail": "Vela azzurra",
"block.create.light_blue_seat": "Sedile azzurro", "block.create.light_blue_seat": "Sedile azzurro",
"block.create.light_blue_toolbox": "Cassetta degli attrezzi azzurra", "block.create.light_blue_toolbox": "Cassetta degli attrezzi azzurra",
"block.create.light_blue_valve_handle": "Maniglia per valvola azzurra", "block.create.light_blue_valve_handle": "Maniglia per valvola azzurra",
"block.create.light_gray_nixie_tube": "Tubo di Nixie grigio chiaro", "block.create.light_gray_nixie_tube": "Tubo Nixie grigio chiaro",
"block.create.light_gray_sail": "Vela grigio chiaro", "block.create.light_gray_sail": "Vela grigio chiaro",
"block.create.light_gray_seat": "Sedile grigio chiaro", "block.create.light_gray_seat": "Sedile grigio chiaro",
"block.create.light_gray_toolbox": "Cassetta degli attrezzi grigia chiaro", "block.create.light_gray_toolbox": "Cassetta degli attrezzi grigia chiaro",
"block.create.light_gray_valve_handle": "Maniglia per valvola grigio chiaro", "block.create.light_gray_valve_handle": "Maniglia per valvola grigio chiaro",
"block.create.lime_nixie_tube": "Tubo di Nixie lime", "block.create.lime_nixie_tube": "Tubo Nixie lime",
"block.create.lime_sail": "Vela lime", "block.create.lime_sail": "Vela lime",
"block.create.lime_seat": "Sedile lime", "block.create.lime_seat": "Sedile lime",
"block.create.lime_toolbox": "Cassetta degli attrezzi lime", "block.create.lime_toolbox": "Cassetta degli attrezzi lime",
@ -282,7 +282,7 @@
"block.create.limestone_pillar": "Pilastro di calcare", "block.create.limestone_pillar": "Pilastro di calcare",
"block.create.linear_chassis": "Telaio lineare", "block.create.linear_chassis": "Telaio lineare",
"block.create.lit_blaze_burner": "Inceneritore a blaze acceso", "block.create.lit_blaze_burner": "Inceneritore a blaze acceso",
"block.create.magenta_nixie_tube": "Tubo di Nixie magenta", "block.create.magenta_nixie_tube": "Tubo Nixie magenta",
"block.create.magenta_sail": "Vela magenta", "block.create.magenta_sail": "Vela magenta",
"block.create.magenta_seat": "Sedile magenta", "block.create.magenta_seat": "Sedile magenta",
"block.create.magenta_toolbox": "Cassetta degli attrezzi magenta", "block.create.magenta_toolbox": "Cassetta degli attrezzi magenta",
@ -305,7 +305,7 @@
"block.create.millstone": "Macina", "block.create.millstone": "Macina",
"block.create.minecart_anchor": "Ancora per carrello da miniera", "block.create.minecart_anchor": "Ancora per carrello da miniera",
"block.create.mysterious_cuckoo_clock": "Orologio a cucù misterioso", "block.create.mysterious_cuckoo_clock": "Orologio a cucù misterioso",
"block.create.nixie_tube": "Tubo di Nixie", "block.create.nixie_tube": "Tubo Nixie",
"block.create.nozzle": "Dispersore", "block.create.nozzle": "Dispersore",
"block.create.oak_window": "Finestra di quercia", "block.create.oak_window": "Finestra di quercia",
"block.create.oak_window_pane": "Pannello di finestra di quercia", "block.create.oak_window_pane": "Pannello di finestra di quercia",
@ -324,7 +324,7 @@
"block.create.oxidized_copper_tile_stairs": "Scalini di mattonelle di rame ossidato", "block.create.oxidized_copper_tile_stairs": "Scalini di mattonelle di rame ossidato",
"block.create.oxidized_copper_tiles": "Mattonelle di rame ossidato", "block.create.oxidized_copper_tiles": "Mattonelle di rame ossidato",
"block.create.peculiar_bell": "Campana peculiare", "block.create.peculiar_bell": "Campana peculiare",
"block.create.pink_nixie_tube": "Tubo di Nixie rosa", "block.create.pink_nixie_tube": "Tubo Nixie rosa",
"block.create.pink_sail": "Vela rosa", "block.create.pink_sail": "Vela rosa",
"block.create.pink_seat": "Sedile rosa", "block.create.pink_seat": "Sedile rosa",
"block.create.pink_toolbox": "Cassetta degli attrezzi rosa", "block.create.pink_toolbox": "Cassetta degli attrezzi rosa",
@ -395,7 +395,7 @@
"block.create.pulley_magnet": "Magnete della carrucola", "block.create.pulley_magnet": "Magnete della carrucola",
"block.create.pulse_extender": "Estensore di impulsi", "block.create.pulse_extender": "Estensore di impulsi",
"block.create.pulse_repeater": "Ripetitore di impulsi", "block.create.pulse_repeater": "Ripetitore di impulsi",
"block.create.purple_nixie_tube": "Tubo di Nixie viola", "block.create.purple_nixie_tube": "Tubo Nixie viola",
"block.create.purple_sail": "Vela viola", "block.create.purple_sail": "Vela viola",
"block.create.purple_seat": "Sedile viola", "block.create.purple_seat": "Sedile viola",
"block.create.purple_toolbox": "Cassetta degli attrezzi viola", "block.create.purple_toolbox": "Cassetta degli attrezzi viola",
@ -403,7 +403,7 @@
"block.create.radial_chassis": "Telaio radiale", "block.create.radial_chassis": "Telaio radiale",
"block.create.railway_casing": "Rivestimento di treno", "block.create.railway_casing": "Rivestimento di treno",
"block.create.raw_zinc_block": "Blocco di zinco grezzo", "block.create.raw_zinc_block": "Blocco di zinco grezzo",
"block.create.red_nixie_tube": "Tubo di Nixie rosso", "block.create.red_nixie_tube": "Tubo Nixie rosso",
"block.create.red_sail": "Vela rossa", "block.create.red_sail": "Vela rossa",
"block.create.red_seat": "Sedile rosso", "block.create.red_seat": "Sedile rosso",
"block.create.red_toolbox": "Cassetta degli attrezzi rossa", "block.create.red_toolbox": "Cassetta degli attrezzi rossa",
@ -547,14 +547,14 @@
"block.create.weathered_copper_tile_stairs": "Scalini di mattonelle di rame corroso", "block.create.weathered_copper_tile_stairs": "Scalini di mattonelle di rame corroso",
"block.create.weathered_copper_tiles": "Mattonelle di rame corroso", "block.create.weathered_copper_tiles": "Mattonelle di rame corroso",
"block.create.weighted_ejector": "Espulsore di pesi", "block.create.weighted_ejector": "Espulsore di pesi",
"block.create.white_nixie_tube": "Tubo di Nixie bianco", "block.create.white_nixie_tube": "Tubo Nixie bianco",
"block.create.white_sail": "Vela bianca", "block.create.white_sail": "Vela bianca",
"block.create.white_seat": "Sedile bianco", "block.create.white_seat": "Sedile bianco",
"block.create.white_toolbox": "Cassetta degli attrezzi bianca", "block.create.white_toolbox": "Cassetta degli attrezzi bianca",
"block.create.white_valve_handle": "Maniglia per valvola bianca", "block.create.white_valve_handle": "Maniglia per valvola bianca",
"block.create.windmill_bearing": "Supporto per mulino a vento", "block.create.windmill_bearing": "Supporto per mulino a vento",
"block.create.wooden_bracket": "Supporto di legno", "block.create.wooden_bracket": "Supporto di legno",
"block.create.yellow_nixie_tube": "Tubo di Nixie giallo", "block.create.yellow_nixie_tube": "Tubo Nixie giallo",
"block.create.yellow_sail": "Vela gialla", "block.create.yellow_sail": "Vela gialla",
"block.create.yellow_seat": "Sedile giallo", "block.create.yellow_seat": "Sedile giallo",
"block.create.yellow_toolbox": "Cassetta degli attrezzi gialla", "block.create.yellow_toolbox": "Cassetta degli attrezzi gialla",
@ -1258,6 +1258,8 @@
"create.item_attributes.smokable.inverted": "non può essere affumicato", "create.item_attributes.smokable.inverted": "non può essere affumicato",
"create.item_attributes.blastable": "è fondibile in un forno fusorio", "create.item_attributes.blastable": "è fondibile in un forno fusorio",
"create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio", "create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio",
"create.item_attributes.compostable": "può essere gettato in una compstiera",
"create.item_attributes.compostable.inverted": "non può essere gettato in una compstiera",
"create.item_attributes.shulker_level": "è uno shulker %1$s", "create.item_attributes.shulker_level": "è uno shulker %1$s",
"create.item_attributes.shulker_level.inverted": "non è uno shulker %1$s", "create.item_attributes.shulker_level.inverted": "non è uno shulker %1$s",
"create.item_attributes.shulker_level.full": "pieno", "create.item_attributes.shulker_level.full": "pieno",
@ -1364,6 +1366,10 @@
"create.tooltip.chute.fans_pull_up": "Il ventilatore tira da sopra", "create.tooltip.chute.fans_pull_up": "Il ventilatore tira da sopra",
"create.tooltip.chute.fans_pull_down": "Il ventilatore tira da sotto", "create.tooltip.chute.fans_pull_down": "Il ventilatore tira da sotto",
"create.tooltip.chute.contains": "Contiene: %1$s x%2$s", "create.tooltip.chute.contains": "Contiene: %1$s x%2$s",
"create.tooltip.deployer.header": "Informazioni sull'Installatore",
"create.tooltip.deployer.using": "Modalità: Utilizzo",
"create.tooltip.deployer.punching": "Modalità: Attacco",
"create.tooltip.deployer.contains": "Oggetto: %1$s x%2$s",
"create.tooltip.brass_tunnel.contains": "Sta distribuendo:", "create.tooltip.brass_tunnel.contains": "Sta distribuendo:",
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
"create.tooltip.brass_tunnel.retrieve": "Click destro per recuperare", "create.tooltip.brass_tunnel.retrieve": "Click destro per recuperare",
@ -1643,7 +1649,7 @@
"create.display_source.list_items": "Lista di oggetti filtrati", "create.display_source.list_items": "Lista di oggetti filtrati",
"create.display_source.fluid_amount": "Quantità di fluidi filtrati", "create.display_source.fluid_amount": "Quantità di fluidi filtrati",
"create.display_source.list_fluids": "Lista di fluidi filtrati", "create.display_source.list_fluids": "Lista di fluidi filtrati",
"create.display_source.nixie_tube": "Copia Tubo di Nixie", "create.display_source.nixie_tube": "Copia Tubo Nixie",
"create.display_source.fill_level": "Livello di riempimento", "create.display_source.fill_level": "Livello di riempimento",
"create.display_source.fill_level.display": "Formato di visualizzazione", "create.display_source.fill_level.display": "Formato di visualizzazione",
"create.display_source.fill_level.percent": "Percentuale", "create.display_source.fill_level.percent": "Percentuale",
@ -3014,8 +3020,5 @@
"create.ponder.windmill_source.text_7": "Fai click destro sul Supporto in qualsiasi momento per fermarlo e poter modificare di nuovo la struttura", "create.ponder.windmill_source.text_7": "Fai click destro sul Supporto in qualsiasi momento per fermarlo e poter modificare di nuovo la struttura",
"create.ponder.windmill_structure.header": "Macchinari per Mulini a vento", "create.ponder.windmill_structure.header": "Macchinari per Mulini a vento",
"create.ponder.windmill_structure.text_1": "Qualsiasi struttura può essere un Mulino a vento vaido, purché contenga almeno 8 blocchi che possano essere considerati vele.", "create.ponder.windmill_structure.text_1": "Qualsiasi struttura può essere un Mulino a vento valido, purché contenga almeno 8 blocchi che possano essere considerati vele."
"_": "Thank you for translating Create!"
} }

View file

@ -563,14 +563,14 @@
"block.create.zinc_block": "Blok cynku", "block.create.zinc_block": "Blok cynku",
"block.create.zinc_ore": "Złoże cynku", "block.create.zinc_ore": "Złoże cynku",
"enchantment.create.capacity": "Pojameność", "enchantment.create.capacity": "Pojemność",
"enchantment.create.potato_recovery": "Odzyskiwanie", "enchantment.create.potato_recovery": "Odzyskiwanie",
"entity.create.carriage_contraption": "Maszyna wagonowa", "entity.create.carriage_contraption": "Maszyna wagonowa",
"entity.create.contraption": "Maszyna", "entity.create.contraption": "Maszyna",
"entity.create.crafting_blueprint": "Szablon konstruowania", "entity.create.crafting_blueprint": "Szablon konstruowania",
"entity.create.gantry_contraption": "Maszyna suwnicowa", "entity.create.gantry_contraption": "Maszyna suwnicowa",
"entity.create.potato_projectile": "Zimniaczany pocisk", "entity.create.potato_projectile": "Ziemniaczany pocisk",
"entity.create.seat": "Siedzenie", "entity.create.seat": "Siedzenie",
"entity.create.stationary_contraption": "Maszyna stacjonarna", "entity.create.stationary_contraption": "Maszyna stacjonarna",
"entity.create.super_glue": "Super Glue", "entity.create.super_glue": "Super Glue",

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"tag": "forge:ores/ametrine"
}
],
"results": [
{
"item": "byg:ametrine_gems",
"count": 2
},
{
"item": "byg:ametrine_gems",
"chance": 0.25
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:cobbled_ether_stone",
"chance": 0.125
}
],
"processingTime": 500
}

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"tag": "forge:ores/anthracite"
}
],
"results": [
{
"item": "byg:anthracite",
"count": 2
},
{
"item": "byg:anthracite",
"chance": 0.5
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:brimstone",
"chance": 0.125
}
],
"processingTime": 150
}

View file

@ -0,0 +1,29 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:blue_nether_gold_ore"
}
],
"results": [
{
"item": "minecraft:gold_nugget",
"count": 18
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:blue_netherrack",
"chance": 0.125
}
],
"processingTime": 350
}

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:blue_nether_quartz_ore"
}
],
"results": [
{
"item": "minecraft:quartz",
"count": 2
},
{
"item": "minecraft:quartz",
"chance": 0.25
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:blue_netherrack",
"chance": 0.125
}
],
"processingTime": 350
}

View file

@ -0,0 +1,29 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:brimstone_nether_gold_ore"
}
],
"results": [
{
"item": "minecraft:gold_nugget",
"count": 18
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:brimstone",
"chance": 0.125
}
],
"processingTime": 350
}

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:brimstone_nether_quartz_ore"
}
],
"results": [
{
"item": "minecraft:quartz",
"count": 2
},
{
"item": "minecraft:quartz",
"chance": 0.25
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:brimstone",
"chance": 0.125
}
],
"processingTime": 350
}

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:cryptic_redstone_ore"
}
],
"results": [
{
"item": "minecraft:redstone",
"count": 6
},
{
"item": "minecraft:redstone",
"chance": 0.5
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:cryptic_stone",
"chance": 0.125
}
],
"processingTime": 250
}

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"tag": "forge:ores/emeraldite"
}
],
"results": [
{
"item": "byg:emeraldite_shards",
"count": 2
},
{
"item": "byg:emeraldite_shards",
"chance": 0.25
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:scoria_cobblestone",
"chance": 0.125
}
],
"processingTime": 500
}

View file

@ -0,0 +1,34 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"tag": "forge:ores/lignite"
}
],
"results": [
{
"item": "byg:lignite",
"count": 2
},
{
"item": "byg:lignite",
"count": 2,
"chance": 0.5
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "byg:cobbled_ether_stone",
"chance": 0.125
}
],
"processingTime": 300
}

View file

@ -0,0 +1,33 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:pervaded_netherrack"
}
],
"results": [
{
"item": "minecraft:glowstone_dust",
"count": 2
},
{
"item": "minecraft:glowstone_dust",
"chance": 0.5
},
{
"item": "create:experience_nugget",
"chance": 0.75
},
{
"item": "minecraft:netherrack",
"chance": 0.125
}
],
"processingTime": 150
}

View file

@ -0,0 +1,21 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:crushing",
"ingredients": [
{
"item": "byg:red_rock"
}
],
"results": [
{
"item": "minecraft:red_sand",
"count": 1
}
],
"processingTime": 150
}

View file

@ -0,0 +1,24 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:filling",
"ingredients": [
{
"item": "byg:lush_dirt"
},
{
"fluid": "minecraft:water",
"nbt": {},
"amount": 500
}
],
"results": [
{
"item": "byg:lush_grass_block"
}
]
}

View file

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:allium_flower_bush"
}
],
"results": [
{
"item": "minecraft:purple_dye",
"count": 3
},
{
"item": "minecraft:green_dye",
"count": 2,
"chance": 0.05
},
{
"item": "minecraft:magenta_dye",
"count": 2,
"chance": 0.25
}
],
"processingTime": 50
}

View file

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:alpine_bellflower"
}
],
"results": [
{
"item": "minecraft:purple_dye",
"count": 2
},
{
"item": "minecraft:blue_dye",
"count": 2,
"chance": 0.1
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:amaranth"
}
],
"results": [
{
"item": "minecraft:red_dye",
"count": 3
},
{
"item": "minecraft:green_dye",
"count": 2,
"chance": 0.05
},
{
"item": "minecraft:red_dye",
"count": 2,
"chance": 0.25
}
],
"processingTime": 50
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:angelica"
}
],
"results": [
{
"item": "minecraft:white_dye",
"count": 2
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:begonia"
}
],
"results": [
{
"item": "minecraft:red_dye",
"count": 2
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:bistort"
}
],
"results": [
{
"item": "minecraft:pink_dye",
"count": 2
},
{
"item": "minecraft:red_dye",
"count": 2,
"chance": 0.1
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:black_rose"
}
],
"results": [
{
"item": "minecraft:black_dye",
"count": 2
},
{
"item": "minecraft:black_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:blue_sage"
}
],
"results": [
{
"item": "minecraft:blue_dye",
"count": 2
},
{
"item": "minecraft:cyan_dye",
"count": 2,
"chance": 0.1
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:california_poppy"
}
],
"results": [
{
"item": "minecraft:orange_dye",
"count": 2
},
{
"item": "minecraft:green_dye",
"chance": 0.05
}
],
"processingTime": 50
}

View file

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:crocus"
}
],
"results": [
{
"item": "minecraft:purple_dye",
"count": 2
},
{
"item": "minecraft:magenta_dye",
"count": 2,
"chance": 0.1
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

View file

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:cyan_amaranth"
}
],
"results": [
{
"item": "minecraft:cyan_dye",
"count": 3
},
{
"item": "minecraft:green_dye",
"count": 2,
"chance": 0.05
},
{
"item": "minecraft:light_blue_dye",
"count": 2,
"chance": 0.25
}
],
"processingTime": 50
}

View file

@ -0,0 +1,25 @@
{
"conditions": [
{
"type": "forge:mod_loaded",
"modid": "byg"
}
],
"type": "create:milling",
"ingredients": [
{
"item": "byg:cyan_rose"
}
],
"results": [
{
"item": "minecraft:cyan_dye",
"count": 2
},
{
"item": "minecraft:green_dye",
"chance": 0.1
}
],
"processingTime": 50
}

Some files were not shown because too many files have changed in this diff Show more