mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2025-01-30 06:44:58 +01:00
Merge branch 'mc1.15/dev' into mc1.16/dev
This commit is contained in:
commit
2700832dff
293 changed files with 20655 additions and 7805 deletions
|
@ -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.3e
|
mod_version=0.3.1
|
||||||
minecraft_version=1.16.3
|
minecraft_version=1.16.3
|
||||||
forge_version=34.1.17
|
forge_version=34.1.17
|
||||||
|
|
||||||
|
|
|
@ -1,55 +1,183 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=down,powered=false": {
|
"extracting=false,face=floor,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel",
|
"model": "create:block/andesite_funnel_floor_pull"
|
||||||
"x": 180
|
|
||||||
},
|
},
|
||||||
"facing=up,powered=false": {
|
"extracting=true,face=floor,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel"
|
"model": "create:block/andesite_funnel_floor_push"
|
||||||
},
|
},
|
||||||
"facing=north,powered=false": {
|
"extracting=false,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel",
|
"model": "create:block/andesite_funnel_wall_pull"
|
||||||
"x": 90
|
|
||||||
},
|
},
|
||||||
"facing=south,powered=false": {
|
"extracting=true,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel",
|
"model": "create:block/andesite_funnel_wall_push"
|
||||||
"x": 90,
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=north,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull"
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=north,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push"
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=south,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,powered=false": {
|
"extracting=true,face=floor,facing=south,powered=false": {
|
||||||
"model": "create:block/andesite_funnel",
|
"model": "create:block/andesite_funnel_floor_push",
|
||||||
"x": 90,
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=south,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=south,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=south,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=south,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=west,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east,powered=false": {
|
"extracting=true,face=floor,facing=west,powered=false": {
|
||||||
"model": "create:block/andesite_funnel",
|
"model": "create:block/andesite_funnel_floor_push",
|
||||||
"x": 90,
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=west,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=west,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=west,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=west,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=east,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=down,powered=true": {
|
"extracting=true,face=floor,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_powered",
|
"model": "create:block/andesite_funnel_floor_push",
|
||||||
"x": 180
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=up,powered=true": {
|
"extracting=false,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_powered"
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,powered=true": {
|
"extracting=true,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_powered",
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
"x": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=south,powered=true": {
|
"extracting=false,face=ceiling,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_powered",
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
"x": 90,
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=east,powered=false": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=north,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull_powered"
|
||||||
|
},
|
||||||
|
"extracting=true,face=floor,facing=north,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_push_powered"
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=north,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_pull_powered"
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=north,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_push_powered"
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=north,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull_powered"
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=north,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push_powered"
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=south,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull_powered",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,powered=true": {
|
"extracting=true,face=floor,facing=south,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_powered",
|
"model": "create:block/andesite_funnel_floor_push_powered",
|
||||||
"x": 90,
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=south,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=south,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=south,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=south,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=west,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull_powered",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east,powered=true": {
|
"extracting=true,face=floor,facing=west,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_powered",
|
"model": "create:block/andesite_funnel_floor_push_powered",
|
||||||
"x": 90,
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=west,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=west,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=west,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=west,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=east,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_pull_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=floor,facing=east,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_floor_push_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=east,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=east,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=east,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=east,powered=true": {
|
||||||
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
"y": 90
|
"y": 90
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,55 +1,183 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=down,powered=false": {
|
"extracting=false,face=floor,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel",
|
"model": "create:block/brass_funnel_floor_pull"
|
||||||
"x": 180
|
|
||||||
},
|
},
|
||||||
"facing=up,powered=false": {
|
"extracting=true,face=floor,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel"
|
"model": "create:block/brass_funnel_floor_push"
|
||||||
},
|
},
|
||||||
"facing=north,powered=false": {
|
"extracting=false,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel",
|
"model": "create:block/brass_funnel_wall_pull"
|
||||||
"x": 90
|
|
||||||
},
|
},
|
||||||
"facing=south,powered=false": {
|
"extracting=true,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel",
|
"model": "create:block/brass_funnel_wall_push"
|
||||||
"x": 90,
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=north,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull"
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=north,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push"
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=south,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,powered=false": {
|
"extracting=true,face=floor,facing=south,powered=false": {
|
||||||
"model": "create:block/brass_funnel",
|
"model": "create:block/brass_funnel_floor_push",
|
||||||
"x": 90,
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=south,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=south,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=south,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=south,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=west,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east,powered=false": {
|
"extracting=true,face=floor,facing=west,powered=false": {
|
||||||
"model": "create:block/brass_funnel",
|
"model": "create:block/brass_funnel_floor_push",
|
||||||
"x": 90,
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=west,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=west,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=west,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=west,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=east,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=down,powered=true": {
|
"extracting=true,face=floor,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_powered",
|
"model": "create:block/brass_funnel_floor_push",
|
||||||
"x": 180
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=up,powered=true": {
|
"extracting=false,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_powered"
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=north,powered=true": {
|
"extracting=true,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_powered",
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
"x": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"facing=south,powered=true": {
|
"extracting=false,face=ceiling,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_powered",
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
"x": 90,
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=east,powered=false": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=north,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull_powered"
|
||||||
|
},
|
||||||
|
"extracting=true,face=floor,facing=north,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_floor_push_powered"
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=north,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_pull_powered"
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=north,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_push_powered"
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=north,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull_powered"
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=north,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push_powered"
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=south,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull_powered",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west,powered=true": {
|
"extracting=true,face=floor,facing=south,powered=true": {
|
||||||
"model": "create:block/brass_funnel_powered",
|
"model": "create:block/brass_funnel_floor_push_powered",
|
||||||
"x": 90,
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=south,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=south,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=south,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=south,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=west,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull_powered",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east,powered=true": {
|
"extracting=true,face=floor,facing=west,powered=true": {
|
||||||
"model": "create:block/brass_funnel_powered",
|
"model": "create:block/brass_funnel_floor_push_powered",
|
||||||
"x": 90,
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=west,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=west,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=west,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=west,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"extracting=false,face=floor,facing=east,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_floor_pull_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=floor,facing=east,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_floor_push_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=false,face=wall,facing=east,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=wall,facing=east,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=false,face=ceiling,facing=east,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"extracting=true,face=ceiling,facing=east,powered=true": {
|
||||||
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
"y": 90
|
"y": 90
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"axis_along_first=false,facing=down": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"x": 270,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"axis_along_first=true,facing=down": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"x": 270
|
||||||
|
},
|
||||||
|
"axis_along_first=false,facing=up": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"axis_along_first=true,facing=up": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"axis_along_first=false,facing=north": {
|
||||||
|
"model": "create:block/gantry_pinion/vertical",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"axis_along_first=true,facing=north": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"axis_along_first=false,facing=south": {
|
||||||
|
"model": "create:block/gantry_pinion/vertical"
|
||||||
|
},
|
||||||
|
"axis_along_first=true,facing=south": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal"
|
||||||
|
},
|
||||||
|
"axis_along_first=false,facing=west": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"axis_along_first=true,facing=west": {
|
||||||
|
"model": "create:block/gantry_pinion/vertical",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"axis_along_first=false,facing=east": {
|
||||||
|
"model": "create:block/gantry_pinion/horizontal",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"axis_along_first=true,facing=east": {
|
||||||
|
"model": "create:block/gantry_pinion/vertical",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,212 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=down,part=start,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_start_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=start,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_start"
|
||||||
|
},
|
||||||
|
"facing=north,part=start,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_start_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=start,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_start",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=start,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_start_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=start,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_start",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=middle,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=middle,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_middle"
|
||||||
|
},
|
||||||
|
"facing=north,part=middle,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=middle,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_middle",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=middle,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=middle,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_middle",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=end,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_end_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=end,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_end"
|
||||||
|
},
|
||||||
|
"facing=north,part=end,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_end_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=end,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_end",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=end,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_end_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=end,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_end",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=single,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_single_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=single,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_single"
|
||||||
|
},
|
||||||
|
"facing=north,part=single,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_single_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=single,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_single",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=single,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft_single_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=single,powered=false": {
|
||||||
|
"model": "create:block/gantry_shaft/block_single",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=start,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_start_powered_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=start,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_start_powered"
|
||||||
|
},
|
||||||
|
"facing=north,part=start,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_start_powered_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=start,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_start_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=start,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_start_powered_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=start,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_start_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=middle,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_powered_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=middle,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_powered"
|
||||||
|
},
|
||||||
|
"facing=north,part=middle,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_powered_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=middle,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=middle,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_powered_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=middle,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_middle_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=end,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_end_powered_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=end,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_end_powered"
|
||||||
|
},
|
||||||
|
"facing=north,part=end,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_end_powered_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=end,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_end_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=end,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_end_powered_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=end,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_end_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,part=single,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_single_powered_flipped",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,part=single,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_single_powered"
|
||||||
|
},
|
||||||
|
"facing=north,part=single,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_single_powered_flipped",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,part=single,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_single_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,part=single,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_single_powered_flipped",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,part=single,powered=true": {
|
||||||
|
"model": "create:block/gantry_shaft_single_powered",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -89,8 +89,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_west": "true",
|
"axis": "x",
|
||||||
"axis": "x"
|
"sticky_west": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x_sticky",
|
"model": "create:block/radial_chassis_side_x_sticky",
|
||||||
|
@ -99,8 +99,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_west": "true",
|
"axis": "y",
|
||||||
"axis": "y"
|
"sticky_west": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_y_sticky",
|
"model": "create:block/radial_chassis_side_y_sticky",
|
||||||
|
@ -109,8 +109,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_west": "true",
|
"axis": "z",
|
||||||
"axis": "z"
|
"sticky_west": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_z_sticky",
|
"model": "create:block/radial_chassis_side_z_sticky",
|
||||||
|
@ -119,8 +119,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_west": "false",
|
"axis": "x",
|
||||||
"axis": "x"
|
"sticky_west": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x",
|
"model": "create:block/radial_chassis_side_x",
|
||||||
|
@ -129,8 +129,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_west": "false",
|
"axis": "y",
|
||||||
"axis": "y"
|
"sticky_west": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_y",
|
"model": "create:block/radial_chassis_side_y",
|
||||||
|
@ -139,8 +139,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_west": "false",
|
"axis": "z",
|
||||||
"axis": "z"
|
"sticky_west": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_z",
|
"model": "create:block/radial_chassis_side_z",
|
||||||
|
@ -207,8 +207,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_east": "true",
|
"axis": "x",
|
||||||
"axis": "x"
|
"sticky_east": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x_sticky",
|
"model": "create:block/radial_chassis_side_x_sticky",
|
||||||
|
@ -217,8 +217,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_east": "true",
|
"axis": "y",
|
||||||
"axis": "y"
|
"sticky_east": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_y_sticky",
|
"model": "create:block/radial_chassis_side_y_sticky",
|
||||||
|
@ -227,8 +227,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_east": "true",
|
"axis": "z",
|
||||||
"axis": "z"
|
"sticky_east": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_z_sticky"
|
"model": "create:block/radial_chassis_side_z_sticky"
|
||||||
|
@ -236,8 +236,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_east": "false",
|
"axis": "x",
|
||||||
"axis": "x"
|
"sticky_east": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x",
|
"model": "create:block/radial_chassis_side_x",
|
||||||
|
@ -246,8 +246,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_east": "false",
|
"axis": "y",
|
||||||
"axis": "y"
|
"sticky_east": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_y",
|
"model": "create:block/radial_chassis_side_y",
|
||||||
|
@ -256,8 +256,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_east": "false",
|
"axis": "z",
|
||||||
"axis": "z"
|
"sticky_east": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_z"
|
"model": "create:block/radial_chassis_side_z"
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"powered=false": {
|
||||||
|
"model": "create:block/smart_chute/block"
|
||||||
|
},
|
||||||
|
"powered=true": {
|
||||||
|
"model": "create:block/smart_chute/block_powered"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -160,6 +160,8 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141",
|
"block.create.gabbro_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141",
|
||||||
"block.create.gabbro_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141",
|
"block.create.gabbro_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 o\u0279qq\u0250\u2141",
|
||||||
"block.create.gabbro_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 o\u0279qq\u0250\u2141",
|
"block.create.gabbro_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 o\u0279qq\u0250\u2141",
|
||||||
|
"block.create.gantry_pinion": "uo\u0131u\u0131\u0500 \u028E\u0279\u0287u\u0250\u2141",
|
||||||
|
"block.create.gantry_shaft": "\u0287\u025F\u0250\u0265S \u028E\u0279\u0287u\u0250\u2141",
|
||||||
"block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141",
|
"block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141",
|
||||||
"block.create.gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141",
|
"block.create.gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141",
|
||||||
"block.create.glass_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 ss\u0250\u05DF\u2141",
|
"block.create.glass_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 ss\u0250\u05DF\u2141",
|
||||||
|
@ -366,6 +368,7 @@
|
||||||
"block.create.sequenced_gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141 p\u01DD\u0254u\u01DDnb\u01DDS",
|
"block.create.sequenced_gearshift": "\u0287\u025F\u0131\u0265s\u0279\u0250\u01DD\u2141 p\u01DD\u0254u\u01DDnb\u01DDS",
|
||||||
"block.create.shadow_steel_casing": "bu\u0131s\u0250\u0186 \u028Dop\u0250\u0265S",
|
"block.create.shadow_steel_casing": "bu\u0131s\u0250\u0186 \u028Dop\u0250\u0265S",
|
||||||
"block.create.shaft": "\u0287\u025F\u0250\u0265S",
|
"block.create.shaft": "\u0287\u025F\u0250\u0265S",
|
||||||
|
"block.create.smart_chute": "\u01DD\u0287n\u0265\u0186 \u0287\u0279\u0250\u026FS",
|
||||||
"block.create.smart_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 \u0287\u0279\u0250\u026FS",
|
"block.create.smart_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 \u0287\u0279\u0250\u026FS",
|
||||||
"block.create.speedometer": "\u0279\u01DD\u0287\u01DD\u026Fop\u01DD\u01DDdS",
|
"block.create.speedometer": "\u0279\u01DD\u0287\u01DD\u026Fop\u01DD\u01DDdS",
|
||||||
"block.create.spout": "\u0287nodS",
|
"block.create.spout": "\u0287nodS",
|
||||||
|
@ -403,6 +406,7 @@
|
||||||
"block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z",
|
"block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z",
|
||||||
"block.create.zinc_ore": "\u01DD\u0279O \u0254u\u0131Z",
|
"block.create.zinc_ore": "\u01DD\u0279O \u0254u\u0131Z",
|
||||||
"entity.create.contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186",
|
"entity.create.contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186",
|
||||||
|
"entity.create.gantry_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0287u\u0250\u2141",
|
||||||
"entity.create.seat": "\u0287\u0250\u01DDS",
|
"entity.create.seat": "\u0287\u0250\u01DDS",
|
||||||
"entity.create.stationary_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0250uo\u0131\u0287\u0250\u0287S",
|
"entity.create.stationary_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u028E\u0279\u0250uo\u0131\u0287\u0250\u0287S",
|
||||||
"entity.create.super_glue": "\u01DDn\u05DF\u2141 \u0279\u01DDdnS",
|
"entity.create.super_glue": "\u01DDn\u05DF\u2141 \u0279\u01DDdnS",
|
||||||
|
|
|
@ -163,6 +163,8 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "Gabbro Cobblestone Stairs",
|
"block.create.gabbro_cobblestone_stairs": "Gabbro Cobblestone Stairs",
|
||||||
"block.create.gabbro_cobblestone_wall": "Gabbro Cobblestone Wall",
|
"block.create.gabbro_cobblestone_wall": "Gabbro Cobblestone Wall",
|
||||||
"block.create.gabbro_pillar": "Gabbro Pillar",
|
"block.create.gabbro_pillar": "Gabbro Pillar",
|
||||||
|
"block.create.gantry_pinion": "Gantry Pinion",
|
||||||
|
"block.create.gantry_shaft": "Gantry Shaft",
|
||||||
"block.create.gearbox": "Gearbox",
|
"block.create.gearbox": "Gearbox",
|
||||||
"block.create.gearshift": "Gearshift",
|
"block.create.gearshift": "Gearshift",
|
||||||
"block.create.glass_fluid_pipe": "Glass Fluid Pipe",
|
"block.create.glass_fluid_pipe": "Glass Fluid Pipe",
|
||||||
|
@ -369,6 +371,7 @@
|
||||||
"block.create.sequenced_gearshift": "Sequenced Gearshift",
|
"block.create.sequenced_gearshift": "Sequenced Gearshift",
|
||||||
"block.create.shadow_steel_casing": "Shadow Casing",
|
"block.create.shadow_steel_casing": "Shadow Casing",
|
||||||
"block.create.shaft": "Shaft",
|
"block.create.shaft": "Shaft",
|
||||||
|
"block.create.smart_chute": "Smart Chute",
|
||||||
"block.create.smart_fluid_pipe": "Smart Fluid Pipe",
|
"block.create.smart_fluid_pipe": "Smart Fluid Pipe",
|
||||||
"block.create.speedometer": "Speedometer",
|
"block.create.speedometer": "Speedometer",
|
||||||
"block.create.spout": "Spout",
|
"block.create.spout": "Spout",
|
||||||
|
@ -407,6 +410,7 @@
|
||||||
"block.create.zinc_ore": "Zinc Ore",
|
"block.create.zinc_ore": "Zinc Ore",
|
||||||
|
|
||||||
"entity.create.contraption": "Contraption",
|
"entity.create.contraption": "Contraption",
|
||||||
|
"entity.create.gantry_contraption": "Gantry Contraption",
|
||||||
"entity.create.seat": "Seat",
|
"entity.create.seat": "Seat",
|
||||||
"entity.create.stationary_contraption": "Stationary Contraption",
|
"entity.create.stationary_contraption": "Stationary Contraption",
|
||||||
"entity.create.super_glue": "Super Glue",
|
"entity.create.super_glue": "Super Glue",
|
||||||
|
@ -1085,6 +1089,7 @@
|
||||||
"create.tooltip.chute.fans_push_down": "Fans push from Above",
|
"create.tooltip.chute.fans_push_down": "Fans push from Above",
|
||||||
"create.tooltip.chute.fans_pull_up": "Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "Fans pull from Below",
|
||||||
|
"create.tooltip.chute.contains": "Contains: %1$s x%2$s",
|
||||||
|
|
||||||
"create.hint.hose_pulley.title": "Bottomless Supply",
|
"create.hint.hose_pulley.title": "Bottomless Supply",
|
||||||
"create.hint.hose_pulley": "The targeted body of fluid is considered infinite.",
|
"create.hint.hose_pulley": "The targeted body of fluid is considered infinite.",
|
||||||
|
|
|
@ -1,124 +1,124 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1213",
|
"_": "Missing Localizations: 1099",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
"block.create.acacia_window": "UNLOCALIZED: Acacia Window",
|
"block.create.acacia_window": "Akazienfenster",
|
||||||
"block.create.acacia_window_pane": "UNLOCALIZED: Acacia Window Pane",
|
"block.create.acacia_window_pane": "Akazienfensterscheibe",
|
||||||
"block.create.adjustable_chain_gearshift": "UNLOCALIZED: Adjustable Chain Gearshift",
|
"block.create.adjustable_chain_gearshift": "Verstellbares Kettengetriebe",
|
||||||
"block.create.adjustable_crate": "adjustable_crate",
|
"block.create.adjustable_crate": "Verstellbare Kiste",
|
||||||
"block.create.adjustable_pulse_repeater": "UNLOCALIZED: Adjustable Pulse Repeater",
|
"block.create.adjustable_pulse_repeater": "Verstellbarer Pulsverstärker",
|
||||||
"block.create.adjustable_repeater": "Verzögernder Verstärker",
|
"block.create.adjustable_repeater": "Verstellbarer Verstärker",
|
||||||
"block.create.analog_lever": "UNLOCALIZED: Analog Lever",
|
"block.create.analog_lever": "Analoger Schalter",
|
||||||
"block.create.andesite_belt_funnel": "UNLOCALIZED: Andesite Belt Funnel",
|
"block.create.andesite_belt_funnel": "Riementrichter aus Andesit",
|
||||||
"block.create.andesite_bricks": "Andesitziegel",
|
"block.create.andesite_bricks": "Andesitziegel",
|
||||||
"block.create.andesite_bricks_slab": "UNLOCALIZED: Andesite Bricks Slab",
|
"block.create.andesite_bricks_slab": "Andesitziegelstufe",
|
||||||
"block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs",
|
"block.create.andesite_bricks_stairs": "Andesitziegeltreppe",
|
||||||
"block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall",
|
"block.create.andesite_bricks_wall": "Andesitziegelmauer",
|
||||||
"block.create.andesite_casing": "UNLOCALIZED: Andesite Casing",
|
"block.create.andesite_casing": "Andesitrahmen",
|
||||||
"block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone",
|
"block.create.andesite_cobblestone": "Andesitbruchstein",
|
||||||
"block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab",
|
"block.create.andesite_cobblestone_slab": "Andesitbruchsteinstufe",
|
||||||
"block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs",
|
"block.create.andesite_cobblestone_stairs": "Andesitbruchsteintreppe",
|
||||||
"block.create.andesite_cobblestone_wall": "UNLOCALIZED: Andesite Cobblestone Wall",
|
"block.create.andesite_cobblestone_wall": "Andesitbruchsteinmauer",
|
||||||
"block.create.andesite_encased_shaft": "UNLOCALIZED: Andesite Encased Shaft",
|
"block.create.andesite_encased_shaft": "Andesitummantelte Welle",
|
||||||
"block.create.andesite_funnel": "UNLOCALIZED: Andesite Funnel",
|
"block.create.andesite_funnel": "Andesit Trichter",
|
||||||
"block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar",
|
"block.create.andesite_pillar": "Andesitsäule",
|
||||||
"block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel",
|
"block.create.andesite_tunnel": "Andesittunnel",
|
||||||
"block.create.basin": "UNLOCALIZED: Basin",
|
"block.create.basin": "Behälter",
|
||||||
"block.create.belt": "Mechanischer Riemen",
|
"block.create.belt": "Mechanischer Riemen",
|
||||||
"block.create.birch_window": "UNLOCALIZED: Birch Window",
|
"block.create.birch_window": "UNLOCALIZED: Birch Window",
|
||||||
"block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane",
|
"block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane",
|
||||||
"block.create.black_sail": "UNLOCALIZED: Black Sail",
|
"block.create.black_sail": "Schwarzes Segel",
|
||||||
"block.create.black_seat": "UNLOCALIZED: Black Seat",
|
"block.create.black_seat": "Schwarzer Sitz",
|
||||||
"block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle",
|
"block.create.black_valve_handle": "Schwarzer Ventilgriff",
|
||||||
"block.create.blaze_burner": "UNLOCALIZED: Blaze Burner",
|
"block.create.blaze_burner": "Lohenbrenner",
|
||||||
"block.create.blue_sail": "UNLOCALIZED: Blue Sail",
|
"block.create.blue_sail": "Blaues Segel",
|
||||||
"block.create.blue_seat": "UNLOCALIZED: Blue Seat",
|
"block.create.blue_seat": "Blauer Sitz",
|
||||||
"block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle",
|
"block.create.blue_valve_handle": "Blauer Ventilgriff",
|
||||||
"block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel",
|
"block.create.brass_belt_funnel": "Riementrichter aus Messing",
|
||||||
"block.create.brass_block": "UNLOCALIZED: Brass Block",
|
"block.create.brass_block": "Messing Block",
|
||||||
"block.create.brass_casing": "UNLOCALIZED: Brass Casing",
|
"block.create.brass_casing": "Messingrahmen",
|
||||||
"block.create.brass_encased_shaft": "UNLOCALIZED: Brass Encased Shaft",
|
"block.create.brass_encased_shaft": "Messingummantelte Welle",
|
||||||
"block.create.brass_funnel": "UNLOCALIZED: Brass Funnel",
|
"block.create.brass_funnel": "Messingtrichter",
|
||||||
"block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel",
|
"block.create.brass_tunnel": "Messingtunnel",
|
||||||
"block.create.brown_sail": "UNLOCALIZED: Brown Sail",
|
"block.create.brown_sail": "Braunes Segel",
|
||||||
"block.create.brown_seat": "UNLOCALIZED: Brown Seat",
|
"block.create.brown_seat": "Brauner Sitz",
|
||||||
"block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle",
|
"block.create.brown_valve_handle": "Brauner Ventilgriff",
|
||||||
"block.create.cart_assembler": "UNLOCALIZED: Cart Assembler",
|
"block.create.cart_assembler": "Lohrenmonteur",
|
||||||
"block.create.chiseled_dark_scoria": "UNLOCALIZED: Chiseled Dark Scoria",
|
"block.create.chiseled_dark_scoria": "Gemeißelte dunkle Schlacke",
|
||||||
"block.create.chiseled_dolomite": "UNLOCALIZED: Chiseled Dolomite",
|
"block.create.chiseled_dolomite": "Gemeißeltes Dolomit",
|
||||||
"block.create.chiseled_gabbro": "UNLOCALIZED: Chiseled Gabbro",
|
"block.create.chiseled_gabbro": "Gemeißeltes Gabbro",
|
||||||
"block.create.chiseled_limestone": "UNLOCALIZED: Chiseled Limestone",
|
"block.create.chiseled_limestone": "Gemeißelter Kalkstein",
|
||||||
"block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria",
|
"block.create.chiseled_scoria": "Gemeißelte Schlacke",
|
||||||
"block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone",
|
"block.create.chiseled_weathered_limestone": "Gemeißelter verwitterter Kalkstein",
|
||||||
"block.create.chocolate": "UNLOCALIZED: Chocolate",
|
"block.create.chocolate": "Schokolade",
|
||||||
"block.create.chute": "UNLOCALIZED: Chute",
|
"block.create.chute": "Rinne",
|
||||||
"block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing",
|
"block.create.clockwork_bearing": "Uhrwerk-Lager",
|
||||||
"block.create.clutch": "Kupplung",
|
"block.create.clutch": "Kupplung",
|
||||||
"block.create.cogwheel": "Zahnrad",
|
"block.create.cogwheel": "Zahnrad",
|
||||||
"block.create.content_observer": "UNLOCALIZED: Content Observer",
|
"block.create.content_observer": "Inhalts Beobachter",
|
||||||
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
|
"block.create.controller_rail": "Steureungsschiene",
|
||||||
"block.create.copper_block": "UNLOCALIZED: Copper Block",
|
"block.create.copper_block": "Kupfer Block",
|
||||||
"block.create.copper_casing": "UNLOCALIZED: Copper Casing",
|
"block.create.copper_casing": "Kupferrahmen",
|
||||||
"block.create.copper_ore": "UNLOCALIZED: Copper Ore",
|
"block.create.copper_ore": "Kupfererz",
|
||||||
"block.create.copper_shingles": "UNLOCALIZED: Copper Shingles",
|
"block.create.copper_shingles": "Kupferschindeln",
|
||||||
"block.create.copper_tiles": "UNLOCALIZED: Copper Tiles",
|
"block.create.copper_tiles": "Kupferfliesen",
|
||||||
"block.create.copper_valve_handle": "UNLOCALIZED: Copper Valve Handle",
|
"block.create.copper_valve_handle": "Kupfer Ventilgriff",
|
||||||
"block.create.creative_crate": "Bauplankanonenmacher",
|
"block.create.creative_crate": "Kreative anpassbare Kiste",
|
||||||
"block.create.creative_fluid_tank": "UNLOCALIZED: Creative Fluid Tank",
|
"block.create.creative_fluid_tank": "Kreativer Flüssigkeitstank",
|
||||||
"block.create.creative_motor": "UNLOCALIZED: Creative Motor",
|
"block.create.creative_motor": "Kreativer Motor",
|
||||||
"block.create.crimson_window": "UNLOCALIZED: Crimson Window",
|
"block.create.crimson_window": "UNLOCALIZED: Crimson Window",
|
||||||
"block.create.crimson_window_pane": "UNLOCALIZED: Crimson Window Pane",
|
"block.create.crimson_window_pane": "UNLOCALIZED: Crimson Window Pane",
|
||||||
"block.create.crushing_wheel": "Mahlwerkrad",
|
"block.create.crushing_wheel": "Mahlwerkrad",
|
||||||
"block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller",
|
"block.create.crushing_wheel_controller": "Mahlwerkrad Steurung",
|
||||||
"block.create.cuckoo_clock": "UNLOCALIZED: Cuckoo Clock",
|
"block.create.cuckoo_clock": "Kuckucksuhr",
|
||||||
"block.create.cyan_sail": "UNLOCALIZED: Cyan Sail",
|
"block.create.cyan_sail": "Türkises Segel",
|
||||||
"block.create.cyan_seat": "UNLOCALIZED: Cyan Seat",
|
"block.create.cyan_seat": "Türkiser Sitz",
|
||||||
"block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle",
|
"block.create.cyan_valve_handle": "Türkiser Ventilgriff",
|
||||||
"block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window",
|
"block.create.dark_oak_window": "Schwarzeichenholzfenster",
|
||||||
"block.create.dark_oak_window_pane": "UNLOCALIZED: Dark Oak Window Pane",
|
"block.create.dark_oak_window_pane": "Schwarzeichenholzfensterscheibe",
|
||||||
"block.create.dark_scoria": "UNLOCALIZED: Dark Scoria",
|
"block.create.dark_scoria": "Dunkle Schlacke",
|
||||||
"block.create.dark_scoria_bricks": "UNLOCALIZED: Dark Scoria Bricks",
|
"block.create.dark_scoria_bricks": "Dunkle Schlackenziegel",
|
||||||
"block.create.dark_scoria_bricks_slab": "UNLOCALIZED: Dark Scoria Bricks Slab",
|
"block.create.dark_scoria_bricks_slab": "Dunkle Schlackenziegelstufe",
|
||||||
"block.create.dark_scoria_bricks_stairs": "UNLOCALIZED: Dark Scoria Bricks Stairs",
|
"block.create.dark_scoria_bricks_stairs": "Dunkle Schlackenziegeltreppe",
|
||||||
"block.create.dark_scoria_bricks_wall": "UNLOCALIZED: Dark Scoria Bricks Wall",
|
"block.create.dark_scoria_bricks_wall": "Dunkle Schlackenziegelmauer",
|
||||||
"block.create.dark_scoria_cobblestone": "UNLOCALIZED: Dark Scoria Cobblestone",
|
"block.create.dark_scoria_cobblestone": "Dunkler Schlackebruchstein",
|
||||||
"block.create.dark_scoria_cobblestone_slab": "UNLOCALIZED: Dark Scoria Cobblestone Slab",
|
"block.create.dark_scoria_cobblestone_slab": "Dunkle Schlackebruchsteinstufe",
|
||||||
"block.create.dark_scoria_cobblestone_stairs": "UNLOCALIZED: Dark Scoria Cobblestone Stairs",
|
"block.create.dark_scoria_cobblestone_stairs": "Dunkle Schlackebruchsteintreppe",
|
||||||
"block.create.dark_scoria_cobblestone_wall": "UNLOCALIZED: Dark Scoria Cobblestone Wall",
|
"block.create.dark_scoria_cobblestone_wall": "Dunkle Schlackebruchsteinmauer",
|
||||||
"block.create.dark_scoria_pillar": "UNLOCALIZED: Dark Scoria Pillar",
|
"block.create.dark_scoria_pillar": "Dunkle Schlackesäule",
|
||||||
"block.create.deployer": "UNLOCALIZED: Deployer",
|
"block.create.deployer": "Einsatzgerät",
|
||||||
"block.create.depot": "UNLOCALIZED: Depot",
|
"block.create.depot": "Depot",
|
||||||
"block.create.diorite_bricks": "Dioritziegel",
|
"block.create.diorite_bricks": "Dioritziegel",
|
||||||
"block.create.diorite_bricks_slab": "UNLOCALIZED: Diorite Bricks Slab",
|
"block.create.diorite_bricks_slab": "Dioritziegelstufe",
|
||||||
"block.create.diorite_bricks_stairs": "UNLOCALIZED: Diorite Bricks Stairs",
|
"block.create.diorite_bricks_stairs": "Dioritziegeltreppe",
|
||||||
"block.create.diorite_bricks_wall": "UNLOCALIZED: Diorite Bricks Wall",
|
"block.create.diorite_bricks_wall": "Dioritziegelmauer",
|
||||||
"block.create.diorite_cobblestone": "UNLOCALIZED: Diorite Cobblestone",
|
"block.create.diorite_cobblestone": "Dioritbruchstein",
|
||||||
"block.create.diorite_cobblestone_slab": "UNLOCALIZED: Diorite Cobblestone Slab",
|
"block.create.diorite_cobblestone_slab": "Dioritbruchsteinstufe",
|
||||||
"block.create.diorite_cobblestone_stairs": "UNLOCALIZED: Diorite Cobblestone Stairs",
|
"block.create.diorite_cobblestone_stairs": "Dioritbruchsteintreppe",
|
||||||
"block.create.diorite_cobblestone_wall": "UNLOCALIZED: Diorite Cobblestone Wall",
|
"block.create.diorite_cobblestone_wall": "Dioritbruchsteinmauer",
|
||||||
"block.create.diorite_pillar": "UNLOCALIZED: Diorite Pillar",
|
"block.create.diorite_pillar": "Dioritsäule",
|
||||||
"block.create.dolomite": "Dolomit",
|
"block.create.dolomite": "Dolomit",
|
||||||
"block.create.dolomite_bricks": "Dolomitziegel",
|
"block.create.dolomite_bricks": "Dolomitziegel",
|
||||||
"block.create.dolomite_bricks_slab": "Dolomitziegelstufe",
|
"block.create.dolomite_bricks_slab": "Dolomitziegelstufe",
|
||||||
"block.create.dolomite_bricks_stairs": "Dolomitziegeltreppe",
|
"block.create.dolomite_bricks_stairs": "Dolomitziegeltreppe",
|
||||||
"block.create.dolomite_bricks_wall": "Dolomitziegelmauer",
|
"block.create.dolomite_bricks_wall": "Dolomitziegelmauer",
|
||||||
"block.create.dolomite_cobblestone": "UNLOCALIZED: Dolomite Cobblestone",
|
"block.create.dolomite_cobblestone": "Dolomitbruchstein",
|
||||||
"block.create.dolomite_cobblestone_slab": "UNLOCALIZED: Dolomite Cobblestone Slab",
|
"block.create.dolomite_cobblestone_slab": "Dolomitbruchsteinstufe",
|
||||||
"block.create.dolomite_cobblestone_stairs": "UNLOCALIZED: Dolomite Cobblestone Stairs",
|
"block.create.dolomite_cobblestone_stairs": "Dolomitbruchsteintreppe",
|
||||||
"block.create.dolomite_cobblestone_wall": "UNLOCALIZED: Dolomite Cobblestone Wall",
|
"block.create.dolomite_cobblestone_wall": "Dolomitbruchsteinmauer",
|
||||||
"block.create.dolomite_pillar": "Dolomitsäule",
|
"block.create.dolomite_pillar": "Dolomitsäule",
|
||||||
"block.create.encased_chain_drive": "UNLOCALIZED: Encased Chain Drive",
|
"block.create.encased_chain_drive": "Ummantelter Kettenriemen",
|
||||||
"block.create.encased_fan": "Eingeschlossener Propeller",
|
"block.create.encased_fan": "Ummantelter Lüfter",
|
||||||
"block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe",
|
"block.create.encased_fluid_pipe": "Ummanteltes Rohr",
|
||||||
"block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks",
|
"block.create.fancy_andesite_bricks": "Schicke Andesitziegel",
|
||||||
"block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab",
|
"block.create.fancy_andesite_bricks_slab": "Schicke Andesitziegelstufe",
|
||||||
"block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs",
|
"block.create.fancy_andesite_bricks_stairs": "Schicke Andesitziegeltreppe",
|
||||||
"block.create.fancy_andesite_bricks_wall": "UNLOCALIZED: Fancy Andesite Bricks Wall",
|
"block.create.fancy_andesite_bricks_wall": "Schicke Andesitziegelmauer",
|
||||||
"block.create.fancy_dark_scoria_bricks": "UNLOCALIZED: Fancy Dark Scoria Bricks",
|
"block.create.fancy_dark_scoria_bricks": "Schicke dunkle Schlackenziegel",
|
||||||
"block.create.fancy_dark_scoria_bricks_slab": "UNLOCALIZED: Fancy Dark Scoria Bricks Slab",
|
"block.create.fancy_dark_scoria_bricks_slab": "Schicke dunkle Schlackenziegelstufe",
|
||||||
"block.create.fancy_dark_scoria_bricks_stairs": "UNLOCALIZED: Fancy Dark Scoria Bricks Stairs",
|
"block.create.fancy_dark_scoria_bricks_stairs": "Schicke dunkle Schlackenziegeltreppe",
|
||||||
"block.create.fancy_dark_scoria_bricks_wall": "UNLOCALIZED: Fancy Dark Scoria Bricks Wall",
|
"block.create.fancy_dark_scoria_bricks_wall": "Schicke dunkle Schlackenziegelmauer",
|
||||||
"block.create.fancy_diorite_bricks": "UNLOCALIZED: Fancy Diorite Bricks",
|
"block.create.fancy_diorite_bricks": "UNLOCALIZED: Fancy Diorite Bricks",
|
||||||
"block.create.fancy_diorite_bricks_slab": "UNLOCALIZED: Fancy Diorite Bricks Slab",
|
"block.create.fancy_diorite_bricks_slab": "UNLOCALIZED: Fancy Diorite Bricks Slab",
|
||||||
"block.create.fancy_diorite_bricks_stairs": "UNLOCALIZED: Fancy Diorite Bricks Stairs",
|
"block.create.fancy_diorite_bricks_stairs": "UNLOCALIZED: Fancy Diorite Bricks Stairs",
|
||||||
|
@ -147,16 +147,16 @@
|
||||||
"block.create.fancy_weathered_limestone_bricks_slab": "UNLOCALIZED: Fancy Weathered Limestone Bricks Slab",
|
"block.create.fancy_weathered_limestone_bricks_slab": "UNLOCALIZED: Fancy Weathered Limestone Bricks Slab",
|
||||||
"block.create.fancy_weathered_limestone_bricks_stairs": "UNLOCALIZED: Fancy Weathered Limestone Bricks Stairs",
|
"block.create.fancy_weathered_limestone_bricks_stairs": "UNLOCALIZED: Fancy Weathered Limestone Bricks Stairs",
|
||||||
"block.create.fancy_weathered_limestone_bricks_wall": "UNLOCALIZED: Fancy Weathered Limestone Bricks Wall",
|
"block.create.fancy_weathered_limestone_bricks_wall": "UNLOCALIZED: Fancy Weathered Limestone Bricks Wall",
|
||||||
"block.create.fluid_pipe": "UNLOCALIZED: Fluid Pipe",
|
"block.create.fluid_pipe": "Wasserrohr",
|
||||||
"block.create.fluid_tank": "UNLOCALIZED: Fluid Tank",
|
"block.create.fluid_tank": "Wassertank",
|
||||||
"block.create.fluid_valve": "UNLOCALIZED: Fluid Valve",
|
"block.create.fluid_valve": "Flüssigkeitsventil",
|
||||||
"block.create.flywheel": "UNLOCALIZED: Flywheel",
|
"block.create.flywheel": "Schwungrad",
|
||||||
"block.create.framed_glass": "UNLOCALIZED: Framed Glass",
|
"block.create.framed_glass": "Gerahmtes Glas",
|
||||||
"block.create.framed_glass_pane": "UNLOCALIZED: Framed Glass Pane",
|
"block.create.framed_glass_pane": "Gerahmte Glasscheibe",
|
||||||
"block.create.furnace_engine": "UNLOCALIZED: Furnace Engine",
|
"block.create.furnace_engine": "UNLOCALIZED: Furnace Engine",
|
||||||
"block.create.gabbro": "Gabbro",
|
"block.create.gabbro": "Gabbro",
|
||||||
"block.create.gabbro_bricks": "Gabbroziegel",
|
"block.create.gabbro_bricks": "Gabbroziegel",
|
||||||
"block.create.gabbro_bricks_slab": "UNLOCALIZED: Gabbro Bricks Slab",
|
"block.create.gabbro_bricks_slab": "Gabbroziegelstufe",
|
||||||
"block.create.gabbro_bricks_stairs": "Gabbroziegeltreppe",
|
"block.create.gabbro_bricks_stairs": "Gabbroziegeltreppe",
|
||||||
"block.create.gabbro_bricks_wall": "Gabbroziegelmauer",
|
"block.create.gabbro_bricks_wall": "Gabbroziegelmauer",
|
||||||
"block.create.gabbro_cobblestone": "UNLOCALIZED: Gabbro Cobblestone",
|
"block.create.gabbro_cobblestone": "UNLOCALIZED: Gabbro Cobblestone",
|
||||||
|
@ -164,9 +164,11 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
|
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
|
||||||
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
|
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
|
||||||
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
|
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
|
||||||
|
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
|
||||||
|
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||||
"block.create.gearbox": "Getriebe",
|
"block.create.gearbox": "Getriebe",
|
||||||
"block.create.gearshift": "Gangschaltung",
|
"block.create.gearshift": "Gangschaltung",
|
||||||
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
|
"block.create.glass_fluid_pipe": "Glaswasserrohr",
|
||||||
"block.create.granite_bricks": "Granitziegel",
|
"block.create.granite_bricks": "Granitziegel",
|
||||||
"block.create.granite_bricks_slab": "UNLOCALIZED: Granite Bricks Slab",
|
"block.create.granite_bricks_slab": "UNLOCALIZED: Granite Bricks Slab",
|
||||||
"block.create.granite_bricks_stairs": "UNLOCALIZED: Granite Bricks Stairs",
|
"block.create.granite_bricks_stairs": "UNLOCALIZED: Granite Bricks Stairs",
|
||||||
|
@ -370,6 +372,7 @@
|
||||||
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
|
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
|
||||||
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
|
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
|
||||||
"block.create.shaft": "Welle",
|
"block.create.shaft": "Welle",
|
||||||
|
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
|
||||||
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
|
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
|
||||||
"block.create.speedometer": "UNLOCALIZED: Speedometer",
|
"block.create.speedometer": "UNLOCALIZED: Speedometer",
|
||||||
"block.create.spout": "UNLOCALIZED: Spout",
|
"block.create.spout": "UNLOCALIZED: Spout",
|
||||||
|
@ -408,6 +411,7 @@
|
||||||
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
|
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
|
||||||
|
|
||||||
"entity.create.contraption": "UNLOCALIZED: Contraption",
|
"entity.create.contraption": "UNLOCALIZED: Contraption",
|
||||||
|
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
|
||||||
"entity.create.seat": "UNLOCALIZED: Seat",
|
"entity.create.seat": "UNLOCALIZED: Seat",
|
||||||
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
|
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
|
||||||
"entity.create.super_glue": "UNLOCALIZED: Super Glue",
|
"entity.create.super_glue": "UNLOCALIZED: Super Glue",
|
||||||
|
@ -483,25 +487,25 @@
|
||||||
"item.create.wand_of_symmetry": "Symmetriestab",
|
"item.create.wand_of_symmetry": "Symmetriestab",
|
||||||
"item.create.wheat_flour": "UNLOCALIZED: Wheat Flour",
|
"item.create.wheat_flour": "UNLOCALIZED: Wheat Flour",
|
||||||
"item.create.whisk": "UNLOCALIZED: Whisk",
|
"item.create.whisk": "UNLOCALIZED: Whisk",
|
||||||
"item.create.wrench": "UNLOCALIZED: Wrench",
|
"item.create.wrench": "Schraubenschlüssel",
|
||||||
"item.create.zinc_ingot": "UNLOCALIZED: Zinc Ingot",
|
"item.create.zinc_ingot": "Zinkbarren",
|
||||||
"item.create.zinc_nugget": "UNLOCALIZED: Zinc Nugget",
|
"item.create.zinc_nugget": "Zinkklumpen",
|
||||||
|
|
||||||
|
|
||||||
"_": "->------------------------] Advancements [------------------------<-",
|
"_": "->------------------------] Advancements [------------------------<-",
|
||||||
|
|
||||||
"advancement.create.root": "UNLOCALIZED: Welcome to Create",
|
"advancement.create.root": "Willkommen zu Create",
|
||||||
"advancement.create.root.desc": "UNLOCALIZED: It's time to start building some amazing Contraptions!",
|
"advancement.create.root.desc": "Es ist Zeit mit dem Bauen von tollen Apparaten zu starten!",
|
||||||
"advancement.create.andesite_alloy": "UNLOCALIZED: Alliterations Aplenty",
|
"advancement.create.andesite_alloy": "Alliterationen in Massen",
|
||||||
"advancement.create.andesite_alloy.desc": "UNLOCALIZED: Create's materials have weird names, Andesite Alloy is one of them.",
|
"advancement.create.andesite_alloy.desc": "Create's Materialien haben verrückte Namen, Eisenlegierung ist im Deutschen leider keine.",
|
||||||
"advancement.create.its_alive": "UNLOCALIZED: It's Alive!",
|
"advancement.create.its_alive": "Es ist am leben!",
|
||||||
"advancement.create.its_alive.desc": "UNLOCALIZED: Watch your first kinetic component spin.",
|
"advancement.create.its_alive.desc": "Gucke deinem erstem beweglichen Teil beim drehen zu.",
|
||||||
"advancement.create.shifting_gears": "UNLOCALIZED: Shifting Gears",
|
"advancement.create.shifting_gears": "Wechsel deine Gänge",
|
||||||
"advancement.create.shifting_gears.desc": "UNLOCALIZED: Connect a Large Cogwheel to a Small Cogwheel, allowing you to change the speed of your contraption.",
|
"advancement.create.shifting_gears.desc": "Verbinde ein großes Zahnrad mit einem kleinem, um die Geschwindigkeit deiner Apparate zu verändern.",
|
||||||
"advancement.create.overstressed": "UNLOCALIZED: Overstressed",
|
"advancement.create.overstressed": "Überfordert",
|
||||||
"advancement.create.overstressed.desc": "UNLOCALIZED: Experience the limits of stress firsthand.",
|
"advancement.create.overstressed.desc": "Erfahre die Limits der Belastung aus erster Hand.",
|
||||||
"advancement.create.belt": "UNLOCALIZED: Kelp Drive",
|
"advancement.create.belt": "Befördere es alles",
|
||||||
"advancement.create.belt.desc": "UNLOCALIZED: Connect two shafts with a Mechanical Belt.",
|
"advancement.create.belt.desc": "Verbinde zwei Wllen mit einem Mechanischem Riemen",
|
||||||
"advancement.create.tunnel": "UNLOCALIZED: Take cover!",
|
"advancement.create.tunnel": "UNLOCALIZED: Take cover!",
|
||||||
"advancement.create.tunnel.desc": "UNLOCALIZED: Embellish your mechanical belt with a Tunnel.",
|
"advancement.create.tunnel.desc": "UNLOCALIZED: Embellish your mechanical belt with a Tunnel.",
|
||||||
"advancement.create.splitter_tunnel": "UNLOCALIZED: Divide and Conquer",
|
"advancement.create.splitter_tunnel": "UNLOCALIZED: Divide and Conquer",
|
||||||
|
@ -1086,6 +1090,7 @@
|
||||||
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
|
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
|
||||||
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
||||||
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
|
||||||
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
||||||
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
||||||
|
|
1792
src/generated/resources/assets/create/lang/unfinished/es_mx.json
Normal file
1792
src/generated/resources/assets/create/lang/unfinished/es_mx.json
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 54",
|
"_": "Missing Localizations: 59",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -164,6 +164,8 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "반려암 조약돌 계단",
|
"block.create.gabbro_cobblestone_stairs": "반려암 조약돌 계단",
|
||||||
"block.create.gabbro_cobblestone_wall": "반려암 조약돌 담장",
|
"block.create.gabbro_cobblestone_wall": "반려암 조약돌 담장",
|
||||||
"block.create.gabbro_pillar": "반려암 기둥",
|
"block.create.gabbro_pillar": "반려암 기둥",
|
||||||
|
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
|
||||||
|
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||||
"block.create.gearbox": "기어박스",
|
"block.create.gearbox": "기어박스",
|
||||||
"block.create.gearshift": "기어쉬프트",
|
"block.create.gearshift": "기어쉬프트",
|
||||||
"block.create.glass_fluid_pipe": "액체 파이프",
|
"block.create.glass_fluid_pipe": "액체 파이프",
|
||||||
|
@ -370,6 +372,7 @@
|
||||||
"block.create.sequenced_gearshift": "순서 기어쉬프트",
|
"block.create.sequenced_gearshift": "순서 기어쉬프트",
|
||||||
"block.create.shadow_steel_casing": "그림자 케이스",
|
"block.create.shadow_steel_casing": "그림자 케이스",
|
||||||
"block.create.shaft": "축",
|
"block.create.shaft": "축",
|
||||||
|
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
|
||||||
"block.create.smart_fluid_pipe": "스마트 액체 파이프",
|
"block.create.smart_fluid_pipe": "스마트 액체 파이프",
|
||||||
"block.create.speedometer": "속도 계측기",
|
"block.create.speedometer": "속도 계측기",
|
||||||
"block.create.spout": "수도꼭지",
|
"block.create.spout": "수도꼭지",
|
||||||
|
@ -408,6 +411,7 @@
|
||||||
"block.create.zinc_ore": "아연 광석",
|
"block.create.zinc_ore": "아연 광석",
|
||||||
|
|
||||||
"entity.create.contraption": "장치",
|
"entity.create.contraption": "장치",
|
||||||
|
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
|
||||||
"entity.create.seat": "좌석",
|
"entity.create.seat": "좌석",
|
||||||
"entity.create.stationary_contraption": "고정된 장치",
|
"entity.create.stationary_contraption": "고정된 장치",
|
||||||
"entity.create.super_glue": "강력 접착제",
|
"entity.create.super_glue": "강력 접착제",
|
||||||
|
@ -1086,6 +1090,7 @@
|
||||||
"create.tooltip.chute.fans_push_down": "선풍기가 위에서 밈",
|
"create.tooltip.chute.fans_push_down": "선풍기가 위에서 밈",
|
||||||
"create.tooltip.chute.fans_pull_up": "선풍기가 위에서 당김",
|
"create.tooltip.chute.fans_pull_up": "선풍기가 위에서 당김",
|
||||||
"create.tooltip.chute.fans_pull_down": "선풍기가 아래에서 당김",
|
"create.tooltip.chute.fans_pull_down": "선풍기가 아래에서 당김",
|
||||||
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
|
||||||
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
||||||
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1154",
|
"_": "Missing Localizations: 1159",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -164,6 +164,8 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
|
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
|
||||||
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
|
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
|
||||||
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
|
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
|
||||||
|
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
|
||||||
|
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||||
"block.create.gearbox": "Versnellingsbak",
|
"block.create.gearbox": "Versnellingsbak",
|
||||||
"block.create.gearshift": "Versnellingspook",
|
"block.create.gearshift": "Versnellingspook",
|
||||||
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
|
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
|
||||||
|
@ -370,6 +372,7 @@
|
||||||
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
|
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
|
||||||
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
|
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
|
||||||
"block.create.shaft": "Drijfas",
|
"block.create.shaft": "Drijfas",
|
||||||
|
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
|
||||||
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
|
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
|
||||||
"block.create.speedometer": "Snelheidsmeter",
|
"block.create.speedometer": "Snelheidsmeter",
|
||||||
"block.create.spout": "UNLOCALIZED: Spout",
|
"block.create.spout": "UNLOCALIZED: Spout",
|
||||||
|
@ -408,6 +411,7 @@
|
||||||
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
|
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
|
||||||
|
|
||||||
"entity.create.contraption": "UNLOCALIZED: Contraption",
|
"entity.create.contraption": "UNLOCALIZED: Contraption",
|
||||||
|
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
|
||||||
"entity.create.seat": "UNLOCALIZED: Seat",
|
"entity.create.seat": "UNLOCALIZED: Seat",
|
||||||
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
|
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
|
||||||
"entity.create.super_glue": "UNLOCALIZED: Super Glue",
|
"entity.create.super_glue": "UNLOCALIZED: Super Glue",
|
||||||
|
@ -1086,6 +1090,7 @@
|
||||||
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
|
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
|
||||||
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
||||||
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
|
||||||
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
||||||
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1220",
|
"_": "Missing Localizations: 1225",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -164,6 +164,8 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
|
"block.create.gabbro_cobblestone_stairs": "UNLOCALIZED: Gabbro Cobblestone Stairs",
|
||||||
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
|
"block.create.gabbro_cobblestone_wall": "UNLOCALIZED: Gabbro Cobblestone Wall",
|
||||||
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
|
"block.create.gabbro_pillar": "UNLOCALIZED: Gabbro Pillar",
|
||||||
|
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
|
||||||
|
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||||
"block.create.gearbox": "Caixa de Transmissão",
|
"block.create.gearbox": "Caixa de Transmissão",
|
||||||
"block.create.gearshift": "Câmbio",
|
"block.create.gearshift": "Câmbio",
|
||||||
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
|
"block.create.glass_fluid_pipe": "UNLOCALIZED: Glass Fluid Pipe",
|
||||||
|
@ -370,6 +372,7 @@
|
||||||
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
|
"block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift",
|
||||||
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
|
"block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing",
|
||||||
"block.create.shaft": "Eixo",
|
"block.create.shaft": "Eixo",
|
||||||
|
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
|
||||||
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
|
"block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe",
|
||||||
"block.create.speedometer": "UNLOCALIZED: Speedometer",
|
"block.create.speedometer": "UNLOCALIZED: Speedometer",
|
||||||
"block.create.spout": "UNLOCALIZED: Spout",
|
"block.create.spout": "UNLOCALIZED: Spout",
|
||||||
|
@ -408,6 +411,7 @@
|
||||||
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
|
"block.create.zinc_ore": "UNLOCALIZED: Zinc Ore",
|
||||||
|
|
||||||
"entity.create.contraption": "UNLOCALIZED: Contraption",
|
"entity.create.contraption": "UNLOCALIZED: Contraption",
|
||||||
|
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
|
||||||
"entity.create.seat": "UNLOCALIZED: Seat",
|
"entity.create.seat": "UNLOCALIZED: Seat",
|
||||||
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
|
"entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption",
|
||||||
"entity.create.super_glue": "UNLOCALIZED: Super Glue",
|
"entity.create.super_glue": "UNLOCALIZED: Super Glue",
|
||||||
|
@ -1086,6 +1090,7 @@
|
||||||
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
|
"create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above",
|
||||||
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
||||||
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
|
||||||
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
"create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply",
|
||||||
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
"create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 4",
|
"_": "Missing Localizations: 5",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
"block.create.andesite_cobblestone_slab": "Андезит-булыжниковая плита",
|
"block.create.andesite_cobblestone_slab": "Андезит-булыжниковая плита",
|
||||||
"block.create.andesite_cobblestone_stairs": "Андезит-булыжниковые ступени",
|
"block.create.andesite_cobblestone_stairs": "Андезит-булыжниковые ступени",
|
||||||
"block.create.andesite_cobblestone_wall": "Андезит-булыжниковая стена",
|
"block.create.andesite_cobblestone_wall": "Андезит-булыжниковая стена",
|
||||||
"block.create.andesite_encased_shaft": "Андезитовый вал в кожухе",
|
"block.create.andesite_encased_shaft": "Вал в андезитовом корпусе",
|
||||||
"block.create.andesite_funnel": "Андезитовая воронка",
|
"block.create.andesite_funnel": "Андезитовая воронка",
|
||||||
"block.create.andesite_pillar": "Андезитовая колонна",
|
"block.create.andesite_pillar": "Андезитовая колонна",
|
||||||
"block.create.andesite_tunnel": "Андезитовый туннель",
|
"block.create.andesite_tunnel": "Андезитовый туннель",
|
||||||
|
@ -30,20 +30,20 @@
|
||||||
"block.create.birch_window_pane": "Панель берёзового окна",
|
"block.create.birch_window_pane": "Панель берёзового окна",
|
||||||
"block.create.black_sail": "Чёрный парус",
|
"block.create.black_sail": "Чёрный парус",
|
||||||
"block.create.black_seat": "Чёрное сиденье",
|
"block.create.black_seat": "Чёрное сиденье",
|
||||||
"block.create.black_valve_handle": "Чёрная ручка крана",
|
"block.create.black_valve_handle": "Чёрный ручной вентиль",
|
||||||
"block.create.blaze_burner": "Горелка Всполоха",
|
"block.create.blaze_burner": "Горелка Всполоха",
|
||||||
"block.create.blue_sail": "Синий парус",
|
"block.create.blue_sail": "Синий парус",
|
||||||
"block.create.blue_seat": "Синее сиденье",
|
"block.create.blue_seat": "Синее сиденье",
|
||||||
"block.create.blue_valve_handle": "Синяя ручка крана",
|
"block.create.blue_valve_handle": "Синий ручной вентиль",
|
||||||
"block.create.brass_belt_funnel": "Латунная конвейерная воронка",
|
"block.create.brass_belt_funnel": "Латунная конвейерная воронка",
|
||||||
"block.create.brass_block": "Латунный блок",
|
"block.create.brass_block": "Латунный блок",
|
||||||
"block.create.brass_casing": "Латунный корпус",
|
"block.create.brass_casing": "Латунный корпус",
|
||||||
"block.create.brass_encased_shaft": "Латунный вал в кожухе",
|
"block.create.brass_encased_shaft": "Вал в латунном корпусе",
|
||||||
"block.create.brass_funnel": "Латунная воронка",
|
"block.create.brass_funnel": "Латунная воронка",
|
||||||
"block.create.brass_tunnel": "Латунный туннель",
|
"block.create.brass_tunnel": "Латунный туннель",
|
||||||
"block.create.brown_sail": "Коричневый парус",
|
"block.create.brown_sail": "Коричневый парус",
|
||||||
"block.create.brown_seat": "Коричневое сиденье",
|
"block.create.brown_seat": "Коричневое сиденье",
|
||||||
"block.create.brown_valve_handle": "Коричневая ручка крана",
|
"block.create.brown_valve_handle": "Коричневый ручной вентиль",
|
||||||
"block.create.cart_assembler": "Сборщик вагонеток",
|
"block.create.cart_assembler": "Сборщик вагонеток",
|
||||||
"block.create.chiseled_dark_scoria": "Резной тёмный пепел",
|
"block.create.chiseled_dark_scoria": "Резной тёмный пепел",
|
||||||
"block.create.chiseled_dolomite": "Резной доломит",
|
"block.create.chiseled_dolomite": "Резной доломит",
|
||||||
|
@ -63,22 +63,22 @@
|
||||||
"block.create.copper_ore": "Медная руда",
|
"block.create.copper_ore": "Медная руда",
|
||||||
"block.create.copper_shingles": "Медная черепица",
|
"block.create.copper_shingles": "Медная черепица",
|
||||||
"block.create.copper_tiles": "Медная плитка",
|
"block.create.copper_tiles": "Медная плитка",
|
||||||
"block.create.copper_valve_handle": "Медная ручка крана",
|
"block.create.copper_valve_handle": "Медный ручной вентиль",
|
||||||
"block.create.creative_crate": "Творческий ящик",
|
"block.create.creative_crate": "Творческий ящик",
|
||||||
"block.create.creative_fluid_tank": "Творческиф жидкостный бак",
|
"block.create.creative_fluid_tank": "Творческий жидкостный бак",
|
||||||
"block.create.creative_motor": "Творческий мотор",
|
"block.create.creative_motor": "Творческий мотор",
|
||||||
"block.create.crimson_window": "UNLOCALIZED: Crimson Window",
|
"block.create.crimson_window": "Багровое окно",
|
||||||
"block.create.crimson_window_pane": "UNLOCALIZED: Crimson Window Pane",
|
"block.create.crimson_window_pane": "Панель из багрового окна",
|
||||||
"block.create.crushing_wheel": "Колесо дробления",
|
"block.create.crushing_wheel": "Колесо дробления",
|
||||||
"block.create.crushing_wheel_controller": "Контроллер колеса дробления",
|
"block.create.crushing_wheel_controller": "Контроллер колеса дробления",
|
||||||
"block.create.cuckoo_clock": "Часы с кукушкой",
|
"block.create.cuckoo_clock": "Часы с кукушкой",
|
||||||
"block.create.cyan_sail": "Бирюзовый парус",
|
"block.create.cyan_sail": "Бирюзовый парус",
|
||||||
"block.create.cyan_seat": "Бирюзовое сииденье",
|
"block.create.cyan_seat": "Бирюзовое сииденье",
|
||||||
"block.create.cyan_valve_handle": "Бирюзовая ручка крана",
|
"block.create.cyan_valve_handle": "Бирюзовый ручной вентиль",
|
||||||
"block.create.dark_oak_window": "Окно из тёмного дуба",
|
"block.create.dark_oak_window": "Окно из тёмного дуба",
|
||||||
"block.create.dark_oak_window_pane": "Панель из окна из тёмного дуб",
|
"block.create.dark_oak_window_pane": "Панель из окна из тёмного дуб",
|
||||||
"block.create.dark_scoria": "Тёмный пепел",
|
"block.create.dark_scoria": "Тёмный пепел",
|
||||||
"block.create.dark_scoria_bricks": "Тёмные пепельный кирпич",
|
"block.create.dark_scoria_bricks": "Тёмный пепельный кирпич",
|
||||||
"block.create.dark_scoria_bricks_slab": "Плита из тёмного пепельного кирпича",
|
"block.create.dark_scoria_bricks_slab": "Плита из тёмного пепельного кирпича",
|
||||||
"block.create.dark_scoria_bricks_stairs": "Ступени из тёмного пепельного кирпича",
|
"block.create.dark_scoria_bricks_stairs": "Ступени из тёмного пепельного кирпича",
|
||||||
"block.create.dark_scoria_bricks_wall": "Стена из тёмного пепельного кирпича",
|
"block.create.dark_scoria_bricks_wall": "Стена из тёмного пепельного кирпича",
|
||||||
|
@ -108,9 +108,9 @@
|
||||||
"block.create.dolomite_cobblestone_stairs": "Ступени доломит-булыжника",
|
"block.create.dolomite_cobblestone_stairs": "Ступени доломит-булыжника",
|
||||||
"block.create.dolomite_cobblestone_wall": "Стена доломит-булыжника",
|
"block.create.dolomite_cobblestone_wall": "Стена доломит-булыжника",
|
||||||
"block.create.dolomite_pillar": "Доломитовая колонна",
|
"block.create.dolomite_pillar": "Доломитовая колонна",
|
||||||
"block.create.encased_chain_drive": "Цепной привод в кожухе",
|
"block.create.encased_chain_drive": "Цепной привод в корпусе",
|
||||||
"block.create.encased_fan": "Вентилятор в кожухе",
|
"block.create.encased_fan": "Вентилятор в корпусе",
|
||||||
"block.create.encased_fluid_pipe": "Жидкостная труба в кожухе",
|
"block.create.encased_fluid_pipe": "Жидкостная труба в корпусе",
|
||||||
"block.create.fancy_andesite_bricks": "Красивый андезитовый кирпич",
|
"block.create.fancy_andesite_bricks": "Красивый андезитовый кирпич",
|
||||||
"block.create.fancy_andesite_bricks_slab": "Плита из красивого андезитового кирпича",
|
"block.create.fancy_andesite_bricks_slab": "Плита из красивого андезитового кирпича",
|
||||||
"block.create.fancy_andesite_bricks_stairs": "Ступени из красивого андезитового кирпича",
|
"block.create.fancy_andesite_bricks_stairs": "Ступени из красивого андезитового кирпича",
|
||||||
|
@ -149,7 +149,7 @@
|
||||||
"block.create.fancy_weathered_limestone_bricks_wall": "Стена из красивого выветренного известнякового кирпича",
|
"block.create.fancy_weathered_limestone_bricks_wall": "Стена из красивого выветренного известнякового кирпича",
|
||||||
"block.create.fluid_pipe": "Жидкостная труба",
|
"block.create.fluid_pipe": "Жидкостная труба",
|
||||||
"block.create.fluid_tank": "Жидкостный бак",
|
"block.create.fluid_tank": "Жидкостный бак",
|
||||||
"block.create.fluid_valve": "Жидкостный вентиль",
|
"block.create.fluid_valve": "Жидкостный клапан",
|
||||||
"block.create.flywheel": "Маховик",
|
"block.create.flywheel": "Маховик",
|
||||||
"block.create.framed_glass": "Обрамлённое стекло",
|
"block.create.framed_glass": "Обрамлённое стекло",
|
||||||
"block.create.framed_glass_pane": "Обрамлённая стеклянная панель",
|
"block.create.framed_glass_pane": "Обрамлённая стеклянная панель",
|
||||||
|
@ -164,6 +164,8 @@
|
||||||
"block.create.gabbro_cobblestone_stairs": "Ступени из габбро-булыжника",
|
"block.create.gabbro_cobblestone_stairs": "Ступени из габбро-булыжника",
|
||||||
"block.create.gabbro_cobblestone_wall": "Стена из габбро-булыжника",
|
"block.create.gabbro_cobblestone_wall": "Стена из габбро-булыжника",
|
||||||
"block.create.gabbro_pillar": "Габбро колонна",
|
"block.create.gabbro_pillar": "Габбро колонна",
|
||||||
|
"block.create.gantry_pinion": "UNLOCALIZED: Gantry Pinion",
|
||||||
|
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||||
"block.create.gearbox": "Коробка передач",
|
"block.create.gearbox": "Коробка передач",
|
||||||
"block.create.gearshift": "Реверсивный механизм",
|
"block.create.gearshift": "Реверсивный механизм",
|
||||||
"block.create.glass_fluid_pipe": "Стеклянная жидкостная труба",
|
"block.create.glass_fluid_pipe": "Стеклянная жидкостная труба",
|
||||||
|
@ -178,15 +180,15 @@
|
||||||
"block.create.granite_pillar": "Гранитная колонна",
|
"block.create.granite_pillar": "Гранитная колонна",
|
||||||
"block.create.gray_sail": "Серый парус",
|
"block.create.gray_sail": "Серый парус",
|
||||||
"block.create.gray_seat": "Серое сиденье",
|
"block.create.gray_seat": "Серое сиденье",
|
||||||
"block.create.gray_valve_handle": "Серная ручка крана",
|
"block.create.gray_valve_handle": "Серый ручной вентиль",
|
||||||
"block.create.green_sail": "Зелёный парус",
|
"block.create.green_sail": "Зелёный парус",
|
||||||
"block.create.green_seat": "Зелёное сиденье",
|
"block.create.green_seat": "Зелёное сиденье",
|
||||||
"block.create.green_valve_handle": "Зелёная ручка крана",
|
"block.create.green_valve_handle": "Зелёный ручной вентиль",
|
||||||
"block.create.hand_crank": "Рукоятка",
|
"block.create.hand_crank": "Рукоятка",
|
||||||
"block.create.honey": "Мёд",
|
"block.create.honey": "Мёд",
|
||||||
"block.create.horizontal_framed_glass": "Горизонтальное обрамлённое стекло",
|
"block.create.horizontal_framed_glass": "Горизонтальное обрамлённое стекло",
|
||||||
"block.create.horizontal_framed_glass_pane": "Горизонтальная обрамлённая стеклянная панель",
|
"block.create.horizontal_framed_glass_pane": "Горизонтальная обрамлённая стеклянная панель",
|
||||||
"block.create.hose_pulley": "Шкив для шланга",
|
"block.create.hose_pulley": "Шкив с шлангом",
|
||||||
"block.create.item_drain": "Предметный осушитель",
|
"block.create.item_drain": "Предметный осушитель",
|
||||||
"block.create.jungle_window": "Окно из тропического дерева",
|
"block.create.jungle_window": "Окно из тропического дерева",
|
||||||
"block.create.jungle_window_pane": "Панель окна из тропического дерева",
|
"block.create.jungle_window_pane": "Панель окна из тропического дерева",
|
||||||
|
@ -202,13 +204,13 @@
|
||||||
"block.create.layered_weathered_limestone": "Слоистый выветренный известняк",
|
"block.create.layered_weathered_limestone": "Слоистый выветренный известняк",
|
||||||
"block.create.light_blue_sail": "Голубой парус",
|
"block.create.light_blue_sail": "Голубой парус",
|
||||||
"block.create.light_blue_seat": "Голубое сиденье",
|
"block.create.light_blue_seat": "Голубое сиденье",
|
||||||
"block.create.light_blue_valve_handle": "Голубая ручка крана",
|
"block.create.light_blue_valve_handle": "Голубой ручной вентиль",
|
||||||
"block.create.light_gray_sail": "Светло-серый парус",
|
"block.create.light_gray_sail": "Светло-серый парус",
|
||||||
"block.create.light_gray_seat": "Светло-серое сиденье",
|
"block.create.light_gray_seat": "Светло-серое сиденье",
|
||||||
"block.create.light_gray_valve_handle": "Светло-серая ручка крана",
|
"block.create.light_gray_valve_handle": "Светло-серый ручной вентиль",
|
||||||
"block.create.lime_sail": "Лаймовый парус",
|
"block.create.lime_sail": "Лаймовый парус",
|
||||||
"block.create.lime_seat": "Лаймовое сиденье",
|
"block.create.lime_seat": "Лаймовое сиденье",
|
||||||
"block.create.lime_valve_handle": "Лаймовая ручка крана",
|
"block.create.lime_valve_handle": "Лаймовый ручной вентиль",
|
||||||
"block.create.limesand": "Известковый песок",
|
"block.create.limesand": "Известковый песок",
|
||||||
"block.create.limestone": "Известняк",
|
"block.create.limestone": "Известняк",
|
||||||
"block.create.limestone_bricks": "Известняковый кирпич",
|
"block.create.limestone_bricks": "Известняковый кирпич",
|
||||||
|
@ -224,7 +226,7 @@
|
||||||
"block.create.lit_blaze_burner": "Зажжёная горелка Всполоха",
|
"block.create.lit_blaze_burner": "Зажжёная горелка Всполоха",
|
||||||
"block.create.magenta_sail": "Пурпурный парус",
|
"block.create.magenta_sail": "Пурпурный парус",
|
||||||
"block.create.magenta_seat": "Пурпурное сиденье",
|
"block.create.magenta_seat": "Пурпурное сиденье",
|
||||||
"block.create.magenta_valve_handle": "Пурпурная ручка крана",
|
"block.create.magenta_valve_handle": "Пурпурный ручной вентиль",
|
||||||
"block.create.mechanical_arm": "Механическая рука",
|
"block.create.mechanical_arm": "Механическая рука",
|
||||||
"block.create.mechanical_bearing": "Механический вращатель",
|
"block.create.mechanical_bearing": "Механический вращатель",
|
||||||
"block.create.mechanical_crafter": "Механический крафтер",
|
"block.create.mechanical_crafter": "Механический крафтер",
|
||||||
|
@ -237,7 +239,7 @@
|
||||||
"block.create.mechanical_press": "Механический пресс",
|
"block.create.mechanical_press": "Механический пресс",
|
||||||
"block.create.mechanical_pump": "Механическая помпа",
|
"block.create.mechanical_pump": "Механическая помпа",
|
||||||
"block.create.mechanical_saw": "Механическая пила",
|
"block.create.mechanical_saw": "Механическая пила",
|
||||||
"block.create.metal_bracket": "Металлический кронштейн",
|
"block.create.metal_bracket": "Металлическая скоба",
|
||||||
"block.create.millstone": "Жернов",
|
"block.create.millstone": "Жернов",
|
||||||
"block.create.minecart_anchor": "Вагонеточный якорь",
|
"block.create.minecart_anchor": "Вагонеточный якорь",
|
||||||
"block.create.mossy_andesite": "Замшелый андезит",
|
"block.create.mossy_andesite": "Замшелый андезит",
|
||||||
|
@ -257,7 +259,7 @@
|
||||||
"block.create.oak_window_pane": "Панель из дубового окна",
|
"block.create.oak_window_pane": "Панель из дубового окна",
|
||||||
"block.create.orange_sail": "Оранжевый парус",
|
"block.create.orange_sail": "Оранжевый парус",
|
||||||
"block.create.orange_seat": "Оранжевое сиденье",
|
"block.create.orange_seat": "Оранжевое сиденье",
|
||||||
"block.create.orange_valve_handle": "Оранжевая ручка крана",
|
"block.create.orange_valve_handle": "Оранжевый ручной вентиль",
|
||||||
"block.create.ornate_iron_window": "Украшенное железное окно",
|
"block.create.ornate_iron_window": "Украшенное железное окно",
|
||||||
"block.create.ornate_iron_window_pane": "Панель из украшенного железного окна",
|
"block.create.ornate_iron_window_pane": "Панель из украшенного железного окна",
|
||||||
"block.create.overgrown_andesite": "Заросший андезит",
|
"block.create.overgrown_andesite": "Заросший андезит",
|
||||||
|
@ -307,7 +309,7 @@
|
||||||
"block.create.paved_weathered_limestone_wall": "Стена из мощёного выветренного известняка",
|
"block.create.paved_weathered_limestone_wall": "Стена из мощёного выветренного известняка",
|
||||||
"block.create.pink_sail": "Розовый парус",
|
"block.create.pink_sail": "Розовый парус",
|
||||||
"block.create.pink_seat": "Розовое сиденье",
|
"block.create.pink_seat": "Розовое сиденье",
|
||||||
"block.create.pink_valve_handle": "Розовая ручка крана",
|
"block.create.pink_valve_handle": "Розовый ручной вентиль",
|
||||||
"block.create.piston_extension_pole": "Удлинитель поршня",
|
"block.create.piston_extension_pole": "Удлинитель поршня",
|
||||||
"block.create.polished_dark_scoria": "Полированный тёмный пепел",
|
"block.create.polished_dark_scoria": "Полированный тёмный пепел",
|
||||||
"block.create.polished_dark_scoria_slab": "Плита из полированного тёмного пепла",
|
"block.create.polished_dark_scoria_slab": "Плита из полированного тёмного пепла",
|
||||||
|
@ -337,15 +339,15 @@
|
||||||
"block.create.portable_storage_interface": "Портативный интерфейс хранения",
|
"block.create.portable_storage_interface": "Портативный интерфейс хранения",
|
||||||
"block.create.powered_latch": "Механизированная защёлка",
|
"block.create.powered_latch": "Механизированная защёлка",
|
||||||
"block.create.powered_toggle_latch": "Механизированная рычаг-защёлка",
|
"block.create.powered_toggle_latch": "Механизированная рычаг-защёлка",
|
||||||
"block.create.pulley_magnet": "Шкивный магнит",
|
"block.create.pulley_magnet": "Магнитный шкив",
|
||||||
"block.create.pulse_repeater": "Импульсный повторитель",
|
"block.create.pulse_repeater": "Импульсный повторитель",
|
||||||
"block.create.purple_sail": "Фиолетовый парус",
|
"block.create.purple_sail": "Фиолетовый парус",
|
||||||
"block.create.purple_seat": "Фиолетовое сиденье",
|
"block.create.purple_seat": "Фиолетовое сиденье",
|
||||||
"block.create.purple_valve_handle": "Фиолетовая ручка крана",
|
"block.create.purple_valve_handle": "Фиолетовый ручной вентиль",
|
||||||
"block.create.radial_chassis": "Радиальное шасси",
|
"block.create.radial_chassis": "Радиальное шасси",
|
||||||
"block.create.red_sail": "Красный парус",
|
"block.create.red_sail": "Красный парус",
|
||||||
"block.create.red_seat": "Красное сиденье",
|
"block.create.red_seat": "Красное сиденье",
|
||||||
"block.create.red_valve_handle": "Красная ручка крана",
|
"block.create.red_valve_handle": "Красный ручной вентиль",
|
||||||
"block.create.redstone_contact": "Контакт сигнала красного камня",
|
"block.create.redstone_contact": "Контакт сигнала красного камня",
|
||||||
"block.create.redstone_link": "Беспроводной передатчик сигнала красного камня",
|
"block.create.redstone_link": "Беспроводной передатчик сигнала красного камня",
|
||||||
"block.create.refined_radiance_casing": "Сияющий корпус",
|
"block.create.refined_radiance_casing": "Сияющий корпус",
|
||||||
|
@ -368,11 +370,12 @@
|
||||||
"block.create.scoria_pillar": "Колонна из пепла",
|
"block.create.scoria_pillar": "Колонна из пепла",
|
||||||
"block.create.secondary_linear_chassis": "Вторичное линейное шасси",
|
"block.create.secondary_linear_chassis": "Вторичное линейное шасси",
|
||||||
"block.create.sequenced_gearshift": "Последовательный переключатель передач",
|
"block.create.sequenced_gearshift": "Последовательный переключатель передач",
|
||||||
"block.create.shadow_steel_casing": "Теневой кожух",
|
"block.create.shadow_steel_casing": "Теневой корпус",
|
||||||
"block.create.shaft": "Вал",
|
"block.create.shaft": "Вал",
|
||||||
|
"block.create.smart_chute": "UNLOCALIZED: Smart Chute",
|
||||||
"block.create.smart_fluid_pipe": "Умная жидкостная труба",
|
"block.create.smart_fluid_pipe": "Умная жидкостная труба",
|
||||||
"block.create.speedometer": "Спидометр",
|
"block.create.speedometer": "Спидометр",
|
||||||
"block.create.spout": "Слив",
|
"block.create.spout": "Дозатор",
|
||||||
"block.create.spruce_window": "Еловое окно",
|
"block.create.spruce_window": "Еловое окно",
|
||||||
"block.create.spruce_window_pane": "Панель из елового окна",
|
"block.create.spruce_window_pane": "Панель из елового окна",
|
||||||
"block.create.sticky_mechanical_piston": "Липкий механический поршень",
|
"block.create.sticky_mechanical_piston": "Липкий механический поршень",
|
||||||
|
@ -383,8 +386,8 @@
|
||||||
"block.create.turntable": "Поворотный стол",
|
"block.create.turntable": "Поворотный стол",
|
||||||
"block.create.vertical_framed_glass": "Вертикальное обрамлённое стекло",
|
"block.create.vertical_framed_glass": "Вертикальное обрамлённое стекло",
|
||||||
"block.create.vertical_framed_glass_pane": "Вертикальная обрамлённая стеклянная панель",
|
"block.create.vertical_framed_glass_pane": "Вертикальная обрамлённая стеклянная панель",
|
||||||
"block.create.warped_window": "UNLOCALIZED: Warped Window",
|
"block.create.warped_window": "Искаженное окно",
|
||||||
"block.create.warped_window_pane": "UNLOCALIZED: Warped Window Pane",
|
"block.create.warped_window_pane": "Панель из искаженного окна",
|
||||||
"block.create.water_wheel": "Водяное колесо",
|
"block.create.water_wheel": "Водяное колесо",
|
||||||
"block.create.weathered_limestone": "Выветренный известняк",
|
"block.create.weathered_limestone": "Выветренный известняк",
|
||||||
"block.create.weathered_limestone_bricks": "Выветренный известняковый кирпич",
|
"block.create.weathered_limestone_bricks": "Выветренный известняковый кирпич",
|
||||||
|
@ -398,17 +401,18 @@
|
||||||
"block.create.weathered_limestone_pillar": "Колонна из выветренного известняка",
|
"block.create.weathered_limestone_pillar": "Колонна из выветренного известняка",
|
||||||
"block.create.white_sail": "Белый парус",
|
"block.create.white_sail": "Белый парус",
|
||||||
"block.create.white_seat": "Белое сиденье",
|
"block.create.white_seat": "Белое сиденье",
|
||||||
"block.create.white_valve_handle": "Белая ручка крана",
|
"block.create.white_valve_handle": "Белый ручной вентиль",
|
||||||
"block.create.windmill_bearing": "Подшипник ветряной мельницы",
|
"block.create.windmill_bearing": "Подшипник ветряной мельницы",
|
||||||
"block.create.wooden_bracket": "Деревянный кронштейн",
|
"block.create.wooden_bracket": "Деревянная скоба",
|
||||||
"block.create.yellow_sail": "Жёлтый парус",
|
"block.create.yellow_sail": "Жёлтый парус",
|
||||||
"block.create.yellow_seat": "Жёлтое сиденье",
|
"block.create.yellow_seat": "Жёлтое сиденье",
|
||||||
"block.create.yellow_valve_handle": "Жёлтая ручка крана",
|
"block.create.yellow_valve_handle": "Жёлтый ручной вентиль",
|
||||||
"block.create.zinc_block": "Цинковый блок",
|
"block.create.zinc_block": "Цинковый блок",
|
||||||
"block.create.zinc_ore": "Цинковая руда",
|
"block.create.zinc_ore": "Цинковая руда",
|
||||||
|
|
||||||
"entity.create.contraption": "Штуковина",
|
"entity.create.contraption": "Штуковина",
|
||||||
"entity.create.seat": "сиденье",
|
"entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption",
|
||||||
|
"entity.create.seat": "Сиденье",
|
||||||
"entity.create.stationary_contraption": "Стационарная штуковина",
|
"entity.create.stationary_contraption": "Стационарная штуковина",
|
||||||
"entity.create.super_glue": "Супер-клей",
|
"entity.create.super_glue": "Супер-клей",
|
||||||
|
|
||||||
|
@ -430,25 +434,25 @@
|
||||||
"item.create.chest_minecart_contraption": "Сундуко-вагонеточная штуковина",
|
"item.create.chest_minecart_contraption": "Сундуко-вагонеточная штуковина",
|
||||||
"item.create.chocolate_bucket": "Ведро шоколада",
|
"item.create.chocolate_bucket": "Ведро шоколада",
|
||||||
"item.create.chromatic_compound": "Хроматический компаунд",
|
"item.create.chromatic_compound": "Хроматический компаунд",
|
||||||
"item.create.cinder_flour": "Пепельная мука",
|
"item.create.cinder_flour": "Незераковая пыль",
|
||||||
"item.create.copper_ingot": "Медный слиток",
|
"item.create.copper_ingot": "Медный слиток",
|
||||||
"item.create.copper_nugget": "Кусочек меди",
|
"item.create.copper_nugget": "Кусочек меди",
|
||||||
"item.create.copper_sheet": "Медный лист",
|
"item.create.copper_sheet": "Медный лист",
|
||||||
"item.create.crafter_slot_cover": "Крышка на слот крафтера",
|
"item.create.crafter_slot_cover": "Крышка на слот крафтера",
|
||||||
"item.create.crushed_aluminum_ore": "Измельчённая алюминиевая руда",
|
"item.create.crushed_aluminum_ore": "Измельчённая алюминиевая руда",
|
||||||
"item.create.crushed_brass": "Дробленая латунь",
|
"item.create.crushed_brass": "Дроблёная латунь",
|
||||||
"item.create.crushed_copper_ore": "Измельчённая медная руда",
|
"item.create.crushed_copper_ore": "Дроблёная медная руда",
|
||||||
"item.create.crushed_gold_ore": "Измельчённая золотая руда",
|
"item.create.crushed_gold_ore": "Дроблёная золотая руда",
|
||||||
"item.create.crushed_iron_ore": "Измельчённая железная руда",
|
"item.create.crushed_iron_ore": "Дроблёная железная руда",
|
||||||
"item.create.crushed_lead_ore": "Измельчённая свинцовая руда",
|
"item.create.crushed_lead_ore": "Дроблёная свинцовая руда",
|
||||||
"item.create.crushed_nickel_ore": "Измельчённая никелевая руда",
|
"item.create.crushed_nickel_ore": "Дроблёная никелевая руда",
|
||||||
"item.create.crushed_osmium_ore": "Измельчённая осмиевая руда",
|
"item.create.crushed_osmium_ore": "Дроблёная осмиевая руда",
|
||||||
"item.create.crushed_platinum_ore": "Измельчённая платиновая руда",
|
"item.create.crushed_platinum_ore": "Дроблёная платиновая руда",
|
||||||
"item.create.crushed_quicksilver_ore": "Измельчённая ртутная руда",
|
"item.create.crushed_quicksilver_ore": "Дроблёная ртутная руда",
|
||||||
"item.create.crushed_silver_ore": "Измельчённая серебрянная руда",
|
"item.create.crushed_silver_ore": "Дроблёная серебрянная руда",
|
||||||
"item.create.crushed_tin_ore": "Измельчённая оловянная руда",
|
"item.create.crushed_tin_ore": "Дроблёная оловянная руда",
|
||||||
"item.create.crushed_uranium_ore": "Измельчённая урановая руда",
|
"item.create.crushed_uranium_ore": "Дроблёная урановая руда",
|
||||||
"item.create.crushed_zinc_ore": "Измельчённая цинковая руда",
|
"item.create.crushed_zinc_ore": "Дроблёная цинковая руда",
|
||||||
"item.create.deforester": "Уничтожитель леса",
|
"item.create.deforester": "Уничтожитель леса",
|
||||||
"item.create.dough": "Тесто",
|
"item.create.dough": "Тесто",
|
||||||
"item.create.electron_tube": "Электронная лампа",
|
"item.create.electron_tube": "Электронная лампа",
|
||||||
|
@ -503,15 +507,15 @@
|
||||||
"advancement.create.belt": "Передайте за проезд!",
|
"advancement.create.belt": "Передайте за проезд!",
|
||||||
"advancement.create.belt.desc": "Соедините два вала с помощью механического ремня.",
|
"advancement.create.belt.desc": "Соедините два вала с помощью механического ремня.",
|
||||||
"advancement.create.tunnel": "В укрытие!",
|
"advancement.create.tunnel": "В укрытие!",
|
||||||
"advancement.create.tunnel.desc": "Украсьте свой механический ремень Туннелем.",
|
"advancement.create.tunnel.desc": "Украсьте свой конвейер туннелем.",
|
||||||
"advancement.create.splitter_tunnel": "Разделяй и властвуй",
|
"advancement.create.splitter_tunnel": "Разделяй и властвуй",
|
||||||
"advancement.create.splitter_tunnel.desc": "Создайте разделитель из группы латунных туннелей..",
|
"advancement.create.splitter_tunnel.desc": "Создайте разделитель из группы латунных туннелей.",
|
||||||
"advancement.create.chute": "Упало",
|
"advancement.create.chute": "Упало",
|
||||||
"advancement.create.chute.desc": "Разместите желоб, вертикальный аналог ремня.",
|
"advancement.create.chute.desc": "Разместите желоб, вертикальный аналог конвейера.",
|
||||||
"advancement.create.upward_chute": "Воздушное похищение",
|
"advancement.create.upward_chute": "Воздушное похищение",
|
||||||
"advancement.create.upward_chute.desc": "Посмотрите как предмет засасывается в желоб с вентилятором.",
|
"advancement.create.upward_chute.desc": "Посмотрите как предмет засасывается в желоб с вентилятором.",
|
||||||
"advancement.create.belt_funnel": "Болтающиеся воронки",
|
"advancement.create.belt_funnel": "Болтающиеся воронки",
|
||||||
"advancement.create.belt_funnel.desc": "Поместите воронку боком, сверху ремня или депо, чтобы создать её специальный тип.",
|
"advancement.create.belt_funnel.desc": "Поместите воронку боком, сверху конвейера или депо, чтобы создать её специальный тип.",
|
||||||
"advancement.create.belt_funnel_kiss": "Механический ужин",
|
"advancement.create.belt_funnel_kiss": "Механический ужин",
|
||||||
"advancement.create.belt_funnel_kiss.desc": "Заставте две смонтированные на ремнях воронки поцеловаться.",
|
"advancement.create.belt_funnel_kiss.desc": "Заставте две смонтированные на ремнях воронки поцеловаться.",
|
||||||
"advancement.create.fan": "Механический маг воздуха",
|
"advancement.create.fan": "Механический маг воздуха",
|
||||||
|
@ -531,9 +535,9 @@
|
||||||
"advancement.create.stressometer": "Так сильно?",
|
"advancement.create.stressometer": "Так сильно?",
|
||||||
"advancement.create.stressometer.desc": "Поставьте и подключите динамометр. Посмотрите на динамометр через очки, чтобы прочитать точное значение.",
|
"advancement.create.stressometer.desc": "Поставьте и подключите динамометр. Посмотрите на динамометр через очки, чтобы прочитать точное значение.",
|
||||||
"advancement.create.aesthetics": "Бах! Эстетично!",
|
"advancement.create.aesthetics": "Бах! Эстетично!",
|
||||||
"advancement.create.aesthetics.desc": "Разместите кронштейн на валу, трубе или шестерне.",
|
"advancement.create.aesthetics.desc": "Разместите скобы на валу, трубе или шестерне.",
|
||||||
"advancement.create.reinforced": "Бах! Усилено!",
|
"advancement.create.reinforced": "Бах! Усилено!",
|
||||||
"advancement.create.reinforced.desc": "Разместите подходящий блок корпуса на вал, трубу и механический ремень.",
|
"advancement.create.reinforced.desc": "Разместите подходящий блок корпуса на вал, трубу и конвейер.",
|
||||||
"advancement.create.water_wheel": "Гидравлика",
|
"advancement.create.water_wheel": "Гидравлика",
|
||||||
"advancement.create.water_wheel.desc": "Поставьте водяное колесо и попытайтесь заставить его вращаться!",
|
"advancement.create.water_wheel.desc": "Поставьте водяное колесо и попытайтесь заставить его вращаться!",
|
||||||
"advancement.create.chocolate_wheel": "Вкусная сила",
|
"advancement.create.chocolate_wheel": "Вкусная сила",
|
||||||
|
@ -569,15 +573,15 @@
|
||||||
"advancement.create.compact": "Автоматическое уплотнение",
|
"advancement.create.compact": "Автоматическое уплотнение",
|
||||||
"advancement.create.compact.desc": "Используйте пресс и чашу для уплотнения некоторых предметов.",
|
"advancement.create.compact.desc": "Используйте пресс и чашу для уплотнения некоторых предметов.",
|
||||||
"advancement.create.brass": "Действительный сплав",
|
"advancement.create.brass": "Действительный сплав",
|
||||||
"advancement.create.brass.desc": "Используйте измельчённую медь и измельчённый цинк, чтобы создать немного латуни.",
|
"advancement.create.brass.desc": "Используйте дроблёную медь и дроблёный цинк, чтобы создать немного латуни.",
|
||||||
"advancement.create.brass_casing": "Бронзовый век",
|
"advancement.create.brass_casing": "Бронзовый век",
|
||||||
"advancement.create.brass_casing.desc": "Используйте только что полученную латунь и немного дерева, чтобы создать более продвинутый корпус.",
|
"advancement.create.brass_casing.desc": "Используйте только что полученную латунь и немного дерева, чтобы создать более продвинутый корпус.",
|
||||||
"advancement.create.copper_casing": "Медный век",
|
"advancement.create.copper_casing": "Медный век",
|
||||||
"advancement.create.copper_casing.desc": "Используйте несколько медных листов для создания медного корпуса.",
|
"advancement.create.copper_casing.desc": "Используйте несколько медных листов для создания медного корпуса.",
|
||||||
"advancement.create.spout": "Буль",
|
"advancement.create.spout": "Буль",
|
||||||
"advancement.create.spout.desc": "Посмотрите как предмет наполняется с помощью Слива.",
|
"advancement.create.spout.desc": "Посмотрите как предмет наполняется с помощью Дозатора.",
|
||||||
"advancement.create.spout_potion": "Основательная пивоварня",
|
"advancement.create.spout_potion": "Основательная пивоварня",
|
||||||
"advancement.create.spout_potion.desc": "Посмотрите как Слив наполняет бутылку зельем.",
|
"advancement.create.spout_potion.desc": "Посмотрите как Дозатор наполняет бутылку зельем.",
|
||||||
"advancement.create.chocolate": "Сказочный мир",
|
"advancement.create.chocolate": "Сказочный мир",
|
||||||
"advancement.create.chocolate.desc": "Получите ведро расплавленного шоколада.",
|
"advancement.create.chocolate.desc": "Получите ведро расплавленного шоколада.",
|
||||||
"advancement.create.item_drain": "Осушение",
|
"advancement.create.item_drain": "Осушение",
|
||||||
|
@ -669,16 +673,16 @@
|
||||||
|
|
||||||
"create.recipe.crushing": "Измельчение",
|
"create.recipe.crushing": "Измельчение",
|
||||||
"create.recipe.milling": "Помол",
|
"create.recipe.milling": "Помол",
|
||||||
"create.recipe.fan_washing": "Объёмная промывка",
|
"create.recipe.fan_washing": "Массовая промывка",
|
||||||
"create.recipe.fan_washing.fan": "Вентилятор за текущей водой",
|
"create.recipe.fan_washing.fan": "Вентилятор за текущей водой",
|
||||||
"create.recipe.fan_smoking": "Объёмное копчение",
|
"create.recipe.fan_smoking": "Массовое копчение",
|
||||||
"create.recipe.fan_smoking.fan": "Вентилятор за горящим огнём",
|
"create.recipe.fan_smoking.fan": "Вентилятор за горящим огнём",
|
||||||
"create.recipe.fan_blasting": "Объёмное плавление",
|
"create.recipe.fan_blasting": "Массовое плавление",
|
||||||
"create.recipe.fan_blasting.fan": "Вентилятор за текущей лавой",
|
"create.recipe.fan_blasting.fan": "Вентилятор за текущей лавой",
|
||||||
"create.recipe.pressing": "Прессование",
|
"create.recipe.pressing": "Прессование",
|
||||||
"create.recipe.mixing": "Смешивание",
|
"create.recipe.mixing": "Смешивание",
|
||||||
"create.recipe.automatic_shapeless": "Автоматическая бесформенная сборка",
|
"create.recipe.automatic_shapeless": "Автоматическая бесформенная сборка",
|
||||||
"create.recipe.automatic_brewing": "Автоматической смешивание",
|
"create.recipe.automatic_brewing": "Автоматическое смешивание",
|
||||||
"create.recipe.packing": "Прессование",
|
"create.recipe.packing": "Прессование",
|
||||||
"create.recipe.automatic_packing": "Автоматическая упаковка",
|
"create.recipe.automatic_packing": "Автоматическая упаковка",
|
||||||
"create.recipe.sawing": "Распиливание",
|
"create.recipe.sawing": "Распиливание",
|
||||||
|
@ -688,7 +692,7 @@
|
||||||
"create.recipe.blockzapper_upgrade": "Ручная блоковая пушка",
|
"create.recipe.blockzapper_upgrade": "Ручная блоковая пушка",
|
||||||
"create.recipe.sandpaper_polishing": "Полировка наждачной бумагой",
|
"create.recipe.sandpaper_polishing": "Полировка наждачной бумагой",
|
||||||
"create.recipe.mystery_conversion": "Хроматический метаморфоз",
|
"create.recipe.mystery_conversion": "Хроматический метаморфоз",
|
||||||
"create.recipe.spout_filling": "Заполнение сливом",
|
"create.recipe.spout_filling": "Заполнение дозатором",
|
||||||
"create.recipe.draining": "Осушение предметов",
|
"create.recipe.draining": "Осушение предметов",
|
||||||
"create.recipe.processing.chance": "%1$s%% шанса",
|
"create.recipe.processing.chance": "%1$s%% шанса",
|
||||||
"create.recipe.heat_requirement.none": "Не требует нагрева",
|
"create.recipe.heat_requirement.none": "Не требует нагрева",
|
||||||
|
@ -837,7 +841,7 @@
|
||||||
"create.gui.stockpile_switch.invert_signal": "Инвертировать сигнал",
|
"create.gui.stockpile_switch.invert_signal": "Инвертировать сигнал",
|
||||||
"create.gui.stockpile_switch.move_to_lower_at": "Двигаться к нижней линии при %1$s%%",
|
"create.gui.stockpile_switch.move_to_lower_at": "Двигаться к нижней линии при %1$s%%",
|
||||||
"create.gui.stockpile_switch.move_to_upper_at": "Двигаться к верхней линии при %1$s%%",
|
"create.gui.stockpile_switch.move_to_upper_at": "Двигаться к верхней линии при %1$s%%",
|
||||||
"create.gui.sequenced_gearshift.title": "Посл. переключ. передач",
|
"create.gui.sequenced_gearshift.title": "Последовательное переключение передач",
|
||||||
"create.gui.sequenced_gearshift.instruction": "Инструкция",
|
"create.gui.sequenced_gearshift.instruction": "Инструкция",
|
||||||
"create.gui.sequenced_gearshift.instruction.turn_angle": "Повернуть",
|
"create.gui.sequenced_gearshift.instruction.turn_angle": "Повернуть",
|
||||||
"create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Угол",
|
"create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Угол",
|
||||||
|
@ -992,7 +996,7 @@
|
||||||
"create.item_attributes.not_stackable": "не может складываться",
|
"create.item_attributes.not_stackable": "не может складываться",
|
||||||
"create.item_attributes.not_stackable.inverted": "складывается",
|
"create.item_attributes.not_stackable.inverted": "складывается",
|
||||||
"create.item_attributes.equipable": "может быть надет",
|
"create.item_attributes.equipable": "может быть надет",
|
||||||
"create.item_attributes.equipable.inverted": "не ожет быть надет",
|
"create.item_attributes.equipable.inverted": "не может быть надет",
|
||||||
"create.item_attributes.furnace_fuel": "является топливом",
|
"create.item_attributes.furnace_fuel": "является топливом",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "не является топливом",
|
"create.item_attributes.furnace_fuel.inverted": "не является топливом",
|
||||||
"create.item_attributes.in_tag": "помечен %1$s",
|
"create.item_attributes.in_tag": "помечен %1$s",
|
||||||
|
@ -1081,11 +1085,12 @@
|
||||||
"create.tooltip.chute.header": "Инвормация о желобе",
|
"create.tooltip.chute.header": "Инвормация о желобе",
|
||||||
"create.tooltip.chute.items_move_down": "Предметы двигаются вниз",
|
"create.tooltip.chute.items_move_down": "Предметы двигаются вниз",
|
||||||
"create.tooltip.chute.items_move_up": "Предметы двигаются вверх",
|
"create.tooltip.chute.items_move_up": "Предметы двигаются вверх",
|
||||||
"create.tooltip.chute.no_fans_attached": "Нед подключеных вентиляторов",
|
"create.tooltip.chute.no_fans_attached": "Нет подключеных вентиляторов",
|
||||||
"create.tooltip.chute.fans_push_up": "Вентилятор толкает снизу",
|
"create.tooltip.chute.fans_push_up": "Вентилятор толкает снизу",
|
||||||
"create.tooltip.chute.fans_push_down": "Вентилятор толкает сверху",
|
"create.tooltip.chute.fans_push_down": "Вентилятор толкает сверху",
|
||||||
"create.tooltip.chute.fans_pull_up": "Вентилятор тянет сверху",
|
"create.tooltip.chute.fans_pull_up": "Вентилятор тянет сверху",
|
||||||
"create.tooltip.chute.fans_pull_down": "Вентилятор тянет снизу",
|
"create.tooltip.chute.fans_pull_down": "Вентилятор тянет снизу",
|
||||||
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
|
||||||
"create.hint.hose_pulley.title": "Безграничное снабжение",
|
"create.hint.hose_pulley.title": "Безграничное снабжение",
|
||||||
"create.hint.hose_pulley": "Целевой водный резервуар считается бесконечным.",
|
"create.hint.hose_pulley": "Целевой водный резервуар считается бесконечным.",
|
||||||
|
@ -1102,11 +1107,11 @@
|
||||||
|
|
||||||
"create.gui.config.overlay1": "Привет :)",
|
"create.gui.config.overlay1": "Привет :)",
|
||||||
"create.gui.config.overlay2": "Это образец оверлея",
|
"create.gui.config.overlay2": "Это образец оверлея",
|
||||||
"create.gui.config.overlay3": "кликни и тащи с помощью мыши",
|
"create.gui.config.overlay3": "Кликни и тащи с помощью мыши",
|
||||||
"create.gui.config.overlay4": "чтобы переместить его",
|
"create.gui.config.overlay4": "чтобы переместить его",
|
||||||
"create.gui.config.overlay5": "Нажми ESC чтобы выйти",
|
"create.gui.config.overlay5": "Нажми ESC чтобы выйти",
|
||||||
"create.gui.config.overlay6": "и сохранить новую позицию",
|
"create.gui.config.overlay6": "и сохранить новую позицию",
|
||||||
"create.gui.config.overlay7": "Запусти /create overlay reset",
|
"create.gui.config.overlay7": "Введи /create overlay reset",
|
||||||
"create.gui.config.overlay8": "чтобы сбросить позицию до стандартной",
|
"create.gui.config.overlay8": "чтобы сбросить позицию до стандартной",
|
||||||
|
|
||||||
"create.command.killTPSCommand": "killtps",
|
"create.command.killTPSCommand": "killtps",
|
||||||
|
@ -1141,10 +1146,10 @@
|
||||||
"item.create.example_item.tooltip.action1": "These controls are displayed.",
|
"item.create.example_item.tooltip.action1": "These controls are displayed.",
|
||||||
|
|
||||||
"block.create.andesite_encased_shaft.tooltip": "ANDESITE ENCASED SHAFT",
|
"block.create.andesite_encased_shaft.tooltip": "ANDESITE ENCASED SHAFT",
|
||||||
"block.create.andesite_encased_shaft.tooltip.summary": "_Креативный предмет_. Установите кожух на вал, находящийся _в мире_ импользуя _Андезитовый корпус_. Блоки корпуса не будут использованы.",
|
"block.create.andesite_encased_shaft.tooltip.summary": "_Креативный предмет_. Установите корпус на вал, находящийся _в мире_ импользуя _Андезитовый корпус_. Блоки корпуса не будут использованы.",
|
||||||
|
|
||||||
"block.create.brass_encased_shaft.tooltip": "BRASS ENCASED SHAFT",
|
"block.create.brass_encased_shaft.tooltip": "BRASS ENCASED SHAFT",
|
||||||
"block.create.brass_encased_shaft.tooltip.summary": "_Креативный предмет_. Установите кожух на вал, находящийся _в мире_ импользуя _Латунный корпус_. Блоки корпуса не будут использованы.",
|
"block.create.brass_encased_shaft.tooltip.summary": "_Креативный предмет_. Установите корпус на вал, находящийся _в мире_ импользуя _Латунный корпус_. Блоки корпуса не будут использованы.",
|
||||||
|
|
||||||
"block.create.wooden_bracket.tooltip": "WOODEN BRACKET",
|
"block.create.wooden_bracket.tooltip": "WOODEN BRACKET",
|
||||||
"block.create.wooden_bracket.tooltip.summary": "_Украсьте_ ваши _валы, шестерни_ и _трубы_, используя уютное деревянное укрепление.",
|
"block.create.wooden_bracket.tooltip.summary": "_Украсьте_ ваши _валы, шестерни_ и _трубы_, используя уютное деревянное укрепление.",
|
||||||
|
@ -1165,7 +1170,7 @@
|
||||||
"block.create.andesite_funnel.tooltip.behaviour3": "Будет _транспортировать_ предметы _вниз_, как воронка без буфера.",
|
"block.create.andesite_funnel.tooltip.behaviour3": "Будет _транспортировать_ предметы _вниз_, как воронка без буфера.",
|
||||||
|
|
||||||
"block.create.andesite_tunnel.tooltip": "ANDESITE TUNNEL",
|
"block.create.andesite_tunnel.tooltip": "ANDESITE TUNNEL",
|
||||||
"block.create.andesite_tunnel.tooltip.summary": "Защитное покрытие для ваших _Механических ремней_! _Андезитовые туннели_ могут отделять один предмет от стака, когда еще один механический ремень или депо расположены рядом с соновным ремнём.",
|
"block.create.andesite_tunnel.tooltip.summary": "Защитное покрытие для вашего _Конвейера_! _Андезитовые туннели_ могут отделять один предмет от стака, когда еще один механический ремень или депо расположены рядом с соновным ремнём.",
|
||||||
"block.create.andesite_tunnel.tooltip.control1": "Правый клик Гаечным ключом по стороне",
|
"block.create.andesite_tunnel.tooltip.control1": "Правый клик Гаечным ключом по стороне",
|
||||||
"block.create.andesite_tunnel.tooltip.action1": "_Регулирует оконные ставни_, если на этой стороне туннеля есть окно.",
|
"block.create.andesite_tunnel.tooltip.action1": "_Регулирует оконные ставни_, если на этой стороне туннеля есть окно.",
|
||||||
|
|
||||||
|
@ -1181,7 +1186,7 @@
|
||||||
"block.create.brass_tunnel.tooltip": "BRASS TUNNEL",
|
"block.create.brass_tunnel.tooltip": "BRASS TUNNEL",
|
||||||
"block.create.brass_tunnel.tooltip.summary": "Красивое покрытие для ваших _Механических ремней_! _Латунные туннели_ так же поставляются с фильтрами и возможностью разделения стаков ваших предметов.",
|
"block.create.brass_tunnel.tooltip.summary": "Красивое покрытие для ваших _Механических ремней_! _Латунные туннели_ так же поставляются с фильтрами и возможностью разделения стаков ваших предметов.",
|
||||||
"block.create.brass_tunnel.tooltip.condition1": "При размещении бок о бок",
|
"block.create.brass_tunnel.tooltip.condition1": "При размещении бок о бок",
|
||||||
"block.create.brass_tunnel.tooltip.behaviour1": "_Латунные туннели_ соединяются с другими, позволяя перенаправить поток предметов с одного _ремня_ на другой.",
|
"block.create.brass_tunnel.tooltip.behaviour1": "_Латунные туннели_ соединяются с другими, позволяя перенаправить поток предметов с одного _конвейера_ на другой.",
|
||||||
"block.create.brass_tunnel.tooltip.condition2": "Фильтрация",
|
"block.create.brass_tunnel.tooltip.condition2": "Фильтрация",
|
||||||
"block.create.brass_tunnel.tooltip.behaviour2": "_Латунные тунелли_ поставляюстя с фильтрами, для _входа_ и _выхода_. Если _предмет_ не соответствует _фильтру_, он будет перенаправлен на выход соседнего _туннеля_.",
|
"block.create.brass_tunnel.tooltip.behaviour2": "_Латунные тунелли_ поставляюстя с фильтрами, для _входа_ и _выхода_. Если _предмет_ не соответствует _фильтру_, он будет перенаправлен на выход соседнего _туннеля_.",
|
||||||
"block.create.brass_tunnel.tooltip.condition3": "Разделение",
|
"block.create.brass_tunnel.tooltip.condition3": "Разделение",
|
||||||
|
@ -1194,7 +1199,7 @@
|
||||||
"block.create.copper_casing.tooltip": "COPPER CASING",
|
"block.create.copper_casing.tooltip": "COPPER CASING",
|
||||||
"block.create.copper_casing.tooltip.summary": "Прочный машинный корпус для разнообразного использования. Безопасно для украшения.",
|
"block.create.copper_casing.tooltip.summary": "Прочный машинный корпус для разнообразного использования. Безопасно для украшения.",
|
||||||
"block.create.copper_casing.tooltip.condition1": "При использовании на жидкостной трубе",
|
"block.create.copper_casing.tooltip.condition1": "При использовании на жидкостной трубе",
|
||||||
"block.create.copper_casing.tooltip.behaviour1": "Покрывает _жидкостную трубу_ _кожухом_. Трубы в кожухе _закрепят свои соединения_ и не будут соединятся с другими трубами, расположенными по соседству.",
|
"block.create.copper_casing.tooltip.behaviour1": "Покрывает _жидкостную трубу_ _корпусом_. Трубы в корпусе _закрепят свои соединения_ и не будут соединятся с другими трубами, расположенными по соседству.",
|
||||||
|
|
||||||
"block.create.encased_fluid_pipe.tooltip": "ENCASED FLUID PIPE",
|
"block.create.encased_fluid_pipe.tooltip": "ENCASED FLUID PIPE",
|
||||||
"block.create.encased_fluid_pipe.tooltip.summary": "_Труба_ в _Медном корпусе_.",
|
"block.create.encased_fluid_pipe.tooltip.summary": "_Труба_ в _Медном корпусе_.",
|
||||||
|
@ -1212,12 +1217,12 @@
|
||||||
"block.create.chute.tooltip": "CHUTE",
|
"block.create.chute.tooltip": "CHUTE",
|
||||||
"block.create.chute.tooltip.summary": "_Собирает_ и транспортирует предметы по вертикали и диагонали. Может как брать так класть предметы в _контейнеры_. Вы так же можете взаиодействовать с желобом, разместив сбоку воронку.",
|
"block.create.chute.tooltip.summary": "_Собирает_ и транспортирует предметы по вертикали и диагонали. Может как брать так класть предметы в _контейнеры_. Вы так же можете взаиодействовать с желобом, разместив сбоку воронку.",
|
||||||
"block.create.chute.tooltip.condition1": "Если соединено с вентилятором",
|
"block.create.chute.tooltip.condition1": "Если соединено с вентилятором",
|
||||||
"block.create.chute.tooltip.behaviour1": "Соеденённые с _вентилятором_ желоба могут двигать _предметы_ вверх, и засасывать их с _ремней_ и _депо_.",
|
"block.create.chute.tooltip.behaviour1": "Соеденённые с _вентилятором_ желоба могут двигать _предметы_ вверх, и засасывать их с _конвейера_ и _депо_.",
|
||||||
|
|
||||||
"block.create.depot.tooltip": "DEPOT",
|
"block.create.depot.tooltip": "DEPOT",
|
||||||
"block.create.depot.tooltip.summary": "Полезное место куда вы можете класть свои _предметы_. Обеспечивает точку взаимодействия для некоторых машин",
|
"block.create.depot.tooltip.summary": "Полезное место куда вы можете класть свои _предметы_. Обеспечивает точку взаимодействия для некоторых машин",
|
||||||
"block.create.depot.tooltip.condition1": "При правом клике",
|
"block.create.depot.tooltip.condition1": "При правом клике",
|
||||||
"block.create.depot.tooltip.behaviour1": "Размещает или забирает _предмет_ с _Депо_. _Блоки_ и _Устройства_, которые могут взаимодействовать с _ремнём_, так же работают с _Депо_.",
|
"block.create.depot.tooltip.behaviour1": "Размещает или забирает _предмет_ с _Депо_. _Блоки_ и _Устройства_, которые могут взаимодействовать с _конвейером_, так же работают с _Депо_.",
|
||||||
|
|
||||||
"item.create.blaze_cake.tooltip": "BLAZE CAKE",
|
"item.create.blaze_cake.tooltip": "BLAZE CAKE",
|
||||||
"item.create.blaze_cake.tooltip.summary": "Вкусное угощения для вашей трудяги _Горелки Всполоха_. Зажигает их всех!",
|
"item.create.blaze_cake.tooltip.summary": "Вкусное угощения для вашей трудяги _Горелки Всполоха_. Зажигает их всех!",
|
||||||
|
@ -1249,7 +1254,7 @@
|
||||||
"block.create.fluid_tank.tooltip.behaviour1": "Переключает опциональное отображение окна",
|
"block.create.fluid_tank.tooltip.behaviour1": "Переключает опциональное отображение окна",
|
||||||
|
|
||||||
"block.create.creative_fluid_tank.tooltip": "CREATIVE FLUID TANK",
|
"block.create.creative_fluid_tank.tooltip": "CREATIVE FLUID TANK",
|
||||||
"block.create.creative_fluid_tank.tooltip.summary": "Этот _Жидкостный бак_ позволяет бесконечную репликацию любой жидкости. Скалируется в высоту и ширину.",
|
"block.create.creative_fluid_tank.tooltip.summary": "Этот _Жидкостный бак_ позволяет иметь бесконечную репликацию любой жидкости. Скалируется в высоту и ширину.",
|
||||||
"block.create.creative_fluid_tank.tooltip.condition1": "Когда жидкость в баке",
|
"block.create.creative_fluid_tank.tooltip.condition1": "Когда жидкость в баке",
|
||||||
"block.create.creative_fluid_tank.tooltip.behaviour1": "Всё что _извлекает_ из бака, будет снабжаться _бесконечным запасом_ жидкости. Жидкости _закачивающиеся_ в бак будут _удаляться_.",
|
"block.create.creative_fluid_tank.tooltip.behaviour1": "Всё что _извлекает_ из бака, будет снабжаться _бесконечным запасом_ жидкости. Жидкости _закачивающиеся_ в бак будут _удаляться_.",
|
||||||
"block.create.creative_fluid_tank.tooltip.condition2": "Правый клик с гаечным ключом",
|
"block.create.creative_fluid_tank.tooltip.condition2": "Правый клик с гаечным ключом",
|
||||||
|
@ -1277,9 +1282,9 @@
|
||||||
"block.create.spout.tooltip": "SPOUT",
|
"block.create.spout.tooltip": "SPOUT",
|
||||||
"block.create.spout.tooltip.summary": "Форсунка для пополнения предметов, имеющих возможность хранить жидкость.",
|
"block.create.spout.tooltip.summary": "Форсунка для пополнения предметов, имеющих возможность хранить жидкость.",
|
||||||
"block.create.spout.tooltip.condition1": "Транспортировка жидкости",
|
"block.create.spout.tooltip.condition1": "Транспортировка жидкости",
|
||||||
"block.create.spout.tooltip.behaviour1": "Когда предмет, _с возможностью содержать жидкость_, такой как _ведро_ или _бутылочка_, размещён под сливом, слив будет пытаться заполнить предмет содержащейся в нём _жидкостью_.",
|
"block.create.spout.tooltip.behaviour1": "Когда предмет, _с возможностью содержать жидкость_, такой как _ведро_ или _бутылочка_, размещён под дозатором, дозатор будет пытаться заполнить предмет содержащейся в нём _жидкостью_.",
|
||||||
"block.create.spout.tooltip.condition2": "Автоматизация жидкости",
|
"block.create.spout.tooltip.condition2": "Автоматизация жидкости",
|
||||||
"block.create.spout.tooltip.behaviour2": "Слив расположеный над _ремнём_ или _депо_ будет автоматически взаимодействовать с _предметами, которые могут содержать жидкость_, которые проходят под ним.",
|
"block.create.spout.tooltip.behaviour2": "Дозатор расположеный над _конвейером_ или _депо_ будет автоматически взаимодействовать с _предметами, которые могут содержать жидкость_, которые проходят под ним.",
|
||||||
|
|
||||||
"block.create.item_drain.tooltip": "ITEM DRAIN",
|
"block.create.item_drain.tooltip": "ITEM DRAIN",
|
||||||
"block.create.item_drain.tooltip.summary": "Депо с решёткой, которое может выкачивать _жидкость_ из ваших _предметов_",
|
"block.create.item_drain.tooltip.summary": "Депо с решёткой, которое может выкачивать _жидкость_ из ваших _предметов_",
|
||||||
|
@ -1289,7 +1294,7 @@
|
||||||
"block.create.mechanical_arm.tooltip": "MECHANICAL ARM",
|
"block.create.mechanical_arm.tooltip": "MECHANICAL ARM",
|
||||||
"block.create.mechanical_arm.tooltip.summary": "Продвинутуе устройство для перемещения _предметов_.",
|
"block.create.mechanical_arm.tooltip.summary": "Продвинутуе устройство для перемещения _предметов_.",
|
||||||
"block.create.mechanical_arm.tooltip.condition1": "Транспортировка предметов",
|
"block.create.mechanical_arm.tooltip.condition1": "Транспортировка предметов",
|
||||||
"block.create.mechanical_arm.tooltip.behaviour1": "Может брать или размещать предметы в любой открытый инвентарь, такой как _ремень_, _депо_, _воронка_ и _механический крафтер_.",
|
"block.create.mechanical_arm.tooltip.behaviour1": "Может брать или размещать предметы в любой открытый инвентарь, такой как _конвейер_, _депо_, _воронка_ и _механический крафтер_.",
|
||||||
"block.create.mechanical_arm.tooltip.control1": "Когда в руке",
|
"block.create.mechanical_arm.tooltip.control1": "Когда в руке",
|
||||||
"block.create.mechanical_arm.tooltip.action1": "Правый клик на _открытом инвентаре_ установит _точку для сбора_, для _механической руки_. Кликните еще раз чтобы установить _точку для размещения_.",
|
"block.create.mechanical_arm.tooltip.action1": "Правый клик на _открытом инвентаре_ установит _точку для сбора_, для _механической руки_. Кликните еще раз чтобы установить _точку для размещения_.",
|
||||||
"block.create.mechanical_arm.tooltip.control2": "Прокрутка с ключом",
|
"block.create.mechanical_arm.tooltip.control2": "Прокрутка с ключом",
|
||||||
|
@ -1410,14 +1415,14 @@
|
||||||
"block.create.clutch.tooltip.behaviour1": "_Прекращает_ передачу вращения на другую сторону.",
|
"block.create.clutch.tooltip.behaviour1": "_Прекращает_ передачу вращения на другую сторону.",
|
||||||
|
|
||||||
"block.create.encased_chain_drive.tooltip": "ENCASED_CHAIN_DRIVE",
|
"block.create.encased_chain_drive.tooltip": "ENCASED_CHAIN_DRIVE",
|
||||||
"block.create.encased_chain_drive.tooltip.summary": "_Передаёт вращение_ по прямой линии и к смежным _цепным приводам в кожухе_. Цепные приводы соединяются, когда расположены рядом друг с другом, без необходимости использовать вал. Их направление не обязательно должно совпадать.",
|
"block.create.encased_chain_drive.tooltip.summary": "_Передаёт вращение_ по прямой линии и к смежным _цепным приводам в корпусе_. Цепные приводы соединяются, когда расположены рядом друг с другом, без необходимости использовать вал. Их направление не обязательно должно совпадать.",
|
||||||
"block.create.encased_chain_drive.tooltip.condition1": "Когда соединено",
|
"block.create.encased_chain_drive.tooltip.condition1": "Когда соединено",
|
||||||
"block.create.encased_chain_drive.tooltip.behaviour1": "Соединённые блоки будут получать _скорость вращения_ и его _направление_ от этого компонента.",
|
"block.create.encased_chain_drive.tooltip.behaviour1": "Соединённые блоки будут получать _скорость вращения_ и его _направление_ от этого компонента.",
|
||||||
|
|
||||||
"block.create.adjustable_chain_gearshift.tooltip": "ADJUSTABLE CHAIN GEARSHIFT",
|
"block.create.adjustable_chain_gearshift.tooltip": "ADJUSTABLE CHAIN GEARSHIFT",
|
||||||
"block.create.adjustable_chain_gearshift.tooltip.summary": "_Передаёт вращение_ по прямой линии и к смежным _цепным приводам в кожухе_. Полученный _сигнал редстоуна_ будет контролировать, какой размер шестерни взаимодействует с присоединенными цепными приводами.",
|
"block.create.adjustable_chain_gearshift.tooltip.summary": "_Передаёт вращение_ по прямой линии и к смежным _цепным приводам в корпусе_. Полученный _сигнал редстоуна_ будет контролировать, какой размер шестерни взаимодействует с присоединенными цепными приводами.",
|
||||||
"block.create.adjustable_chain_gearshift.tooltip.condition1": "Кнонтроль редстоуном",
|
"block.create.adjustable_chain_gearshift.tooltip.condition1": "Кнонтроль редстоуном",
|
||||||
"block.create.adjustable_chain_gearshift.tooltip.behaviour1": "_Без_ сигнала редстоуна присоединённые приводы будут иметь _такую же_ скорость. При получении _сигнала редстоуна_ максимального уровня, соединённые приводы будут вращаться с ровно в два раза меньшей скоростью. Всё, что между этими значениями, будет выдавать скорость от 1 до 2 кратной скорости цепного механизма.",
|
"block.create.adjustable_chain_gearshift.tooltip.behaviour1": "_Без_ сигнала редстоуна присоединённые приводы будут иметь _такую же_ скорость. При получении _сигнала редстоуна_ максимального уровня, соединённые приводы будут вращаться с удвоенной скоростью. Всё, что между минимальным и максимальным значениями, будет выдавать скорость от 1 до 2 кратной скорости цепного механизма.",
|
||||||
|
|
||||||
"item.create.belt_connector.tooltip": "BELT CONNECTOR",
|
"item.create.belt_connector.tooltip": "BELT CONNECTOR",
|
||||||
"item.create.belt_connector.tooltip.summary": "Соединяет _2_ _Вала_ с помощью _механического_ _ремня_._ Соединённые валы будут иметь одинаковые _скорость_ и _направление_ _вращения._ Лента может служить как _конвейер_ для _транспортировки._",
|
"item.create.belt_connector.tooltip.summary": "Соединяет _2_ _Вала_ с помощью _механического_ _ремня_._ Соединённые валы будут иметь одинаковые _скорость_ и _направление_ _вращения._ Лента может служить как _конвейер_ для _транспортировки._",
|
||||||
|
@ -1495,7 +1500,7 @@
|
||||||
"block.create.basin.tooltip": "BASIN",
|
"block.create.basin.tooltip": "BASIN",
|
||||||
"block.create.basin.tooltip.summary": "Удобный _контейнер_ _для_ _предметов_, используемый при обработке _механическим_ _смешивателем_ и _механическим прессом_. Поддерживает компараторы.",
|
"block.create.basin.tooltip.summary": "Удобный _контейнер_ _для_ _предметов_, используемый при обработке _механическим_ _смешивателем_ и _механическим прессом_. Поддерживает компараторы.",
|
||||||
"block.create.basin.tooltip.condition1": "Авто-выход",
|
"block.create.basin.tooltip.condition1": "Авто-выход",
|
||||||
"block.create.basin.tooltip.behaviour1": "Когда _открытые инвентари_, такие как ремни, другие чаши, депо и т.д. находятся _под_ чашей, они будут автоматически принимать любые _жидкости_ и _предметы_, созданные в чаше. Это полезно для автоматизации.",
|
"block.create.basin.tooltip.behaviour1": "Когда _открытые инвентари_, такие как конвейер, другие чаши, депо и т.д. находятся _под_ чашей, они будут автоматически принимать любые _жидкости_ и _предметы_, созданные в чаше. Это полезно для автоматизации.",
|
||||||
|
|
||||||
"block.create.blaze_burner.tooltip": "BLAZE BURNER",
|
"block.create.blaze_burner.tooltip": "BLAZE BURNER",
|
||||||
"block.create.blaze_burner.tooltip.summary": "Блок для нагревания чаши, работающий когда в нём находится прирученый Всполох.",
|
"block.create.blaze_burner.tooltip.summary": "Блок для нагревания чаши, работающий когда в нём находится прирученый Всполох.",
|
||||||
|
@ -1510,7 +1515,7 @@
|
||||||
"block.create.mechanical_mixer.tooltip": "MECHANICAL MIXER",
|
"block.create.mechanical_mixer.tooltip": "MECHANICAL MIXER",
|
||||||
"block.create.mechanical_mixer.tooltip.summary": "Кинетический венчик, используемый для смешивания предметов, находящихся под ним. Требуется _постоянная_ _вращательная_ _сила_ и _чаша_, расположенная внизу (с промежутком между ними).",
|
"block.create.mechanical_mixer.tooltip.summary": "Кинетический венчик, используемый для смешивания предметов, находящихся под ним. Требуется _постоянная_ _вращательная_ _сила_ и _чаша_, расположенная внизу (с промежутком между ними).",
|
||||||
"block.create.mechanical_mixer.tooltip.condition1": "Когда над чашей",
|
"block.create.mechanical_mixer.tooltip.condition1": "Когда над чашей",
|
||||||
"block.create.mechanical_mixer.tooltip.behaviour1": "Начинает смешивать предметы в бассейне, когда присутствуют все необходимые ингредиенты.",
|
"block.create.mechanical_mixer.tooltip.behaviour1": "Начинает смешивать предметы в чаше, когда присутствуют все необходимые ингредиенты.",
|
||||||
|
|
||||||
"block.create.mechanical_crafter.tooltip": "MECHANICAL CRAFTER",
|
"block.create.mechanical_crafter.tooltip": "MECHANICAL CRAFTER",
|
||||||
"block.create.mechanical_crafter.tooltip.summary": "_Кинетический_ _сборщик_ для автоматизации любого рецепта крафта. _Поместите_ _ингредиенты_ в сетку, _соответственно_ _нужному_ _рецепту_, и расположите их так, чтобы _создать_ _поток_, который _кончается_ на одном из крафтеров.",
|
"block.create.mechanical_crafter.tooltip.summary": "_Кинетический_ _сборщик_ для автоматизации любого рецепта крафта. _Поместите_ _ингредиенты_ в сетку, _соответственно_ _нужному_ _рецепту_, и расположите их так, чтобы _создать_ _поток_, который _кончается_ на одном из крафтеров.",
|
||||||
|
@ -1526,7 +1531,7 @@
|
||||||
"block.create.furnace_engine.tooltip": "FURNACE ENGINE",
|
"block.create.furnace_engine.tooltip": "FURNACE ENGINE",
|
||||||
"block.create.furnace_engine.tooltip.summary": "_Мощный_ источник _энергии_ _вращения_, для работы которого требуется _работающая_ _печь.",
|
"block.create.furnace_engine.tooltip.summary": "_Мощный_ источник _энергии_ _вращения_, для работы которого требуется _работающая_ _печь.",
|
||||||
"block.create.furnace_engine.tooltip.condition1": "Когда прикреплен к работающей печи",
|
"block.create.furnace_engine.tooltip.condition1": "Когда прикреплен к работающей печи",
|
||||||
"block.create.furnace_engine.tooltip.behaviour1": "_Начинает_ _приводить_ _в_ _действие_ _маховик_, расположенный _перед_ ним (на расстоянии 1 м). Используйте доменную печь для более высоких скоростей.",
|
"block.create.furnace_engine.tooltip.behaviour1": "_Начинает_ _приводить_ _в_ _действие_ _маховик_, расположенный _перед_ ним (на расстоянии 1 м). Используйте плавильную печь для более высоких скоростей.",
|
||||||
|
|
||||||
"block.create.flywheel.tooltip": "FLYWHEEL",
|
"block.create.flywheel.tooltip": "FLYWHEEL",
|
||||||
"block.create.flywheel.tooltip.summary": "Большое металлическое колесо для _удержания_ и _стабилизации_ создаваемой силы с помощью _прикреплённого_ _двигателя_. Маховики _соединяются_ с _двигателями_, если они находятся на расстоянии _1_ _м_ друг от друга и под углом _90°_ друг к другу.",
|
"block.create.flywheel.tooltip.summary": "Большое металлическое колесо для _удержания_ и _стабилизации_ создаваемой силы с помощью _прикреплённого_ _двигателя_. Маховики _соединяются_ с _двигателями_, если они находятся на расстоянии _1_ _м_ друг от друга и под углом _90°_ друг к другу.",
|
||||||
|
@ -1534,7 +1539,7 @@
|
||||||
"block.create.flywheel.tooltip.behaviour1": "Обеспечивает вращательную силу для подключенного устройства в зависимости от силы и скорости генератора.",
|
"block.create.flywheel.tooltip.behaviour1": "Обеспечивает вращательную силу для подключенного устройства в зависимости от силы и скорости генератора.",
|
||||||
|
|
||||||
"block.create.portable_storage_interface.tooltip": "PORTABLE STORAGE INTERFACE",
|
"block.create.portable_storage_interface.tooltip": "PORTABLE STORAGE INTERFACE",
|
||||||
"block.create.portable_storage_interface.tooltip.summary": "Переносная точка обмена для _перемещения_ предметов внутрь или из _конструкции_, перемещаемой _поршнем_, _шасси_, _вагонеткой_ или _ремнём_.",
|
"block.create.portable_storage_interface.tooltip.summary": "Переносная точка обмена для _перемещения_ предметов внутрь или из _конструкции_, перемещаемой _поршнем_, _шасси_, _вагонеткой_ или _конвейером_.",
|
||||||
"block.create.portable_storage_interface.tooltip.condition1": "Во время движения",
|
"block.create.portable_storage_interface.tooltip.condition1": "Во время движения",
|
||||||
"block.create.portable_storage_interface.tooltip.behaviour1": "Взаимодействует со стационарными переместителями так, что переместители, обращенные в сторону от интерфейса, вытягивают предметы, а транспортеры, нацеленные на интерфейс, вставляют предметы из прикреплённого инвентаря. Конструкция ненадолго остановится при обмене предметов.",
|
"block.create.portable_storage_interface.tooltip.behaviour1": "Взаимодействует со стационарными переместителями так, что переместители, обращенные в сторону от интерфейса, вытягивают предметы, а транспортеры, нацеленные на интерфейс, вставляют предметы из прикреплённого инвентаря. Конструкция ненадолго остановится при обмене предметов.",
|
||||||
"block.create.portable_storage_interface.tooltip.condition2": "Когда запитан редстоуном",
|
"block.create.portable_storage_interface.tooltip.condition2": "Когда запитан редстоуном",
|
||||||
|
@ -1710,7 +1715,7 @@
|
||||||
"block.create.deployer.tooltip.behaviour3": "Автоматический активатор будет активирован, если только удерживаемый предмет _совпадает_ с предметом в _фильтре_. Не совпадающие предметы не могут быть помещены; Удерживаемые предметы, соответствующие фильтру, не могут быть извлечены.",
|
"block.create.deployer.tooltip.behaviour3": "Автоматический активатор будет активирован, если только удерживаемый предмет _совпадает_ с предметом в _фильтре_. Не совпадающие предметы не могут быть помещены; Удерживаемые предметы, соответствующие фильтру, не могут быть извлечены.",
|
||||||
|
|
||||||
"block.create.brass_casing.tooltip": "BRASS CASING",
|
"block.create.brass_casing.tooltip": "BRASS CASING",
|
||||||
"block.create.brass_casing.tooltip.summary": "Прочный корпус машины с различными вариантами применения. Безопасно для украшения.",
|
"block.create.brass_casing.tooltip.summary": "Прочный корпус машины с различными вариантами применения. Безопасно для декорирования.",
|
||||||
|
|
||||||
"block.create.pulse_repeater.tooltip": "PULSE REPEATER",
|
"block.create.pulse_repeater.tooltip": "PULSE REPEATER",
|
||||||
"block.create.pulse_repeater.tooltip.summary": "Простая схема обрезки длинны проходящего сигнала до _1_ _тика_.",
|
"block.create.pulse_repeater.tooltip.summary": "Простая схема обрезки длинны проходящего сигнала до _1_ _тика_.",
|
||||||
|
@ -1767,7 +1772,7 @@
|
||||||
"item.create.shadow_steel.tooltip.summary": "Хроматический материал, _добытый_ _в_ _пустоте_.",
|
"item.create.shadow_steel.tooltip.summary": "Хроматический материал, _добытый_ _в_ _пустоте_.",
|
||||||
|
|
||||||
"item.create.minecart_coupling.tooltip": "MINECART COUPLING",
|
"item.create.minecart_coupling.tooltip": "MINECART COUPLING",
|
||||||
"item.create.minecart_coupling.tooltip.summary": "_Соединяет_ ваши _вагонетки_ или or _Перевозочные устройства_ вместе, чтобы создать великолепный поезд.",
|
"item.create.minecart_coupling.tooltip.summary": "_Соединяет_ ваши _вагонетки_ или _Перевозочные устройства_ вместе, чтобы создать великолепный поезд.",
|
||||||
"item.create.minecart_coupling.tooltip.condition1": "При использовании на вагонетке",
|
"item.create.minecart_coupling.tooltip.condition1": "При использовании на вагонетке",
|
||||||
"item.create.minecart_coupling.tooltip.behaviour1": "_Соединяет_ две вагонетки вместе, пытаясь держать их на _определенной дистанции_ при движении.",
|
"item.create.minecart_coupling.tooltip.behaviour1": "_Соединяет_ две вагонетки вместе, пытаясь держать их на _определенной дистанции_ при движении.",
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
1792
src/generated/resources/assets/create/lang/unfinished/zh_tw.json
Normal file
1792
src/generated/resources/assets/create/lang/unfinished/zh_tw.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/funnel/block",
|
|
||||||
"textures": {
|
|
||||||
"0": "create:block/andesite_funnel_plating",
|
|
||||||
"1": "create:block/andesite_casing",
|
|
||||||
"2": "create:block/andesite_funnel",
|
|
||||||
"3": "create:block/andesite_funnel_back"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
|
"2_2": "create:block/andesite_funnel_pull",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel_powered",
|
||||||
|
"5": "create:block/andesite_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/andesite_funnel_pull",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
|
"2_2": "create:block/andesite_funnel_push",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel_powered",
|
||||||
|
"5": "create:block/andesite_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/andesite_funnel_push",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
|
"2_2": "create:block/andesite_funnel_pull",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel_powered",
|
||||||
|
"5": "create:block/andesite_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/andesite_funnel_pull",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
|
"2_2": "create:block/andesite_funnel_push",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel_powered",
|
||||||
|
"5": "create:block/andesite_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/andesite_funnel_push",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/funnel/block",
|
|
||||||
"textures": {
|
|
||||||
"0": "create:block/andesite_funnel_plating",
|
|
||||||
"1": "create:block/andesite_casing",
|
|
||||||
"2": "create:block/andesite_funnel_powered",
|
|
||||||
"3": "create:block/andesite_funnel_back"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
|
"2_2": "create:block/andesite_funnel_pull",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel_powered",
|
||||||
|
"5": "create:block/andesite_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/andesite_funnel_pull",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
|
"2_2": "create:block/andesite_funnel_push",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/andesite_casing",
|
||||||
|
"7": "create:block/andesite_funnel_plating",
|
||||||
|
"6": "create:block/andesite_funnel_powered",
|
||||||
|
"5": "create:block/andesite_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/andesite_funnel_push",
|
||||||
|
"3": "create:block/andesite_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/funnel/block",
|
|
||||||
"textures": {
|
|
||||||
"0": "create:block/brass_funnel_plating",
|
|
||||||
"1": "create:block/brass_casing",
|
|
||||||
"2": "create:block/brass_funnel",
|
|
||||||
"3": "create:block/brass_funnel_back"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
|
"2_2": "create:block/brass_funnel_pull",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel_powered",
|
||||||
|
"5": "create:block/brass_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/brass_funnel_pull",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
|
"2_2": "create:block/brass_funnel_push",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_ceiling",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel_powered",
|
||||||
|
"5": "create:block/brass_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/brass_funnel_push",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
|
"2_2": "create:block/brass_funnel_pull",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel_powered",
|
||||||
|
"5": "create:block/brass_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/brass_funnel_pull",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
|
"2_2": "create:block/brass_funnel_push",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_floor",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel_powered",
|
||||||
|
"5": "create:block/brass_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/brass_funnel_push",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/funnel/block",
|
|
||||||
"textures": {
|
|
||||||
"0": "create:block/brass_funnel_plating",
|
|
||||||
"1": "create:block/brass_casing",
|
|
||||||
"2": "create:block/brass_funnel_powered",
|
|
||||||
"3": "create:block/brass_funnel_back"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
|
"2_2": "create:block/brass_funnel_pull",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel_powered",
|
||||||
|
"5": "create:block/brass_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/brass_funnel_pull",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
|
"2_2": "create:block/brass_funnel_push",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/funnel/block_wall",
|
||||||
|
"textures": {
|
||||||
|
"particle": "create:block/brass_casing",
|
||||||
|
"7": "create:block/brass_funnel_plating",
|
||||||
|
"6": "create:block/brass_funnel_powered",
|
||||||
|
"5": "create:block/brass_funnel_tall_powered",
|
||||||
|
"2_2": "create:block/brass_funnel_push",
|
||||||
|
"3": "create:block/brass_funnel_back"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_end",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_end",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_end",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_middle",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_middle",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_middle",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_single",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_single",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_single",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_start",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_start",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_start",
|
||||||
|
"textures": {
|
||||||
|
"2": "create:block/gantry_shaft_powered_flipped"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
{
|
{
|
||||||
"parent": "create:block/funnel/item",
|
"parent": "create:block/funnel/item",
|
||||||
"textures": {
|
"textures": {
|
||||||
"0": "create:block/andesite_funnel_plating",
|
"particle": "create:block/andesite_casing",
|
||||||
"1": "create:block/andesite_casing",
|
"7": "create:block/andesite_funnel_plating",
|
||||||
"2": "create:block/andesite_funnel",
|
"2": "create:block/andesite_funnel_neutral",
|
||||||
|
"6": "create:block/andesite_funnel",
|
||||||
|
"5": "create:block/andesite_funnel_tall",
|
||||||
"3": "create:block/andesite_funnel_back"
|
"3": "create:block/andesite_funnel_back"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
{
|
{
|
||||||
"parent": "create:block/funnel/item",
|
"parent": "create:block/funnel/item",
|
||||||
"textures": {
|
"textures": {
|
||||||
"0": "create:block/brass_funnel_plating",
|
"particle": "create:block/brass_casing",
|
||||||
"1": "create:block/brass_casing",
|
"7": "create:block/brass_funnel_plating",
|
||||||
"2": "create:block/brass_funnel",
|
"2": "create:block/brass_funnel_neutral",
|
||||||
|
"6": "create:block/brass_funnel",
|
||||||
|
"5": "create:block/brass_funnel_tall",
|
||||||
"3": "create:block/brass_funnel_back"
|
"3": "create:block/brass_funnel_back"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_pinion/item"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/gantry_shaft/block_single"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/smart_chute/block"
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"create:crafting/kinetics/gantry_pinion"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"trigger": "minecraft:inventory_changed",
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"item": "create:andesite_casing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"trigger": "minecraft:recipe_unlocked",
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "create:crafting/kinetics/gantry_pinion"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_item",
|
||||||
|
"has_the_recipe"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"create:crafting/kinetics/gantry_shaft"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"trigger": "minecraft:inventory_changed",
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"item": "create:andesite_alloy"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"trigger": "minecraft:recipe_unlocked",
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "create:crafting/kinetics/gantry_shaft"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_item",
|
||||||
|
"has_the_recipe"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"create:crafting/kinetics/smart_chute"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"trigger": "minecraft:inventory_changed",
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"item": "create:chute"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"trigger": "minecraft:recipe_unlocked",
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "create:crafting/kinetics/smart_chute"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_item",
|
||||||
|
"has_the_recipe"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "create:gantry_pinion"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "create:gantry_shaft"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "create:smart_chute"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
" B ",
|
||||||
|
"ICI",
|
||||||
|
" S "
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"B": {
|
||||||
|
"tag": "minecraft:planks"
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "create:cogwheel"
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"item": "create:andesite_casing"
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"item": "create:shaft"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "create:gantry_pinion"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"A",
|
||||||
|
"R",
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"A": {
|
||||||
|
"item": "create:andesite_alloy"
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"tag": "forge:dusts/redstone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "create:gantry_shaft",
|
||||||
|
"count": 8
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"I",
|
||||||
|
"S",
|
||||||
|
"P"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"P": {
|
||||||
|
"item": "create:electron_tube"
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "create:chute"
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"tag": "forge:plates/brass"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "create:smart_chute"
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,6 +23,7 @@
|
||||||
"create:redstone_link",
|
"create:redstone_link",
|
||||||
"create:analog_lever",
|
"create:analog_lever",
|
||||||
"create:adjustable_repeater",
|
"create:adjustable_repeater",
|
||||||
"create:adjustable_pulse_repeater"
|
"create:adjustable_pulse_repeater",
|
||||||
|
"#minecraft:signs"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -58,7 +58,8 @@ public class AllBlockPartials {
|
||||||
HARVESTER_BLADE = get("mechanical_harvester/blade"), DEPLOYER_POLE = get("deployer/pole"),
|
HARVESTER_BLADE = get("mechanical_harvester/blade"), DEPLOYER_POLE = get("deployer/pole"),
|
||||||
DEPLOYER_HAND_POINTING = get("deployer/hand_pointing"), DEPLOYER_HAND_PUNCHING = get("deployer/hand_punching"),
|
DEPLOYER_HAND_POINTING = get("deployer/hand_pointing"), DEPLOYER_HAND_PUNCHING = get("deployer/hand_punching"),
|
||||||
DEPLOYER_HAND_HOLDING = get("deployer/hand_holding"), ANALOG_LEVER_HANDLE = get("analog_lever/handle"),
|
DEPLOYER_HAND_HOLDING = get("deployer/hand_holding"), ANALOG_LEVER_HANDLE = get("analog_lever/handle"),
|
||||||
ANALOG_LEVER_INDICATOR = get("analog_lever/indicator"), BELT_FUNNEL_FLAP = get("belt_funnel/flap"),
|
ANALOG_LEVER_INDICATOR = get("analog_lever/indicator"), FUNNEL_FLAP = get("funnel/flap"),
|
||||||
|
BELT_FUNNEL_FLAP = get("belt_funnel/flap"),
|
||||||
BELT_TUNNEL_FLAP = get("belt_tunnel/flap"), FLEXPEATER_INDICATOR = get("diodes/indicator"),
|
BELT_TUNNEL_FLAP = get("belt_tunnel/flap"), FLEXPEATER_INDICATOR = get("diodes/indicator"),
|
||||||
FLYWHEEL = get("flywheel/wheel"), FLYWHEEL_UPPER_ROTATING = get("flywheel/upper_rotating_connector"),
|
FLYWHEEL = get("flywheel/wheel"), FLYWHEEL_UPPER_ROTATING = get("flywheel/upper_rotating_connector"),
|
||||||
|
|
||||||
|
@ -70,6 +71,8 @@ public class AllBlockPartials {
|
||||||
CUCKOO_RIGHT_DOOR = get("cuckoo_clock/right_door"), CUCKOO_PIG = get("cuckoo_clock/pig"),
|
CUCKOO_RIGHT_DOOR = get("cuckoo_clock/right_door"), CUCKOO_PIG = get("cuckoo_clock/pig"),
|
||||||
CUCKOO_CREEPER = get("cuckoo_clock/creeper"),
|
CUCKOO_CREEPER = get("cuckoo_clock/creeper"),
|
||||||
|
|
||||||
|
GANTRY_COGS = get("gantry_pinion/wheels"),
|
||||||
|
|
||||||
ROPE_COIL = get("rope_pulley/rope_coil"),
|
ROPE_COIL = get("rope_pulley/rope_coil"),
|
||||||
ROPE_HALF = get("rope_pulley/rope_half"),
|
ROPE_HALF = get("rope_pulley/rope_half"),
|
||||||
ROPE_HALF_MAGNET = get("rope_pulley/rope_half_magnet"),
|
ROPE_HALF_MAGNET = get("rope_pulley/rope_half_magnet"),
|
||||||
|
@ -106,6 +109,8 @@ public class AllBlockPartials {
|
||||||
|
|
||||||
SPOUT_TOP = get("spout/top"), SPOUT_MIDDLE = get("spout/middle"), SPOUT_BOTTOM = get("spout/bottom"),
|
SPOUT_TOP = get("spout/top"), SPOUT_MIDDLE = get("spout/middle"), SPOUT_BOTTOM = get("spout/bottom"),
|
||||||
|
|
||||||
|
SPEED_CONTROLLER_BRACKET = get("rotation_speed_controller/bracket"),
|
||||||
|
|
||||||
COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"),
|
COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"),
|
||||||
COUPLING_RING = getEntity("minecart_coupling/ring"),
|
COUPLING_RING = getEntity("minecart_coupling/ring"),
|
||||||
COUPLING_CONNECTOR = getEntity("minecart_coupling/connector")
|
COUPLING_CONNECTOR = getEntity("minecart_coupling/connector")
|
||||||
|
|
|
@ -54,6 +54,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock.ChassisCTBehaviour;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock.ChassisCTBehaviour;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.RadialChassisBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.RadialChassisBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock.MinecartAnchorBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock.MinecartAnchorBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlockItem;
|
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlockItem;
|
||||||
|
@ -90,11 +91,11 @@ import com.simibubi.create.content.contraptions.processing.BasinMovementBehaviou
|
||||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem;
|
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem;
|
||||||
import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock;
|
import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
|
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock;
|
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftGenerator;
|
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftGenerator;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltColor;
|
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltGenerator;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltGenerator;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltModel;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltModel;
|
||||||
import com.simibubi.create.content.contraptions.relays.elementary.BracketedKineticBlockModel;
|
import com.simibubi.create.content.contraptions.relays.elementary.BracketedKineticBlockModel;
|
||||||
|
@ -117,6 +118,7 @@ import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelCTBeh
|
||||||
import com.simibubi.create.content.logistics.block.chute.ChuteBlock;
|
import com.simibubi.create.content.logistics.block.chute.ChuteBlock;
|
||||||
import com.simibubi.create.content.logistics.block.chute.ChuteGenerator;
|
import com.simibubi.create.content.logistics.block.chute.ChuteGenerator;
|
||||||
import com.simibubi.create.content.logistics.block.chute.ChuteItem;
|
import com.simibubi.create.content.logistics.block.chute.ChuteItem;
|
||||||
|
import com.simibubi.create.content.logistics.block.chute.SmartChuteBlock;
|
||||||
import com.simibubi.create.content.logistics.block.depot.DepotBlock;
|
import com.simibubi.create.content.logistics.block.depot.DepotBlock;
|
||||||
import com.simibubi.create.content.logistics.block.diodes.AbstractDiodeGenerator;
|
import com.simibubi.create.content.logistics.block.diodes.AbstractDiodeGenerator;
|
||||||
import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterBlock;
|
import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterBlock;
|
||||||
|
@ -127,10 +129,9 @@ import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterBlock;
|
||||||
import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterGenerator;
|
import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterGenerator;
|
||||||
import com.simibubi.create.content.logistics.block.diodes.ToggleLatchBlock;
|
import com.simibubi.create.content.logistics.block.diodes.ToggleLatchBlock;
|
||||||
import com.simibubi.create.content.logistics.block.diodes.ToggleLatchGenerator;
|
import com.simibubi.create.content.logistics.block.diodes.ToggleLatchGenerator;
|
||||||
import com.simibubi.create.content.logistics.block.funnel.AndesiteBeltFunnelBlock;
|
|
||||||
import com.simibubi.create.content.logistics.block.funnel.AndesiteFunnelBlock;
|
import com.simibubi.create.content.logistics.block.funnel.AndesiteFunnelBlock;
|
||||||
|
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
|
||||||
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator;
|
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator;
|
||||||
import com.simibubi.create.content.logistics.block.funnel.BrassBeltFunnelBlock;
|
|
||||||
import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock;
|
import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock;
|
||||||
import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour;
|
import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour;
|
||||||
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
|
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
|
||||||
|
@ -173,8 +174,10 @@ import net.minecraft.item.Item;
|
||||||
import net.minecraft.state.properties.PistonType;
|
import net.minecraft.state.properties.PistonType;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.tags.ItemTags;
|
import net.minecraft.tags.ItemTags;
|
||||||
|
import net.minecraft.util.Direction.AxisDirection;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.client.model.generators.ConfiguredModel;
|
import net.minecraftforge.client.model.generators.ConfiguredModel;
|
||||||
|
import net.minecraftforge.client.model.generators.ModelFile;
|
||||||
import net.minecraftforge.common.Tags;
|
import net.minecraftforge.common.Tags;
|
||||||
import net.minecraftforge.common.ToolType;
|
import net.minecraftforge.common.ToolType;
|
||||||
|
|
||||||
|
@ -299,7 +302,8 @@ public class AllBlocks {
|
||||||
.blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> {
|
.blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> {
|
||||||
String powered = state.get(AdjustablePulleyBlock.POWERED) ? "_powered" : "";
|
String powered = state.get(AdjustablePulleyBlock.POWERED) ? "_powered" : "";
|
||||||
return p.models()
|
return p.models()
|
||||||
.withExistingParent(c.getName() + "_" + suffix + powered, p.modLoc("block/encased_chain_drive/" + suffix))
|
.withExistingParent(c.getName() + "_" + suffix + powered,
|
||||||
|
p.modLoc("block/encased_chain_drive/" + suffix))
|
||||||
.texture("side", p.modLoc("block/" + c.getName() + powered));
|
.texture("side", p.modLoc("block/" + c.getName() + powered));
|
||||||
}).generate(c, p))
|
}).generate(c, p))
|
||||||
.item()
|
.item()
|
||||||
|
@ -314,7 +318,6 @@ public class AllBlocks {
|
||||||
.properties(p -> p.hardnessAndResistance(0.8F))
|
.properties(p -> p.hardnessAndResistance(0.8F))
|
||||||
.blockstate(new BeltGenerator()::generate)
|
.blockstate(new BeltGenerator()::generate)
|
||||||
.transform(StressConfigDefaults.setImpact(1.0))
|
.transform(StressConfigDefaults.setImpact(1.0))
|
||||||
.onRegister(CreateRegistrate.blockColors(() -> BeltColor::new))
|
|
||||||
.onRegister(CreateRegistrate.blockModel(() -> BeltModel::new))
|
.onRegister(CreateRegistrate.blockModel(() -> BeltModel::new))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
@ -480,6 +483,13 @@ public class AllBlocks {
|
||||||
.transform(customItemModel("_", "block"))
|
.transform(customItemModel("_", "block"))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final BlockEntry<SmartChuteBlock> SMART_CHUTE = REGISTRATE.block("smart_chute", SmartChuteBlock::new)
|
||||||
|
.initialProperties(SharedProperties::softMetal)
|
||||||
|
.blockstate((c, p) -> BlockStateGen.simpleBlock(c, p, AssetLookup.forPowered(c, p)))
|
||||||
|
.item()
|
||||||
|
.transform(customItemModel("_", "block"))
|
||||||
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<GaugeBlock> SPEEDOMETER = REGISTRATE.block("speedometer", GaugeBlock::speed)
|
public static final BlockEntry<GaugeBlock> SPEEDOMETER = REGISTRATE.block("speedometer", GaugeBlock::speed)
|
||||||
.initialProperties(SharedProperties::wooden)
|
.initialProperties(SharedProperties::wooden)
|
||||||
.transform(StressConfigDefaults.setNoImpact())
|
.transform(StressConfigDefaults.setNoImpact())
|
||||||
|
@ -681,6 +691,38 @@ public class AllBlocks {
|
||||||
.getString() + "/head"))))
|
.getString() + "/head"))))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final BlockEntry<GantryPinionBlock> GANTRY_PINION =
|
||||||
|
REGISTRATE.block("gantry_pinion", GantryPinionBlock::new)
|
||||||
|
.initialProperties(SharedProperties::stone)
|
||||||
|
.properties(Block.Properties::nonOpaque)
|
||||||
|
.blockstate(BlockStateGen.directionalAxisBlockProvider())
|
||||||
|
.item()
|
||||||
|
.transform(customItemModel())
|
||||||
|
.register();
|
||||||
|
|
||||||
|
public static final BlockEntry<GantryShaftBlock> GANTRY_SHAFT =
|
||||||
|
REGISTRATE.block("gantry_shaft", GantryShaftBlock::new)
|
||||||
|
.initialProperties(SharedProperties::stone)
|
||||||
|
.blockstate((c, p) -> p.directionalBlock(c.get(), s -> {
|
||||||
|
boolean isPowered = s.get(GantryShaftBlock.POWERED);
|
||||||
|
boolean isFlipped = s.get(GantryShaftBlock.FACING)
|
||||||
|
.getAxisDirection() == AxisDirection.NEGATIVE;
|
||||||
|
String partName = s.get(GantryShaftBlock.PART)
|
||||||
|
.getName();
|
||||||
|
String flipped = isFlipped ? "_flipped" : "";
|
||||||
|
String powered = isPowered ? "_powered" : "";
|
||||||
|
ModelFile existing = AssetLookup.partialBaseModel(c, p, partName);
|
||||||
|
if (!isPowered && !isFlipped)
|
||||||
|
return existing;
|
||||||
|
return p.models()
|
||||||
|
.withExistingParent("block/" + c.getName() + "_" + partName + powered + flipped,
|
||||||
|
existing.getLocation())
|
||||||
|
.texture("2", p.modLoc("block/" + c.getName() + powered + flipped));
|
||||||
|
}))
|
||||||
|
.item()
|
||||||
|
.transform(customItemModel("_", "block_single"))
|
||||||
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<WindmillBearingBlock> WINDMILL_BEARING =
|
public static final BlockEntry<WindmillBearingBlock> WINDMILL_BEARING =
|
||||||
REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new)
|
REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new)
|
||||||
.transform(BuilderTransformers.bearing("windmill", "gearbox", true))
|
.transform(BuilderTransformers.bearing("windmill", "gearbox", true))
|
||||||
|
@ -1043,8 +1085,8 @@ public class AllBlocks {
|
||||||
.transform(BuilderTransformers.funnel("andesite", Create.asResource("block/andesite_casing")))
|
.transform(BuilderTransformers.funnel("andesite", Create.asResource("block/andesite_casing")))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<AndesiteBeltFunnelBlock> ANDESITE_BELT_FUNNEL =
|
public static final BlockEntry<BeltFunnelBlock> ANDESITE_BELT_FUNNEL =
|
||||||
REGISTRATE.block("andesite_belt_funnel", AndesiteBeltFunnelBlock::new)
|
REGISTRATE.block("andesite_belt_funnel", p -> new BeltFunnelBlock(AllBlocks.ANDESITE_FUNNEL, p))
|
||||||
.initialProperties(SharedProperties::stone)
|
.initialProperties(SharedProperties::stone)
|
||||||
.tag(AllBlockTags.SAFE_NBT.tag)
|
.tag(AllBlockTags.SAFE_NBT.tag)
|
||||||
.blockstate(new BeltFunnelGenerator("andesite", new ResourceLocation("block/polished_andesite"))::generate)
|
.blockstate(new BeltFunnelGenerator("andesite", new ResourceLocation("block/polished_andesite"))::generate)
|
||||||
|
@ -1059,8 +1101,8 @@ public class AllBlocks {
|
||||||
.transform(BuilderTransformers.funnel("brass", Create.asResource("block/brass_casing")))
|
.transform(BuilderTransformers.funnel("brass", Create.asResource("block/brass_casing")))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<BrassBeltFunnelBlock> BRASS_BELT_FUNNEL =
|
public static final BlockEntry<BeltFunnelBlock> BRASS_BELT_FUNNEL =
|
||||||
REGISTRATE.block("brass_belt_funnel", BrassBeltFunnelBlock::new)
|
REGISTRATE.block("brass_belt_funnel", p -> new BeltFunnelBlock(AllBlocks.BRASS_FUNNEL, p))
|
||||||
.initialProperties(SharedProperties::softMetal)
|
.initialProperties(SharedProperties::softMetal)
|
||||||
.tag(AllBlockTags.SAFE_NBT.tag)
|
.tag(AllBlockTags.SAFE_NBT.tag)
|
||||||
.blockstate(new BeltFunnelGenerator("brass", Create.asResource("block/brass_block"))::generate)
|
.blockstate(new BeltFunnelGenerator("brass", Create.asResource("block/brass_block"))::generate)
|
||||||
|
|
|
@ -6,6 +6,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Con
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntityRenderer;
|
import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntityRenderer;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntityRenderer;
|
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntityRenderer;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraptionEntity;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraptionEntityRenderer;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueRenderer;
|
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueRenderer;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
@ -23,16 +25,27 @@ import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||||
public class AllEntityTypes {
|
public class AllEntityTypes {
|
||||||
|
|
||||||
public static final RegistryEntry<EntityType<OrientedContraptionEntity>> ORIENTED_CONTRAPTION =
|
public static final RegistryEntry<EntityType<OrientedContraptionEntity>> ORIENTED_CONTRAPTION =
|
||||||
register("contraption", OrientedContraptionEntity::new, EntityClassification.MISC, 5, 3, true,
|
contraption("contraption", OrientedContraptionEntity::new, 5, 3, true);
|
||||||
AbstractContraptionEntity::build);
|
|
||||||
public static final RegistryEntry<EntityType<ControlledContraptionEntity>> CONTROLLED_CONTRAPTION =
|
public static final RegistryEntry<EntityType<ControlledContraptionEntity>> CONTROLLED_CONTRAPTION =
|
||||||
register("stationary_contraption", ControlledContraptionEntity::new, EntityClassification.MISC, 20, 40, false,
|
contraption("stationary_contraption", ControlledContraptionEntity::new, 20, 40, false);
|
||||||
AbstractContraptionEntity::build);
|
public static final RegistryEntry<EntityType<GantryContraptionEntity>> GANTRY_CONTRAPTION =
|
||||||
|
contraption("gantry_contraption", GantryContraptionEntity::new, 10, 40, false);
|
||||||
|
|
||||||
public static final RegistryEntry<EntityType<SuperGlueEntity>> SUPER_GLUE = register("super_glue",
|
public static final RegistryEntry<EntityType<SuperGlueEntity>> SUPER_GLUE = register("super_glue",
|
||||||
SuperGlueEntity::new, EntityClassification.MISC, 10, Integer.MAX_VALUE, false, SuperGlueEntity::build);
|
SuperGlueEntity::new, EntityClassification.MISC, 10, Integer.MAX_VALUE, false, SuperGlueEntity::build);
|
||||||
public static final RegistryEntry<EntityType<SeatEntity>> SEAT =
|
public static final RegistryEntry<EntityType<SeatEntity>> SEAT =
|
||||||
register("seat", SeatEntity::new, EntityClassification.MISC, 0, Integer.MAX_VALUE, false, SeatEntity::build);
|
register("seat", SeatEntity::new, EntityClassification.MISC, 0, Integer.MAX_VALUE, false, SeatEntity::build);
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
public static void register() {}
|
||||||
|
|
||||||
|
private static <T extends Entity> RegistryEntry<EntityType<T>> contraption(String name, IFactory<T> factory,
|
||||||
|
int range, int updateFrequency, boolean sendVelocity) {
|
||||||
|
return register(name, factory, EntityClassification.MISC, range, updateFrequency, sendVelocity,
|
||||||
|
AbstractContraptionEntity::build);
|
||||||
|
}
|
||||||
|
|
||||||
private static <T extends Entity> RegistryEntry<EntityType<T>> register(String name, IFactory<T> factory,
|
private static <T extends Entity> RegistryEntry<EntityType<T>> register(String name, IFactory<T> factory,
|
||||||
EntityClassification group, int range, int updateFrequency, boolean sendVelocity,
|
EntityClassification group, int range, int updateFrequency, boolean sendVelocity,
|
||||||
NonNullConsumer<EntityType.Builder<T>> propertyBuilder) {
|
NonNullConsumer<EntityType.Builder<T>> propertyBuilder) {
|
||||||
|
@ -46,14 +59,14 @@ public class AllEntityTypes {
|
||||||
.register();
|
.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {}
|
|
||||||
|
|
||||||
@OnlyIn(value = Dist.CLIENT)
|
@OnlyIn(value = Dist.CLIENT)
|
||||||
public static void registerRenderers() {
|
public static void registerRenderers() {
|
||||||
RenderingRegistry.registerEntityRenderingHandler(CONTROLLED_CONTRAPTION.get(),
|
RenderingRegistry.registerEntityRenderingHandler(CONTROLLED_CONTRAPTION.get(),
|
||||||
ControlledContraptionEntityRenderer::new);
|
ControlledContraptionEntityRenderer::new);
|
||||||
RenderingRegistry.registerEntityRenderingHandler(ORIENTED_CONTRAPTION.get(),
|
RenderingRegistry.registerEntityRenderingHandler(ORIENTED_CONTRAPTION.get(),
|
||||||
OrientedContraptionEntityRenderer::new);
|
OrientedContraptionEntityRenderer::new);
|
||||||
|
RenderingRegistry.registerEntityRenderingHandler(GANTRY_CONTRAPTION.get(),
|
||||||
|
GantryContraptionEntityRenderer::new);
|
||||||
RenderingRegistry.registerEntityRenderingHandler(SUPER_GLUE.get(), SuperGlueRenderer::new);
|
RenderingRegistry.registerEntityRenderingHandler(SUPER_GLUE.get(), SuperGlueRenderer::new);
|
||||||
RenderingRegistry.registerEntityRenderingHandler(SEAT.get(), SeatEntity.Render::new);
|
RenderingRegistry.registerEntityRenderingHandler(SEAT.get(), SeatEntity.Render::new);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,10 +41,6 @@ public class AllShapes {
|
||||||
SAIL_FRAME_COLLISION = shape(0, 5, 0, 16, 9, 16).erase(2, 0, 2, 14, 16, 14)
|
SAIL_FRAME_COLLISION = shape(0, 5, 0, 16, 9, 16).erase(2, 0, 2, 14, 16, 14)
|
||||||
.forDirectional(),
|
.forDirectional(),
|
||||||
SAIL_FRAME = shape(0, 5, 0, 16, 9, 16).forDirectional(), SAIL = shape(0, 5, 0, 16, 10, 16).forDirectional(),
|
SAIL_FRAME = shape(0, 5, 0, 16, 9, 16).forDirectional(), SAIL = shape(0, 5, 0, 16, 10, 16).forDirectional(),
|
||||||
SPEED_CONTROLLER = shape(0, 0, 0, 16, 2, 16).add(1, 1, 1, 15, 15, 15)
|
|
||||||
.erase(0, 8, 5, 16, 16, 11)
|
|
||||||
.add(2, 9, 2, 14, 14, 14)
|
|
||||||
.forHorizontalAxis(),
|
|
||||||
HARVESTER_BASE = shape(0, 2, 0, 16, 14, 3).forDirectional(SOUTH),
|
HARVESTER_BASE = shape(0, 2, 0, 16, 14, 3).forDirectional(SOUTH),
|
||||||
NOZZLE = shape(2, 0, 2, 14, 14, 14).add(1, 13, 1, 15, 15, 15)
|
NOZZLE = shape(2, 0, 2, 14, 14, 14).add(1, 13, 1, 15, 15, 15)
|
||||||
.erase(3, 13, 3, 13, 15, 13)
|
.erase(3, 13, 3, 13, 15, 13)
|
||||||
|
@ -68,34 +64,26 @@ public class AllShapes {
|
||||||
NIXIE_TUBE_CEILING = shape(0, 12, 0, 16, 16, 16).add(9, 1, 5, 15, 16, 11)
|
NIXIE_TUBE_CEILING = shape(0, 12, 0, 16, 16, 16).add(9, 1, 5, 15, 16, 11)
|
||||||
.add(1, 1, 5, 7, 16, 11)
|
.add(1, 1, 5, 7, 16, 11)
|
||||||
.forHorizontalAxis(),
|
.forHorizontalAxis(),
|
||||||
FUNNEL = shape(2, -2, 2, 14, 2, 14).add(3, 2, 3, 13, 6, 13)
|
FUNNEL_COLLISION = shape(0, 0, 0, 16, 4, 16).forDirectional(UP),
|
||||||
.add(2, 6, 2, 14, 10, 14)
|
|
||||||
.add(0, 10, 0, 16, 16, 16)
|
|
||||||
.forDirectional(UP),
|
|
||||||
FUNNEL_COLLISION = shape(2, -2, 2, 14, 2, 14).add(3, 2, 3, 13, 6, 13)
|
|
||||||
.add(2, 6, 2, 14, 10, 14)
|
|
||||||
.add(0, 10, 0, 16, 13, 16)
|
|
||||||
.forDirectional(UP),
|
|
||||||
BELT_FUNNEL_RETRACTED = shape(2, -2, 14, 14, 14, 18).add(0, -5, 8, 16, 16, 14)
|
BELT_FUNNEL_RETRACTED = shape(2, -2, 14, 14, 14, 18).add(0, -5, 8, 16, 16, 14)
|
||||||
.forHorizontal(NORTH),
|
.forHorizontal(NORTH),
|
||||||
BELT_FUNNEL_EXTENDED = shape(2, -2, 14, 14, 14, 18).add(3, -4, 10, 13, 13, 14)
|
BELT_FUNNEL_EXTENDED = shape(2, -2, 14, 14, 14, 18).add(3, -4, 10, 13, 13, 14)
|
||||||
.add(2, -4, 6, 14, 14, 10)
|
.add(2, -4, 6, 14, 14, 10)
|
||||||
.add(0, -5, 0, 16, 16, 6)
|
.add(0, -5, 0, 16, 16, 6)
|
||||||
.forHorizontal(NORTH),
|
.forHorizontal(NORTH),
|
||||||
BELT_FUNNEL_PERPENDICULAR =
|
BELT_FUNNEL_PERPENDICULAR = shape(2, -2, 14, 14, 14, 18).add(1, 8, 12, 15, 15, 14)
|
||||||
shape(2, -2, 14, 14, 14, 18)
|
|
||||||
.add(1, 8, 12, 15, 15, 14)
|
|
||||||
.add(0.1, 13, 7, 15.9, 15, 11)
|
.add(0.1, 13, 7, 15.9, 15, 11)
|
||||||
.add(0.1, 9, 8, 15.9, 13, 12)
|
.add(0.1, 9, 8, 15.9, 13, 12)
|
||||||
.add(0.1, 5, 9, 15.9, 9, 13)
|
.add(0.1, 5, 9, 15.9, 9, 13)
|
||||||
.add(0.1, 1, 10, 15.9, 5, 14)
|
.add(0.1, 1, 10, 15.9, 5, 14)
|
||||||
.add(0.1, -3, 11, 15.9, 1, 15)
|
.add(0.1, -3, 11, 15.9, 1, 15)
|
||||||
.forHorizontal(NORTH),
|
.forHorizontal(NORTH),
|
||||||
BELT_FUNNEL_CONNECTED =
|
FUNNEL = shape(2, 2, 14, 14, 14, 18).add(1, 8, 12, 15, 15, 14)
|
||||||
shape(2, -2, 14, 14, 14, 18)
|
.add(0.1, 13, 7, 15.9, 15, 11)
|
||||||
.add(0, -5, 5, 16, 16, 11)
|
.add(0.1, 9, 8, 15.9, 13, 12)
|
||||||
.add(2, -4, 2, 14, 14, -2)
|
.add(0.1, 5, 9, 15.9, 9, 13)
|
||||||
.add(3, -2, 0, 13, 13, 16)
|
.add(0.1, 1, 10, 15.9, 5, 14)
|
||||||
|
.add(0.1, -1, 11, 15.9, 1, 15)
|
||||||
.forHorizontal(NORTH),
|
.forHorizontal(NORTH),
|
||||||
FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14)
|
FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14)
|
||||||
.forAxis(),
|
.forAxis(),
|
||||||
|
@ -152,6 +140,8 @@ public class AllShapes {
|
||||||
BASIN_COLLISION_SHAPE = shape(0, 2, 0, 16, 13, 16).erase(2, 5, 2, 14, 16, 14)
|
BASIN_COLLISION_SHAPE = shape(0, 2, 0, 16, 13, 16).erase(2, 5, 2, 14, 16, 14)
|
||||||
.add(2, 0, 2, 14, 2, 14)
|
.add(2, 0, 2, 14, 2, 14)
|
||||||
.build(),
|
.build(),
|
||||||
|
SPEED_CONTROLLER = shape(0, 0, 0, 16, 4, 16).add(1, 1, 1, 15, 13, 15)
|
||||||
|
.add(0, 8, 0, 16, 14, 16).build(),
|
||||||
HEATER_BLOCK_SHAPE = shape(2, 0, 2, 14, 14, 14).add(0, 0, 0, 16, 4, 16)
|
HEATER_BLOCK_SHAPE = shape(2, 0, 2, 14, 14, 14).add(0, 0, 0, 16, 4, 16)
|
||||||
.build(),
|
.build(),
|
||||||
HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(),
|
HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(),
|
||||||
|
@ -183,6 +173,9 @@ public class AllShapes {
|
||||||
.build(),
|
.build(),
|
||||||
CHUTE = shape(1, 8, 1, 15, 16, 15).add(2, 0, 2, 14, 8, 14)
|
CHUTE = shape(1, 8, 1, 15, 16, 15).add(2, 0, 2, 14, 8, 14)
|
||||||
.build(),
|
.build(),
|
||||||
|
SMART_CHUTE = shape(0, 0, 0, 16, 5, 16).add(0, 9, 0, 16, 15, 16)
|
||||||
|
.add(1, 0, 1, 15, 16, 15)
|
||||||
|
.build(),
|
||||||
TANK = shape(1, 0, 1, 15, 16, 15).build(), TANK_TOP = shape(TANK_TOP_LID).add(TANK)
|
TANK = shape(1, 0, 1, 15, 16, 15).build(), TANK_TOP = shape(TANK_TOP_LID).add(TANK)
|
||||||
.build(),
|
.build(),
|
||||||
TANK_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK)
|
TANK_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK)
|
||||||
|
@ -190,6 +183,12 @@ public class AllShapes {
|
||||||
TANK_TOP_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK_TOP_LID)
|
TANK_TOP_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK_TOP_LID)
|
||||||
.add(TANK)
|
.add(TANK)
|
||||||
.build(),
|
.build(),
|
||||||
|
FUNNEL_FLOOR = shape(2, -2, 2, 14, 8, 14).add(1, 2, 1, 15, 8, 15)
|
||||||
|
.add(0, 4, 0, 16, 10, 16)
|
||||||
|
.build(),
|
||||||
|
FUNNEL_CEILING = shape(2, 8, 2, 14, 18, 14).add(1, 8, 1, 15, 14, 15)
|
||||||
|
.add(0, 6, 0, 16, 12, 16)
|
||||||
|
.build(),
|
||||||
DEPOT = shape(CASING_11PX.get(Direction.UP)).add(1, 11, 1, 15, 13, 15)
|
DEPOT = shape(CASING_11PX.get(Direction.UP)).add(1, 11, 1, 15, 13, 15)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
|
|
@ -18,44 +18,40 @@ import com.simibubi.create.foundation.block.render.SpriteShifter;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
|
||||||
import net.minecraft.block.WoodType;
|
import net.minecraft.block.WoodType;
|
||||||
|
import net.minecraft.item.DyeColor;
|
||||||
|
|
||||||
public class AllSpriteShifts {
|
public class AllSpriteShifts {
|
||||||
|
|
||||||
static final Map<WoodType, CTSpriteShiftEntry>
|
static final Map<WoodType, CTSpriteShiftEntry> WOODEN_WINDOWS = new IdentityHashMap<>();
|
||||||
WOODEN_WINDOWS = new IdentityHashMap<>();
|
static final Map<PaletteStoneVariants, Map<PaletteBlockPatterns.CTs, CTSpriteShiftEntry>> PALETTE_VARIANT_PATTERNS =
|
||||||
static final Map<PaletteStoneVariants, Map<PaletteBlockPatterns.CTs, CTSpriteShiftEntry>>
|
new IdentityHashMap<>();
|
||||||
PALETTE_VARIANT_PATTERNS = new IdentityHashMap<>();
|
|
||||||
|
|
||||||
public static final CTSpriteShiftEntry
|
public static final Map<DyeColor, SpriteShiftEntry> DYED_BELTS = new IdentityHashMap<>(),
|
||||||
FRAMED_GLASS = getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"),
|
DYED_OFFSET_BELTS = new IdentityHashMap<>(), DYED_DIAGONAL_BELTS = new IdentityHashMap<>();
|
||||||
|
|
||||||
|
public static final CTSpriteShiftEntry FRAMED_GLASS =
|
||||||
|
getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"),
|
||||||
HORIZONTAL_FRAMED_GLASS = getCT(HORIZONTAL, "palettes/framed_glass", "palettes/horizontal_framed_glass"),
|
HORIZONTAL_FRAMED_GLASS = getCT(HORIZONTAL, "palettes/framed_glass", "palettes/horizontal_framed_glass"),
|
||||||
VERTICAL_FRAMED_GLASS = getCT(VERTICAL, "palettes/framed_glass", "palettes/vertical_framed_glass"),
|
VERTICAL_FRAMED_GLASS = getCT(VERTICAL, "palettes/framed_glass", "palettes/vertical_framed_glass"),
|
||||||
ORNATE_IRON_WINDOW = vertical("palettes/ornate_iron_window");
|
ORNATE_IRON_WINDOW = vertical("palettes/ornate_iron_window");
|
||||||
|
|
||||||
public static final CTSpriteShiftEntry
|
public static final CTSpriteShiftEntry CRAFTER_FRONT = getCT(CTType.OMNIDIRECTIONAL, "crafter_top", "brass_casing"),
|
||||||
CRAFTER_FRONT = getCT(CTType.OMNIDIRECTIONAL, "crafter_top", "brass_casing"),
|
|
||||||
CRAFTER_SIDE = getCT(CTType.VERTICAL, "crafter_side"),
|
CRAFTER_SIDE = getCT(CTType.VERTICAL, "crafter_side"),
|
||||||
CRAFTER_OTHERSIDE = getCT(CTType.HORIZONTAL, "crafter_side");
|
CRAFTER_OTHERSIDE = getCT(CTType.HORIZONTAL, "crafter_side");
|
||||||
|
|
||||||
public static final CTSpriteShiftEntry
|
public static final CTSpriteShiftEntry ANDESITE_CASING = omni("andesite_casing"),
|
||||||
ANDESITE_CASING = omni("andesite_casing"),
|
BRASS_CASING = omni("brass_casing"), COPPER_CASING = omni("copper_casing"),
|
||||||
BRASS_CASING = omni("brass_casing"),
|
SHADOW_STEEL_CASING = omni("shadow_steel_casing"), REFINED_RADIANCE_CASING = omni("refined_radiance_casing"),
|
||||||
COPPER_CASING = omni("copper_casing"),
|
|
||||||
SHADOW_STEEL_CASING = omni("shadow_steel_casing"),
|
|
||||||
REFINED_RADIANCE_CASING = omni("refined_radiance_casing"),
|
|
||||||
CREATIVE_CASING = getCT(CTType.CROSS, "creative_casing");
|
CREATIVE_CASING = getCT(CTType.CROSS, "creative_casing");
|
||||||
|
|
||||||
public static final CTSpriteShiftEntry
|
public static final CTSpriteShiftEntry CHASSIS = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end"),
|
||||||
CHASSIS = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end"),
|
|
||||||
CHASSIS_STICKY = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end_sticky");
|
CHASSIS_STICKY = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end_sticky");
|
||||||
|
|
||||||
public static final CTSpriteShiftEntry
|
public static final CTSpriteShiftEntry BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"),
|
||||||
BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"),
|
|
||||||
FLUID_TANK = getCT(CTType.CROSS, "fluid_tank"),
|
FLUID_TANK = getCT(CTType.CROSS, "fluid_tank"),
|
||||||
CREATIVE_FLUID_TANK = getCT(CTType.CROSS, "creative_fluid_tank");
|
CREATIVE_FLUID_TANK = getCT(CTType.CROSS, "creative_fluid_tank");
|
||||||
|
|
||||||
public static final SpriteShiftEntry
|
public static final SpriteShiftEntry BELT = SpriteShifter.get("block/belt", "block/belt_animated"),
|
||||||
BELT = SpriteShifter.get("block/belt", "block/belt_animated"),
|
|
||||||
BELT_OFFSET = SpriteShifter.get("block/belt_offset", "block/belt_animated"),
|
BELT_OFFSET = SpriteShifter.get("block/belt_offset", "block/belt_animated"),
|
||||||
BELT_DIAGONAL = SpriteShifter.get("block/belt_diagonal", "block/belt_diagonal_animated"),
|
BELT_DIAGONAL = SpriteShifter.get("block/belt_diagonal", "block/belt_diagonal_animated"),
|
||||||
ANDESIDE_BELT_CASING = SpriteShifter.get("block/brass_casing_belt", "block/andesite_casing_belt"),
|
ANDESIDE_BELT_CASING = SpriteShifter.get("block/brass_casing_belt", "block/andesite_casing_belt"),
|
||||||
|
@ -93,6 +89,13 @@ public class AllSpriteShifts {
|
||||||
map.put(texture, getCT(texture.type, target));
|
map.put(texture, getCT(texture.type, target));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (DyeColor color : DyeColor.values()) {
|
||||||
|
String id = color.getName();
|
||||||
|
DYED_BELTS.put(color, SpriteShifter.get("block/belt", "block/belt/" + id));
|
||||||
|
DYED_OFFSET_BELTS.put(color, SpriteShifter.get("block/belt_offset", "block/belt/" + id));
|
||||||
|
DYED_DIAGONAL_BELTS.put(color, SpriteShifter.get("block/belt_diagonal", "block/belt/" + id + "_diagonal"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -201,6 +201,7 @@ public class AllTags {
|
||||||
|
|
||||||
AllBlockTags.FAN_HEATERS.add(Blocks.MAGMA_BLOCK, Blocks.CAMPFIRE, Blocks.LAVA, Blocks.FIRE, Blocks.SOUL_FIRE,
|
AllBlockTags.FAN_HEATERS.add(Blocks.MAGMA_BLOCK, Blocks.CAMPFIRE, Blocks.LAVA, Blocks.FIRE, Blocks.SOUL_FIRE,
|
||||||
Blocks.SOUL_CAMPFIRE);
|
Blocks.SOUL_CAMPFIRE);
|
||||||
|
AllBlockTags.SAFE_NBT.includeAll(BlockTags.SIGNS);
|
||||||
|
|
||||||
AllFluidTags.loadClass();
|
AllFluidTags.loadClass();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionRenderer;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer;
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonTileEntity;
|
||||||
|
@ -68,6 +70,7 @@ import com.simibubi.create.content.contraptions.processing.BasinRenderer;
|
||||||
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
|
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerRenderer;
|
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerRenderer;
|
||||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity;
|
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity;
|
||||||
|
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer;
|
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
|
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity;
|
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity;
|
||||||
|
@ -90,6 +93,8 @@ import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelTileEn
|
||||||
import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelTileEntity;
|
import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelTileEntity;
|
||||||
import com.simibubi.create.content.logistics.block.chute.ChuteRenderer;
|
import com.simibubi.create.content.logistics.block.chute.ChuteRenderer;
|
||||||
import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity;
|
import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity;
|
||||||
|
import com.simibubi.create.content.logistics.block.chute.SmartChuteRenderer;
|
||||||
|
import com.simibubi.create.content.logistics.block.chute.SmartChuteTileEntity;
|
||||||
import com.simibubi.create.content.logistics.block.depot.DepotRenderer;
|
import com.simibubi.create.content.logistics.block.depot.DepotRenderer;
|
||||||
import com.simibubi.create.content.logistics.block.depot.DepotTileEntity;
|
import com.simibubi.create.content.logistics.block.depot.DepotTileEntity;
|
||||||
import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity;
|
import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity;
|
||||||
|
@ -201,6 +206,18 @@ public class AllTileEntities {
|
||||||
.validBlocks(AllBlocks.CUCKOO_CLOCK, AllBlocks.MYSTERIOUS_CUCKOO_CLOCK)
|
.validBlocks(AllBlocks.CUCKOO_CLOCK, AllBlocks.MYSTERIOUS_CUCKOO_CLOCK)
|
||||||
.renderer(() -> CuckooClockRenderer::new)
|
.renderer(() -> CuckooClockRenderer::new)
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final TileEntityEntry<GantryShaftTileEntity> GANTRY_SHAFT = Create.registrate()
|
||||||
|
.tileEntity("gantry_shaft", GantryShaftTileEntity::new)
|
||||||
|
.validBlocks(AllBlocks.GANTRY_SHAFT)
|
||||||
|
.renderer(() -> KineticTileEntityRenderer::new)
|
||||||
|
.register();
|
||||||
|
|
||||||
|
public static final TileEntityEntry<GantryPinionTileEntity> GANTRY_PINION = Create.registrate()
|
||||||
|
.tileEntity("gantry_pinion", GantryPinionTileEntity::new)
|
||||||
|
.validBlocks(AllBlocks.GANTRY_PINION)
|
||||||
|
.renderer(() -> GantryPinionRenderer::new)
|
||||||
|
.register();
|
||||||
|
|
||||||
public static final TileEntityEntry<PumpTileEntity> MECHANICAL_PUMP = Create.registrate()
|
public static final TileEntityEntry<PumpTileEntity> MECHANICAL_PUMP = Create.registrate()
|
||||||
.tileEntity("mechanical_pump", PumpTileEntity::new)
|
.tileEntity("mechanical_pump", PumpTileEntity::new)
|
||||||
|
@ -278,6 +295,12 @@ public class AllTileEntities {
|
||||||
.renderer(() -> ChuteRenderer::new)
|
.renderer(() -> ChuteRenderer::new)
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final TileEntityEntry<SmartChuteTileEntity> SMART_CHUTE = Create.registrate()
|
||||||
|
.tileEntity("smart_chute", SmartChuteTileEntity::new)
|
||||||
|
.validBlocks(AllBlocks.SMART_CHUTE)
|
||||||
|
.renderer(() -> SmartChuteRenderer::new)
|
||||||
|
.register();
|
||||||
|
|
||||||
public static final TileEntityEntry<BeltTunnelTileEntity> ANDESITE_TUNNEL = Create.registrate()
|
public static final TileEntityEntry<BeltTunnelTileEntity> ANDESITE_TUNNEL = Create.registrate()
|
||||||
.tileEntity("andesite_tunnel", BeltTunnelTileEntity::new)
|
.tileEntity("andesite_tunnel", BeltTunnelTileEntity::new)
|
||||||
.validBlocks(AllBlocks.ANDESITE_TUNNEL)
|
.validBlocks(AllBlocks.ANDESITE_TUNNEL)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler;
|
||||||
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
||||||
import com.simibubi.create.content.palettes.PalettesItemGroup;
|
import com.simibubi.create.content.palettes.PalettesItemGroup;
|
||||||
import com.simibubi.create.content.schematics.ServerSchematicLoader;
|
import com.simibubi.create.content.schematics.ServerSchematicLoader;
|
||||||
|
import com.simibubi.create.content.schematics.filtering.SchematicInstances;
|
||||||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||||
import com.simibubi.create.foundation.command.ChunkUtil;
|
import com.simibubi.create.foundation.command.ChunkUtil;
|
||||||
|
@ -51,7 +52,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.3";
|
public static final String VERSION = "0.3.1";
|
||||||
|
|
||||||
public static Logger logger = LogManager.getLogger();
|
public static Logger logger = LogManager.getLogger();
|
||||||
public static ItemGroup baseCreativeTab = new CreateItemGroup();
|
public static ItemGroup baseCreativeTab = new CreateItemGroup();
|
||||||
|
@ -101,6 +102,7 @@ public class Create {
|
||||||
|
|
||||||
public static void init(final FMLCommonSetupEvent event) {
|
public static void init(final FMLCommonSetupEvent event) {
|
||||||
CapabilityMinecartController.register();
|
CapabilityMinecartController.register();
|
||||||
|
SchematicInstances.register();
|
||||||
schematicReceiver = new ServerSchematicLoader();
|
schematicReceiver = new ServerSchematicLoader();
|
||||||
redstoneLinkNetworkHandler = new RedstoneLinkNetworkHandler();
|
redstoneLinkNetworkHandler = new RedstoneLinkNetworkHandler();
|
||||||
torquePropagator = new TorquePropagator();
|
torquePropagator = new TorquePropagator();
|
||||||
|
|
|
@ -11,7 +11,6 @@ import com.simibubi.create.content.contraptions.base.IRotate;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
|
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
|
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
|
||||||
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;
|
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.DirectionalShaftHalvesTileEntity;
|
import com.simibubi.create.content.contraptions.relays.encased.DirectionalShaftHalvesTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock;
|
import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock;
|
||||||
|
@ -70,11 +69,9 @@ public class RotationPropagator {
|
||||||
boolean connectedByGears = definitionFrom.hasIntegratedCogwheel(world, from.getPos(), stateFrom)
|
boolean connectedByGears = definitionFrom.hasIntegratedCogwheel(world, from.getPos(), stateFrom)
|
||||||
&& definitionTo.hasIntegratedCogwheel(world, to.getPos(), stateTo);
|
&& definitionTo.hasIntegratedCogwheel(world, to.getPos(), stateTo);
|
||||||
|
|
||||||
// Belt <-> Belt
|
float custom = from.propagateRotationTo(to, stateFrom, stateTo, diff, connectedByAxis, connectedByGears);
|
||||||
if (from instanceof BeltTileEntity && to instanceof BeltTileEntity && !connectedByAxis) {
|
if (custom != 0)
|
||||||
return ((BeltTileEntity) from).getController()
|
return custom;
|
||||||
.equals(((BeltTileEntity) to).getController()) ? 1 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Axis <-> Axis
|
// Axis <-> Axis
|
||||||
if (connectedByAxis) {
|
if (connectedByAxis) {
|
||||||
|
@ -230,6 +227,9 @@ public class RotationPropagator {
|
||||||
float newSpeed = getConveyedSpeed(currentTE, neighbourTE);
|
float newSpeed = getConveyedSpeed(currentTE, neighbourTE);
|
||||||
float oppositeSpeed = getConveyedSpeed(neighbourTE, currentTE);
|
float oppositeSpeed = getConveyedSpeed(neighbourTE, currentTE);
|
||||||
|
|
||||||
|
if (newSpeed == 0 && oppositeSpeed == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
boolean incompatible =
|
boolean incompatible =
|
||||||
Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0);
|
Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0);
|
||||||
|
|
||||||
|
@ -395,7 +395,7 @@ public class RotationPropagator {
|
||||||
if (!(neighbourKTE.getBlockState()
|
if (!(neighbourKTE.getBlockState()
|
||||||
.getBlock() instanceof IRotate))
|
.getBlock() instanceof IRotate))
|
||||||
return null;
|
return null;
|
||||||
if (!isConnected(currentTE, neighbourKTE))
|
if (!isConnected(currentTE, neighbourKTE) && !isConnected(neighbourKTE, currentTE))
|
||||||
return null;
|
return null;
|
||||||
return neighbourKTE;
|
return neighbourKTE;
|
||||||
}
|
}
|
||||||
|
@ -403,14 +403,9 @@ public class RotationPropagator {
|
||||||
public static boolean isConnected(KineticTileEntity from, KineticTileEntity to) {
|
public static boolean isConnected(KineticTileEntity from, KineticTileEntity to) {
|
||||||
final BlockState stateFrom = from.getBlockState();
|
final BlockState stateFrom = from.getBlockState();
|
||||||
final BlockState stateTo = to.getBlockState();
|
final BlockState stateTo = to.getBlockState();
|
||||||
|
return isLargeCogToSpeedController(stateFrom, stateTo, to.getPos()
|
||||||
if (isLargeCogToSpeedController(stateFrom, stateTo, to.getPos()
|
.subtract(from.getPos())) || getRotationSpeedModifier(from, to) != 0
|
||||||
.subtract(from.getPos())))
|
|| from.isCustomConnection(to, stateFrom, stateTo);
|
||||||
return true;
|
|
||||||
if (isLargeCogToSpeedController(stateTo, stateFrom, from.getPos()
|
|
||||||
.subtract(to.getPos())))
|
|
||||||
return true;
|
|
||||||
return getRotationSpeedModifier(from, to) != 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<KineticTileEntity> getConnectedNeighbours(KineticTileEntity te) {
|
private static List<KineticTileEntity> getConnectedNeighbours(KineticTileEntity te) {
|
||||||
|
@ -436,30 +431,11 @@ public class RotationPropagator {
|
||||||
neighbours.add(te.getPos()
|
neighbours.add(te.getPos()
|
||||||
.offset(facing));
|
.offset(facing));
|
||||||
|
|
||||||
// Some Blocks can interface diagonally
|
|
||||||
BlockState blockState = te.getBlockState();
|
BlockState blockState = te.getBlockState();
|
||||||
boolean isLargeWheel = isLargeCog(blockState);
|
|
||||||
|
|
||||||
if (!(blockState.getBlock() instanceof IRotate))
|
if (!(blockState.getBlock() instanceof IRotate))
|
||||||
return neighbours;
|
return neighbours;
|
||||||
IRotate block = (IRotate) blockState.getBlock();
|
IRotate block = (IRotate) blockState.getBlock();
|
||||||
|
return te.addPropagationLocations(block, blockState, neighbours);
|
||||||
if (block.hasIntegratedCogwheel(te.getWorld(), te.getPos(), blockState) || isLargeWheel
|
|
||||||
|| AllBlocks.BELT.has(blockState)) {
|
|
||||||
Axis axis = block.getRotationAxis(blockState);
|
|
||||||
|
|
||||||
BlockPos.getAllInBox(new BlockPos(-1, -1, -1), new BlockPos(1, 1, 1))
|
|
||||||
.forEach(offset -> {
|
|
||||||
if (!isLargeWheel && axis.getCoordinate(offset.getX(), offset.getY(), offset.getZ()) != 0)
|
|
||||||
return;
|
|
||||||
if (offset.distanceSq(0, 0, 0, false) != BlockPos.ZERO.distanceSq(1, 1, 0, false))
|
|
||||||
return;
|
|
||||||
neighbours.add(te.getPos()
|
|
||||||
.add(offset));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return neighbours;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,8 @@ public abstract class KineticBlock extends Block implements IRotate {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canHarvestBlock(BlockState state, IBlockReader world, BlockPos pos, PlayerEntity player) {
|
public boolean canHarvestBlock(BlockState state, IBlockReader world, BlockPos pos, PlayerEntity player) {
|
||||||
for (ToolType toolType : player.getHeldItemMainhand().getToolTypes()) {
|
for (ToolType toolType : player.getHeldItemMainhand()
|
||||||
|
.getToolTypes()) {
|
||||||
if (isToolEffective(state, toolType))
|
if (isToolEffective(state, toolType))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -46,6 +47,24 @@ public abstract class KineticBlock extends Block implements IRotate {
|
||||||
@Override
|
@Override
|
||||||
public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) {
|
public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) {
|
||||||
// onBlockAdded is useless for init, as sometimes the TE gets re-instantiated
|
// onBlockAdded is useless for init, as sometimes the TE gets re-instantiated
|
||||||
|
|
||||||
|
// however, if a block change occurs that does not change kinetic connections,
|
||||||
|
// we can prevent a major re-propagation here
|
||||||
|
|
||||||
|
TileEntity tileEntity = worldIn.getTileEntity(pos);
|
||||||
|
if (tileEntity instanceof KineticTileEntity) {
|
||||||
|
KineticTileEntity kineticTileEntity = (KineticTileEntity) tileEntity;
|
||||||
|
kineticTileEntity.preventSpeedUpdate = false;
|
||||||
|
|
||||||
|
if (oldState.getBlock() != state.getBlock())
|
||||||
|
return;
|
||||||
|
if (state.hasTileEntity() != oldState.hasTileEntity())
|
||||||
|
return;
|
||||||
|
if (!areStatesKineticallyEquivalent(oldState, state))
|
||||||
|
return;
|
||||||
|
|
||||||
|
kineticTileEntity.preventSpeedUpdate = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -63,6 +82,10 @@ public abstract class KineticBlock extends Block implements IRotate {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) {
|
||||||
|
return getRotationAxis(newState) == getRotationAxis(oldState);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public abstract TileEntity createTileEntity(BlockState state, IBlockReader world);
|
public abstract TileEntity createTileEntity(BlockState state, IBlockReader world);
|
||||||
|
|
||||||
|
@ -77,9 +100,14 @@ public abstract class KineticBlock extends Block implements IRotate {
|
||||||
TileEntity tileEntity = worldIn.getTileEntity(pos);
|
TileEntity tileEntity = worldIn.getTileEntity(pos);
|
||||||
if (!(tileEntity instanceof KineticTileEntity))
|
if (!(tileEntity instanceof KineticTileEntity))
|
||||||
return;
|
return;
|
||||||
|
KineticTileEntity kte = (KineticTileEntity) tileEntity;
|
||||||
|
|
||||||
|
if (kte.preventSpeedUpdate) {
|
||||||
|
kte.preventSpeedUpdate = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Remove previous information when block is added
|
// Remove previous information when block is added
|
||||||
KineticTileEntity kte = (KineticTileEntity) tileEntity;
|
|
||||||
kte.warnOfMovement();
|
kte.warnOfMovement();
|
||||||
kte.clearKineticInformation();
|
kte.clearKineticInformation();
|
||||||
kte.updateSpeed = true;
|
kte.updateSpeed = true;
|
||||||
|
|
|
@ -30,6 +30,7 @@ import net.minecraft.tileentity.ITickableTileEntity;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
|
import net.minecraft.util.Direction.Axis;
|
||||||
import net.minecraft.util.Direction.AxisDirection;
|
import net.minecraft.util.Direction.AxisDirection;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
@ -44,6 +45,7 @@ public abstract class KineticTileEntity extends SmartTileEntity
|
||||||
public @Nullable BlockPos source;
|
public @Nullable BlockPos source;
|
||||||
public boolean networkDirty;
|
public boolean networkDirty;
|
||||||
public boolean updateSpeed;
|
public boolean updateSpeed;
|
||||||
|
public boolean preventSpeedUpdate;
|
||||||
|
|
||||||
protected KineticEffectHandler effects;
|
protected KineticEffectHandler effects;
|
||||||
protected float speed;
|
protected float speed;
|
||||||
|
@ -363,11 +365,15 @@ public abstract class KineticTileEntity extends SmartTileEntity
|
||||||
}
|
}
|
||||||
|
|
||||||
KineticTileEntity tileEntity = (KineticTileEntity) tileEntityIn;
|
KineticTileEntity tileEntity = (KineticTileEntity) tileEntityIn;
|
||||||
if (tileEntity.hasNetwork())
|
if (state.getBlock() instanceof KineticBlock
|
||||||
tileEntity.getOrCreateNetwork()
|
&& !((KineticBlock) state.getBlock()).areStatesKineticallyEquivalent(currentState, state)) {
|
||||||
.remove(tileEntity);
|
if (tileEntity.hasNetwork())
|
||||||
tileEntity.detachKinetics();
|
tileEntity.getOrCreateNetwork()
|
||||||
tileEntity.removeSource();
|
.remove(tileEntity);
|
||||||
|
tileEntity.detachKinetics();
|
||||||
|
tileEntity.removeSource();
|
||||||
|
}
|
||||||
|
|
||||||
world.setBlockState(pos, state, 3);
|
world.setBlockState(pos, state, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,4 +454,72 @@ public abstract class KineticTileEntity extends SmartTileEntity
|
||||||
return overStressed;
|
return overStressed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Custom Propagation
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify ratio of transferred rotation from this kinetic component to a
|
||||||
|
* specific other.
|
||||||
|
*
|
||||||
|
* @param target other Kinetic TE to transfer to
|
||||||
|
* @param stateFrom this TE's blockstate
|
||||||
|
* @param stateTo other TE's blockstate
|
||||||
|
* @param diff difference in position (to.pos - from.pos)
|
||||||
|
* @param connectedViaAxes whether these kinetic blocks are connected via mutual
|
||||||
|
* IRotate.hasShaftTowards()
|
||||||
|
* @param connectedViaCogs whether these kinetic blocks are connected via mutual
|
||||||
|
* IRotate.hasIntegratedCogwheel()
|
||||||
|
* @return factor of rotation speed from this TE to other. 0 if no rotation is
|
||||||
|
* transferred, or the standard rules apply (integrated shafts/cogs)
|
||||||
|
*/
|
||||||
|
public float propagateRotationTo(KineticTileEntity target, BlockState stateFrom, BlockState stateTo, BlockPos diff,
|
||||||
|
boolean connectedViaAxes, boolean connectedViaCogs) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify additional locations the rotation propagator should look for
|
||||||
|
* potentially connected components. Neighbour list contains offset positions in
|
||||||
|
* all 6 directions by default.
|
||||||
|
*
|
||||||
|
* @param block
|
||||||
|
* @param state
|
||||||
|
* @param neighbours
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<BlockPos> addPropagationLocations(IRotate block, BlockState state, List<BlockPos> neighbours) {
|
||||||
|
if (!canPropagateDiagonally(block, state))
|
||||||
|
return neighbours;
|
||||||
|
|
||||||
|
Axis axis = block.getRotationAxis(state);
|
||||||
|
BlockPos.getAllInBox(new BlockPos(-1, -1, -1), new BlockPos(1, 1, 1))
|
||||||
|
.forEach(offset -> {
|
||||||
|
if (axis.getCoordinate(offset.getX(), offset.getY(), offset.getZ()) != 0)
|
||||||
|
return;
|
||||||
|
if (offset.distanceSq(0, 0, 0, false) != BlockPos.ZERO.distanceSq(1, 1, 0, false))
|
||||||
|
return;
|
||||||
|
neighbours.add(pos.add(offset));
|
||||||
|
});
|
||||||
|
return neighbours;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify whether this component can propagate speed to the other in any
|
||||||
|
* circumstance. Shaft and cogwheel connections are already handled by internal
|
||||||
|
* logic. Does not have to be specified on both ends, it is assumed that this
|
||||||
|
* relation is symmetrical.
|
||||||
|
*
|
||||||
|
* @param other
|
||||||
|
* @param state
|
||||||
|
* @param otherState
|
||||||
|
* @return true if this and the other component should check their propagation
|
||||||
|
* factor and are not already connected via integrated cogs or shafts
|
||||||
|
*/
|
||||||
|
public boolean isCustomConnection(KineticTileEntity other, BlockState state, BlockState otherState) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean canPropagateDiagonally(IRotate block, BlockState state) {
|
||||||
|
return block.hasIntegratedCogwheel(world, pos, state);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,8 +185,7 @@ public class DeployerTileEntity extends KineticTileEntity {
|
||||||
if (state == State.EXPANDING) {
|
if (state == State.EXPANDING) {
|
||||||
if (boop)
|
if (boop)
|
||||||
triggerBoop();
|
triggerBoop();
|
||||||
else
|
activate();
|
||||||
activate();
|
|
||||||
|
|
||||||
state = State.RETRACTING;
|
state = State.RETRACTING;
|
||||||
timer = 1000;
|
timer = 1000;
|
||||||
|
|
|
@ -82,7 +82,7 @@ public class AirCurrent {
|
||||||
protected void tickAffectedEntities(World world, Direction facing) {
|
protected void tickAffectedEntities(World world, Direction facing) {
|
||||||
for (Iterator<Entity> iterator = caughtEntities.iterator(); iterator.hasNext();) {
|
for (Iterator<Entity> iterator = caughtEntities.iterator(); iterator.hasNext();) {
|
||||||
Entity entity = iterator.next();
|
Entity entity = iterator.next();
|
||||||
if (!entity.getBoundingBox()
|
if (!entity.isAlive() || !entity.getBoundingBox()
|
||||||
.intersects(bounds)) {
|
.intersects(bounds)) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package com.simibubi.create.content.contraptions.components.fan;
|
package com.simibubi.create.content.contraptions.components.fan;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
|
||||||
import com.simibubi.create.AllTileEntities;
|
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.content.logistics.block.chute.AbstractChuteBlock;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
|
import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
|
||||||
|
|
||||||
|
@ -32,9 +32,16 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) {
|
public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) {
|
||||||
|
super.onBlockAdded(state, worldIn, pos, oldState, isMoving);
|
||||||
blockUpdate(state, worldIn, pos);
|
blockUpdate(state, worldIn, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateNeighbors(BlockState stateIn, IWorld worldIn, BlockPos pos, int flags) {
|
||||||
|
super.updateNeighbors(stateIn, worldIn, pos, flags);
|
||||||
|
blockUpdate(stateIn, worldIn, pos);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReplaced(BlockState state, World world, BlockPos pos, BlockState p_196243_4_, boolean p_196243_5_) {
|
public void onReplaced(BlockState state, World world, BlockPos pos, BlockState p_196243_4_, boolean p_196243_5_) {
|
||||||
if (state.hasTileEntity() && (state.getBlock() != p_196243_4_.getBlock() || !p_196243_4_.hasTileEntity())) {
|
if (state.hasTileEntity() && (state.getBlock() != p_196243_4_.getBlock() || !p_196243_4_.hasTileEntity())) {
|
||||||
|
@ -57,9 +64,9 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
|
||||||
|
|
||||||
BlockState placedOn = world.getBlockState(pos.offset(face.getOpposite()));
|
BlockState placedOn = world.getBlockState(pos.offset(face.getOpposite()));
|
||||||
BlockState placedOnOpposite = world.getBlockState(pos.offset(face));
|
BlockState placedOnOpposite = world.getBlockState(pos.offset(face));
|
||||||
if (AllBlocks.CHUTE.has(placedOn))
|
if (AbstractChuteBlock.isChute(placedOn))
|
||||||
return getDefaultState().with(FACING, face.getOpposite());
|
return getDefaultState().with(FACING, face.getOpposite());
|
||||||
if (AllBlocks.CHUTE.has(placedOnOpposite))
|
if (AbstractChuteBlock.isChute(placedOnOpposite))
|
||||||
return getDefaultState().with(FACING, face);
|
return getDefaultState().with(FACING, face);
|
||||||
|
|
||||||
Direction preferredFacing = getPreferredFacing(context);
|
Direction preferredFacing = getPreferredFacing(context);
|
||||||
|
@ -69,13 +76,13 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
|
||||||
.isSneaking() ? preferredFacing : preferredFacing.getOpposite());
|
.isSneaking() ? preferredFacing : preferredFacing.getOpposite());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void blockUpdate(BlockState state, World worldIn, BlockPos pos) {
|
protected void blockUpdate(BlockState state, IWorld worldIn, BlockPos pos) {
|
||||||
if (worldIn instanceof WrappedWorld)
|
if (worldIn instanceof WrappedWorld)
|
||||||
return;
|
return;
|
||||||
notifyFanTile(worldIn, pos);
|
notifyFanTile(worldIn, pos);
|
||||||
if (worldIn.isRemote)
|
if (worldIn.isRemote())
|
||||||
return;
|
return;
|
||||||
withTileEntityDo(worldIn, pos, te -> te.updateGenerator(state.get(FACING)));
|
withTileEntityDo(worldIn, pos, te -> te.queueGeneratorUpdate());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void notifyFanTile(IWorld world, BlockPos pos) {
|
protected void notifyFanTile(IWorld world, BlockPos pos) {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.fan;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllTags.AllBlockTags;
|
import com.simibubi.create.AllTags.AllBlockTags;
|
||||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||||
|
@ -19,7 +20,6 @@ import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
|
||||||
@MethodsReturnNonnullByDefault
|
@MethodsReturnNonnullByDefault
|
||||||
public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements IAirCurrentSource {
|
public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements IAirCurrentSource {
|
||||||
|
|
||||||
|
@ -28,18 +28,21 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements
|
||||||
protected int entitySearchCooldown;
|
protected int entitySearchCooldown;
|
||||||
protected boolean isGenerator;
|
protected boolean isGenerator;
|
||||||
protected boolean updateAirFlow;
|
protected boolean updateAirFlow;
|
||||||
|
protected boolean updateGenerator;
|
||||||
|
|
||||||
public EncasedFanTileEntity(TileEntityType<? extends EncasedFanTileEntity> type) {
|
public EncasedFanTileEntity(TileEntityType<? extends EncasedFanTileEntity> type) {
|
||||||
super(type);
|
super(type);
|
||||||
isGenerator = false;
|
isGenerator = false;
|
||||||
airCurrent = new AirCurrent(this);
|
airCurrent = new AirCurrent(this);
|
||||||
updateAirFlow = true;
|
updateAirFlow = true;
|
||||||
|
updateGenerator = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) {
|
protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) {
|
||||||
super.fromTag(state, compound, clientPacket);
|
super.fromTag(state, compound, clientPacket);
|
||||||
isGenerator = compound.getBoolean("Generating");
|
if (!wasMoved)
|
||||||
|
isGenerator = compound.getBoolean("Generating");
|
||||||
if (clientPacket)
|
if (clientPacket)
|
||||||
airCurrent.rebuild();
|
airCurrent.rebuild();
|
||||||
}
|
}
|
||||||
|
@ -65,12 +68,20 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements
|
||||||
return isGenerator ? AllConfigs.SERVER.kinetics.generatingFanSpeed.get() : 0;
|
return isGenerator ? AllConfigs.SERVER.kinetics.generatingFanSpeed.get() : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateGenerator(Direction facing) {
|
public void queueGeneratorUpdate() {
|
||||||
boolean shouldGenerate = world.isBlockPowered(pos) && facing == Direction.DOWN
|
updateGenerator = true;
|
||||||
&& world.isBlockPresent(pos.down()) && blockBelowIsHot();
|
}
|
||||||
|
|
||||||
|
public void updateGenerator() {
|
||||||
|
BlockState blockState = getBlockState();
|
||||||
|
if (!AllBlocks.ENCASED_FAN.has(blockState))
|
||||||
|
return;
|
||||||
|
if (blockState.get(EncasedFanBlock.FACING) != Direction.DOWN)
|
||||||
|
return;
|
||||||
|
|
||||||
|
boolean shouldGenerate = world.isBlockPowered(pos) && world.isBlockPresent(pos.down()) && blockBelowIsHot();
|
||||||
if (shouldGenerate == isGenerator)
|
if (shouldGenerate == isGenerator)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
isGenerator = shouldGenerate;
|
isGenerator = shouldGenerate;
|
||||||
updateGeneratedRotation();
|
updateGeneratedRotation();
|
||||||
}
|
}
|
||||||
|
@ -171,6 +182,11 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements
|
||||||
airCurrent.rebuild();
|
airCurrent.rebuild();
|
||||||
sendData();
|
sendData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (updateGenerator) {
|
||||||
|
updateGenerator = false;
|
||||||
|
updateGenerator();
|
||||||
|
}
|
||||||
|
|
||||||
if (getSpeed() == 0 || isGenerator)
|
if (getSpeed() == 0 || isGenerator)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -27,8 +27,8 @@ public class CreativeMotorTileEntity extends GeneratingKineticTileEntity {
|
||||||
super.addBehaviours(behaviours);
|
super.addBehaviours(behaviours);
|
||||||
Integer max = AllConfigs.SERVER.kinetics.maxMotorSpeed.get();
|
Integer max = AllConfigs.SERVER.kinetics.maxMotorSpeed.get();
|
||||||
|
|
||||||
CenteredSideValueBoxTransform slot =
|
CenteredSideValueBoxTransform slot = new CenteredSideValueBoxTransform(
|
||||||
new CenteredSideValueBoxTransform((motor, side) -> motor.get(CreativeMotorBlock.FACING) == side.getOpposite());
|
(motor, side) -> motor.get(CreativeMotorBlock.FACING) == side.getOpposite());
|
||||||
|
|
||||||
generatedSpeed = new ScrollValueBehaviour(Lang.translate("generic.speed"), this, slot);
|
generatedSpeed = new ScrollValueBehaviour(Lang.translate("generic.speed"), this, slot);
|
||||||
generatedSpeed.between(-max, max);
|
generatedSpeed.between(-max, max);
|
||||||
|
@ -55,20 +55,21 @@ public class CreativeMotorTileEntity extends GeneratingKineticTileEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int step(StepContext context) {
|
public static int step(StepContext context) {
|
||||||
if (context.shift)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
int current = context.currentValue;
|
int current = context.currentValue;
|
||||||
int magnitude = Math.abs(current) - (context.forward == current > 0 ? 0 : 1);
|
|
||||||
int step = 1;
|
int step = 1;
|
||||||
|
|
||||||
if (magnitude >= 4)
|
if (!context.shift) {
|
||||||
step *= 4;
|
int magnitude = Math.abs(current) - (context.forward == current > 0 ? 0 : 1);
|
||||||
if (magnitude >= 32)
|
|
||||||
step *= 4;
|
if (magnitude >= 4)
|
||||||
if (magnitude >= 128)
|
step *= 4;
|
||||||
step *= 4;
|
if (magnitude >= 32)
|
||||||
return step;
|
step *= 4;
|
||||||
|
if (magnitude >= 128)
|
||||||
|
step *= 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) (current + (context.forward ? step : -step) == 0 ? step + 1 : step);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,6 +154,8 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity {
|
||||||
|
|
||||||
for (ItemEntity itemEntity : world.getEntitiesWithinAABB(ItemEntity.class,
|
for (ItemEntity itemEntity : world.getEntitiesWithinAABB(ItemEntity.class,
|
||||||
new AxisAlignedBB(pos.down()).shrink(.125f))) {
|
new AxisAlignedBB(pos.down()).shrink(.125f))) {
|
||||||
|
if (!itemEntity.isAlive() || !itemEntity.onGround)
|
||||||
|
continue;
|
||||||
ItemStack stack = itemEntity.getItem();
|
ItemStack stack = itemEntity.getItem();
|
||||||
Optional<PressingRecipe> recipe = getRecipe(stack);
|
Optional<PressingRecipe> recipe = getRecipe(stack);
|
||||||
if (!recipe.isPresent())
|
if (!recipe.isPresent())
|
||||||
|
@ -234,7 +236,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity {
|
||||||
for (Entity entity : world.getEntitiesWithinAABBExcludingEntity(null, bb)) {
|
for (Entity entity : world.getEntitiesWithinAABBExcludingEntity(null, bb)) {
|
||||||
if (!(entity instanceof ItemEntity))
|
if (!(entity instanceof ItemEntity))
|
||||||
continue;
|
continue;
|
||||||
if (!entity.isAlive())
|
if (!entity.isAlive() || !entity.onGround)
|
||||||
continue;
|
continue;
|
||||||
ItemEntity itemEntity = (ItemEntity) entity;
|
ItemEntity itemEntity = (ItemEntity) entity;
|
||||||
pressedItems.add(itemEntity.getItem());
|
pressedItems.add(itemEntity.getItem());
|
||||||
|
|
|
@ -73,6 +73,10 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
||||||
return;
|
return;
|
||||||
contraption.onEntityCreated(this);
|
contraption.onEntityCreated(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean supportsTerrainCollision() {
|
||||||
|
return contraption instanceof TranslatingContraption;
|
||||||
|
}
|
||||||
|
|
||||||
protected void contraptionInitialize() {
|
protected void contraptionInitialize() {
|
||||||
contraption.onEntityInitialize(world, this);
|
contraption.onEntityInitialize(world, this);
|
||||||
|
@ -594,7 +598,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ContraptionRotationState {
|
public static class ContraptionRotationState {
|
||||||
static final ContraptionRotationState NONE = new ContraptionRotationState();
|
public static final ContraptionRotationState NONE = new ContraptionRotationState();
|
||||||
|
|
||||||
float xRotation = 0;
|
float xRotation = 0;
|
||||||
float yRotation = 0;
|
float yRotation = 0;
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
package com.simibubi.create.content.contraptions.components.structureMovement;
|
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkContraption;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonContraption;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyContraption;
|
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
|
||||||
|
|
||||||
public enum AllContraptionTypes {
|
|
||||||
|
|
||||||
PISTON(PistonContraption::new),
|
|
||||||
BEARING(BearingContraption::new),
|
|
||||||
PULLEY(PulleyContraption::new),
|
|
||||||
CLOCKWORK(ClockworkContraption::new),
|
|
||||||
MOUNTED(MountedContraption::new),
|
|
||||||
STABILIZED(StabilizedContraption::new),
|
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
Supplier<? extends Contraption> factory;
|
|
||||||
String id;
|
|
||||||
|
|
||||||
private AllContraptionTypes(Supplier<? extends Contraption> factory) {
|
|
||||||
this.factory = factory;
|
|
||||||
id = Lang.asId(name());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Contraption fromType(String type) {
|
|
||||||
for (AllContraptionTypes allContraptionTypes : values())
|
|
||||||
if (type.equals(allContraptionTypes.id))
|
|
||||||
return allContraptionTypes.factory.get();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -228,6 +228,12 @@ public class BlockMovementTraits {
|
||||||
if (state.getBlock() instanceof SailBlock)
|
if (state.getBlock() instanceof SailBlock)
|
||||||
return facing.getAxis() == state.get(SailBlock.FACING)
|
return facing.getAxis() == state.get(SailBlock.FACING)
|
||||||
.getAxis();
|
.getAxis();
|
||||||
|
if (AllBlocks.PISTON_EXTENSION_POLE.has(state))
|
||||||
|
return facing.getAxis() != state.get(BlockStateProperties.FACING)
|
||||||
|
.getAxis();
|
||||||
|
if (AllBlocks.MECHANICAL_PISTON_HEAD.has(state))
|
||||||
|
return facing.getAxis() != state.get(BlockStateProperties.FACING)
|
||||||
|
.getAxis();
|
||||||
return isBrittle(state);
|
return isBrittle(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllMovementBehaviours;
|
import com.simibubi.create.AllMovementBehaviours;
|
||||||
|
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.actors.SeatBlock;
|
import com.simibubi.create.content.contraptions.components.actors.SeatBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.actors.SeatEntity;
|
import com.simibubi.create.content.contraptions.components.actors.SeatEntity;
|
||||||
|
@ -30,16 +31,19 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryPinionBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueHandler;
|
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueHandler;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState;
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonHeadBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonExtensionPoleBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonExtensionPoleBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.MagnetBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.MagnetBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock.RopeBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity;
|
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity;
|
||||||
|
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
||||||
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
|
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
|
||||||
import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock;
|
import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock;
|
||||||
|
@ -49,6 +53,7 @@ import com.simibubi.create.foundation.utility.BlockFace;
|
||||||
import com.simibubi.create.foundation.utility.BlockHelper;
|
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
import com.simibubi.create.foundation.utility.Iterate;
|
import com.simibubi.create.foundation.utility.Iterate;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
import com.simibubi.create.foundation.utility.NBTProcessors;
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
|
import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
|
||||||
|
|
||||||
|
@ -60,6 +65,7 @@ import net.minecraft.block.ChestBlock;
|
||||||
import net.minecraft.block.DoorBlock;
|
import net.minecraft.block.DoorBlock;
|
||||||
import net.minecraft.block.IWaterLoggable;
|
import net.minecraft.block.IWaterLoggable;
|
||||||
import net.minecraft.block.PressurePlateBlock;
|
import net.minecraft.block.PressurePlateBlock;
|
||||||
|
import net.minecraft.block.material.PushReaction;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.fluid.FluidState;
|
import net.minecraft.fluid.FluidState;
|
||||||
import net.minecraft.fluid.Fluids;
|
import net.minecraft.fluid.Fluids;
|
||||||
|
@ -70,6 +76,7 @@ import net.minecraft.nbt.NBTUtil;
|
||||||
import net.minecraft.state.properties.BlockStateProperties;
|
import net.minecraft.state.properties.BlockStateProperties;
|
||||||
import net.minecraft.state.properties.ChestType;
|
import net.minecraft.state.properties.ChestType;
|
||||||
import net.minecraft.state.properties.DoubleBlockHalf;
|
import net.minecraft.state.properties.DoubleBlockHalf;
|
||||||
|
import net.minecraft.state.properties.PistonType;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.Direction.Axis;
|
import net.minecraft.util.Direction.Axis;
|
||||||
|
@ -135,9 +142,9 @@ public abstract class Contraption {
|
||||||
|
|
||||||
public abstract boolean assemble(World world, BlockPos pos);
|
public abstract boolean assemble(World world, BlockPos pos);
|
||||||
|
|
||||||
protected abstract boolean canAxisBeStabilized(Axis axis);
|
public abstract boolean canBeStabilized(Direction facing, BlockPos localPos);
|
||||||
|
|
||||||
protected abstract AllContraptionTypes getType();
|
protected abstract ContraptionType getType();
|
||||||
|
|
||||||
protected boolean customBlockPlacement(IWorld world, BlockPos pos, BlockState state) {
|
protected boolean customBlockPlacement(IWorld world, BlockPos pos, BlockState state) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -154,7 +161,7 @@ public abstract class Contraption {
|
||||||
|
|
||||||
public static Contraption fromNBT(World world, CompoundNBT nbt, boolean spawnData) {
|
public static Contraption fromNBT(World world, CompoundNBT nbt, boolean spawnData) {
|
||||||
String type = nbt.getString("Type");
|
String type = nbt.getString("Type");
|
||||||
Contraption contraption = AllContraptionTypes.fromType(type);
|
Contraption contraption = ContraptionType.fromType(type);
|
||||||
contraption.readNBT(world, nbt, spawnData);
|
contraption.readNBT(world, nbt, spawnData);
|
||||||
return contraption;
|
return contraption;
|
||||||
}
|
}
|
||||||
|
@ -241,7 +248,7 @@ public abstract class Contraption {
|
||||||
fluidStorage.forEach((pos, mfs) -> mfs.tick(entity, pos, world.isRemote));
|
fluidStorage.forEach((pos, mfs) -> mfs.tick(entity, pos, world.isRemote));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean moveBlock(World world, BlockPos pos, Direction forcedDirection, List<BlockPos> frontier,
|
protected boolean moveBlock(World world, BlockPos pos, @Nullable Direction forcedDirection, List<BlockPos> frontier,
|
||||||
Set<BlockPos> visited) {
|
Set<BlockPos> visited) {
|
||||||
visited.add(pos);
|
visited.add(pos);
|
||||||
frontier.remove(pos);
|
frontier.remove(pos);
|
||||||
|
@ -265,6 +272,12 @@ public abstract class Contraption {
|
||||||
if (AllBlocks.BELT.has(state))
|
if (AllBlocks.BELT.has(state))
|
||||||
moveBelt(pos, frontier, visited, state);
|
moveBelt(pos, frontier, visited, state);
|
||||||
|
|
||||||
|
if (AllBlocks.GANTRY_PINION.has(state))
|
||||||
|
moveGantryPinion(world, pos, frontier, visited, state);
|
||||||
|
|
||||||
|
if (AllBlocks.GANTRY_SHAFT.has(state))
|
||||||
|
moveGantryShaft(world, pos, frontier, visited, state);
|
||||||
|
|
||||||
// Bearings potentially create stabilized sub-contraptions
|
// Bearings potentially create stabilized sub-contraptions
|
||||||
if (AllBlocks.MECHANICAL_BEARING.has(state))
|
if (AllBlocks.MECHANICAL_BEARING.has(state))
|
||||||
moveBearing(pos, frontier, visited, state);
|
moveBearing(pos, frontier, visited, state);
|
||||||
|
@ -281,6 +294,10 @@ public abstract class Contraption {
|
||||||
if (state.getBlock() instanceof MechanicalPistonBlock)
|
if (state.getBlock() instanceof MechanicalPistonBlock)
|
||||||
if (!moveMechanicalPiston(world, pos, frontier, visited, state))
|
if (!moveMechanicalPiston(world, pos, frontier, visited, state))
|
||||||
return false;
|
return false;
|
||||||
|
if (isExtensionPole(state))
|
||||||
|
movePistonPole(world, pos, frontier, visited, state);
|
||||||
|
if (isPistonHead(state))
|
||||||
|
movePistonHead(world, pos, frontier, visited, state);
|
||||||
|
|
||||||
// Doors try to stay whole
|
// Doors try to stay whole
|
||||||
if (state.getBlock() instanceof DoorBlock) {
|
if (state.getBlock() instanceof DoorBlock) {
|
||||||
|
@ -297,14 +314,13 @@ public abstract class Contraption {
|
||||||
Map<Direction, SuperGlueEntity> superglue = SuperGlueHandler.gatherGlue(world, pos);
|
Map<Direction, SuperGlueEntity> superglue = SuperGlueHandler.gatherGlue(world, pos);
|
||||||
|
|
||||||
// Slime blocks and super glue drag adjacent blocks if possible
|
// Slime blocks and super glue drag adjacent blocks if possible
|
||||||
boolean isStickyBlock = state.isStickyBlock();
|
|
||||||
for (Direction offset : Iterate.directions) {
|
for (Direction offset : Iterate.directions) {
|
||||||
BlockPos offsetPos = pos.offset(offset);
|
BlockPos offsetPos = pos.offset(offset);
|
||||||
BlockState blockState = world.getBlockState(offsetPos);
|
BlockState blockState = world.getBlockState(offsetPos);
|
||||||
if (isAnchoringBlockAt(offsetPos))
|
if (isAnchoringBlockAt(offsetPos))
|
||||||
continue;
|
continue;
|
||||||
if (!movementAllowed(world, offsetPos)) {
|
if (!movementAllowed(world, offsetPos)) {
|
||||||
if (offset == forcedDirection && isStickyBlock)
|
if (offset == forcedDirection)
|
||||||
return false;
|
return false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -314,8 +330,20 @@ public abstract class Contraption {
|
||||||
boolean blockAttachedTowardsFace =
|
boolean blockAttachedTowardsFace =
|
||||||
BlockMovementTraits.isBlockAttachedTowards(world, offsetPos, blockState, offset.getOpposite());
|
BlockMovementTraits.isBlockAttachedTowards(world, offsetPos, blockState, offset.getOpposite());
|
||||||
boolean brittle = BlockMovementTraits.isBrittle(blockState);
|
boolean brittle = BlockMovementTraits.isBrittle(blockState);
|
||||||
|
boolean canStick = !brittle && state.canStickTo(blockState) && blockState.canStickTo(state);
|
||||||
|
if (canStick) {
|
||||||
|
if (state.getPushReaction() == PushReaction.PUSH_ONLY || blockState.getPushReaction() == PushReaction.PUSH_ONLY) {
|
||||||
|
canStick = false;
|
||||||
|
}
|
||||||
|
if (BlockMovementTraits.notSupportive(state, offset)) {
|
||||||
|
canStick = false;
|
||||||
|
}
|
||||||
|
if (BlockMovementTraits.notSupportive(blockState, offset.getOpposite())) {
|
||||||
|
canStick = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!wasVisited && ((isStickyBlock && !brittle) || blockAttachedTowardsFace || faceHasGlue))
|
if (!wasVisited && (canStick || blockAttachedTowardsFace || faceHasGlue || (offset == forcedDirection && !BlockMovementTraits.notSupportive(state, forcedDirection))))
|
||||||
frontier.add(offsetPos);
|
frontier.add(offsetPos);
|
||||||
if (faceHasGlue)
|
if (faceHasGlue)
|
||||||
addGlue(superglue.get(offset));
|
addGlue(superglue.get(offset));
|
||||||
|
@ -325,9 +353,86 @@ public abstract class Contraption {
|
||||||
return blocks.size() <= AllConfigs.SERVER.kinetics.maxBlocksMoved.get();
|
return blocks.size() <= AllConfigs.SERVER.kinetics.maxBlocksMoved.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void movePistonHead(World world, BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited,
|
||||||
|
BlockState state) {
|
||||||
|
Direction direction = state.get(MechanicalPistonHeadBlock.FACING);
|
||||||
|
BlockPos offset = pos.offset(direction.getOpposite());
|
||||||
|
if (!visited.contains(offset)) {
|
||||||
|
BlockState blockState = world.getBlockState(offset);
|
||||||
|
if (isExtensionPole(blockState) && blockState.get(PistonExtensionPoleBlock.FACING)
|
||||||
|
.getAxis() == direction.getAxis())
|
||||||
|
frontier.add(offset);
|
||||||
|
if (blockState.getBlock() instanceof MechanicalPistonBlock) {
|
||||||
|
Direction pistonFacing = blockState.get(MechanicalPistonBlock.FACING);
|
||||||
|
if (pistonFacing == direction && blockState.get(MechanicalPistonBlock.STATE) == PistonState.EXTENDED)
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (state.get(MechanicalPistonHeadBlock.TYPE) == PistonType.STICKY) {
|
||||||
|
BlockPos attached = pos.offset(direction);
|
||||||
|
if (!visited.contains(attached))
|
||||||
|
frontier.add(attached);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void movePistonPole(World world, BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited,
|
||||||
|
BlockState state) {
|
||||||
|
for (Direction d : Iterate.directionsInAxis(state.get(PistonExtensionPoleBlock.FACING)
|
||||||
|
.getAxis())) {
|
||||||
|
BlockPos offset = pos.offset(d);
|
||||||
|
if (!visited.contains(offset)) {
|
||||||
|
BlockState blockState = world.getBlockState(offset);
|
||||||
|
if (isExtensionPole(blockState) && blockState.get(PistonExtensionPoleBlock.FACING)
|
||||||
|
.getAxis() == d.getAxis())
|
||||||
|
frontier.add(offset);
|
||||||
|
if (isPistonHead(blockState) && blockState.get(MechanicalPistonHeadBlock.FACING)
|
||||||
|
.getAxis() == d.getAxis())
|
||||||
|
frontier.add(offset);
|
||||||
|
if (blockState.getBlock() instanceof MechanicalPistonBlock) {
|
||||||
|
Direction pistonFacing = blockState.get(MechanicalPistonBlock.FACING);
|
||||||
|
if (pistonFacing == d || pistonFacing == d.getOpposite()
|
||||||
|
&& blockState.get(MechanicalPistonBlock.STATE) == PistonState.EXTENDED)
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void moveGantryPinion(World world, BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited,
|
||||||
|
BlockState state) {
|
||||||
|
BlockPos offset = pos.offset(state.get(GantryPinionBlock.FACING));
|
||||||
|
if (!visited.contains(offset))
|
||||||
|
frontier.add(offset);
|
||||||
|
Axis rotationAxis = ((IRotate) state.getBlock()).getRotationAxis(state);
|
||||||
|
for (Direction d : Iterate.directionsInAxis(rotationAxis)) {
|
||||||
|
offset = pos.offset(d);
|
||||||
|
BlockState offsetState = world.getBlockState(offset);
|
||||||
|
if (AllBlocks.GANTRY_SHAFT.has(offsetState) && offsetState.get(GantryShaftBlock.FACING)
|
||||||
|
.getAxis() == d.getAxis())
|
||||||
|
if (!visited.contains(offset))
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void moveGantryShaft(World world, BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited,
|
||||||
|
BlockState state) {
|
||||||
|
for (Direction d : Iterate.directions) {
|
||||||
|
BlockPos offset = pos.offset(d);
|
||||||
|
if (!visited.contains(offset)) {
|
||||||
|
BlockState offsetState = world.getBlockState(offset);
|
||||||
|
Direction facing = state.get(GantryShaftBlock.FACING);
|
||||||
|
if (d.getAxis() == facing.getAxis() && AllBlocks.GANTRY_SHAFT.has(offsetState)
|
||||||
|
&& offsetState.get(GantryShaftBlock.FACING) == facing)
|
||||||
|
frontier.add(offset);
|
||||||
|
else if (AllBlocks.GANTRY_PINION.has(offsetState) && offsetState.get(GantryPinionBlock.FACING) == d)
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void moveBearing(BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited, BlockState state) {
|
private void moveBearing(BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited, BlockState state) {
|
||||||
Direction facing = state.get(MechanicalBearingBlock.FACING);
|
Direction facing = state.get(MechanicalBearingBlock.FACING);
|
||||||
if (!canAxisBeStabilized(facing.getAxis())) {
|
if (!canBeStabilized(facing, pos.subtract(anchor))) {
|
||||||
BlockPos offset = pos.offset(facing);
|
BlockPos offset = pos.offset(facing);
|
||||||
if (!visited.contains(offset))
|
if (!visited.contains(offset))
|
||||||
frontier.add(offset);
|
frontier.add(offset);
|
||||||
|
@ -377,47 +482,25 @@ public abstract class Contraption {
|
||||||
|
|
||||||
private boolean moveMechanicalPiston(World world, BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited,
|
private boolean moveMechanicalPiston(World world, BlockPos pos, List<BlockPos> frontier, Set<BlockPos> visited,
|
||||||
BlockState state) {
|
BlockState state) {
|
||||||
int limit = AllConfigs.SERVER.kinetics.maxPistonPoles.get();
|
|
||||||
Direction direction = state.get(MechanicalPistonBlock.FACING);
|
Direction direction = state.get(MechanicalPistonBlock.FACING);
|
||||||
if (state.get(MechanicalPistonBlock.STATE) == PistonState.EXTENDED) {
|
PistonState pistonState = state.get(MechanicalPistonBlock.STATE);
|
||||||
BlockPos searchPos = pos;
|
if (pistonState == PistonState.MOVING)
|
||||||
while (limit-- >= 0) {
|
|
||||||
searchPos = searchPos.offset(direction);
|
|
||||||
BlockState blockState = world.getBlockState(searchPos);
|
|
||||||
if (isExtensionPole(blockState)) {
|
|
||||||
if (blockState.get(PistonExtensionPoleBlock.FACING)
|
|
||||||
.getAxis() != direction.getAxis())
|
|
||||||
break;
|
|
||||||
if (!visited.contains(searchPos))
|
|
||||||
frontier.add(searchPos);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (isPistonHead(blockState))
|
|
||||||
if (!visited.contains(searchPos))
|
|
||||||
frontier.add(searchPos);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (limit <= -1)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
BlockPos searchPos = pos;
|
|
||||||
while (limit-- >= 0) {
|
|
||||||
searchPos = searchPos.offset(direction.getOpposite());
|
|
||||||
BlockState blockState = world.getBlockState(searchPos);
|
|
||||||
if (isExtensionPole(blockState)) {
|
|
||||||
if (blockState.get(PistonExtensionPoleBlock.FACING)
|
|
||||||
.getAxis() != direction.getAxis())
|
|
||||||
break;
|
|
||||||
if (!visited.contains(searchPos))
|
|
||||||
frontier.add(searchPos);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (limit <= -1)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
BlockPos offset = pos.offset(direction.getOpposite());
|
||||||
|
if (!visited.contains(offset)) {
|
||||||
|
BlockState poleState = world.getBlockState(offset);
|
||||||
|
if (AllBlocks.PISTON_EXTENSION_POLE.has(poleState) && poleState.get(PistonExtensionPoleBlock.FACING)
|
||||||
|
.getAxis() == direction.getAxis())
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pistonState == PistonState.EXTENDED || MechanicalPistonBlock.isStickyPiston(state)) {
|
||||||
|
offset = pos.offset(direction);
|
||||||
|
if (!visited.contains(offset))
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -727,7 +810,8 @@ public abstract class Contraption {
|
||||||
if (brittles != BlockMovementTraits.isBrittle(block.state))
|
if (brittles != BlockMovementTraits.isBrittle(block.state))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
BlockPos add = block.pos.add(anchor).add(offset);
|
BlockPos add = block.pos.add(anchor)
|
||||||
|
.add(offset);
|
||||||
if (customBlockRemoval(world, add, block.state))
|
if (customBlockRemoval(world, add, block.state))
|
||||||
continue;
|
continue;
|
||||||
BlockState oldState = world.getBlockState(add);
|
BlockState oldState = world.getBlockState(add);
|
||||||
|
@ -735,7 +819,8 @@ public abstract class Contraption {
|
||||||
if (block.state.getBlock() != blockIn)
|
if (block.state.getBlock() != blockIn)
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
world.removeTileEntity(add);
|
world.removeTileEntity(add);
|
||||||
int flags = BlockFlags.IS_MOVING | BlockFlags.NO_NEIGHBOR_DROPS | BlockFlags.UPDATE_NEIGHBORS;
|
int flags = BlockFlags.IS_MOVING | BlockFlags.NO_NEIGHBOR_DROPS | BlockFlags.UPDATE_NEIGHBORS
|
||||||
|
| BlockFlags.BLOCK_UPDATE;
|
||||||
if (blockIn instanceof IWaterLoggable && oldState.contains(BlockStateProperties.WATERLOGGED)
|
if (blockIn instanceof IWaterLoggable && oldState.contains(BlockStateProperties.WATERLOGGED)
|
||||||
&& oldState.get(BlockStateProperties.WATERLOGGED)
|
&& oldState.get(BlockStateProperties.WATERLOGGED)
|
||||||
.booleanValue()) {
|
.booleanValue()) {
|
||||||
|
@ -747,6 +832,8 @@ public abstract class Contraption {
|
||||||
}
|
}
|
||||||
for (BlockInfo block : blocks.values()) {
|
for (BlockInfo block : blocks.values()) {
|
||||||
BlockPos add = block.pos.add(anchor).add(offset);
|
BlockPos add = block.pos.add(anchor).add(offset);
|
||||||
|
if (!shouldUpdateAfterMovement(block))
|
||||||
|
continue;
|
||||||
world.markAndNotifyBlock(add, world.getChunkAt(add), block.state, Blocks.AIR.getDefaultState(), BlockFlags.IS_MOVING | BlockFlags.DEFAULT, 512);
|
world.markAndNotifyBlock(add, world.getChunkAt(add), block.state, Blocks.AIR.getDefaultState(), BlockFlags.IS_MOVING | BlockFlags.DEFAULT, 512);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -797,6 +884,8 @@ public abstract class Contraption {
|
||||||
|
|
||||||
TileEntity tileEntity = world.getTileEntity(targetPos);
|
TileEntity tileEntity = world.getTileEntity(targetPos);
|
||||||
CompoundNBT tag = block.nbt;
|
CompoundNBT tag = block.nbt;
|
||||||
|
if (tileEntity != null)
|
||||||
|
tag = NBTProcessors.process(tileEntity, tag, false);
|
||||||
if (tileEntity != null && tag != null) {
|
if (tileEntity != null && tag != null) {
|
||||||
tag.putInt("x", targetPos.getX());
|
tag.putInt("x", targetPos.getX());
|
||||||
tag.putInt("y", targetPos.getY());
|
tag.putInt("y", targetPos.getY());
|
||||||
|
@ -827,6 +916,8 @@ public abstract class Contraption {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (BlockInfo block : blocks.values()) {
|
for (BlockInfo block : blocks.values()) {
|
||||||
|
if (!shouldUpdateAfterMovement(block))
|
||||||
|
continue;
|
||||||
BlockPos targetPos = transform.apply(block.pos);
|
BlockPos targetPos = transform.apply(block.pos);
|
||||||
world.markAndNotifyBlock(targetPos, world.getChunkAt(targetPos), block.state, block.state, BlockFlags.IS_MOVING | BlockFlags.DEFAULT, 512);
|
world.markAndNotifyBlock(targetPos, world.getChunkAt(targetPos), block.state, block.state, BlockFlags.IS_MOVING | BlockFlags.DEFAULT, 512);
|
||||||
}
|
}
|
||||||
|
@ -888,6 +979,10 @@ public abstract class Contraption {
|
||||||
callBack.accept(AllMovementBehaviours.of(pair.getLeft().state), pair.getRight());
|
callBack.accept(AllMovementBehaviours.of(pair.getLeft().state), pair.getRight());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean shouldUpdateAfterMovement(BlockInfo info) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void expandBoundsAroundAxis(Axis axis) {
|
public void expandBoundsAroundAxis(Axis axis) {
|
||||||
AxisAlignedBB bb = bounds;
|
AxisAlignedBB bb = bounds;
|
||||||
double maxXDiff = Math.max(bb.maxX - 1, -bb.minX);
|
double maxXDiff = Math.max(bb.maxX - 1, -bb.minX);
|
||||||
|
@ -956,4 +1051,4 @@ public abstract class Contraption {
|
||||||
mountedFluidStorage.updateFluid(containedFluid);
|
mountedFluidStorage.updateFluid(containedFluid);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -347,7 +347,7 @@ public class ContraptionCollider {
|
||||||
return potentialHits;
|
return potentialHits;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean collideBlocks(ControlledContraptionEntity contraptionEntity) {
|
public static boolean collideBlocks(AbstractContraptionEntity contraptionEntity) {
|
||||||
if (!contraptionEntity.supportsTerrainCollision())
|
if (!contraptionEntity.supportsTerrainCollision())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.simibubi.create.content.contraptions.components.structureMovement;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyContraption;
|
||||||
|
|
||||||
|
public class ContraptionType {
|
||||||
|
|
||||||
|
public static Map<String, ContraptionType> entries = new HashMap<>();
|
||||||
|
public static ContraptionType
|
||||||
|
PISTON = register("piston", PistonContraption::new),
|
||||||
|
BEARING = register("bearing", BearingContraption::new),
|
||||||
|
PULLEY = register("pulley", PulleyContraption::new),
|
||||||
|
CLOCKWORK = register("clockwork", ClockworkContraption::new),
|
||||||
|
MOUNTED = register("mounted", MountedContraption::new),
|
||||||
|
STABILIZED = register("stabilized", StabilizedContraption::new),
|
||||||
|
GANTRY = register("gantry", GantryContraption::new);
|
||||||
|
|
||||||
|
Supplier<? extends Contraption> factory;
|
||||||
|
String id;
|
||||||
|
|
||||||
|
public static ContraptionType register(String id, Supplier<? extends Contraption> factory) {
|
||||||
|
ContraptionType value = new ContraptionType(id, factory);
|
||||||
|
entries.put(id, value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ContraptionType(String id, Supplier<? extends Contraption> factory) {
|
||||||
|
this.factory = factory;
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Contraption fromType(String type) {
|
||||||
|
for (Entry<String, ContraptionType> allContraptionTypes : entries.entrySet())
|
||||||
|
if (type.equals(allContraptionTypes.getKey()))
|
||||||
|
return allContraptionTypes.getValue().factory.get();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -46,10 +46,6 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity {
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean supportsTerrainCollision() {
|
|
||||||
return contraption instanceof TranslatingContraption;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3d getContactPointMotion(Vector3d globalContactPoint) {
|
public Vector3d getContactPointMotion(Vector3d globalContactPoint) {
|
||||||
if (contraption instanceof TranslatingContraption)
|
if (contraption instanceof TranslatingContraption)
|
||||||
|
@ -151,8 +147,6 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3d motion = getMotion();
|
Vector3d motion = getMotion();
|
||||||
if (motion.length() < 1 / 4098f)
|
|
||||||
setMotion(Vector3d.ZERO);
|
|
||||||
move(motion.x, motion.y, motion.z);
|
move(motion.x, motion.y, motion.z);
|
||||||
if (ContraptionCollider.collideBlocks(this))
|
if (ContraptionCollider.collideBlocks(this))
|
||||||
getController().collided();
|
getController().collided();
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class OrientedContraptionEntityRenderer extends AbstractContraptionEntity
|
||||||
if (!super.shouldRender(entity, p_225626_2_, p_225626_3_, p_225626_5_, p_225626_7_))
|
if (!super.shouldRender(entity, p_225626_2_, p_225626_3_, p_225626_5_, p_225626_7_))
|
||||||
return false;
|
return false;
|
||||||
if (entity.getContraption()
|
if (entity.getContraption()
|
||||||
.getType() == AllContraptionTypes.MOUNTED && entity.getRidingEntity() == null)
|
.getType() == ContraptionType.MOUNTED && entity.getRidingEntity() == null)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue