Fun with funnels
- Reworked funnel assets - Andesite funnels can now be controlled via redstone input - Re-introduced creative mounted storage
|
@ -5,7 +5,7 @@ f0d6baaabda94151134f569246d61a6e710c35a9 assets/create/blockstates/acacia_window
|
|||
79c50afcea3a360783a5b3c73de9823511e9aed9 assets/create/blockstates/adjustable_pulse_repeater.json
|
||||
1d730df54c9eae94063e37396d224fb3c87517e0 assets/create/blockstates/adjustable_repeater.json
|
||||
9dd79bf5430f674e7d3e3fc7d59edee3d66e241e assets/create/blockstates/analog_lever.json
|
||||
aaad1fc11aae17e209b0c3fbc9977c724c50c1ef assets/create/blockstates/andesite_belt_funnel.json
|
||||
0a172dea0746027be3676e87271615f1307245a6 assets/create/blockstates/andesite_belt_funnel.json
|
||||
585481e97c5066af63ea12fa5dd658798844d64c assets/create/blockstates/andesite_bricks.json
|
||||
4e8d61aa2c8490301317ef747f67f0169ebfc2ed assets/create/blockstates/andesite_bricks_slab.json
|
||||
da63a8be3191d6d72afef6c79e3aea3f607631f9 assets/create/blockstates/andesite_bricks_stairs.json
|
||||
|
@ -15,7 +15,7 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets/create/blockstates/andesite_bric
|
|||
97adf53a7cb99d7652fb39adc957e9e34cbaca47 assets/create/blockstates/andesite_cobblestone_slab.json
|
||||
96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json
|
||||
82bd82270aff7d51e9239680ef4dd7b5c899ceb0 assets/create/blockstates/andesite_cobblestone_wall.json
|
||||
2be950008c00513dfe39021b65c26eea8554ee20 assets/create/blockstates/andesite_funnel.json
|
||||
11908c2f8603e61bec88010bc6d0890e6339c6b1 assets/create/blockstates/andesite_funnel.json
|
||||
398922758a6219544e5b85c91c9cf8a543b437e5 assets/create/blockstates/andesite_pillar.json
|
||||
1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json
|
||||
f9fa6aa530eb0891a74eadfbebc663172a57147a assets/create/blockstates/basin.json
|
||||
|
@ -382,10 +382,14 @@ cda6f9761431c5b8538f746db2dc55e5fb57bf01 assets/create/models/block/adjustable_p
|
|||
ce5e0cd1598cf2228bb77a68c304dd210f3848f8 assets/create/models/block/adjustable_repeater_powered.json
|
||||
c82a31943f5adb4a64c6db4c48c94cbce5d95bc4 assets/create/models/block/adjustable_repeater_powered_powering.json
|
||||
51cf61f8bc25cf62b0e0c0705c75512809358ff0 assets/create/models/block/adjustable_repeater_powering.json
|
||||
e4af27010c74bb5b1e79b6fccf1669526e1bb5e3 assets/create/models/block/andesite_belt_funnel_pull_extended.json
|
||||
502916dc860e5ba971af51c640192b5ac02e574f assets/create/models/block/andesite_belt_funnel_pull_retracted.json
|
||||
f1ba5c40d5e580d3c46d2eeab37b59263d0b0904 assets/create/models/block/andesite_belt_funnel_push_extended.json
|
||||
5689f01354dcb8bf1547467c7c5b86468f962bce assets/create/models/block/andesite_belt_funnel_push_retracted.json
|
||||
4b8c1db868de612ae6a49d9133db700ac6a3d688 assets/create/models/block/andesite_belt_funnel_pull_extended.json
|
||||
eb7f1bfcd856bf302cb24dda09994ceef280fca2 assets/create/models/block/andesite_belt_funnel_pull_powered_extended.json
|
||||
d5d7c62b16aa3cfb279b4e3100f910c1782b5846 assets/create/models/block/andesite_belt_funnel_pull_powered_retracted.json
|
||||
2d228eae550d573f4cad06ed6f6d51e4975fdde6 assets/create/models/block/andesite_belt_funnel_pull_retracted.json
|
||||
2a3b929e3c24f70a0842b9ce56c175c4383e2598 assets/create/models/block/andesite_belt_funnel_push_extended.json
|
||||
56a4d2e099fb285fd04ef095ced3bd7046835711 assets/create/models/block/andesite_belt_funnel_push_powered_extended.json
|
||||
8a73d43517d64f873896631fbe7fccd085e1603a assets/create/models/block/andesite_belt_funnel_push_powered_retracted.json
|
||||
aff112cb4ca73f3b1f71e98ccd984ee286da2930 assets/create/models/block/andesite_belt_funnel_push_retracted.json
|
||||
4d412de3eb98dfee548a0dcdbae5d0168ac67123 assets/create/models/block/andesite_bricks.json
|
||||
054ef3fff7f146dbf8adc92dc2b6d169c2bdb7a5 assets/create/models/block/andesite_bricks_slab.json
|
||||
8784414839f6a5786bf43d6a7dff6c27bdf7fe46 assets/create/models/block/andesite_bricks_slab_top.json
|
||||
|
@ -403,7 +407,8 @@ ad255a62a5f54b578db06e89fd7160001f905675 assets/create/models/block/andesite_cob
|
|||
a033fbac3129bba9211c6c4a0e16c905643afa39 assets/create/models/block/andesite_cobblestone_stairs_outer.json
|
||||
1c574ee47aeb6fcb305bfc95dd131e153b795a0e assets/create/models/block/andesite_cobblestone_wall_post.json
|
||||
0ed983628e8868f77301bea1111570d3631f24fb assets/create/models/block/andesite_cobblestone_wall_side.json
|
||||
9febbf6fb88e726a89573c3788bd8348ba805b6d assets/create/models/block/andesite_funnel.json
|
||||
51e851b15870c0922cfbe911ef1a2f22062969f3 assets/create/models/block/andesite_funnel.json
|
||||
f28da6703691f1b08cfb49208f0f7bb0c5ca816d assets/create/models/block/andesite_funnel_powered.json
|
||||
b1d0bb538fc8285b7d3fd77a977d78a104b83b62 assets/create/models/block/andesite_pillar.json
|
||||
aaf2e4259bcfcedd3400e9acb2d64c0cf06f7fb1 assets/create/models/block/andesite_tunnel/cross.json
|
||||
75f628178fa21a2bd301eea8d1cebf7e94f7d5cc assets/create/models/block/andesite_tunnel/straight.json
|
||||
|
@ -434,18 +439,18 @@ fa79580db6187c864bc8148a41987ecdd1eb03b7 assets/create/models/block/belt_observe
|
|||
95d4230eb366f5e7684820c9337e3956ed34042a assets/create/models/block/birch_window_pane_side_alt.json
|
||||
97d79ab99c0fb278a9b5dc54e1c6563868f87b76 assets/create/models/block/black_seat.json
|
||||
e58b00a7222152d7facbe0e82f00933b974df747 assets/create/models/block/blue_seat.json
|
||||
7f2ed408fb662a23a75c29398e75bb9deff4c2b5 assets/create/models/block/brass_belt_funnel_pull_extended.json
|
||||
242c9972e2dc70671ffef4de15a31a74b800fcb4 assets/create/models/block/brass_belt_funnel_pull_powered_extended.json
|
||||
3f88752bbf2d4d635cfadb9c7217035a74ff78e3 assets/create/models/block/brass_belt_funnel_pull_powered_retracted.json
|
||||
da2ae304a1b1e02b1ce03cd0205be66d824e16d6 assets/create/models/block/brass_belt_funnel_pull_retracted.json
|
||||
91ba57aded6f4a99208a8812650f454b1a44fe8b assets/create/models/block/brass_belt_funnel_push_extended.json
|
||||
ee79efc65b05d953784b00e573d37602629eb9e8 assets/create/models/block/brass_belt_funnel_push_powered_extended.json
|
||||
1231141717d6609f0e3c282996b1739a2c790e0c assets/create/models/block/brass_belt_funnel_push_powered_retracted.json
|
||||
253e88f2c11006abdc87156dd409ed3944bb7295 assets/create/models/block/brass_belt_funnel_push_retracted.json
|
||||
24dff9a8d22c9a88286d2b7d08384ac9f281a512 assets/create/models/block/brass_belt_funnel_pull_extended.json
|
||||
c9c5f53c9d4f6cf6f509452e91cab1ba5b57f807 assets/create/models/block/brass_belt_funnel_pull_powered_extended.json
|
||||
addcf821a2348c0985bf9a72229355cfab818069 assets/create/models/block/brass_belt_funnel_pull_powered_retracted.json
|
||||
332c7b8bf2feb635290b05788b61ead0b2cc813a assets/create/models/block/brass_belt_funnel_pull_retracted.json
|
||||
094a5aedd53295aaa9b78deedf7899f9875dc5d8 assets/create/models/block/brass_belt_funnel_push_extended.json
|
||||
44d2cf63398e5e4c39f43412a00d7f0213d8703c assets/create/models/block/brass_belt_funnel_push_powered_extended.json
|
||||
07eb19291e5c6108e9e25f57f512747bc48352dd assets/create/models/block/brass_belt_funnel_push_powered_retracted.json
|
||||
6ff63956c71363f198588aca3fd849ad4e0c8863 assets/create/models/block/brass_belt_funnel_push_retracted.json
|
||||
0934933df6bfbb19a1b14cd0e3cab2c18d5a3ebc assets/create/models/block/brass_block.json
|
||||
166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json
|
||||
6c617fc504cb2259263d24fc56c4735e455aac6d assets/create/models/block/brass_funnel.json
|
||||
2f152b82291b7fc994191b1ffb8ec6d65aec748b assets/create/models/block/brass_funnel_powered.json
|
||||
838e7ab4c0c9d89eacfa078daf64995e505db896 assets/create/models/block/brass_funnel.json
|
||||
6099ba0366065d15d3b2821474850a1ae85485ea assets/create/models/block/brass_funnel_powered.json
|
||||
520087db8d479c66f85f3483af813fb668f27503 assets/create/models/block/brass_tunnel/cross.json
|
||||
347ed67bf3426e323354e2d959fc9563dc7eeecd assets/create/models/block/brass_tunnel/straight.json
|
||||
a959e03ca339badb49fe58ba53d86a84352e91f3 assets/create/models/block/brass_tunnel/t_left.json
|
||||
|
@ -1018,7 +1023,7 @@ d283f86cd05ed378efd82ce46cf49bc83783069b assets/create/models/item/andesite_bric
|
|||
1ceb0e49f2c46f1d5414d5fd6edfc2bdd3afa6f7 assets/create/models/item/andesite_cobblestone_slab.json
|
||||
b0f664dd6de3d0ee9afcb6223fbcd53b97fa0d65 assets/create/models/item/andesite_cobblestone_stairs.json
|
||||
4856d13a72ec0af9f10226b4a4bf0567eb580b9a assets/create/models/item/andesite_cobblestone_wall.json
|
||||
0a9f5f6d552813029474dbbfa31e8443ed91adcd assets/create/models/item/andesite_funnel.json
|
||||
7490819e7e5445019b6b8cb2538f12a5b6717a46 assets/create/models/item/andesite_funnel.json
|
||||
75b8b00c2418b9660d35a7fabd0774925cf1c02f assets/create/models/item/andesite_pillar.json
|
||||
c0e35daccfb398947532e9499d6bda963387cd9c assets/create/models/item/andesite_tunnel.json
|
||||
bf1fc6bdf7fca6f1958a2d3e96202c1cecb50669 assets/create/models/item/basin.json
|
||||
|
@ -1031,7 +1036,7 @@ bf1fc6bdf7fca6f1958a2d3e96202c1cecb50669 assets/create/models/item/basin.json
|
|||
0e1977585128fc0ecef640f72e5fc5e9fb47ef92 assets/create/models/item/blue_seat.json
|
||||
17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json
|
||||
f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets/create/models/item/brass_casing.json
|
||||
ab045c951352806c3f632dda7b71573f93f60ac4 assets/create/models/item/brass_funnel.json
|
||||
099961ca4a75b6ecfddd1db6dd29909276759f3b assets/create/models/item/brass_funnel.json
|
||||
361f75a79de5007d7a99ad0a38103c9aa8c3017c assets/create/models/item/brass_hand.json
|
||||
1786bdffa2ab5a07c88d2797db3d7b54461323c4 assets/create/models/item/brass_ingot.json
|
||||
a37be4a0ec9bf6c381527403c57ced4f81abd67c assets/create/models/item/brass_nugget.json
|
||||
|
|
|
@ -1,64 +1,124 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,pushing=false,shape=retracted": {
|
||||
"facing=north,powered=false,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_retracted"
|
||||
},
|
||||
"facing=south,pushing=false,shape=retracted": {
|
||||
"facing=south,powered=false,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_retracted",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,pushing=false,shape=retracted": {
|
||||
"facing=west,powered=false,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_retracted",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,pushing=false,shape=retracted": {
|
||||
"facing=east,powered=false,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_retracted",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,pushing=true,shape=retracted": {
|
||||
"facing=north,powered=true,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_retracted"
|
||||
},
|
||||
"facing=south,powered=true,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_retracted",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,powered=true,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_retracted",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,powered=true,pushing=false,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_retracted",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,powered=false,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_retracted"
|
||||
},
|
||||
"facing=south,pushing=true,shape=retracted": {
|
||||
"facing=south,powered=false,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_retracted",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,pushing=true,shape=retracted": {
|
||||
"facing=west,powered=false,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_retracted",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,pushing=true,shape=retracted": {
|
||||
"facing=east,powered=false,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_retracted",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,pushing=false,shape=extended": {
|
||||
"facing=north,powered=true,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_retracted"
|
||||
},
|
||||
"facing=south,powered=true,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_retracted",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,powered=true,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_retracted",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,powered=true,pushing=true,shape=retracted": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_retracted",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,powered=false,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_extended"
|
||||
},
|
||||
"facing=south,pushing=false,shape=extended": {
|
||||
"facing=south,powered=false,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_extended",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,pushing=false,shape=extended": {
|
||||
"facing=west,powered=false,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_extended",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,pushing=false,shape=extended": {
|
||||
"facing=east,powered=false,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_extended",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,pushing=true,shape=extended": {
|
||||
"facing=north,powered=true,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_extended"
|
||||
},
|
||||
"facing=south,powered=true,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_extended",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,powered=true,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_extended",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,powered=true,pushing=false,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_pull_powered_extended",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,powered=false,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_extended"
|
||||
},
|
||||
"facing=south,pushing=true,shape=extended": {
|
||||
"facing=south,powered=false,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_extended",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,pushing=true,shape=extended": {
|
||||
"facing=west,powered=false,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_extended",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,pushing=true,shape=extended": {
|
||||
"facing=east,powered=false,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_extended",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,powered=true,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_extended"
|
||||
},
|
||||
"facing=south,powered=true,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_extended",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,powered=true,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_extended",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,powered=true,pushing=true,shape=extended": {
|
||||
"model": "create:block/andesite_belt_funnel_push_powered_extended",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,30 +1,56 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=down": {
|
||||
"facing=down,powered=false": {
|
||||
"model": "create:block/andesite_funnel",
|
||||
"x": 180
|
||||
},
|
||||
"facing=up": {
|
||||
"facing=up,powered=false": {
|
||||
"model": "create:block/andesite_funnel"
|
||||
},
|
||||
"facing=north": {
|
||||
"facing=north,powered=false": {
|
||||
"model": "create:block/andesite_funnel",
|
||||
"x": 90
|
||||
},
|
||||
"facing=south": {
|
||||
"facing=south,powered=false": {
|
||||
"model": "create:block/andesite_funnel",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"facing=west,powered=false": {
|
||||
"model": "create:block/andesite_funnel",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east": {
|
||||
"facing=east,powered=false": {
|
||||
"model": "create:block/andesite_funnel",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"facing=down,powered=true": {
|
||||
"model": "create:block/andesite_funnel_powered",
|
||||
"x": 180
|
||||
},
|
||||
"facing=up,powered=true": {
|
||||
"model": "create:block/andesite_funnel_powered"
|
||||
},
|
||||
"facing=north,powered=true": {
|
||||
"model": "create:block/andesite_funnel_powered",
|
||||
"x": 90
|
||||
},
|
||||
"facing=south,powered=true": {
|
||||
"model": "create:block/andesite_funnel_powered",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,powered=true": {
|
||||
"model": "create:block/andesite_funnel_powered",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,powered=true": {
|
||||
"model": "create:block/andesite_funnel_powered",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "create:block/andesite_casing",
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_pull",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"4": "create:block/andesite_funnel_plating"
|
||||
"5": "create:block/andesite_funnel_tall",
|
||||
"6": "create:block/andesite_funnel",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_pull",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"5": "create:block/andesite_funnel_tall_powered",
|
||||
"6": "create:block/andesite_funnel_powered",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_pull",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"5": "create:block/andesite_funnel_tall_powered",
|
||||
"6": "create:block/andesite_funnel_powered",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "create:block/andesite_casing",
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_pull",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"4": "create:block/andesite_funnel_plating"
|
||||
"5": "create:block/andesite_funnel_tall",
|
||||
"6": "create:block/andesite_funnel",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "create:block/andesite_casing",
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_push",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"4": "create:block/andesite_funnel_plating"
|
||||
"5": "create:block/andesite_funnel_tall",
|
||||
"6": "create:block/andesite_funnel",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_push",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"5": "create:block/andesite_funnel_tall_powered",
|
||||
"6": "create:block/andesite_funnel_powered",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_push",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"5": "create:block/andesite_funnel_tall_powered",
|
||||
"6": "create:block/andesite_funnel_powered",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "create:block/andesite_casing",
|
||||
"particle": "block/polished_andesite",
|
||||
"2": "create:block/andesite_funnel_push",
|
||||
"3": "create:block/andesite_funnel_back",
|
||||
"4": "create:block/andesite_funnel_plating"
|
||||
"5": "create:block/andesite_funnel_tall",
|
||||
"6": "create:block/andesite_funnel",
|
||||
"7": "create:block/andesite_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"parent": "create:block/funnel/block",
|
||||
"textures": {
|
||||
"2": "create:block/andesite_funnel_back",
|
||||
"3": "create:block/andesite_funnel",
|
||||
"4": "create:block/andesite_funnel_plating",
|
||||
"particle": "create:block/andesite_casing"
|
||||
"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,9 @@
|
|||
{
|
||||
"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"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_pull",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall",
|
||||
"6": "create:block/brass_funnel",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel_pull_powered",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_pull",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall_powered",
|
||||
"6": "create:block/brass_funnel_powered",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel_pull_powered",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_pull",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall_powered",
|
||||
"6": "create:block/brass_funnel_powered",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_pull",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall",
|
||||
"6": "create:block/brass_funnel",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_push",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall",
|
||||
"6": "create:block/brass_funnel",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_extended",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel_push_powered",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_push",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall_powered",
|
||||
"6": "create:block/brass_funnel_powered",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel_push_powered",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_push",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall_powered",
|
||||
"6": "create:block/brass_funnel_powered",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"parent": "create:block/belt_funnel/block_retracted",
|
||||
"textures": {
|
||||
"particle": "create:block/brass_casing",
|
||||
"particle": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel_push",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"5": "create:block/brass_funnel_tall",
|
||||
"6": "create:block/brass_funnel",
|
||||
"7": "create:block/brass_funnel_plating"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"parent": "create:block/funnel/block",
|
||||
"textures": {
|
||||
"2": "create:block/brass_funnel_back",
|
||||
"3": "create:block/brass_funnel",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_casing"
|
||||
"0": "create:block/brass_funnel_plating",
|
||||
"1": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel",
|
||||
"3": "create:block/brass_funnel_back"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"parent": "create:block/funnel/block",
|
||||
"textures": {
|
||||
"2": "create:block/brass_funnel_back",
|
||||
"3": "create:block/brass_funnel_powered",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_casing"
|
||||
"0": "create:block/brass_funnel_plating",
|
||||
"1": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel_powered",
|
||||
"3": "create:block/brass_funnel_back"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"parent": "create:block/funnel/item",
|
||||
"textures": {
|
||||
"2": "create:block/andesite_funnel_back",
|
||||
"3": "create:block/andesite_funnel",
|
||||
"4": "create:block/andesite_funnel_plating",
|
||||
"particle": "create:block/andesite_casing"
|
||||
"0": "create:block/andesite_funnel_plating",
|
||||
"1": "create:block/andesite_casing",
|
||||
"2": "create:block/andesite_funnel",
|
||||
"3": "create:block/andesite_funnel_back"
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"parent": "create:block/funnel/item",
|
||||
"textures": {
|
||||
"2": "create:block/brass_funnel_back",
|
||||
"3": "create:block/brass_funnel",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_casing"
|
||||
"0": "create:block/brass_funnel_plating",
|
||||
"1": "create:block/brass_casing",
|
||||
"2": "create:block/brass_funnel",
|
||||
"3": "create:block/brass_funnel_back"
|
||||
}
|
||||
}
|
|
@ -64,7 +64,7 @@ public class AllBlockPartials {
|
|||
CUCKOO_RIGHT_DOOR = get("cuckoo_clock/right_door"), CUCKOO_PIG = get("cuckoo_clock/pig"),
|
||||
CUCKOO_CREEPER = get("cuckoo_clock/creeper"), ROPE_COIL = get("rope_pulley/rope_coil"),
|
||||
ROPE_HALF = get("rope_pulley/rope_half"), ROPE_HALF_MAGNET = get("rope_pulley/rope_half_magnet"),
|
||||
MILLSTONE_COG = get("millstone/inner"), PACKAGER_SEALER = get("packager/sealer"),
|
||||
MILLSTONE_COG = get("millstone/inner"),
|
||||
|
||||
SYMMETRY_PLANE = get("symmetry_effect/plane"), SYMMETRY_CROSSPLANE = get("symmetry_effect/crossplane"),
|
||||
SYMMETRY_TRIPLEPLANE = get("symmetry_effect/tripleplane"),
|
||||
|
@ -79,10 +79,8 @@ public class AllBlockPartials {
|
|||
|
||||
MECHANICAL_PUMP_ARROW = get("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = get("mechanical_pump/cog"),
|
||||
FLUID_PIPE_CASING = get("fluid_pipe/casing"),
|
||||
|
||||
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"),
|
||||
|
||||
COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"),
|
||||
COUPLING_RING = getEntity("minecart_coupling/ring"),
|
||||
|
|
|
@ -843,7 +843,7 @@ public class AllBlocks {
|
|||
public static final BlockEntry<AndesiteBeltFunnelBlock> ANDESITE_BELT_FUNNEL =
|
||||
REGISTRATE.block("andesite_belt_funnel", AndesiteBeltFunnelBlock::new)
|
||||
.initialProperties(SharedProperties::stone)
|
||||
.blockstate(new BeltFunnelGenerator("andesite")::generate)
|
||||
.blockstate(new BeltFunnelGenerator("andesite", new ResourceLocation("block/polished_andesite"))::generate)
|
||||
.loot((p, b) -> p.registerDropping(b, ANDESITE_FUNNEL.get()))
|
||||
.register();
|
||||
|
||||
|
@ -857,7 +857,7 @@ public class AllBlocks {
|
|||
public static final BlockEntry<BrassBeltFunnelBlock> BRASS_BELT_FUNNEL =
|
||||
REGISTRATE.block("brass_belt_funnel", BrassBeltFunnelBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.blockstate(new BeltFunnelGenerator("brass")::generate)
|
||||
.blockstate(new BeltFunnelGenerator("brass", Create.asResource("block/brass_block"))::generate)
|
||||
.loot((p, b) -> p.registerDropping(b, BRASS_FUNNEL.get()))
|
||||
.register();
|
||||
|
||||
|
|
|
@ -60,18 +60,22 @@ public class AllShapes {
|
|||
NIXIE_TUBE_CEILING = shape(0, 12, 0, 16, 16, 16).add(9, 1, 5, 15, 16, 11)
|
||||
.add(1, 1, 5, 7, 16, 11)
|
||||
.forHorizontalAxis(),
|
||||
FUNNEL = shape(3, -2, 3, 13, 2, 13).add(2, 2, 2, 14, 6, 14)
|
||||
.add(1, 6, 1, 15, 10, 15)
|
||||
FUNNEL = 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, 16, 16)
|
||||
.forDirectional(UP),
|
||||
FUNNEL_COLLISION = shape(3, -2, 3, 13, 2, 13).add(2, 2, 2, 14, 6, 14)
|
||||
.add(1, 6, 1, 15, 10, 15)
|
||||
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(3, -5, 14, 13, 13, 19).add(0, -5, 8, 16, 16, 14)
|
||||
BELT_FUNNEL_RETRACTED =
|
||||
shape(2, -5, 14, 12, 14, 18)
|
||||
.add(0, -5, 8, 16, 16, 14)
|
||||
.forHorizontal(NORTH),
|
||||
BELT_FUNNEL_EXTENDED = shape(3, -4, 6, 13, 13, 17).add(2, -4, 10, 14, 14, 14)
|
||||
.add(1, -4, 6, 15, 15, 10)
|
||||
BELT_FUNNEL_EXTENDED =
|
||||
shape(2, -4, 14, 14, 14, 18)
|
||||
.add(3, -4, 10, 13, 13, 14)
|
||||
.add(2, -4, 6, 14, 14, 10)
|
||||
.add(0, -5, 0, 16, 16, 6)
|
||||
.forHorizontal(NORTH),
|
||||
PUMP = shape(2, 0, 2, 14, 5, 14).add(4, 0, 4, 12, 16, 12)
|
||||
|
|
|
@ -22,7 +22,7 @@ public abstract class MovedProjectileDispenserBehaviour extends MovedDefaultDisp
|
|||
double x = pos.getX() + facing.x * .7 + .5;
|
||||
double y = pos.getY() + facing.y * .7 + .5;
|
||||
double z = pos.getZ() + facing.z * .7 + .5;
|
||||
IProjectile iprojectile = this.getProjectileEntity(context.world, x, y, z, itemStack);
|
||||
IProjectile iprojectile = this.getProjectileEntity(context.world, x, y, z, itemStack.copy());
|
||||
if (iprojectile == null)
|
||||
return itemStack;
|
||||
Vec3d effectiveMovementVec = facing.scale(getProjectileVelocity()).add(context.motion);
|
||||
|
|
|
@ -17,11 +17,11 @@ import java.util.stream.Collectors;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllMovementBehaviours;
|
||||
import org.apache.commons.lang3.tuple.MutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllMovementBehaviours;
|
||||
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.SeatEntity;
|
||||
|
@ -503,36 +503,29 @@ public abstract class Contraption {
|
|||
});
|
||||
|
||||
superglue.clear();
|
||||
nbt.getList("Superglue", 10)
|
||||
.forEach(c -> {
|
||||
CompoundNBT comp = (CompoundNBT) c;
|
||||
superglue.add(Pair.of(NBTUtil.readBlockPos(comp.getCompound("Pos")),
|
||||
Direction.byIndex(comp.getByte("Direction"))));
|
||||
});
|
||||
NBTHelper.iterateCompoundList(nbt.getList("Superglue", NBT.TAG_COMPOUND), c -> superglue
|
||||
.add(Pair.of(NBTUtil.readBlockPos(c.getCompound("Pos")), Direction.byIndex(c.getByte("Direction")))));
|
||||
|
||||
seats.clear();
|
||||
NBTHelper.iterateCompoundList(nbt.getList("Seats", NBT.TAG_COMPOUND), c -> seats.add(NBTUtil.readBlockPos(c)));
|
||||
|
||||
seatMapping.clear();
|
||||
NBTHelper.iterateCompoundList(nbt.getList("Passengers", NBT.TAG_COMPOUND),
|
||||
c -> seatMapping.put(NBTUtil.readUniqueId(c.getCompound("Id")), c.getInt("Seat")));
|
||||
|
||||
storage.clear();
|
||||
nbt.getList("Storage", 10)
|
||||
.forEach(c -> {
|
||||
CompoundNBT comp = (CompoundNBT) c;
|
||||
storage.put(NBTUtil.readBlockPos(comp.getCompound("Pos")),
|
||||
new MountedStorage(comp.getCompound("Data")));
|
||||
});
|
||||
List<IItemHandlerModifiable> list = storage.values()
|
||||
.stream()
|
||||
.map(MountedStorage::getItemHandler)
|
||||
.collect(Collectors.toList());
|
||||
inventory = new CombinedInvWrapper(Arrays.copyOf(list.toArray(), list.size(), IItemHandlerModifiable[].class));
|
||||
NBTHelper.iterateCompoundList(nbt.getList("Storage", NBT.TAG_COMPOUND), c -> storage
|
||||
.put(NBTUtil.readBlockPos(c.getCompound("Pos")), MountedStorage.deserialize(c.getCompound("Data"))));
|
||||
|
||||
IItemHandlerModifiable[] handlers = new IItemHandlerModifiable[storage.size()];
|
||||
int index = 0;
|
||||
for (MountedStorage mountedStorage : storage.values())
|
||||
handlers[index++] = mountedStorage.getItemHandler();
|
||||
inventory = new CombinedInvWrapper(handlers);
|
||||
|
||||
if (nbt.contains("BoundsFront"))
|
||||
bounds = NBTHelper.readAABB(nbt.getList("BoundsFront", 5));
|
||||
|
||||
getSeats().clear();
|
||||
NBTHelper.iterateCompoundList(nbt.getList("Seats", NBT.TAG_COMPOUND),
|
||||
c -> getSeats().add(NBTUtil.readBlockPos(c)));
|
||||
getSeatMapping().clear();
|
||||
NBTHelper.iterateCompoundList(nbt.getList("Passengers", NBT.TAG_COMPOUND),
|
||||
c -> getSeatMapping().put(NBTUtil.readUniqueId(c.getCompound("Id")), c.getInt("Seat")));
|
||||
|
||||
stalled = nbt.getBoolean("Stalled");
|
||||
anchor = NBTUtil.readBlockPos(nbt.getCompound("Anchor"));
|
||||
}
|
||||
|
@ -572,7 +565,7 @@ public abstract class Contraption {
|
|||
for (BlockPos pos : storage.keySet()) {
|
||||
CompoundNBT c = new CompoundNBT();
|
||||
MountedStorage mountedStorage = storage.get(pos);
|
||||
if (!mountedStorage.isWorking())
|
||||
if (!mountedStorage.isValid())
|
||||
continue;
|
||||
c.put("Pos", NBTUtil.writeBlockPos(pos));
|
||||
c.put("Data", mountedStorage.serialize());
|
||||
|
@ -612,7 +605,7 @@ public abstract class Contraption {
|
|||
|
||||
public void removeBlocksFromWorld(IWorld world, BlockPos offset) {
|
||||
storage.values()
|
||||
.forEach(MountedStorage::empty);
|
||||
.forEach(MountedStorage::removeStorageFromWorld);
|
||||
glueToRemove.forEach(SuperGlueEntity::remove);
|
||||
|
||||
for (boolean brittles : Iterate.trueAndFalse) {
|
||||
|
@ -710,8 +703,8 @@ public abstract class Contraption {
|
|||
|
||||
if (storage.containsKey(block.pos)) {
|
||||
MountedStorage mountedStorage = storage.get(block.pos);
|
||||
if (mountedStorage.isWorking())
|
||||
mountedStorage.fill(tileEntity);
|
||||
if (mountedStorage.isValid())
|
||||
mountedStorage.addStorageToWorld(tileEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement;
|
|||
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock;
|
||||
import com.simibubi.create.content.logistics.block.inventories.BottomlessItemHandler;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
|
||||
import net.minecraft.block.ChestBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -18,21 +20,41 @@ import net.minecraftforge.items.IItemHandler;
|
|||
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||
import net.minecraftforge.items.ItemStackHandler;
|
||||
|
||||
//FIXME: More dynamic mounted storage in .4
|
||||
public class MountedStorage {
|
||||
|
||||
private static final ItemStackHandler dummyHandler = new ItemStackHandler();
|
||||
|
||||
ItemStackHandler handler;
|
||||
boolean working;
|
||||
boolean valid;
|
||||
private TileEntity te;
|
||||
|
||||
public static boolean canUseAsStorage(TileEntity te) {
|
||||
if (te == null)
|
||||
return false;
|
||||
|
||||
if (AllTileEntities.ADJUSTABLE_CRATE.is(te))
|
||||
return true;
|
||||
if (AllTileEntities.CREATIVE_CRATE.is(te))
|
||||
return true;
|
||||
if (te instanceof ShulkerBoxTileEntity)
|
||||
return true;
|
||||
if (te instanceof ChestTileEntity)
|
||||
return true;
|
||||
if (te instanceof BarrelTileEntity)
|
||||
return true;
|
||||
|
||||
LazyOptional<IItemHandler> capability = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
|
||||
return capability.orElse(null) instanceof ItemStackHandler;
|
||||
}
|
||||
|
||||
public MountedStorage(TileEntity te) {
|
||||
this.te = te;
|
||||
handler = dummyHandler;
|
||||
}
|
||||
|
||||
public void empty() {
|
||||
working = false;
|
||||
public void removeStorageFromWorld() {
|
||||
valid = false;
|
||||
if (te == null)
|
||||
return;
|
||||
|
||||
|
@ -64,7 +86,7 @@ public class MountedStorage {
|
|||
// te uses ItemStackHandler
|
||||
if (teHandler instanceof ItemStackHandler) {
|
||||
handler = (ItemStackHandler) teHandler;
|
||||
working = true;
|
||||
valid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -76,27 +98,25 @@ public class MountedStorage {
|
|||
handler.setStackInSlot(slot, inv.getStackInSlot(slot));
|
||||
inv.setStackInSlot(slot, ItemStack.EMPTY);
|
||||
}
|
||||
working = true;
|
||||
valid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public MountedStorage(CompoundNBT nbt) {
|
||||
handler = new ItemStackHandler();
|
||||
working = nbt != null;
|
||||
if (working)
|
||||
handler.deserializeNBT(nbt);
|
||||
}
|
||||
public void addStorageToWorld(TileEntity te) {
|
||||
// FIXME: More dynamic mounted storage in .4
|
||||
if (handler instanceof BottomlessItemHandler)
|
||||
return;
|
||||
|
||||
public void fill(TileEntity te) {
|
||||
IItemHandler teHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||
.orElse(dummyHandler);
|
||||
if (teHandler != dummyHandler && teHandler instanceof IItemHandlerModifiable) {
|
||||
IItemHandlerModifiable inv = (IItemHandlerModifiable) teHandler;
|
||||
for (int slot = 0; slot < Math.min(inv.getSlots(), handler.getSlots()); slot++)
|
||||
inv.setStackInSlot(slot, handler.getStackInSlot(slot));
|
||||
}
|
||||
LazyOptional<IItemHandler> capability = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
|
||||
IItemHandler teHandler = capability.orElse(null);
|
||||
if (!(teHandler instanceof IItemHandlerModifiable))
|
||||
return;
|
||||
|
||||
IItemHandlerModifiable inv = (IItemHandlerModifiable) teHandler;
|
||||
for (int slot = 0; slot < Math.min(inv.getSlots(), handler.getSlots()); slot++)
|
||||
inv.setStackInSlot(slot, handler.getStackInSlot(slot));
|
||||
}
|
||||
|
||||
public IItemHandlerModifiable getItemHandler() {
|
||||
|
@ -104,28 +124,38 @@ public class MountedStorage {
|
|||
}
|
||||
|
||||
public CompoundNBT serialize() {
|
||||
return working ? handler.serializeNBT() : null;
|
||||
if (!valid)
|
||||
return null;
|
||||
CompoundNBT tag = handler.serializeNBT();
|
||||
|
||||
if (handler instanceof BottomlessItemHandler) {
|
||||
NBTHelper.putMarker(tag, "Bottomless");
|
||||
tag.put("ProvidedStack", handler.getStackInSlot(0)
|
||||
.serializeNBT());
|
||||
}
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
public boolean isWorking() {
|
||||
return working;
|
||||
public static MountedStorage deserialize(CompoundNBT nbt) {
|
||||
MountedStorage storage = new MountedStorage(null);
|
||||
storage.handler = new ItemStackHandler();
|
||||
if (nbt == null)
|
||||
return storage;
|
||||
storage.valid = true;
|
||||
|
||||
if (nbt.contains("Bottomless")) {
|
||||
ItemStack providedStack = ItemStack.read(nbt.getCompound("ProvidedStack"));
|
||||
storage.handler = new BottomlessItemHandler(() -> providedStack);
|
||||
return storage;
|
||||
}
|
||||
|
||||
storage.handler.deserializeNBT(nbt);
|
||||
return storage;
|
||||
}
|
||||
|
||||
public static boolean canUseAsStorage(TileEntity te) {
|
||||
if (te == null)
|
||||
return false;
|
||||
if (AllTileEntities.ADJUSTABLE_CRATE.is(te))
|
||||
return true;
|
||||
if (te instanceof ShulkerBoxTileEntity)
|
||||
return true;
|
||||
if (te instanceof ChestTileEntity)
|
||||
return true;
|
||||
if (te instanceof BarrelTileEntity)
|
||||
return true;
|
||||
LazyOptional<IItemHandler> capability = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
|
||||
if (capability.isPresent() && capability.orElse(null) instanceof ItemStackHandler)
|
||||
return true;
|
||||
return false;
|
||||
public boolean isValid() {
|
||||
return valid;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -519,28 +519,28 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEnt
|
|||
}
|
||||
|
||||
public static boolean canAccessFromSide(Direction facing, BlockState belt) {
|
||||
if (facing == null)
|
||||
return true;
|
||||
if (!belt.get(BeltBlock.CASING))
|
||||
return false;
|
||||
BeltPart part = belt.get(BeltBlock.PART);
|
||||
if (part != BeltPart.MIDDLE && facing.getAxis() == belt.get(HORIZONTAL_FACING)
|
||||
.rotateY()
|
||||
.getAxis())
|
||||
return false;
|
||||
|
||||
BeltSlope slope = belt.get(BeltBlock.SLOPE);
|
||||
if (slope != BeltSlope.HORIZONTAL) {
|
||||
if (slope == BeltSlope.DOWNWARD && part == BeltPart.END)
|
||||
return true;
|
||||
if (slope == BeltSlope.UPWARD && part == BeltPart.START)
|
||||
return true;
|
||||
Direction beltSide = belt.get(HORIZONTAL_FACING);
|
||||
if (slope == BeltSlope.DOWNWARD)
|
||||
beltSide = beltSide.getOpposite();
|
||||
if (beltSide == facing)
|
||||
return false;
|
||||
}
|
||||
// if (facing == null)
|
||||
// return true;
|
||||
// if (!belt.get(BeltBlock.CASING))
|
||||
// return false;
|
||||
// BeltPart part = belt.get(BeltBlock.PART);
|
||||
// if (part != BeltPart.MIDDLE && facing.getAxis() == belt.get(HORIZONTAL_FACING)
|
||||
// .rotateY()
|
||||
// .getAxis())
|
||||
// return false;
|
||||
//
|
||||
// BeltSlope slope = belt.get(BeltBlock.SLOPE);
|
||||
// if (slope != BeltSlope.HORIZONTAL) {
|
||||
// if (slope == BeltSlope.DOWNWARD && part == BeltPart.END)
|
||||
// return true;
|
||||
// if (slope == BeltSlope.UPWARD && part == BeltPart.START)
|
||||
// return true;
|
||||
// Direction beltSide = belt.get(HORIZONTAL_FACING);
|
||||
// if (slope == BeltSlope.DOWNWARD)
|
||||
// beltSide = beltSide.getOpposite();
|
||||
// if (beltSide == facing)
|
||||
// return false;
|
||||
// }
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ public class AndesiteBeltFunnelBlock extends BeltFunnelBlock {
|
|||
|
||||
@Override
|
||||
public boolean hasPoweredProperty() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ public class AndesiteFunnelBlock extends FunnelBlock {
|
|||
public BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state) {
|
||||
Direction facing = state.get(FACING);
|
||||
return AllBlocks.ANDESITE_BELT_FUNNEL.getDefaultState()
|
||||
.with(BeltFunnelBlock.HORIZONTAL_FACING, facing);
|
||||
.with(BeltFunnelBlock.HORIZONTAL_FACING, facing)
|
||||
.with(POWERED, state.get(POWERED));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,14 +6,18 @@ import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
|
|||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
|
||||
public class BeltFunnelGenerator extends SpecialBlockStateGen {
|
||||
|
||||
private String type;
|
||||
private ResourceLocation materialBlockTexture;
|
||||
|
||||
public BeltFunnelGenerator(String type) {
|
||||
public BeltFunnelGenerator(String type, ResourceLocation materialBlockTexture) {
|
||||
this.type = type;
|
||||
this.materialBlockTexture = materialBlockTexture;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -30,18 +34,23 @@ public class BeltFunnelGenerator extends SpecialBlockStateGen {
|
|||
public <T extends Block> ModelFile getModel(DataGenContext<Block, T> ctx, RegistrateBlockstateProvider prov,
|
||||
BlockState state) {
|
||||
boolean pushing = state.get(BeltFunnelBlock.PUSHING);
|
||||
boolean powered = state.has(BeltFunnelBlock.POWERED) && state.get(BeltFunnelBlock.POWERED);
|
||||
boolean powered = state.has(BlockStateProperties.POWERED) && state.get(BeltFunnelBlock.POWERED);
|
||||
String shapeName = state.get(BeltFunnelBlock.SHAPE)
|
||||
.getName();
|
||||
String suffix = (pushing ? "push" : "pull") + (powered ? "_powered" : "");
|
||||
String name = ctx.getName() + "_" + suffix;
|
||||
String textureName = type + "_funnel_" + suffix;
|
||||
|
||||
String pushingSuffix = (pushing ? "push" : "pull") ;
|
||||
String poweredSuffix = powered ? "_powered" : "";
|
||||
String name = ctx.getName() + "_" + pushingSuffix + poweredSuffix;
|
||||
String textureName = type + "_funnel_" + pushingSuffix;
|
||||
|
||||
return prov.models()
|
||||
.withExistingParent(name + "_" + shapeName, prov.modLoc("block/belt_funnel/block_" + shapeName))
|
||||
.texture("particle", prov.modLoc("block/" + type + "_casing"))
|
||||
.texture("particle", materialBlockTexture)
|
||||
.texture("2", prov.modLoc("block/" + textureName))
|
||||
.texture("3", prov.modLoc("block/" + type + "_funnel_back"))
|
||||
.texture("4", prov.modLoc("block/" + type + "_funnel_plating"));
|
||||
.texture("5", prov.modLoc("block/" + type + "_funnel_tall" + poweredSuffix))
|
||||
.texture("6", prov.modLoc("block/" + type + "_funnel" + poweredSuffix))
|
||||
.texture("7", prov.modLoc("block/" + type + "_funnel_plating"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,50 +2,15 @@ package com.simibubi.create.content.logistics.block.funnel;
|
|||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.item.BlockItemUseContext;
|
||||
import net.minecraft.state.BooleanProperty;
|
||||
import net.minecraft.state.StateContainer.Builder;
|
||||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BrassFunnelBlock extends FunnelBlock {
|
||||
|
||||
public static final BooleanProperty POWERED = BlockStateProperties.POWERED;
|
||||
|
||||
public BrassFunnelBlock(Properties p_i48415_1_) {
|
||||
super(p_i48415_1_);
|
||||
setDefaultState(getDefaultState().with(POWERED, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockItemUseContext context) {
|
||||
return super.getStateForPlacement(context).with(POWERED, context.getWorld()
|
||||
.isBlockPowered(context.getPos()));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canInsertIntoFunnel(BlockState state) {
|
||||
return super.canInsertIntoFunnel(state) && !state.get(POWERED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void fillStateContainer(Builder<Block, BlockState> builder) {
|
||||
super.fillStateContainer(builder.add(POWERED));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos,
|
||||
boolean isMoving) {
|
||||
if (worldIn.isRemote)
|
||||
return;
|
||||
boolean previouslyPowered = state.get(POWERED);
|
||||
if (previouslyPowered != worldIn.isBlockPowered(pos))
|
||||
worldIn.setBlockState(pos, state.cycle(POWERED), 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,7 +5,6 @@ import javax.annotation.Nullable;
|
|||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.content.logistics.block.chute.ChuteBlock;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.block.ProperDirectionalBlock;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
|
@ -20,6 +19,8 @@ import net.minecraft.entity.item.ItemEntity;
|
|||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.BlockItemUseContext;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.state.BooleanProperty;
|
||||
import net.minecraft.state.StateContainer.Builder;
|
||||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
|
@ -38,24 +39,35 @@ import net.minecraft.world.World;
|
|||
|
||||
public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE<FunnelTileEntity> {
|
||||
|
||||
public static final BooleanProperty POWERED = BlockStateProperties.POWERED;
|
||||
|
||||
public FunnelBlock(Properties p_i48415_1_) {
|
||||
super(p_i48415_1_);
|
||||
setDefaultState(getDefaultState().with(POWERED, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockItemUseContext context) {
|
||||
Direction facing = context.getFace();
|
||||
if (facing.getAxis()
|
||||
.isVertical()
|
||||
&& context.getWorld()
|
||||
.getBlockState(context.getPos()
|
||||
.offset(facing.getOpposite()))
|
||||
.getBlock() instanceof ChuteBlock)
|
||||
facing = facing.getOpposite();
|
||||
return getDefaultState().with(FACING, facing);
|
||||
|
||||
return getDefaultState().with(FACING, facing).with(POWERED, context.getWorld()
|
||||
.isBlockPowered(context.getPos()));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void fillStateContainer(Builder<Block, BlockState> builder) {
|
||||
super.fillStateContainer(builder.add(POWERED));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos,
|
||||
boolean isMoving) {
|
||||
if (worldIn.isRemote)
|
||||
return;
|
||||
boolean previouslyPowered = state.get(POWERED);
|
||||
if (previouslyPowered != worldIn.isBlockPowered(pos))
|
||||
worldIn.setBlockState(pos, state.cycle(POWERED), 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn,
|
||||
BlockRayTraceResult hit) {
|
||||
|
@ -183,7 +195,7 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE<
|
|||
}
|
||||
|
||||
protected boolean canInsertIntoFunnel(BlockState state) {
|
||||
return true;
|
||||
return !state.get(POWERED);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -19,21 +19,44 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided {
|
|||
|
||||
@Override
|
||||
protected Vec3d getLocalOffset(BlockState state) {
|
||||
Direction side = getSide();
|
||||
float horizontalAngle = AngleHelper.horizontalAngle(side);
|
||||
Direction funnelFacing = FunnelBlock.getFunnelFacing(state);
|
||||
float stateAngle = AngleHelper.horizontalAngle(funnelFacing);
|
||||
|
||||
if (AllBlocks.BRASS_BELT_FUNNEL.has(state))
|
||||
if (state.get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED)
|
||||
return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 13, 7.5f),
|
||||
AngleHelper.horizontalAngle(getSide()), Axis.Y);
|
||||
return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 13, 7.5f), horizontalAngle, Axis.Y);
|
||||
else
|
||||
return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 15.5f, 13), stateAngle, Axis.Y);
|
||||
|
||||
Vec3d localOffset =
|
||||
getSide() == Direction.UP ? VecHelper.voxelSpace(8, 14.5f, 8) : VecHelper.voxelSpace(8, 1.5f, 8);
|
||||
|
||||
if (getSide().getAxis()
|
||||
if (!funnelFacing.getAxis()
|
||||
.isHorizontal()) {
|
||||
Vec3d southLocation = VecHelper.voxelSpace(8, 8, 14.5f);
|
||||
localOffset = VecHelper.rotateCentered(southLocation, AngleHelper.horizontalAngle(getSide()), Axis.Y);
|
||||
Vec3d southLocation = VecHelper.voxelSpace(8, 13, 15.5f);
|
||||
return VecHelper.rotateCentered(southLocation, horizontalAngle, Axis.Y);
|
||||
}
|
||||
|
||||
return localOffset;
|
||||
Direction verticalDirection = DirectionHelper.rotateAround(getSide(), funnelFacing.rotateY()
|
||||
.getAxis());
|
||||
if (funnelFacing.getAxis() == Axis.Z)
|
||||
verticalDirection = verticalDirection.getOpposite();
|
||||
boolean reverse = state.getBlock() instanceof HorizontalInteractionFunnelBlock
|
||||
&& !state.get(HorizontalInteractionFunnelBlock.PUSHING);
|
||||
float yRot = -AngleHelper.horizontalAngle(verticalDirection) + 180;
|
||||
float xRot = -90;
|
||||
boolean alongX = funnelFacing.getAxis() == Axis.X;
|
||||
float zRotLast = alongX ^ funnelFacing.getAxisDirection() == AxisDirection.POSITIVE ? 180 : 0;
|
||||
if (reverse)
|
||||
zRotLast += 180;
|
||||
|
||||
Vec3d vec = VecHelper.voxelSpace(8, 13, .5f);
|
||||
vec = vec.subtract(.5, .5, .5);
|
||||
vec = VecHelper.rotate(vec, zRotLast, Axis.Z);
|
||||
vec = VecHelper.rotate(vec, yRot, Axis.Y);
|
||||
vec = VecHelper.rotate(vec, alongX ? 0 : xRot, Axis.X);
|
||||
vec = VecHelper.rotate(vec, alongX ? xRot : 0, Axis.Z);
|
||||
vec = vec.add(.5, .5, .5);
|
||||
return vec;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -78,7 +101,7 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided {
|
|||
|
||||
if (AllBlocks.BRASS_BELT_FUNNEL.has(state))
|
||||
return state.get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED ? direction == facing
|
||||
: direction != Direction.DOWN && direction.getAxis() != facing.getAxis();
|
||||
: direction == Direction.UP;
|
||||
|
||||
return direction.getAxis() != facing.getAxis();
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
flap.tick();
|
||||
Mode mode = determineCurrentMode();
|
||||
if (mode == Mode.BELT)
|
||||
tickAsBeltFunnel();
|
||||
|
@ -65,7 +66,6 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
public void tickAsBeltFunnel() {
|
||||
BlockState blockState = getBlockState();
|
||||
Direction facing = blockState.get(BeltFunnelBlock.HORIZONTAL_FACING);
|
||||
flap.tick();
|
||||
if (world.isRemote)
|
||||
return;
|
||||
|
||||
|
@ -134,13 +134,17 @@ public class FunnelTileEntity extends SmartTileEntity {
|
|||
|
||||
private boolean supportsDirectBeltInput(Direction side) {
|
||||
BlockState blockState = getBlockState();
|
||||
return blockState != null && blockState.getBlock() instanceof FunnelBlock
|
||||
&& blockState.get(FunnelBlock.FACING) == Direction.UP;
|
||||
if (blockState == null)
|
||||
return false;
|
||||
if (!(blockState.getBlock() instanceof FunnelBlock))
|
||||
return false;
|
||||
Direction direction = blockState.get(FunnelBlock.FACING);
|
||||
return direction == Direction.UP || direction == side.getOpposite();
|
||||
}
|
||||
|
||||
private boolean supportsFiltering() {
|
||||
BlockState blockState = getBlockState();
|
||||
return blockState != null && blockState.has(BlockStateProperties.POWERED);
|
||||
return AllBlocks.BRASS_BELT_FUNNEL.has(blockState) || AllBlocks.BRASS_FUNNEL.has(blockState);
|
||||
}
|
||||
|
||||
private ItemStack handleDirectBeltInput(TransportedItemStack stack, Direction side, boolean simulate) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.simibubi.create.content.logistics.block.inventories;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import mcp.MethodsReturnNonnullByDefault;
|
||||
|
@ -10,12 +11,12 @@ import net.minecraftforge.items.ItemStackHandler;
|
|||
|
||||
@MethodsReturnNonnullByDefault
|
||||
@ParametersAreNonnullByDefault
|
||||
public class CreativeCrateInventory extends ItemStackHandler {
|
||||
public class BottomlessItemHandler extends ItemStackHandler {
|
||||
|
||||
private final CreativeCrateTileEntity te;
|
||||
private Supplier<ItemStack> suppliedItemStack;
|
||||
|
||||
public CreativeCrateInventory(@Nullable CreativeCrateTileEntity te) {
|
||||
this.te = te;
|
||||
public BottomlessItemHandler(Supplier<ItemStack> suppliedItemStack) {
|
||||
this.suppliedItemStack = suppliedItemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,7 +26,7 @@ public class CreativeCrateInventory extends ItemStackHandler {
|
|||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int slot) {
|
||||
ItemStack stack = getProvidedItem();
|
||||
ItemStack stack = suppliedItemStack.get();
|
||||
if (slot == 1)
|
||||
return ItemStack.EMPTY;
|
||||
if (stack == null)
|
||||
|
@ -42,7 +43,7 @@ public class CreativeCrateInventory extends ItemStackHandler {
|
|||
|
||||
@Override
|
||||
public ItemStack extractItem(int slot, int amount, boolean simulate) {
|
||||
ItemStack stack = getProvidedItem();
|
||||
ItemStack stack = suppliedItemStack.get();
|
||||
if (slot == 1)
|
||||
return ItemStack.EMPTY;
|
||||
if (stack == null)
|
||||
|
@ -56,11 +57,4 @@ public class CreativeCrateInventory extends ItemStackHandler {
|
|||
public boolean isItemValid(int slot, ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ItemStack getProvidedItem() {
|
||||
if (te != null)
|
||||
return te.filter.getFilter();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
|
@ -24,20 +24,18 @@ public class CreativeCrateTileEntity extends CrateTileEntity {
|
|||
|
||||
public CreativeCrateTileEntity(TileEntityType<? extends CreativeCrateTileEntity> type) {
|
||||
super(type);
|
||||
inv = new CreativeCrateInventory(this);
|
||||
inv = new BottomlessItemHandler(filtering::getFilter);
|
||||
itemHandler = LazyOptional.of(() -> inv);
|
||||
}
|
||||
|
||||
FilteringBehaviour filter;
|
||||
FilteringBehaviour filtering;
|
||||
LazyOptional<IItemHandler> itemHandler;
|
||||
private CreativeCrateInventory inv;
|
||||
private BottomlessItemHandler inv;
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<TileEntityBehaviour> behaviours) {
|
||||
filter = createFilter();
|
||||
filter.onlyActiveWhen(this::filterVisible);
|
||||
filter.withCallback(this::filterChanged);
|
||||
behaviours.add(filter);
|
||||
behaviours.add(filtering = createFilter().onlyActiveWhen(this::filterVisible)
|
||||
.withCallback(this::filterChanged));
|
||||
}
|
||||
|
||||
private boolean filterVisible() {
|
||||
|
@ -52,13 +50,14 @@ public class CreativeCrateTileEntity extends CrateTileEntity {
|
|||
CreativeCrateTileEntity otherCrate = getOtherCrate();
|
||||
if (otherCrate == null)
|
||||
return;
|
||||
if (ItemStack.areItemsEqual(filter, otherCrate.filter.getFilter()))
|
||||
if (ItemStack.areItemsEqual(filter, otherCrate.filtering.getFilter()))
|
||||
return;
|
||||
otherCrate.filter.setFilter(filter);
|
||||
otherCrate.filtering.setFilter(filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
super.remove();
|
||||
if (itemHandler != null)
|
||||
itemHandler.invalidate();
|
||||
}
|
||||
|
@ -79,10 +78,10 @@ public class CreativeCrateTileEntity extends CrateTileEntity {
|
|||
if (otherCrate == null)
|
||||
return;
|
||||
|
||||
filter.withCallback($ -> {
|
||||
filtering.withCallback($ -> {
|
||||
});
|
||||
filter.setFilter(otherCrate.filter.getFilter());
|
||||
filter.withCallback(this::filterChanged);
|
||||
filtering.setFilter(otherCrate.filtering.getFilter());
|
||||
filtering.withCallback(this::filterChanged);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -61,20 +61,20 @@ public class BuilderTransformers {
|
|||
s.has(BlockStateProperties.POWERED) && s.get(BlockStateProperties.POWERED) ? "_powered" : "";
|
||||
return p.models()
|
||||
.withExistingParent("block/" + type + "_funnel" + powered, p.modLoc("block/funnel/block"))
|
||||
.texture("2", p.modLoc("block/" + type + "_funnel_back"))
|
||||
.texture("3", p.modLoc("block/" + type + "_funnel" + powered))
|
||||
.texture("4", p.modLoc("block/" + type + "_funnel_plating"))
|
||||
.texture("particle", particleTexture);
|
||||
.texture("0", p.modLoc("block/" + type + "_funnel_plating"))
|
||||
.texture("1", particleTexture)
|
||||
.texture("2", p.modLoc("block/" + type + "_funnel" + powered))
|
||||
.texture("3", p.modLoc("block/" + type + "_funnel_back"));
|
||||
};
|
||||
p.directionalBlock(c.get(), model);
|
||||
})
|
||||
.item(FunnelItem::new)
|
||||
.model((c, p) -> {
|
||||
p.withExistingParent("item/" + type + "_funnel", p.modLoc("block/funnel/item"))
|
||||
.texture("2", p.modLoc("block/" + type + "_funnel_back"))
|
||||
.texture("3", p.modLoc("block/" + type + "_funnel"))
|
||||
.texture("4", p.modLoc("block/" + type + "_funnel_plating"))
|
||||
.texture("particle", particleTexture);
|
||||
.texture("0", p.modLoc("block/" + type + "_funnel_plating"))
|
||||
.texture("1", particleTexture)
|
||||
.texture("2", p.modLoc("block/" + type + "_funnel"))
|
||||
.texture("3", p.modLoc("block/" + type + "_funnel_back"));
|
||||
})
|
||||
.build();
|
||||
};
|
||||
|
|
|
@ -13,6 +13,10 @@ import net.minecraft.util.math.AxisAlignedBB;
|
|||
|
||||
public class NBTHelper {
|
||||
|
||||
public static void putMarker(CompoundNBT nbt, String marker) {
|
||||
nbt.putBoolean(marker, true);
|
||||
}
|
||||
|
||||
public static <T extends Enum<?>> T readEnum(CompoundNBT nbt, String key, Class<T> enumClass) {
|
||||
T[] enumConstants = enumClass.getEnumConstants();
|
||||
String name = nbt.getString(key);
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
"textures": {
|
||||
"2": "create:block/brass_funnel_push",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"5": "create:block/brass_funnel_tall",
|
||||
"6": "create:block/brass_funnel",
|
||||
"7": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_block"
|
||||
},
|
||||
"elements": [
|
||||
|
@ -14,9 +16,9 @@
|
|||
"to": [16, 0, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 13.5, 9, 15], "texture": "#4"},
|
||||
"north": {"uv": [0, 8, 1, 9.5], "texture": "#7"},
|
||||
"east": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [15, 13.5, 16, 15], "texture": "#4"},
|
||||
"south": {"uv": [15, 8, 16, 9.5], "texture": "#7"},
|
||||
"west": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
|
@ -26,9 +28,9 @@
|
|||
"to": [2, 0, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 13.5, 16, 15], "texture": "#4"},
|
||||
"north": {"uv": [7, 8, 8, 9.5], "texture": "#7"},
|
||||
"east": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [16, 13.5, 15, 15], "texture": "#4"},
|
||||
"south": {"uv": [8, 7.5, 9, 9], "texture": "#7"},
|
||||
"west": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
|
@ -38,9 +40,9 @@
|
|||
"to": [16, 16, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 5.5, 9, 13.5], "texture": "#4"},
|
||||
"north": {"uv": [0, 0, 1, 8], "texture": "#7"},
|
||||
"east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [15, 5.5, 16, 13.5], "texture": "#4"},
|
||||
"south": {"uv": [15, 0, 16, 8], "texture": "#7"},
|
||||
"west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [14, 0, 16, 6], "texture": "#2"}
|
||||
}
|
||||
|
@ -51,9 +53,9 @@
|
|||
"to": [2, 16, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 5.5, 16, 13.5], "texture": "#4"},
|
||||
"north": {"uv": [7, 0, 8, 8], "texture": "#7"},
|
||||
"east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [16, 5.5, 15, 13.5], "texture": "#4"},
|
||||
"south": {"uv": [8, 0, 9, 8], "texture": "#7"},
|
||||
"west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [16, 0, 14, 6], "texture": "#2"}
|
||||
}
|
||||
|
@ -64,10 +66,10 @@
|
|||
"to": [14, 16, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 5.5, 15, 8.5], "texture": "#4"},
|
||||
"south": {"uv": [9, 5.5, 15, 8.5], "texture": "#4"},
|
||||
"up": {"uv": [2, 0, 14, 6], "texture": "#2"},
|
||||
"down": {"uv": [2, 0, 14, 6], "texture": "#particle"}
|
||||
"north": {"uv": [1, 0, 7, 3], "texture": "#7"},
|
||||
"south": {"uv": [9, 0, 15, 3], "texture": "#7"},
|
||||
"up": {"uv": [1, 0, 7, 3], "texture": "#7"},
|
||||
"down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -76,9 +78,9 @@
|
|||
"to": [16, -3, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 15, 8.5, 16], "texture": "#4"},
|
||||
"east": {"uv": [5, 15, 8, 16], "texture": "#4"},
|
||||
"west": {"uv": [5, 15, 8, 16], "texture": "#4"}
|
||||
"north": {"uv": [0, 9.5, 0.5, 10.5], "texture": "#7"},
|
||||
"east": {"uv": [5, 15, 8, 16], "texture": "#7"},
|
||||
"west": {"uv": [5, 15, 8, 16], "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -87,60 +89,61 @@
|
|||
"to": [1, -3, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.5, 15, 16, 16], "texture": "#4"},
|
||||
"east": {"uv": [8, 15, 5, 16], "texture": "#4"},
|
||||
"west": {"uv": [8, 15, 5, 16], "texture": "#4"}
|
||||
"north": {"uv": [7.5, 9.5, 8, 10.5], "texture": "#7"},
|
||||
"east": {"uv": [8, 15, 5, 16], "texture": "#7"},
|
||||
"west": {"uv": [8, 15, 5, 16], "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackExtension",
|
||||
"from": [2, -2, 10],
|
||||
"to": [14, 14, 14],
|
||||
"from": [3, -2, 10],
|
||||
"to": [13, 13, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"east": {"uv": [9, 8, 11, 16], "texture": "#3"},
|
||||
"east": {"uv": [9, 6, 16, 8], "rotation": 90, "texture": "#3"},
|
||||
"south": {"uv": [0, 0.5, 8, 6.5], "rotation": 90, "texture": "#3"},
|
||||
"west": {"uv": [9, 8, 11, 16], "texture": "#3"},
|
||||
"up": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#3"}
|
||||
"west": {"uv": [9, 6, 16, 8], "rotation": 270, "texture": "#3"},
|
||||
"up": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MidExtension",
|
||||
"from": [1, -2, 6],
|
||||
"to": [15, 15, 10],
|
||||
"from": [2, -2, 6],
|
||||
"to": [14, 14, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.5, 7, 16], "texture": "#3"},
|
||||
"east": {"uv": [7, 7.5, 9, 16], "rotation": 180, "texture": "#3"},
|
||||
"south": {"uv": [0, 0, 8.5, 7], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [7, 7.5, 9, 16], "rotation": 180, "texture": "#3"},
|
||||
"up": {"uv": [11, 9, 13, 16], "rotation": 270, "texture": "#3"}
|
||||
"north": {"uv": [0, 6, 6, 14], "texture": "#3"},
|
||||
"east": {"uv": [1, 6, 9, 8], "rotation": 90, "texture": "#3"},
|
||||
"south": {"uv": [8, 0, 16, 6], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [1, 8, 9, 6], "rotation": 90, "texture": "#3"},
|
||||
"up": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackBottom",
|
||||
"from": [3.9, -3, 16],
|
||||
"to": [12.1, 7, 26],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, -5, 17]},
|
||||
"from": [3.9, -2, 18],
|
||||
"to": [12.1, 2, 26],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 17]},
|
||||
"faces": {
|
||||
"east": {"uv": [9.5, 11, 14.5, 16], "rotation": 270, "texture": "#4"},
|
||||
"south": {"uv": [1.5, 10, 6.5, 14], "rotation": 90, "texture": "#4"},
|
||||
"west": {"uv": [9.5, 11, 14.5, 16], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [2.5, 10, 7.5, 14], "rotation": 270, "texture": "#4"},
|
||||
"down": {"uv": [0, 10, 5, 14], "rotation": 270, "texture": "#4"}
|
||||
"east": {"uv": [12, 12, 14, 16], "rotation": 270, "texture": "#7"},
|
||||
"south": {"uv": [8, 13, 12, 15], "rotation": 180, "texture": "#7"},
|
||||
"west": {"uv": [12, 12, 14, 16], "rotation": 270, "texture": "#7"},
|
||||
"up": {"uv": [8, 12, 12, 16], "rotation": 180, "texture": "#7"},
|
||||
"down": {"uv": [8, 12, 12, 16], "rotation": 180, "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [2.9, -4.1, 14],
|
||||
"to": [13.1, 13.1, 17],
|
||||
"from": [2.1, -2.1, 14],
|
||||
"to": [13.9, 13.9, 17.9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"east": {"uv": [5, 0, 6.5, 8.5], "texture": "#4"},
|
||||
"south": {"uv": [0, 0, 5, 8.5], "texture": "#4"},
|
||||
"west": {"uv": [5, 0, 6.5, 8.5], "texture": "#4"},
|
||||
"up": {"uv": [0, 8.5, 5, 10], "texture": "#4"},
|
||||
"down": {"uv": [0, 8.5, 5, 10], "texture": "#4"}
|
||||
"north": {"uv": [0, 4, 16, 16], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 0, 16, 4], "rotation": 90, "texture": "#5"},
|
||||
"south": {"uv": [9, 1, 15, 9], "texture": "#7"},
|
||||
"west": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#5"},
|
||||
"up": {"uv": [0, 0, 12, 4], "texture": "#6"},
|
||||
"down": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -150,7 +153,7 @@
|
|||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 13, 15, 16], "texture": "#particle"},
|
||||
"south": {"uv": [0.5, 14.5, 7.5, 16], "texture": "#4"},
|
||||
"south": {"uv": [0.5, 13, 7.5, 14.5], "texture": "#7"},
|
||||
"up": {"uv": [1, 5, 15, 16], "texture": "#particle"}
|
||||
}
|
||||
},
|
||||
|
@ -160,9 +163,9 @@
|
|||
"to": [16, -2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"east": {"uv": [0, 14.5, 5, 16], "texture": "#4"},
|
||||
"south": {"uv": [7.5, 14.5, 8, 16], "texture": "#4"},
|
||||
"up": {"uv": [0, 14.5, 5.5, 15], "rotation": 270, "texture": "#4"}
|
||||
"east": {"uv": [0, 14.5, 5, 16], "texture": "#7"},
|
||||
"south": {"uv": [7.5, 14.5, 8, 16], "texture": "#7"},
|
||||
"up": {"uv": [0, 14.5, 5.5, 15], "rotation": 270, "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -171,49 +174,12 @@
|
|||
"to": [1, -2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"south": {"uv": [0, 14.5, 0.5, 16], "texture": "#4"},
|
||||
"west": {"uv": [5, 14.5, 0, 16], "texture": "#4"},
|
||||
"up": {"uv": [0, 15, 5.5, 14.5], "rotation": 270, "texture": "#4"}
|
||||
"south": {"uv": [0, 14.5, 0.5, 16], "texture": "#7"},
|
||||
"west": {"uv": [5, 14.5, 0, 16], "texture": "#7"},
|
||||
"up": {"uv": [0, 15, 5.5, 14.5], "rotation": 270, "texture": "#7"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3.25, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0, 1, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 90, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "BeltFunnel",
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
"textures": {
|
||||
"2": "create:block/brass_funnel_push",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"5": "create:block/brass_funnel_tall",
|
||||
"6": "create:block/brass_funnel",
|
||||
"7": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_block"
|
||||
},
|
||||
"elements": [
|
||||
|
@ -14,9 +16,9 @@
|
|||
"to": [16, 0, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 13.5, 9, 15], "texture": "#4"},
|
||||
"north": {"uv": [0, 8, 1, 9.5], "texture": "#7"},
|
||||
"east": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [15, 13.5, 16, 15], "texture": "#4"},
|
||||
"south": {"uv": [15, 8, 16, 9.5], "texture": "#7"},
|
||||
"west": {"uv": [13, 0, 16, 6], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
|
@ -26,9 +28,9 @@
|
|||
"to": [2, 0, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 13.5, 16, 15], "texture": "#4"},
|
||||
"north": {"uv": [7, 8, 8, 9.5], "texture": "#7"},
|
||||
"east": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [16, 13.5, 15, 15], "texture": "#4"},
|
||||
"south": {"uv": [8, 7.5, 9, 9], "texture": "#7"},
|
||||
"west": {"uv": [13, 6, 16, 0], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
|
@ -38,9 +40,9 @@
|
|||
"to": [16, 16, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 5.5, 9, 13.5], "texture": "#4"},
|
||||
"north": {"uv": [0, 0, 1, 8], "texture": "#7"},
|
||||
"east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [15, 5.5, 16, 13.5], "texture": "#4"},
|
||||
"south": {"uv": [15, 0, 16, 8], "texture": "#7"},
|
||||
"west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [14, 0, 16, 6], "texture": "#2"}
|
||||
}
|
||||
|
@ -51,9 +53,9 @@
|
|||
"to": [2, 16, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 5.5, 16, 13.5], "texture": "#4"},
|
||||
"north": {"uv": [7, 0, 8, 8], "texture": "#7"},
|
||||
"east": {"uv": [0, 6, 16, 12], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [16, 5.5, 15, 13.5], "texture": "#4"},
|
||||
"south": {"uv": [8, 0, 9, 8], "texture": "#7"},
|
||||
"west": {"uv": [0, 12, 16, 6], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [16, 0, 14, 6], "texture": "#2"}
|
||||
}
|
||||
|
@ -64,10 +66,20 @@
|
|||
"to": [14, 16, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 5.5, 15, 8.5], "texture": "#4"},
|
||||
"south": {"uv": [9, 5.5, 15, 8.5], "texture": "#4"},
|
||||
"north": {"uv": [1, 0, 7, 3], "texture": "#7"},
|
||||
"south": {"uv": [9, 0, 15, 3], "texture": "#7"},
|
||||
"up": {"uv": [2, 0, 14, 6], "texture": "#2"},
|
||||
"down": {"uv": [2, 0, 14, 6], "texture": "#particle"}
|
||||
"down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [2, -2, 12],
|
||||
"to": [14, 10, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, -14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 6, 14], "texture": "#3"},
|
||||
"south": {"uv": [9, 3, 15, 9.5], "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -76,9 +88,9 @@
|
|||
"to": [16, -3, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 15, 8.5, 16], "texture": "#4"},
|
||||
"east": {"uv": [5, 15, 8, 16], "texture": "#4"},
|
||||
"west": {"uv": [5, 15, 8, 16], "texture": "#4"}
|
||||
"north": {"uv": [0, 9.5, 0.5, 10.5], "texture": "#7"},
|
||||
"east": {"uv": [5, 15, 8, 16], "texture": "#7"},
|
||||
"west": {"uv": [5, 15, 8, 16], "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -87,61 +99,35 @@
|
|||
"to": [1, -3, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.5, 15, 16, 16], "texture": "#4"},
|
||||
"east": {"uv": [8, 15, 5, 16], "texture": "#4"},
|
||||
"west": {"uv": [8, 15, 5, 16], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackExtension",
|
||||
"from": [2, -2, 12],
|
||||
"to": [14, 14, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [9, 8, 11, 16], "texture": "#3"},
|
||||
"south": {"uv": [0, 0.5, 8, 6.5], "rotation": 90, "texture": "#3"},
|
||||
"west": {"uv": [9, 8, 11, 16], "texture": "#3"},
|
||||
"up": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MidExtension",
|
||||
"from": [1, -2, 11],
|
||||
"to": [15, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.5, 7, 16], "texture": "#3"},
|
||||
"east": {"uv": [7, 7.5, 9, 16], "rotation": 180, "texture": "#3"},
|
||||
"south": {"uv": [0, 0, 8.5, 7], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [7, 7.5, 9, 16], "rotation": 180, "texture": "#3"},
|
||||
"up": {"uv": [11, 9, 13, 16], "rotation": 270, "texture": "#3"}
|
||||
"north": {"uv": [7.5, 9.5, 8, 10.5], "texture": "#7"},
|
||||
"east": {"uv": [8, 15, 5, 16], "texture": "#7"},
|
||||
"west": {"uv": [8, 15, 5, 16], "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackBottom",
|
||||
"from": [3.9, -5, 16],
|
||||
"to": [12.1, 5, 26],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, -5, 17]},
|
||||
"from": [3.9, -2, 18],
|
||||
"to": [12.1, 2, 26],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, -4, 17]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.5, 10, 6.5, 14], "rotation": 90, "texture": "#4"},
|
||||
"east": {"uv": [9.5, 11, 14.5, 16], "rotation": 270, "texture": "#4"},
|
||||
"south": {"uv": [1.5, 10, 6.5, 14], "rotation": 90, "texture": "#4"},
|
||||
"west": {"uv": [9.5, 11, 14.5, 16], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [2.5, 10, 7.5, 14], "rotation": 270, "texture": "#4"},
|
||||
"down": {"uv": [1, 10, 6, 14], "rotation": 270, "texture": "#4"}
|
||||
"east": {"uv": [12, 12, 14, 16], "rotation": 270, "texture": "#7"},
|
||||
"south": {"uv": [8, 13, 12, 15], "rotation": 180, "texture": "#7"},
|
||||
"west": {"uv": [12, 12, 14, 16], "rotation": 270, "texture": "#7"},
|
||||
"up": {"uv": [8, 12, 12, 16], "rotation": 180, "texture": "#7"},
|
||||
"down": {"uv": [8, 12, 12, 16], "rotation": 180, "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [2.9, -4.1, 16],
|
||||
"to": [13.1, 13.1, 19],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"from": [2.1, -2.1, 14],
|
||||
"to": [13.9, 13.9, 17.9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8.1, 6]},
|
||||
"faces": {
|
||||
"east": {"uv": [5, 0, 6.5, 8.5], "texture": "#4"},
|
||||
"south": {"uv": [0, 0, 5, 8.5], "texture": "#4"},
|
||||
"west": {"uv": [5, 0, 6.5, 8.5], "texture": "#4"},
|
||||
"up": {"uv": [0, 8.5, 5, 10], "texture": "#4"},
|
||||
"down": {"uv": [0, 8.5, 5, 10], "texture": "#4"}
|
||||
"east": {"uv": [0, 0, 16, 4], "rotation": 90, "texture": "#5"},
|
||||
"south": {"uv": [9, 1, 15, 9], "texture": "#7"},
|
||||
"west": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#5"},
|
||||
"up": {"uv": [0, 0, 12, 4], "texture": "#6"},
|
||||
"down": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -151,7 +137,7 @@
|
|||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 13, 15, 16], "texture": "#particle"},
|
||||
"south": {"uv": [0.5, 14.5, 7.5, 16], "texture": "#4"},
|
||||
"south": {"uv": [0.5, 13, 7.5, 14.5], "texture": "#7"},
|
||||
"up": {"uv": [1, 10, 15, 16], "texture": "#particle"}
|
||||
}
|
||||
},
|
||||
|
@ -159,62 +145,36 @@
|
|||
"name": "BackPlateLeft",
|
||||
"from": [15, -5, 14],
|
||||
"to": [16, -2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"east": {"uv": [0, 14.5, 1, 16], "texture": "#4"},
|
||||
"south": {"uv": [7.5, 14.5, 8, 16], "texture": "#4"},
|
||||
"up": {"uv": [0, 14.5, 1, 15], "rotation": 270, "texture": "#4"}
|
||||
"east": {"uv": [0, 14.5, 1, 16], "texture": "#7"},
|
||||
"south": {"uv": [7.5, 14.5, 8, 16], "texture": "#7"},
|
||||
"up": {"uv": [0, 14.5, 5.5, 15], "rotation": 270, "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackPlateLeft",
|
||||
"from": [0, -5, 14],
|
||||
"to": [1, -2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
|
||||
"faces": {
|
||||
"south": {"uv": [0, 14.5, 0.5, 16], "texture": "#4"},
|
||||
"west": {"uv": [1, 14.5, 0, 16], "texture": "#4"},
|
||||
"up": {"uv": [0, 15, 1, 14.5], "rotation": 270, "texture": "#4"}
|
||||
"south": {"uv": [0, 14.5, 0.5, 16], "texture": "#7"},
|
||||
"west": {"uv": [1, 14.5, 0, 16], "texture": "#7"},
|
||||
"up": {"uv": [0, 15, 5.5, 14.5], "rotation": 270, "texture": "#7"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, -2, 14],
|
||||
"to": [15, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 22]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 6, 9, 6.5], "rotation": 90, "texture": "#3"},
|
||||
"south": {"uv": [8, 0, 16, 6], "rotation": 90, "texture": "#3"},
|
||||
"west": {"uv": [1, 6, 9, 6.5], "rotation": 90, "texture": "#3"},
|
||||
"up": {"uv": [6, 0, 6.5, 6], "rotation": 90, "texture": "#3"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3.25, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0, 1, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 90, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "BeltFunnel",
|
||||
|
@ -223,19 +183,13 @@
|
|||
{
|
||||
"name": "FrontSection",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [0, 1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
"name": "Extension",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [7, 8]
|
||||
"children": [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
},
|
||||
{
|
||||
"name": "Base",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [9, 10, 11, 12, 13]
|
||||
"children": [8, 9, 10, 11, 12]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}, 13]
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"4": "create:block/brass_funnel_plating"
|
||||
"4": "create:block/brass_funnel_back"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
@ -9,12 +10,12 @@
|
|||
"to": [14, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-24.5, -7.5, 9]},
|
||||
"faces": {
|
||||
"north": {"uv": [6.5, 0, 8, 6.5], "texture": "#4"},
|
||||
"east": {"uv": [6.5, 0, 7, 6.5], "texture": "#4"},
|
||||
"south": {"uv": [6.5, 0, 8, 6.5], "texture": "#4"},
|
||||
"west": {"uv": [7.5, 0, 8, 6.5], "texture": "#4"},
|
||||
"up": {"uv": [6.5, 0, 8, 0.5], "rotation": 180, "texture": "#4"},
|
||||
"down": {"uv": [6.5, 6, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [14, 8.5, 12.5, 15], "texture": "#4"},
|
||||
"east": {"uv": [13.5, 8.5, 14, 15], "texture": "#4"},
|
||||
"south": {"uv": [12.5, 8.5, 14, 15], "texture": "#4"},
|
||||
"west": {"uv": [12.5, 8.5, 13, 15], "texture": "#4"},
|
||||
"up": {"uv": [12.5, 8.5, 14, 9], "texture": "#4"},
|
||||
"down": {"uv": [12.5, 14.5, 14, 15], "texture": "#4"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -2,210 +2,104 @@
|
|||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"2": "create:block/brass_funnel_back",
|
||||
"3": "create:block/brass_funnel",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_block"
|
||||
"0": "create:block/brass_funnel_plating",
|
||||
"1": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"particle": "#1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "RightWall",
|
||||
"from": [0, 10, 0],
|
||||
"to": [2, 16, 16],
|
||||
"from": [2.1, -1.9, 2.1],
|
||||
"to": [13.9, 2, 13.9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 7, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 6], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"south": {"uv": [0, 0, 2, 6], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"up": {"uv": [14, 0, 16, 16], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [0, 0, 2, 16], "texture": "#particle"}
|
||||
"north": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"up": {"uv": [0, 4, 12, 16], "texture": "#2"},
|
||||
"down": {"uv": [6, 8, 12, 14], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "LeftWall",
|
||||
"from": [14, 10, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 6], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"south": {"uv": [14, 0, 16, 6], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 2, 16], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [14, 0, 16, 16], "texture": "#particle"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [2, 10, 14],
|
||||
"to": [14, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 8]},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 19, 12]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"south": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"up": {"uv": [2, 0, 14, 2], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [2, 0, 14, 2], "texture": "#particle"}
|
||||
"north": {"uv": [2, 1, 14, 7], "texture": "#1"},
|
||||
"south": {"uv": [1, 0, 7, 3], "texture": "#0"},
|
||||
"up": {"uv": [2, 14, 14, 16], "texture": "#1"},
|
||||
"down": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [2, 10, 0],
|
||||
"to": [14, 16, 2],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 8]},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 19, -2]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"south": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"up": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [2, 14, 14, 16], "texture": "#particle"}
|
||||
"north": {"uv": [1, 0, 7, 3], "texture": "#0"},
|
||||
"south": {"uv": [2, 1, 14, 7], "texture": "#1"},
|
||||
"up": {"uv": [2, 0, 14, 2], "texture": "#1"},
|
||||
"down": {"uv": [2, 0, 14, 2], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F4",
|
||||
"from": [11, 14, 1.5],
|
||||
"to": [14, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 8.5, 8]},
|
||||
"from": [0, 10, 0],
|
||||
"to": [2, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-2, 19, -2]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [7, 0, 8, 3], "texture": "#0"},
|
||||
"east": {"uv": [0, 1, 16, 7], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1, 3], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 3], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 2, 16], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F5",
|
||||
"from": [5, 14, 1.5],
|
||||
"to": [8, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.5, 8]},
|
||||
"from": [14, 10, 0],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 19, -2]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [0, 0, 1, 3], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 3], "texture": "#0"},
|
||||
"south": {"uv": [7, 0, 8, 3], "texture": "#0"},
|
||||
"west": {"uv": [0, 1, 16, 7], "texture": "#1"},
|
||||
"up": {"uv": [14, 0, 16, 16], "texture": "#1"},
|
||||
"down": {"uv": [14, 0, 16, 16], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F5",
|
||||
"from": [8, 14, 1.5],
|
||||
"to": [11, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 8.5, 8]},
|
||||
"from": [2, 6, 2],
|
||||
"to": [14, 10, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 15, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"south": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"west": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 6], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F6",
|
||||
"from": [2, 14, 1.5],
|
||||
"to": [5, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.5, 8]},
|
||||
"from": [2, 11, 2],
|
||||
"to": [14, 15, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 20, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"up": {"uv": [0, 8, 6, 14], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackExtension",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 6, 14],
|
||||
"from": [3, 2, 3],
|
||||
"to": [13, 6, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 11, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"east": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"down": {"uv": [9, 0.5, 15, 6.5], "texture": "#2"}
|
||||
"north": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"},
|
||||
"east": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"},
|
||||
"south": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"},
|
||||
"west": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MidExtension",
|
||||
"from": [1, 6, 1],
|
||||
"to": [15, 10, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 7, 16], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [8.5, 0, 15.5, 7], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [3.1, -1.9, 3.1],
|
||||
"to": [12.9, 2, 12.9],
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"east": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"south": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"west": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"down": {"uv": [9.5, 11, 14.5, 16], "texture": "#4"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3.25, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0, 1, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 90, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "BeltFunnel",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [
|
||||
{
|
||||
"name": "FrontSection",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [0, 1, 2, 3,
|
||||
{
|
||||
"name": "Flap",
|
||||
"origin": [8, 8, 8],
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Extension",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [8, 9]
|
||||
},
|
||||
{
|
||||
"name": "DELETABLEEXTENSION",
|
||||
"origin": [9, -4, 8],
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "DELETABLEEXTESNIONMID",
|
||||
"origin": [35, 12, 4],
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "Base",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [10]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -2,133 +2,103 @@
|
|||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"2": "create:block/brass_funnel_back",
|
||||
"3": "create:block/brass_funnel",
|
||||
"4": "create:block/brass_funnel_plating",
|
||||
"particle": "create:block/brass_block"
|
||||
"0": "create:block/brass_funnel_plating",
|
||||
"1": "create:block/brass_block",
|
||||
"2": "create:block/brass_funnel",
|
||||
"3": "create:block/brass_funnel_back",
|
||||
"particle": "#1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "RightWall",
|
||||
"from": [0, 10, 0],
|
||||
"to": [2, 16, 16],
|
||||
"from": [2.1, -1.9, 2.1],
|
||||
"to": [13.9, 2, 13.9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 7, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 6], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"south": {"uv": [0, 0, 2, 6], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"up": {"uv": [14, 0, 16, 16], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [0, 0, 2, 16], "texture": "#particle"}
|
||||
"north": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 12, 4], "texture": "#2"},
|
||||
"up": {"uv": [0, 4, 12, 16], "texture": "#2"},
|
||||
"down": {"uv": [6, 8, 12, 14], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "LeftWall",
|
||||
"from": [14, 10, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 6], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"south": {"uv": [14, 0, 16, 6], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 16, 6], "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 2, 16], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [14, 0, 16, 16], "texture": "#particle"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [2, 10, 14],
|
||||
"to": [14, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 8]},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 19, 12]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"south": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"up": {"uv": [2, 0, 14, 2], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [2, 0, 14, 2], "texture": "#particle"}
|
||||
"north": {"uv": [2, 1, 14, 7], "texture": "#1"},
|
||||
"south": {"uv": [1, 0, 7, 3], "texture": "#0"},
|
||||
"up": {"uv": [2, 14, 14, 16], "texture": "#1"},
|
||||
"down": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [2, 10, 0],
|
||||
"to": [14, 16, 2],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 8]},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 19, -2]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"south": {"uv": [2, 0, 14, 6], "texture": "#3"},
|
||||
"up": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#particle"},
|
||||
"down": {"uv": [2, 14, 14, 16], "texture": "#particle"}
|
||||
"north": {"uv": [1, 0, 7, 3], "texture": "#0"},
|
||||
"south": {"uv": [2, 1, 14, 7], "texture": "#1"},
|
||||
"up": {"uv": [2, 0, 14, 2], "texture": "#1"},
|
||||
"down": {"uv": [2, 0, 14, 2], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F4",
|
||||
"from": [11, 14, 1.5],
|
||||
"to": [14, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 8.5, 8]},
|
||||
"from": [0, 10, 0],
|
||||
"to": [2, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-2, 19, -2]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [7, 0, 8, 3], "texture": "#0"},
|
||||
"east": {"uv": [0, 1, 16, 7], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1, 3], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 3], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 2, 16], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F5",
|
||||
"from": [5, 14, 1.5],
|
||||
"to": [8, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.5, 8]},
|
||||
"from": [14, 10, 0],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 19, -2]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [0, 0, 1, 3], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 3], "texture": "#0"},
|
||||
"south": {"uv": [7, 0, 8, 3], "texture": "#0"},
|
||||
"west": {"uv": [0, 1, 16, 7], "texture": "#1"},
|
||||
"up": {"uv": [14, 0, 16, 16], "texture": "#1"},
|
||||
"down": {"uv": [14, 0, 16, 16], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F5",
|
||||
"from": [8, 14, 1.5],
|
||||
"to": [11, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 8.5, 8]},
|
||||
"from": [2, 6, 2],
|
||||
"to": [14, 10, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 15, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"north": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"south": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"west": {"uv": [6, 0, 8, 6], "rotation": 90, "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 6], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "F6",
|
||||
"from": [2, 14, 1.5],
|
||||
"to": [5, 15, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.5, 8]},
|
||||
"from": [2, 11, 2],
|
||||
"to": [14, 15, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 20, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [6.5, 0, 8, 6.5], "rotation": 180, "texture": "#4"}
|
||||
"up": {"uv": [0, 8, 6, 14], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "BackExtension",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 6, 14],
|
||||
"from": [3, 2, 3],
|
||||
"to": [13, 6, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 11, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"east": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#2"},
|
||||
"down": {"uv": [9, 0.5, 15, 6.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MidExtension",
|
||||
"from": [1, 6, 1],
|
||||
"to": [15, 10, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 7, 16], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [8.5, 0, 15.5, 7], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [3, -2, 3],
|
||||
"to": [13, 2, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"east": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"south": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"west": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"},
|
||||
"down": {"uv": [9.5, 11, 14.5, 16], "texture": "#4"}
|
||||
"north": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"},
|
||||
"east": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"},
|
||||
"south": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"},
|
||||
"west": {"uv": [9.5, 2, 14.5, 4], "texture": "#3"}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
@ -165,44 +135,5 @@
|
|||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "BeltFunnel",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [
|
||||
{
|
||||
"name": "FrontSection",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [0, 1, 2, 3,
|
||||
{
|
||||
"name": "Flap",
|
||||
"origin": [8, 8, 8],
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Extension",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [8, 9]
|
||||
},
|
||||
{
|
||||
"name": "DELETABLEEXTENSION",
|
||||
"origin": [9, -4, 8],
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "DELETABLEEXTESNIONMID",
|
||||
"origin": [35, 12, 4],
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "Base",
|
||||
"origin": [9, -4, 8],
|
||||
"children": [10]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 469 B |
Before Width: | Height: | Size: 984 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 458 B |
After Width: | Height: | Size: 440 B |
After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 398 B |
Before Width: | Height: | Size: 964 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 390 B |
Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 371 B |
Before Width: | Height: | Size: 383 B |
Before Width: | Height: | Size: 396 B After Width: | Height: | Size: 380 B |
Before Width: | Height: | Size: 405 B |
After Width: | Height: | Size: 354 B |
After Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 526 B |