mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-16 02:33:42 +01:00
Port new changes
This commit is contained in:
parent
4ee9dd8a8a
commit
355a1dd95d
29 changed files with 249 additions and 187 deletions
|
@ -7,16 +7,22 @@
|
||||||
"model": "create:block/andesite_funnel_floor_push"
|
"model": "create:block/andesite_funnel_floor_push"
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=north,powered=false": {
|
"extracting=false,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull"
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=north,powered=false": {
|
"extracting=true,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_push"
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=north,powered=false": {
|
"extracting=false,face=ceiling,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull"
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=north,powered=false": {
|
"extracting=true,face=ceiling,facing=north,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push"
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=south,powered=false": {
|
"extracting=false,face=floor,facing=south,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull",
|
"model": "create:block/andesite_funnel_floor_pull",
|
||||||
|
@ -28,19 +34,21 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=south,powered=false": {
|
"extracting=false,face=wall,facing=south,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull",
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=south,powered=false": {
|
"extracting=true,face=wall,facing=south,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_push",
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=south,powered=false": {
|
"extracting=false,face=ceiling,facing=south,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull",
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=south,powered=false": {
|
"extracting=true,face=ceiling,facing=south,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push",
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=west,powered=false": {
|
"extracting=false,face=floor,facing=west,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull",
|
"model": "create:block/andesite_funnel_floor_pull",
|
||||||
|
@ -52,19 +60,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=west,powered=false": {
|
"extracting=false,face=wall,facing=west,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull",
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=west,powered=false": {
|
"extracting=true,face=wall,facing=west,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_push",
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=west,powered=false": {
|
"extracting=false,face=ceiling,facing=west,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull",
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=west,powered=false": {
|
"extracting=true,face=ceiling,facing=west,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push",
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=east,powered=false": {
|
"extracting=false,face=floor,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull",
|
"model": "create:block/andesite_funnel_floor_pull",
|
||||||
|
@ -76,19 +88,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=east,powered=false": {
|
"extracting=false,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull",
|
"model": "create:block/andesite_funnel_wall_pull",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=east,powered=false": {
|
"extracting=true,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_wall_push",
|
"model": "create:block/andesite_funnel_wall_push",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=east,powered=false": {
|
"extracting=false,face=ceiling,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull",
|
"model": "create:block/andesite_funnel_ceiling_pull",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=east,powered=false": {
|
"extracting=true,face=ceiling,facing=east,powered=false": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push",
|
"model": "create:block/andesite_funnel_ceiling_push",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=north,powered=true": {
|
"extracting=false,face=floor,facing=north,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull_powered"
|
"model": "create:block/andesite_funnel_floor_pull_powered"
|
||||||
|
@ -97,16 +113,22 @@
|
||||||
"model": "create:block/andesite_funnel_floor_push_powered"
|
"model": "create:block/andesite_funnel_floor_push_powered"
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=north,powered=true": {
|
"extracting=false,face=wall,facing=north,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull_powered"
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=north,powered=true": {
|
"extracting=true,face=wall,facing=north,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_push_powered"
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=north,powered=true": {
|
"extracting=false,face=ceiling,facing=north,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull_powered"
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=north,powered=true": {
|
"extracting=true,face=ceiling,facing=north,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push_powered"
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=south,powered=true": {
|
"extracting=false,face=floor,facing=south,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull_powered",
|
"model": "create:block/andesite_funnel_floor_pull_powered",
|
||||||
|
@ -118,19 +140,21 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=south,powered=true": {
|
"extracting=false,face=wall,facing=south,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull_powered",
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=south,powered=true": {
|
"extracting=true,face=wall,facing=south,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_push_powered",
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=south,powered=true": {
|
"extracting=false,face=ceiling,facing=south,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=south,powered=true": {
|
"extracting=true,face=ceiling,facing=south,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=west,powered=true": {
|
"extracting=false,face=floor,facing=west,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull_powered",
|
"model": "create:block/andesite_funnel_floor_pull_powered",
|
||||||
|
@ -142,19 +166,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=west,powered=true": {
|
"extracting=false,face=wall,facing=west,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull_powered",
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=west,powered=true": {
|
"extracting=true,face=wall,facing=west,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_push_powered",
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=west,powered=true": {
|
"extracting=false,face=ceiling,facing=west,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=west,powered=true": {
|
"extracting=true,face=ceiling,facing=west,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=east,powered=true": {
|
"extracting=false,face=floor,facing=east,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_floor_pull_powered",
|
"model": "create:block/andesite_funnel_floor_pull_powered",
|
||||||
|
@ -166,19 +194,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=east,powered=true": {
|
"extracting=false,face=wall,facing=east,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_pull_powered",
|
"model": "create:block/andesite_funnel_wall_pull_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=east,powered=true": {
|
"extracting=true,face=wall,facing=east,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_wall_push_powered",
|
"model": "create:block/andesite_funnel_wall_push_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=east,powered=true": {
|
"extracting=false,face=ceiling,facing=east,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
"model": "create:block/andesite_funnel_ceiling_pull_powered",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=east,powered=true": {
|
"extracting=true,face=ceiling,facing=east,powered=true": {
|
||||||
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
"model": "create:block/andesite_funnel_ceiling_push_powered",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -7,16 +7,22 @@
|
||||||
"model": "create:block/brass_funnel_floor_push"
|
"model": "create:block/brass_funnel_floor_push"
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=north,powered=false": {
|
"extracting=false,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_pull"
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=north,powered=false": {
|
"extracting=true,face=wall,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_push"
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=north,powered=false": {
|
"extracting=false,face=ceiling,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull"
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=north,powered=false": {
|
"extracting=true,face=ceiling,facing=north,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push"
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=south,powered=false": {
|
"extracting=false,face=floor,facing=south,powered=false": {
|
||||||
"model": "create:block/brass_funnel_floor_pull",
|
"model": "create:block/brass_funnel_floor_pull",
|
||||||
|
@ -28,19 +34,21 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=south,powered=false": {
|
"extracting=false,face=wall,facing=south,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_pull",
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=south,powered=false": {
|
"extracting=true,face=wall,facing=south,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_push",
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=south,powered=false": {
|
"extracting=false,face=ceiling,facing=south,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull",
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=south,powered=false": {
|
"extracting=true,face=ceiling,facing=south,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push",
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=west,powered=false": {
|
"extracting=false,face=floor,facing=west,powered=false": {
|
||||||
"model": "create:block/brass_funnel_floor_pull",
|
"model": "create:block/brass_funnel_floor_pull",
|
||||||
|
@ -52,19 +60,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=west,powered=false": {
|
"extracting=false,face=wall,facing=west,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_pull",
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=west,powered=false": {
|
"extracting=true,face=wall,facing=west,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_push",
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=west,powered=false": {
|
"extracting=false,face=ceiling,facing=west,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull",
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=west,powered=false": {
|
"extracting=true,face=ceiling,facing=west,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push",
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=east,powered=false": {
|
"extracting=false,face=floor,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_floor_pull",
|
"model": "create:block/brass_funnel_floor_pull",
|
||||||
|
@ -76,19 +88,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=east,powered=false": {
|
"extracting=false,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_pull",
|
"model": "create:block/brass_funnel_wall_pull",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=east,powered=false": {
|
"extracting=true,face=wall,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_wall_push",
|
"model": "create:block/brass_funnel_wall_push",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=east,powered=false": {
|
"extracting=false,face=ceiling,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull",
|
"model": "create:block/brass_funnel_ceiling_pull",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=east,powered=false": {
|
"extracting=true,face=ceiling,facing=east,powered=false": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push",
|
"model": "create:block/brass_funnel_ceiling_push",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=north,powered=true": {
|
"extracting=false,face=floor,facing=north,powered=true": {
|
||||||
"model": "create:block/brass_funnel_floor_pull_powered"
|
"model": "create:block/brass_funnel_floor_pull_powered"
|
||||||
|
@ -97,16 +113,22 @@
|
||||||
"model": "create:block/brass_funnel_floor_push_powered"
|
"model": "create:block/brass_funnel_floor_push_powered"
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=north,powered=true": {
|
"extracting=false,face=wall,facing=north,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_pull_powered"
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=north,powered=true": {
|
"extracting=true,face=wall,facing=north,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_push_powered"
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"x": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=north,powered=true": {
|
"extracting=false,face=ceiling,facing=north,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull_powered"
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=north,powered=true": {
|
"extracting=true,face=ceiling,facing=north,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push_powered"
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
|
"x": 180,
|
||||||
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=south,powered=true": {
|
"extracting=false,face=floor,facing=south,powered=true": {
|
||||||
"model": "create:block/brass_funnel_floor_pull_powered",
|
"model": "create:block/brass_funnel_floor_pull_powered",
|
||||||
|
@ -118,19 +140,21 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=south,powered=true": {
|
"extracting=false,face=wall,facing=south,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_pull_powered",
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=south,powered=true": {
|
"extracting=true,face=wall,facing=south,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_push_powered",
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=south,powered=true": {
|
"extracting=false,face=ceiling,facing=south,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=south,powered=true": {
|
"extracting=true,face=ceiling,facing=south,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push_powered",
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
"y": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=west,powered=true": {
|
"extracting=false,face=floor,facing=west,powered=true": {
|
||||||
"model": "create:block/brass_funnel_floor_pull_powered",
|
"model": "create:block/brass_funnel_floor_pull_powered",
|
||||||
|
@ -142,19 +166,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=west,powered=true": {
|
"extracting=false,face=wall,facing=west,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_pull_powered",
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=west,powered=true": {
|
"extracting=true,face=wall,facing=west,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_push_powered",
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=west,powered=true": {
|
"extracting=false,face=ceiling,facing=west,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=west,powered=true": {
|
"extracting=true,face=ceiling,facing=west,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push_powered",
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
"y": 270
|
"x": 180,
|
||||||
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=floor,facing=east,powered=true": {
|
"extracting=false,face=floor,facing=east,powered=true": {
|
||||||
"model": "create:block/brass_funnel_floor_pull_powered",
|
"model": "create:block/brass_funnel_floor_pull_powered",
|
||||||
|
@ -166,19 +194,23 @@
|
||||||
},
|
},
|
||||||
"extracting=false,face=wall,facing=east,powered=true": {
|
"extracting=false,face=wall,facing=east,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_pull_powered",
|
"model": "create:block/brass_funnel_wall_pull_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=true,face=wall,facing=east,powered=true": {
|
"extracting=true,face=wall,facing=east,powered=true": {
|
||||||
"model": "create:block/brass_funnel_wall_push_powered",
|
"model": "create:block/brass_funnel_wall_push_powered",
|
||||||
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"extracting=false,face=ceiling,facing=east,powered=true": {
|
"extracting=false,face=ceiling,facing=east,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
"model": "create:block/brass_funnel_ceiling_pull_powered",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
},
|
},
|
||||||
"extracting=true,face=ceiling,facing=east,powered=true": {
|
"extracting=true,face=ceiling,facing=east,powered=true": {
|
||||||
"model": "create:block/brass_funnel_ceiling_push_powered",
|
"model": "create:block/brass_funnel_ceiling_push_powered",
|
||||||
"y": 90
|
"x": 180,
|
||||||
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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",
|
||||||
|
@ -149,8 +149,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_north": "true",
|
"axis": "x",
|
||||||
"axis": "x"
|
"sticky_north": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x_sticky"
|
"model": "create:block/radial_chassis_side_x_sticky"
|
||||||
|
@ -158,8 +158,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_north": "true",
|
"axis": "y",
|
||||||
"axis": "y"
|
"sticky_north": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_y_sticky",
|
"model": "create:block/radial_chassis_side_y_sticky",
|
||||||
|
@ -168,8 +168,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_north": "true",
|
"axis": "z",
|
||||||
"axis": "z"
|
"sticky_north": "true"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x_sticky",
|
"model": "create:block/radial_chassis_side_x_sticky",
|
||||||
|
@ -178,8 +178,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_north": "false",
|
"axis": "x",
|
||||||
"axis": "x"
|
"sticky_north": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x"
|
"model": "create:block/radial_chassis_side_x"
|
||||||
|
@ -187,8 +187,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_north": "false",
|
"axis": "y",
|
||||||
"axis": "y"
|
"sticky_north": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_y",
|
"model": "create:block/radial_chassis_side_y",
|
||||||
|
@ -197,8 +197,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": {
|
"when": {
|
||||||
"sticky_north": "false",
|
"axis": "z",
|
||||||
"axis": "z"
|
"sticky_north": "false"
|
||||||
},
|
},
|
||||||
"apply": {
|
"apply": {
|
||||||
"model": "create:block/radial_chassis_side_x",
|
"model": "create:block/radial_chassis_side_x",
|
||||||
|
@ -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"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 7",
|
"_": "Missing Localizations: 11",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@ import com.simibubi.create.foundation.render.backend.instancing.InstanceData;
|
||||||
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
||||||
import com.simibubi.create.foundation.utility.ColorHelper;
|
import com.simibubi.create.foundation.utility.ColorHelper;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.Vector3f;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
|
|
||||||
public class KineticData<D extends KineticData<D>> extends InstanceData {
|
public class KineticData<D extends KineticData<D>> extends InstanceData {
|
||||||
private float x;
|
private float x;
|
||||||
|
|
|
@ -5,8 +5,8 @@ import java.nio.ByteBuffer;
|
||||||
import com.simibubi.create.foundation.render.backend.gl.attrib.VertexFormat;
|
import com.simibubi.create.foundation.render.backend.gl.attrib.VertexFormat;
|
||||||
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.Vector3f;
|
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
|
|
||||||
public class RotatingData extends KineticData<RotatingData> {
|
public class RotatingData extends KineticData<RotatingData> {
|
||||||
public static VertexFormat FORMAT = VertexFormat.builder()
|
public static VertexFormat FORMAT = VertexFormat.builder()
|
||||||
|
|
|
@ -6,8 +6,8 @@ import com.simibubi.create.foundation.render.backend.gl.attrib.VertexFormat;
|
||||||
import com.simibubi.create.foundation.render.backend.instancing.InstanceData;
|
import com.simibubi.create.foundation.render.backend.instancing.InstanceData;
|
||||||
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.Vector3f;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
|
|
||||||
public class ContraptionActorData extends InstanceData {
|
public class ContraptionActorData extends InstanceData {
|
||||||
public static VertexFormat FORMAT = VertexFormat.builder()
|
public static VertexFormat FORMAT = VertexFormat.builder()
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class NonStationaryLighter<C extends Contraption> extends ContraptionLigh
|
||||||
public GridAlignedBB getContraptionBounds() {
|
public GridAlignedBB getContraptionBounds() {
|
||||||
GridAlignedBB bb = GridAlignedBB.fromAABB(contraption.bounds);
|
GridAlignedBB bb = GridAlignedBB.fromAABB(contraption.bounds);
|
||||||
|
|
||||||
bb.translate(contraption.entity.getPosition());
|
bb.translate(contraption.entity.getBlockPos());
|
||||||
|
|
||||||
return bb;
|
return bb;
|
||||||
}
|
}
|
||||||
|
|
|
@ -528,7 +528,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
private void repositionOnContraption(float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) {
|
private void repositionOnContraption(float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) {
|
||||||
Vec3d pos = getContraptionOffset(partialTicks, ridingEntity);
|
Vector3d pos = getContraptionOffset(partialTicks, ridingEntity);
|
||||||
for (MatrixStack stack : matrixStacks)
|
for (MatrixStack stack : matrixStacks)
|
||||||
stack.translate(pos.x, pos.y, pos.z);
|
stack.translate(pos.x, pos.y, pos.z);
|
||||||
}
|
}
|
||||||
|
@ -537,36 +537,36 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
||||||
// has to adjust aswell
|
// has to adjust aswell
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
private void repositionOnCart(float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) {
|
private void repositionOnCart(float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) {
|
||||||
Vec3d cartPos = getCartOffset(partialTicks, ridingEntity);
|
Vector3d cartPos = getCartOffset(partialTicks, ridingEntity);
|
||||||
|
|
||||||
if (cartPos == Vec3d.ZERO) return;
|
if (cartPos == Vector3d.ZERO) return;
|
||||||
|
|
||||||
for (MatrixStack stack : matrixStacks)
|
for (MatrixStack stack : matrixStacks)
|
||||||
stack.translate(cartPos.x, cartPos.y, cartPos.z);
|
stack.translate(cartPos.x, cartPos.y, cartPos.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
private Vec3d getContraptionOffset(float partialTicks, Entity ridingEntity) {
|
private Vector3d getContraptionOffset(float partialTicks, Entity ridingEntity) {
|
||||||
AbstractContraptionEntity parent = (AbstractContraptionEntity) ridingEntity;
|
AbstractContraptionEntity parent = (AbstractContraptionEntity) ridingEntity;
|
||||||
Vec3d passengerPosition = parent.getPassengerPosition(this, partialTicks);
|
Vector3d passengerPosition = parent.getPassengerPosition(this, partialTicks);
|
||||||
double x = passengerPosition.x - MathHelper.lerp(partialTicks, this.lastTickPosX, this.getX());
|
double x = passengerPosition.x - MathHelper.lerp(partialTicks, this.lastTickPosX, this.getX());
|
||||||
double y = passengerPosition.y - MathHelper.lerp(partialTicks, this.lastTickPosY, this.getY());
|
double y = passengerPosition.y - MathHelper.lerp(partialTicks, this.lastTickPosY, this.getY());
|
||||||
double z = passengerPosition.z - MathHelper.lerp(partialTicks, this.lastTickPosZ, this.getZ());
|
double z = passengerPosition.z - MathHelper.lerp(partialTicks, this.lastTickPosZ, this.getZ());
|
||||||
|
|
||||||
return new Vec3d(x, y, z);
|
return new Vector3d(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
private Vec3d getCartOffset(float partialTicks, Entity ridingEntity) {
|
private Vector3d getCartOffset(float partialTicks, Entity ridingEntity) {
|
||||||
AbstractMinecartEntity cart = (AbstractMinecartEntity) ridingEntity;
|
AbstractMinecartEntity cart = (AbstractMinecartEntity) ridingEntity;
|
||||||
double cartX = MathHelper.lerp(partialTicks, cart.lastTickPosX, cart.getX());
|
double cartX = MathHelper.lerp(partialTicks, cart.lastTickPosX, cart.getX());
|
||||||
double cartY = MathHelper.lerp(partialTicks, cart.lastTickPosY, cart.getY());
|
double cartY = MathHelper.lerp(partialTicks, cart.lastTickPosY, cart.getY());
|
||||||
double cartZ = MathHelper.lerp(partialTicks, cart.lastTickPosZ, cart.getZ());
|
double cartZ = MathHelper.lerp(partialTicks, cart.lastTickPosZ, cart.getZ());
|
||||||
Vec3d cartPos = cart.getPos(cartX, cartY, cartZ);
|
Vector3d cartPos = cart.getPos(cartX, cartY, cartZ);
|
||||||
|
|
||||||
if (cartPos != null) {
|
if (cartPos != null) {
|
||||||
Vec3d cartPosFront = cart.getPosOffset(cartX, cartY, cartZ, (double) 0.3F);
|
Vector3d cartPosFront = cart.getPosOffset(cartX, cartY, cartZ, (double) 0.3F);
|
||||||
Vec3d cartPosBack = cart.getPosOffset(cartX, cartY, cartZ, (double) -0.3F);
|
Vector3d cartPosBack = cart.getPosOffset(cartX, cartY, cartZ, (double) -0.3F);
|
||||||
if (cartPosFront == null)
|
if (cartPosFront == null)
|
||||||
cartPosFront = cartPos;
|
cartPosFront = cartPos;
|
||||||
if (cartPosBack == null)
|
if (cartPosBack == null)
|
||||||
|
@ -576,9 +576,9 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
||||||
cartY = (cartPosFront.y + cartPosBack.y) / 2.0D - cartY;
|
cartY = (cartPosFront.y + cartPosBack.y) / 2.0D - cartY;
|
||||||
cartZ = cartPos.z - cartZ;
|
cartZ = cartPos.z - cartZ;
|
||||||
|
|
||||||
return new Vec3d(cartX, cartY, cartZ);
|
return new Vector3d(cartX, cartY, cartZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Vec3d.ZERO;
|
return Vector3d.ZERO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement.pi
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionLighter;
|
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionLighter;
|
||||||
import com.simibubi.create.foundation.render.backend.light.GridAlignedBB;
|
import com.simibubi.create.foundation.render.backend.light.GridAlignedBB;
|
||||||
|
|
||||||
import net.minecraft.util.math.Vec3i;
|
import net.minecraft.util.math.vector.Vector3i;
|
||||||
|
|
||||||
public class PistonLighter extends ContraptionLighter<PistonContraption> {
|
public class PistonLighter extends ContraptionLighter<PistonContraption> {
|
||||||
public PistonLighter(PistonContraption contraption) {
|
public PistonLighter(PistonContraption contraption) {
|
||||||
|
@ -16,7 +16,7 @@ public class PistonLighter extends ContraptionLighter<PistonContraption> {
|
||||||
bounds.translate(contraption.anchor);
|
bounds.translate(contraption.anchor);
|
||||||
|
|
||||||
int length = contraption.extensionLength;
|
int length = contraption.extensionLength;
|
||||||
Vec3i direction = contraption.orientation.getDirectionVec();
|
Vector3i direction = contraption.orientation.getDirectionVec();
|
||||||
|
|
||||||
int shift = length / 2;
|
int shift = length / 2;
|
||||||
int shiftX = direction.getX() * shift;
|
int shiftX = direction.getX() * shift;
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class PulleyLighter extends ContraptionLighter<PulleyContraption> {
|
||||||
|
|
||||||
World world = contraption.entity.world;
|
World world = contraption.entity.world;
|
||||||
|
|
||||||
BlockPos.Mutable pos = new BlockPos.Mutable(contraption.anchor);
|
BlockPos.Mutable pos = contraption.anchor.mutableCopy();
|
||||||
while (!AllBlocks.ROPE_PULLEY.has(world.getBlockState(pos)) && pos.getY() < 256) {
|
while (!AllBlocks.ROPE_PULLEY.has(world.getBlockState(pos)) && pos.getY() < 256) {
|
||||||
pos.move(0, 1, 0);
|
pos.move(0, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,9 @@ import org.lwjgl.opengl.GL20;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.render.backend.gl.BasicProgram;
|
import com.simibubi.create.foundation.render.backend.gl.BasicProgram;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
|
||||||
public class ContraptionProgram extends BasicProgram {
|
public class ContraptionProgram extends BasicProgram {
|
||||||
protected final int uLightBoxSize;
|
protected final int uLightBoxSize;
|
||||||
|
|
|
@ -35,7 +35,6 @@ import net.minecraft.client.renderer.BlockRendererDispatcher;
|
||||||
import net.minecraft.client.renderer.BufferBuilder;
|
import net.minecraft.client.renderer.BufferBuilder;
|
||||||
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
||||||
import net.minecraft.client.renderer.LightTexture;
|
import net.minecraft.client.renderer.LightTexture;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.RenderTypeLookup;
|
import net.minecraft.client.renderer.RenderTypeLookup;
|
||||||
import net.minecraft.client.renderer.WorldRenderer;
|
import net.minecraft.client.renderer.WorldRenderer;
|
||||||
|
@ -44,7 +43,8 @@ import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.SectionPos;
|
import net.minecraft.util.math.SectionPos;
|
||||||
import net.minecraft.world.ILightReader;
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
import net.minecraft.world.IBlockDisplayReader;
|
||||||
import net.minecraft.world.LightType;
|
import net.minecraft.world.LightType;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.gen.feature.template.Template;
|
import net.minecraft.world.gen.feature.template.Template;
|
||||||
|
@ -58,7 +58,7 @@ public class ContraptionRenderDispatcher {
|
||||||
|
|
||||||
private static boolean firstLayer = true;
|
private static boolean firstLayer = true;
|
||||||
|
|
||||||
public static void notifyLightUpdate(ILightReader world, LightType type, SectionPos pos) {
|
public static void notifyLightUpdate(IBlockDisplayReader world, LightType type, SectionPos pos) {
|
||||||
for (RenderedContraption renderer : renderers.values()) {
|
for (RenderedContraption renderer : renderers.values()) {
|
||||||
renderer.getLighter().lightVolume.notifyLightUpdate(world, type, pos);
|
renderer.getLighter().lightVolume.notifyLightUpdate(world, type, pos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@ import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.BlockModelRenderer;
|
import net.minecraft.client.renderer.BlockModelRenderer;
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
||||||
import net.minecraft.client.renderer.BufferBuilder;
|
import net.minecraft.client.renderer.BufferBuilder;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.RenderTypeLookup;
|
import net.minecraft.client.renderer.RenderTypeLookup;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
|
@ -41,6 +40,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.gen.feature.template.Template;
|
import net.minecraft.world.gen.feature.template.Template;
|
||||||
import net.minecraft.world.lighting.WorldLightManager;
|
import net.minecraft.world.lighting.WorldLightManager;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import com.simibubi.create.foundation.render.backend.light.ILightListener;
|
||||||
|
|
||||||
import net.minecraft.client.multiplayer.ClientChunkProvider;
|
import net.minecraft.client.multiplayer.ClientChunkProvider;
|
||||||
import net.minecraft.util.math.SectionPos;
|
import net.minecraft.util.math.SectionPos;
|
||||||
import net.minecraft.world.ILightReader;
|
import net.minecraft.world.IBlockDisplayReader;
|
||||||
import net.minecraft.world.LightType;
|
import net.minecraft.world.LightType;
|
||||||
import net.minecraft.world.chunk.AbstractChunkProvider;
|
import net.minecraft.world.chunk.AbstractChunkProvider;
|
||||||
import net.minecraft.world.chunk.Chunk;
|
import net.minecraft.world.chunk.Chunk;
|
||||||
|
@ -48,6 +48,6 @@ public abstract class LightUpdateMixin extends AbstractChunkProvider {
|
||||||
.forEach(ILightListener::onChunkLightUpdate);
|
.forEach(ILightListener::onChunkLightUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
ContraptionRenderDispatcher.notifyLightUpdate((ILightReader) thi.getWorld(), type, pos);
|
ContraptionRenderDispatcher.notifyLightUpdate((IBlockDisplayReader) thi.getWorld(), type, pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,10 +14,10 @@ import com.simibubi.create.foundation.render.backend.Backend;
|
||||||
import com.simibubi.create.foundation.render.backend.FastRenderDispatcher;
|
import com.simibubi.create.foundation.render.backend.FastRenderDispatcher;
|
||||||
import com.simibubi.create.foundation.render.backend.OptifineHandler;
|
import com.simibubi.create.foundation.render.backend.OptifineHandler;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.WorldRenderer;
|
import net.minecraft.client.renderer.WorldRenderer;
|
||||||
import net.minecraft.client.world.ClientWorld;
|
import net.minecraft.client.world.ClientWorld;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
|
|
|
@ -11,11 +11,11 @@ import com.simibubi.create.foundation.render.backend.instancing.InstancedTileRen
|
||||||
import com.simibubi.create.foundation.render.backend.instancing.RenderMaterial;
|
import com.simibubi.create.foundation.render.backend.instancing.RenderMaterial;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
|
||||||
public class KineticRenderer extends InstancedTileRenderer<BasicProgram> {
|
public class KineticRenderer extends InstancedTileRenderer<BasicProgram> {
|
||||||
public static int MAX_ORIGIN_DISTANCE = 1000;
|
public static int MAX_ORIGIN_DISTANCE = 1000;
|
||||||
|
@ -42,7 +42,7 @@ public class KineticRenderer extends InstancedTileRenderer<BasicProgram> {
|
||||||
|
|
||||||
if (renderViewEntity == null) return;
|
if (renderViewEntity == null) return;
|
||||||
|
|
||||||
BlockPos renderViewPosition = renderViewEntity.getPosition();
|
BlockPos renderViewPosition = renderViewEntity.getBlockPos();
|
||||||
|
|
||||||
int dX = Math.abs(renderViewPosition.getX() - originCoordinate.getX());
|
int dX = Math.abs(renderViewPosition.getX() - originCoordinate.getX());
|
||||||
int dY = Math.abs(renderViewPosition.getY() - originCoordinate.getY());
|
int dY = Math.abs(renderViewPosition.getY() - originCoordinate.getY());
|
||||||
|
|
|
@ -182,7 +182,7 @@ public class Backend {
|
||||||
|
|
||||||
private static GlShader loadShader(IResourceManager manager, ResourceLocation name, ShaderType type, GlShader.PreProcessor preProcessor) throws IOException {
|
private static GlShader loadShader(IResourceManager manager, ResourceLocation name, ShaderType type, GlShader.PreProcessor preProcessor) throws IOException {
|
||||||
try (InputStream is = new BufferedInputStream(manager.getResource(name).getInputStream())) {
|
try (InputStream is = new BufferedInputStream(manager.getResource(name).getInputStream())) {
|
||||||
String source = TextureUtil.func_225687_b_(is);
|
String source = TextureUtil.readAllToString(is);
|
||||||
|
|
||||||
if (source == null) {
|
if (source == null) {
|
||||||
throw new IOException("Could not load program " + name);
|
throw new IOException("Could not load program " + name);
|
||||||
|
|
|
@ -15,13 +15,13 @@ import com.simibubi.create.foundation.utility.WorldAttached;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||||
import net.minecraft.client.renderer.GameRenderer;
|
import net.minecraft.client.renderer.GameRenderer;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.Vector3f;
|
|
||||||
import net.minecraft.client.world.ClientWorld;
|
import net.minecraft.client.world.ClientWorld;
|
||||||
import net.minecraft.potion.Effects;
|
import net.minecraft.potion.Effects;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class FastRenderDispatcher {
|
public class FastRenderDispatcher {
|
||||||
|
@ -73,11 +73,11 @@ public class FastRenderDispatcher {
|
||||||
|
|
||||||
layer.startDrawing();
|
layer.startDrawing();
|
||||||
|
|
||||||
RenderSystem.enableDepthTest();
|
// RenderSystem.enableDepthTest();
|
||||||
RenderSystem.enableCull();
|
// RenderSystem.enableCull();
|
||||||
GL11.glCullFace(GL11.GL_BACK);
|
// GL11.glCullFace(GL11.GL_BACK);
|
||||||
CreateClient.kineticRenderer.render(layer, viewProjection, cameraX, cameraY, cameraZ);
|
CreateClient.kineticRenderer.render(layer, viewProjection, cameraX, cameraY, cameraZ);
|
||||||
RenderSystem.disableCull();
|
// RenderSystem.disableCull();
|
||||||
//RenderSystem.disableDepthTest();
|
//RenderSystem.disableDepthTest();
|
||||||
|
|
||||||
layer.endDrawing();
|
layer.endDrawing();
|
||||||
|
@ -93,7 +93,9 @@ public class FastRenderDispatcher {
|
||||||
ClientPlayerEntity player = mc.player;
|
ClientPlayerEntity player = mc.player;
|
||||||
|
|
||||||
MatrixStack matrixstack = new MatrixStack();
|
MatrixStack matrixstack = new MatrixStack();
|
||||||
matrixstack.peek().getModel().multiply(gameRenderer.func_228382_a_(gameRenderer.getActiveRenderInfo(), partialTicks, true));
|
matrixstack.peek()
|
||||||
|
.getModel()
|
||||||
|
.multiply(gameRenderer.getBasicProjectionMatrix(gameRenderer.getActiveRenderInfo(), partialTicks, true));
|
||||||
gameRenderer.bobViewWhenHurt(matrixstack, partialTicks);
|
gameRenderer.bobViewWhenHurt(matrixstack, partialTicks);
|
||||||
if (mc.gameSettings.viewBobbing) {
|
if (mc.gameSettings.viewBobbing) {
|
||||||
gameRenderer.bobView(matrixstack, partialTicks);
|
gameRenderer.bobView(matrixstack, partialTicks);
|
||||||
|
@ -116,7 +118,7 @@ public class FastRenderDispatcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
Matrix4f matrix4f = matrixstack.peek().getModel();
|
Matrix4f matrix4f = matrixstack.peek().getModel();
|
||||||
gameRenderer.func_228379_a_(matrix4f);
|
gameRenderer.loadProjectionMatrix(matrix4f);
|
||||||
|
|
||||||
projectionMatrixThisFrame = matrix4f;
|
projectionMatrixThisFrame = matrix4f;
|
||||||
return projectionMatrixThisFrame;
|
return projectionMatrixThisFrame;
|
||||||
|
|
|
@ -6,8 +6,8 @@ import com.simibubi.create.foundation.render.backend.Backend;
|
||||||
import com.simibubi.create.foundation.render.backend.gl.shader.GlProgram;
|
import com.simibubi.create.foundation.render.backend.gl.shader.GlProgram;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
|
||||||
public class BasicProgram extends GlProgram {
|
public class BasicProgram extends GlProgram {
|
||||||
protected final int uTime;
|
protected final int uTime;
|
||||||
|
|
|
@ -13,11 +13,11 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
import com.simibubi.create.foundation.utility.WorldAttached;
|
import com.simibubi.create.foundation.utility.WorldAttached;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.world.ClientWorld;
|
import net.minecraft.client.world.ClientWorld;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
|
||||||
public abstract class InstancedTileRenderer<P extends BasicProgram> {
|
public abstract class InstancedTileRenderer<P extends BasicProgram> {
|
||||||
public static WorldAttached<ConcurrentHashMap<TileEntity, Integer>> addedLastTick = new WorldAttached<>(ConcurrentHashMap::new);
|
public static WorldAttached<ConcurrentHashMap<TileEntity, Integer>> addedLastTick = new WorldAttached<>(ConcurrentHashMap::new);
|
||||||
|
|
|
@ -28,10 +28,10 @@ import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
||||||
import net.minecraft.client.renderer.BufferBuilder;
|
import net.minecraft.client.renderer.BufferBuilder;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
|
||||||
public class RenderMaterial<P extends BasicProgram, MODEL extends InstancedModel<?>> {
|
public class RenderMaterial<P extends BasicProgram, MODEL extends InstancedModel<?>> {
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import com.simibubi.create.foundation.render.RenderMath;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.util.math.SectionPos;
|
import net.minecraft.util.math.SectionPos;
|
||||||
import net.minecraft.util.math.Vec3i;
|
import net.minecraft.util.math.vector.Vector3i;
|
||||||
|
|
||||||
public class GridAlignedBB {
|
public class GridAlignedBB {
|
||||||
public int minX;
|
public int minX;
|
||||||
|
@ -93,7 +93,7 @@ public class GridAlignedBB {
|
||||||
minZ == maxZ;
|
minZ == maxZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void translate(Vec3i by) {
|
public void translate(Vector3i by) {
|
||||||
translate(by.getX(), by.getY(), by.getZ());
|
translate(by.getX(), by.getY(), by.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ public class GridAlignedBB {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mirrorAbout(Direction.Axis axis) {
|
public void mirrorAbout(Direction.Axis axis) {
|
||||||
Vec3i axisVec = Direction.getFacingFromAxis(Direction.AxisDirection.POSITIVE, axis).getDirectionVec();
|
Vector3i axisVec = Direction.getFacingFromAxis(Direction.AxisDirection.POSITIVE, axis).getDirectionVec();
|
||||||
int flipX = axisVec.getX() - 1;
|
int flipX = axisVec.getX() - 1;
|
||||||
int flipY = axisVec.getY() - 1;
|
int flipY = axisVec.getY() - 1;
|
||||||
int flipZ = axisVec.getZ() - 1;
|
int flipZ = axisVec.getZ() - 1;
|
||||||
|
|
|
@ -14,7 +14,8 @@ import com.simibubi.create.foundation.render.backend.gl.GlTexture;
|
||||||
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.SectionPos;
|
import net.minecraft.util.math.SectionPos;
|
||||||
import net.minecraft.world.ILightReader;
|
import net.minecraft.world.IBlockDisplayReader;
|
||||||
|
import net.minecraft.world.IWorldReader;
|
||||||
import net.minecraft.world.LightType;
|
import net.minecraft.world.LightType;
|
||||||
|
|
||||||
public class LightVolume {
|
public class LightVolume {
|
||||||
|
@ -97,7 +98,7 @@ public class LightVolume {
|
||||||
return textureVolume.sizeZ();
|
return textureVolume.sizeZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void move(ILightReader world, GridAlignedBB newSampleVolume) {
|
public void move(IBlockDisplayReader world, GridAlignedBB newSampleVolume) {
|
||||||
if (textureVolume.contains(newSampleVolume)) {
|
if (textureVolume.contains(newSampleVolume)) {
|
||||||
if (newSampleVolume.intersects(sampleVolume)) {
|
if (newSampleVolume.intersects(sampleVolume)) {
|
||||||
GridAlignedBB newArea = newSampleVolume.intersect(sampleVolume);
|
GridAlignedBB newArea = newSampleVolume.intersect(sampleVolume);
|
||||||
|
@ -118,7 +119,7 @@ public class LightVolume {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyLightUpdate(ILightReader world, LightType type, SectionPos location) {
|
public void notifyLightUpdate(IBlockDisplayReader world, LightType type, SectionPos location) {
|
||||||
GridAlignedBB changedVolume = GridAlignedBB.fromSection(location);
|
GridAlignedBB changedVolume = GridAlignedBB.fromSection(location);
|
||||||
if (!changedVolume.intersects(sampleVolume))
|
if (!changedVolume.intersects(sampleVolume))
|
||||||
return;
|
return;
|
||||||
|
@ -132,7 +133,7 @@ public class LightVolume {
|
||||||
* Completely (re)populate this volume with block and sky lighting data.
|
* Completely (re)populate this volume with block and sky lighting data.
|
||||||
* This is expensive and should be avoided.
|
* This is expensive and should be avoided.
|
||||||
*/
|
*/
|
||||||
public void initialize(ILightReader world) {
|
public void initialize(IBlockDisplayReader world) {
|
||||||
BlockPos.Mutable pos = new BlockPos.Mutable();
|
BlockPos.Mutable pos = new BlockPos.Mutable();
|
||||||
|
|
||||||
int shiftX = textureVolume.minX;
|
int shiftX = textureVolume.minX;
|
||||||
|
@ -155,7 +156,7 @@ public class LightVolume {
|
||||||
* Copy block light from the world into this volume.
|
* Copy block light from the world into this volume.
|
||||||
* @param worldVolume the region in the world to copy data from.
|
* @param worldVolume the region in the world to copy data from.
|
||||||
*/
|
*/
|
||||||
public void copyBlock(ILightReader world, GridAlignedBB worldVolume) {
|
public void copyBlock(IBlockDisplayReader world, GridAlignedBB worldVolume) {
|
||||||
BlockPos.Mutable pos = new BlockPos.Mutable();
|
BlockPos.Mutable pos = new BlockPos.Mutable();
|
||||||
|
|
||||||
int xShift = textureVolume.minX;
|
int xShift = textureVolume.minX;
|
||||||
|
@ -177,7 +178,7 @@ public class LightVolume {
|
||||||
* Copy sky light from the world into this volume.
|
* Copy sky light from the world into this volume.
|
||||||
* @param worldVolume the region in the world to copy data from.
|
* @param worldVolume the region in the world to copy data from.
|
||||||
*/
|
*/
|
||||||
public void copySky(ILightReader world, GridAlignedBB worldVolume) {
|
public void copySky(IBlockDisplayReader world, GridAlignedBB worldVolume) {
|
||||||
BlockPos.Mutable pos = new BlockPos.Mutable();
|
BlockPos.Mutable pos = new BlockPos.Mutable();
|
||||||
|
|
||||||
int xShift = textureVolume.minX;
|
int xShift = textureVolume.minX;
|
||||||
|
@ -199,7 +200,7 @@ public class LightVolume {
|
||||||
* Copy all light from the world into this volume.
|
* Copy all light from the world into this volume.
|
||||||
* @param worldVolume the region in the world to copy data from.
|
* @param worldVolume the region in the world to copy data from.
|
||||||
*/
|
*/
|
||||||
public void copyLight(ILightReader world, GridAlignedBB worldVolume) {
|
public void copyLight(IBlockDisplayReader world, GridAlignedBB worldVolume) {
|
||||||
BlockPos.Mutable pos = new BlockPos.Mutable();
|
BlockPos.Mutable pos = new BlockPos.Mutable();
|
||||||
|
|
||||||
int xShift = textureVolume.minX;
|
int xShift = textureVolume.minX;
|
||||||
|
|
|
@ -6,8 +6,6 @@ import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.ActiveRenderInfo;
|
import net.minecraft.client.renderer.ActiveRenderInfo;
|
||||||
import net.minecraft.client.renderer.Quaternion;
|
|
||||||
import net.minecraft.client.renderer.Vector3f;
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.nbt.DoubleNBT;
|
import net.minecraft.nbt.DoubleNBT;
|
||||||
|
@ -16,7 +14,9 @@ import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.Direction.Axis;
|
import net.minecraft.util.Direction.Axis;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.vector.Quaternion;
|
||||||
import net.minecraft.util.math.vector.Vector3d;
|
import net.minecraft.util.math.vector.Vector3d;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
import net.minecraft.util.math.vector.Vector3i;
|
import net.minecraft.util.math.vector.Vector3i;
|
||||||
|
|
||||||
public class VecHelper {
|
public class VecHelper {
|
||||||
|
@ -152,11 +152,11 @@ public class VecHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
//https://forums.minecraftforge.net/topic/88562-116solved-3d-to-2d-conversion/?do=findComment&comment=413573 slightly modified
|
//https://forums.minecraftforge.net/topic/88562-116solved-3d-to-2d-conversion/?do=findComment&comment=413573 slightly modified
|
||||||
public static Vec3d projectToPlayerView(Vec3d target, float partialTicks) {
|
public static Vector3d projectToPlayerView(Vector3d target, float partialTicks) {
|
||||||
/* The (centered) location on the screen of the given 3d point in the world.
|
/* The (centered) location on the screen of the given 3d point in the world.
|
||||||
* Result is (dist right of center screen, dist up from center screen, if < 0, then in front of view plane) */
|
* Result is (dist right of center screen, dist up from center screen, if < 0, then in front of view plane) */
|
||||||
ActiveRenderInfo ari = Minecraft.getInstance().gameRenderer.getActiveRenderInfo();
|
ActiveRenderInfo ari = Minecraft.getInstance().gameRenderer.getActiveRenderInfo();
|
||||||
Vec3d camera_pos = ari.getProjectedView();
|
Vector3d camera_pos = ari.getProjectedView();
|
||||||
Quaternion camera_rotation_conj = ari.getRotation().copy();
|
Quaternion camera_rotation_conj = ari.getRotation().copy();
|
||||||
camera_rotation_conj.conjugate();
|
camera_rotation_conj.conjugate();
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ public class VecHelper {
|
||||||
|
|
||||||
float half_height = (float) mc.getWindow().getScaledHeight() / 2;
|
float half_height = (float) mc.getWindow().getScaledHeight() / 2;
|
||||||
float scale_factor = half_height / (result3f.getZ() * (float) Math.tan(Math.toRadians(fov / 2)));
|
float scale_factor = half_height / (result3f.getZ() * (float) Math.tan(Math.toRadians(fov / 2)));
|
||||||
return new Vec3d(-result3f.getX() * scale_factor, result3f.getY() * scale_factor, result3f.getZ());
|
return new Vector3d(-result3f.getX() * scale_factor, result3f.getY() * scale_factor, result3f.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,11 +18,8 @@ import com.simibubi.create.foundation.utility.VirtualEmptyModelData;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
||||||
import net.minecraft.client.renderer.Matrix4f;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.RenderTypeLookup;
|
import net.minecraft.client.renderer.RenderTypeLookup;
|
||||||
import net.minecraft.client.renderer.Vector3f;
|
|
||||||
import net.minecraft.client.renderer.Vector4f;
|
|
||||||
import net.minecraft.client.renderer.model.BakedQuad;
|
import net.minecraft.client.renderer.model.BakedQuad;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
|
@ -30,7 +27,10 @@ import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.util.math.Vec3i;
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
|
import net.minecraft.util.math.vector.Vector3i;
|
||||||
|
import net.minecraft.util.math.vector.Vector4f;
|
||||||
|
|
||||||
public abstract class GhostBlockRenderer {
|
public abstract class GhostBlockRenderer {
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ public abstract class GhostBlockRenderer {
|
||||||
|
|
||||||
IBakedModel model = dispatcher.getModelForState(params.state);
|
IBakedModel model = dispatcher.getModelForState(params.state);
|
||||||
|
|
||||||
RenderType layer = RenderTypeLookup.getEntityBlockLayer(params.state);
|
RenderType layer = RenderTypeLookup.getEntityBlockLayer(params.state, false);
|
||||||
IVertexBuilder vb = buffer.getEarlyBuffer(layer);
|
IVertexBuilder vb = buffer.getEarlyBuffer(layer);
|
||||||
|
|
||||||
BlockPos pos = params.pos;
|
BlockPos pos = params.pos;
|
||||||
|
@ -138,7 +138,7 @@ public abstract class GhostBlockRenderer {
|
||||||
//IVertexBuilder
|
//IVertexBuilder
|
||||||
static void quad(float alpha, IVertexBuilder vb, MatrixStack.Entry p_227890_1_, BakedQuad p_227890_2_, float[] p_227890_3_, float p_227890_4_, float p_227890_5_, float p_227890_6_, int[] p_227890_7_, int p_227890_8_) {
|
static void quad(float alpha, IVertexBuilder vb, MatrixStack.Entry p_227890_1_, BakedQuad p_227890_2_, float[] p_227890_3_, float p_227890_4_, float p_227890_5_, float p_227890_6_, int[] p_227890_7_, int p_227890_8_) {
|
||||||
int[] aint = p_227890_2_.getVertexData();
|
int[] aint = p_227890_2_.getVertexData();
|
||||||
Vec3i vec3i = p_227890_2_.getFace().getDirectionVec();
|
Vector3i vec3i = p_227890_2_.getFace().getDirectionVec();
|
||||||
Vector3f vector3f = new Vector3f((float) vec3i.getX(), (float) vec3i.getY(), (float) vec3i.getZ());
|
Vector3f vector3f = new Vector3f((float) vec3i.getX(), (float) vec3i.getY(), (float) vec3i.getZ());
|
||||||
Matrix4f matrix4f = p_227890_1_.getModel();
|
Matrix4f matrix4f = p_227890_1_.getModel();
|
||||||
vector3f.transform(p_227890_1_.getNormal());
|
vector3f.transform(p_227890_1_.getNormal());
|
||||||
|
|
|
@ -26,7 +26,7 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.BlockRayTraceResult;
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.vector.Vector3d;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
|
@ -178,15 +178,15 @@ public class PlacementHelpers {
|
||||||
float b = .8f;
|
float b = .8f;
|
||||||
float a = progress * progress;
|
float a = progress * progress;
|
||||||
|
|
||||||
Vec3d projTarget = VecHelper.projectToPlayerView(VecHelper.getCenterOf(lastTarget), partialTicks);
|
Vector3d projTarget = VecHelper.projectToPlayerView(VecHelper.getCenterOf(lastTarget), partialTicks);
|
||||||
|
|
||||||
Vec3d target = new Vec3d(projTarget.x, projTarget.y, 0);
|
Vector3d target = new Vector3d(projTarget.x, projTarget.y, 0);
|
||||||
if (projTarget.z > 0) {
|
if (projTarget.z > 0) {
|
||||||
target = target.inverse();
|
target = target.inverse();
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3d norm = target.normalize();
|
Vector3d norm = target.normalize();
|
||||||
Vec3d ref = new Vec3d(0, 1, 0);
|
Vector3d ref = new Vector3d(0, 1, 0);
|
||||||
float targetAngle = AngleHelper.deg(Math.acos(norm.dotProduct(ref)));
|
float targetAngle = AngleHelper.deg(Math.acos(norm.dotProduct(ref)));
|
||||||
|
|
||||||
angle.withSpeed(0.25f);
|
angle.withSpeed(0.25f);
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.simibubi.create.foundation.utility.worldWrappers;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.BooleanSupplier;
|
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
@ -66,11 +65,6 @@ public class WrappedChunkProvider extends AbstractChunkProvider {
|
||||||
return chunk;
|
return chunk;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick(BooleanSupplier p_217207_1_) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String makeString() {
|
public String makeString() {
|
||||||
return "WrappedChunkProvider";
|
return "WrappedChunkProvider";
|
||||||
|
|
|
@ -15,7 +15,7 @@ import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.fluid.Fluid;
|
import net.minecraft.fluid.Fluid;
|
||||||
import net.minecraft.fluid.IFluidState;
|
import net.minecraft.fluid.FluidState;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
@ -27,6 +27,7 @@ import net.minecraft.world.chunk.ChunkSection;
|
||||||
import net.minecraft.world.chunk.ChunkStatus;
|
import net.minecraft.world.chunk.ChunkStatus;
|
||||||
import net.minecraft.world.chunk.IChunk;
|
import net.minecraft.world.chunk.IChunk;
|
||||||
import net.minecraft.world.gen.Heightmap;
|
import net.minecraft.world.gen.Heightmap;
|
||||||
|
import net.minecraft.world.gen.feature.structure.Structure;
|
||||||
import net.minecraft.world.gen.feature.structure.StructureStart;
|
import net.minecraft.world.gen.feature.structure.StructureStart;
|
||||||
|
|
||||||
public class WrappedChunk implements IChunk {
|
public class WrappedChunk implements IChunk {
|
||||||
|
@ -122,16 +123,6 @@ public class WrappedChunk implements IChunk {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, StructureStart> getStructureStarts() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setStructureStarts(Map<String, StructureStart> p_201612_1_) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public BiomeContainer getBiomeArray() {
|
public BiomeContainer getBiomeArray() {
|
||||||
|
@ -222,38 +213,48 @@ public class WrappedChunk implements IChunk {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IFluidState getFluidState(BlockPos pos) {
|
public FluidState getFluidState(BlockPos p_204610_1_) {
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public StructureStart getStructureStart(String p_201585_1_) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void putStructureStart(String p_201584_1_, StructureStart p_201584_2_) {
|
public void addStructureReference(Structure<?> arg0, long arg1) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LongSet getStructureReferences(String p_201578_1_) {
|
public Map<Structure<?>, LongSet> getStructureReferences() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addStructureReference(String p_201583_1_, long p_201583_2_) {
|
public LongSet getStructureReferences(Structure<?> arg0) {
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, LongSet> getStructureReferences() {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStructureReferences(Map<String, LongSet> p_201606_1_) {
|
public StructureStart<?> getStructureStart(Structure<?> arg0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStructureReferences(Map<Structure<?>, LongSet> arg0) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStructureStart(Structure<?> arg0, StructureStart<?> arg1) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStructureStarts(Map<Structure<?>, StructureStart<?>> p_201612_1_) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Structure<?>, StructureStart<?>> getStructureStarts() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue