Added Creative Vending Upgrade, closes #47

This commit is contained in:
Buuz135 2022-08-07 20:21:30 +02:00
parent bed714a4fa
commit 1f46bb0f97
18 changed files with 153 additions and 101 deletions

View File

@ -60,7 +60,7 @@ minecraft {
property 'mixin.env.remapRefMap', 'true' property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
args '--mod', 'functionalstorage,titanium', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') args '--mod', 'functionalstorage', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
mods { mods {
functionalstorage { functionalstorage {

View File

@ -6,6 +6,7 @@ e505e84f33a45dea1ef5dc4f6ab500965a32d1f3 assets/functionalstorage/blockstates/bi
4803730c1801ac8c78703c4db182b2e116d02035 assets/functionalstorage/blockstates/birch_2.json 4803730c1801ac8c78703c4db182b2e116d02035 assets/functionalstorage/blockstates/birch_2.json
415f30768aa5f298098192b8a887d8b01617566b assets/functionalstorage/blockstates/birch_4.json 415f30768aa5f298098192b8a887d8b01617566b assets/functionalstorage/blockstates/birch_4.json
62bfbb466ae1f92b81db8ad38259b0fb52a56dcd assets/functionalstorage/blockstates/compacting_drawer.json 62bfbb466ae1f92b81db8ad38259b0fb52a56dcd assets/functionalstorage/blockstates/compacting_drawer.json
63a30228dd6ea390327977455a30f0ef4a802463 assets/functionalstorage/blockstates/compacting_framed_drawer.json
764fd595f14c2f186834a5c073dc40fd783de2d5 assets/functionalstorage/blockstates/crimson_1.json 764fd595f14c2f186834a5c073dc40fd783de2d5 assets/functionalstorage/blockstates/crimson_1.json
75ec6d10e1cf1e98fb5ec2e20727cac47829b0b4 assets/functionalstorage/blockstates/crimson_2.json 75ec6d10e1cf1e98fb5ec2e20727cac47829b0b4 assets/functionalstorage/blockstates/crimson_2.json
51bf3810c4d32ef39cd2a8e8ad8bf677175cbdc8 assets/functionalstorage/blockstates/crimson_4.json 51bf3810c4d32ef39cd2a8e8ad8bf677175cbdc8 assets/functionalstorage/blockstates/crimson_4.json
@ -13,6 +14,9 @@ e505e84f33a45dea1ef5dc4f6ab500965a32d1f3 assets/functionalstorage/blockstates/bi
d34d2a17fe665545b75091a04f49d0b76676db8f assets/functionalstorage/blockstates/dark_oak_2.json d34d2a17fe665545b75091a04f49d0b76676db8f assets/functionalstorage/blockstates/dark_oak_2.json
6a6edbfb0407982b63fd75e614591b0fea2a8c96 assets/functionalstorage/blockstates/dark_oak_4.json 6a6edbfb0407982b63fd75e614591b0fea2a8c96 assets/functionalstorage/blockstates/dark_oak_4.json
aa7792d9a8a001cbe9a4a1941dc66e3452798488 assets/functionalstorage/blockstates/ender_drawer.json aa7792d9a8a001cbe9a4a1941dc66e3452798488 assets/functionalstorage/blockstates/ender_drawer.json
7b50aed565960fb2dedb17b2de5b8d65471d46bc assets/functionalstorage/blockstates/framed_1.json
bfb9ec8c6ce5f2a20811b56bb88712aabcd84c67 assets/functionalstorage/blockstates/framed_2.json
396b71bd284d5184935ba95e9b74303dd7b47db2 assets/functionalstorage/blockstates/framed_4.json
1b3080f361ec9707d94537b7d751f0a40942b6e5 assets/functionalstorage/blockstates/jungle_1.json 1b3080f361ec9707d94537b7d751f0a40942b6e5 assets/functionalstorage/blockstates/jungle_1.json
938ce731a06469a054b6217c168b45886a82d572 assets/functionalstorage/blockstates/jungle_2.json 938ce731a06469a054b6217c168b45886a82d572 assets/functionalstorage/blockstates/jungle_2.json
0e8619fea465be18de161b81904e1e9596e01b14 assets/functionalstorage/blockstates/jungle_4.json 0e8619fea465be18de161b81904e1e9596e01b14 assets/functionalstorage/blockstates/jungle_4.json
@ -26,7 +30,7 @@ a50aeb3877dd4003bb3ed359fccde1f3674bc028 assets/functionalstorage/blockstates/sp
fbf8ebd85350f3b4ad0bf6faf51f9ecf0677bf5b assets/functionalstorage/blockstates/warped_1.json fbf8ebd85350f3b4ad0bf6faf51f9ecf0677bf5b assets/functionalstorage/blockstates/warped_1.json
bcd4b5e128d5175bea44ecae340aeec86cd5a123 assets/functionalstorage/blockstates/warped_2.json bcd4b5e128d5175bea44ecae340aeec86cd5a123 assets/functionalstorage/blockstates/warped_2.json
ebc4aebffb44baa4dd507078b9fd3c74e881f4c1 assets/functionalstorage/blockstates/warped_4.json ebc4aebffb44baa4dd507078b9fd3c74e881f4c1 assets/functionalstorage/blockstates/warped_4.json
f2d7f4e1e04eecfa98a7d039fb3d4c498a329a3c assets/functionalstorage/lang/en_us.json 5d88a81b6ba32567a762bd76ead3945971ac78e2 assets/functionalstorage/lang/en_us.json
68c3f6a8fe55202f83c0fcdd6c8ca10ef88019ef assets/functionalstorage/models/block/acacia_1_locked.json 68c3f6a8fe55202f83c0fcdd6c8ca10ef88019ef assets/functionalstorage/models/block/acacia_1_locked.json
c7d0376ba2a080ba12c344369ad11538899db176 assets/functionalstorage/models/block/acacia_2_locked.json c7d0376ba2a080ba12c344369ad11538899db176 assets/functionalstorage/models/block/acacia_2_locked.json
79b86baeec4aa6784aa52028d2f3bc98ddab8c14 assets/functionalstorage/models/block/acacia_4_locked.json 79b86baeec4aa6784aa52028d2f3bc98ddab8c14 assets/functionalstorage/models/block/acacia_4_locked.json
@ -34,6 +38,7 @@ c7d0376ba2a080ba12c344369ad11538899db176 assets/functionalstorage/models/block/a
73a721da5ce864d7973923ab998d3e038d510a9a assets/functionalstorage/models/block/birch_2_locked.json 73a721da5ce864d7973923ab998d3e038d510a9a assets/functionalstorage/models/block/birch_2_locked.json
8b466330111b80833458ae6e23f1f475d4fc0671 assets/functionalstorage/models/block/birch_4_locked.json 8b466330111b80833458ae6e23f1f475d4fc0671 assets/functionalstorage/models/block/birch_4_locked.json
13eb56026a20e2b83d8aa80ce9b8101c6d191e4a assets/functionalstorage/models/block/compacting_drawer_locked.json 13eb56026a20e2b83d8aa80ce9b8101c6d191e4a assets/functionalstorage/models/block/compacting_drawer_locked.json
047803aac409c59db06f8f006a63c08381ad0271 assets/functionalstorage/models/block/compacting_framed_drawer_locked.json
ef849e4444f8c1e96b0dc4053cfa6218be305d36 assets/functionalstorage/models/block/crimson_1_locked.json ef849e4444f8c1e96b0dc4053cfa6218be305d36 assets/functionalstorage/models/block/crimson_1_locked.json
323a60308b46df6110ad0f02bd208e1e449bfa59 assets/functionalstorage/models/block/crimson_2_locked.json 323a60308b46df6110ad0f02bd208e1e449bfa59 assets/functionalstorage/models/block/crimson_2_locked.json
48627182bec4a852d8e7db13f77764f626619e72 assets/functionalstorage/models/block/crimson_4_locked.json 48627182bec4a852d8e7db13f77764f626619e72 assets/functionalstorage/models/block/crimson_4_locked.json
@ -41,6 +46,9 @@ fd8f6d7b04eaacb2b78517b93aef7868a59259f4 assets/functionalstorage/models/block/d
a4ce117f7c87bf0518c30f98787c7dd68dbcc290 assets/functionalstorage/models/block/dark_oak_2_locked.json a4ce117f7c87bf0518c30f98787c7dd68dbcc290 assets/functionalstorage/models/block/dark_oak_2_locked.json
b8cc25554026c56044dad18aa07f0e092eb028da assets/functionalstorage/models/block/dark_oak_4_locked.json b8cc25554026c56044dad18aa07f0e092eb028da assets/functionalstorage/models/block/dark_oak_4_locked.json
9fe8a7817c2a5f1ab450099a0bbc94d6851168a0 assets/functionalstorage/models/block/ender_drawer_locked.json 9fe8a7817c2a5f1ab450099a0bbc94d6851168a0 assets/functionalstorage/models/block/ender_drawer_locked.json
47f769a5fccba7c51980e52173278644ca5503cb assets/functionalstorage/models/block/framed_1_locked.json
448248754a3ad40c777a648624d7431c2af74198 assets/functionalstorage/models/block/framed_2_locked.json
66c21badbfb491da58fccbb878eb285a2ced6751 assets/functionalstorage/models/block/framed_4_locked.json
9f8ab8d3f04f99edaf16f76e8c2f037653324e72 assets/functionalstorage/models/block/jungle_1_locked.json 9f8ab8d3f04f99edaf16f76e8c2f037653324e72 assets/functionalstorage/models/block/jungle_1_locked.json
d447ad68f1d5a2ea467ec485bbbbb334f79cbdea assets/functionalstorage/models/block/jungle_2_locked.json d447ad68f1d5a2ea467ec485bbbbb334f79cbdea assets/functionalstorage/models/block/jungle_2_locked.json
e55bf19ba42af7366b71307e1c0645e8a69328a9 assets/functionalstorage/models/block/jungle_4_locked.json e55bf19ba42af7366b71307e1c0645e8a69328a9 assets/functionalstorage/models/block/jungle_4_locked.json
@ -55,12 +63,14 @@ ebdb37c161f0c52d57de6ffb5cf428d051ae23eb assets/functionalstorage/models/block/w
8705215b001a6ac945426a55276af93f33b9a237 assets/functionalstorage/models/block/warped_4_locked.json 8705215b001a6ac945426a55276af93f33b9a237 assets/functionalstorage/models/block/warped_4_locked.json
f9c11e430cfeef0c24c5b10b7e6bdff04d5efa6a assets/functionalstorage/models/item/collector_upgrade.json f9c11e430cfeef0c24c5b10b7e6bdff04d5efa6a assets/functionalstorage/models/item/collector_upgrade.json
eed1ee36f7bc9269b2e0300a89c1418ac3cf8a29 assets/functionalstorage/models/item/copper_upgrade.json eed1ee36f7bc9269b2e0300a89c1418ac3cf8a29 assets/functionalstorage/models/item/copper_upgrade.json
329278e7e1f1a079ded85a4ae206f9317739ad54 assets/functionalstorage/models/item/creative_vending_upgrade.json
06a823abd508e43d00013698b1b65eb1f71feecf assets/functionalstorage/models/item/diamond_upgrade.json 06a823abd508e43d00013698b1b65eb1f71feecf assets/functionalstorage/models/item/diamond_upgrade.json
0619620911ab7512e57a491beef71dc68769ba3b assets/functionalstorage/models/item/gold_upgrade.json 0619620911ab7512e57a491beef71dc68769ba3b assets/functionalstorage/models/item/gold_upgrade.json
d9f1bebe92b59f71359f39dc3441135989fde037 assets/functionalstorage/models/item/iron_downgrade.json d9f1bebe92b59f71359f39dc3441135989fde037 assets/functionalstorage/models/item/iron_downgrade.json
f768a7b0a4e49703c36318bd3da300640caaa295 assets/functionalstorage/models/item/netherite_upgrade.json f768a7b0a4e49703c36318bd3da300640caaa295 assets/functionalstorage/models/item/netherite_upgrade.json
443379309025696b7608536277f33a6c444fa525 assets/functionalstorage/models/item/puller_upgrade.json 443379309025696b7608536277f33a6c444fa525 assets/functionalstorage/models/item/puller_upgrade.json
60e26c140ec529fd49941639b8070de56a1a18c0 assets/functionalstorage/models/item/pusher_upgrade.json 60e26c140ec529fd49941639b8070de56a1a18c0 assets/functionalstorage/models/item/pusher_upgrade.json
967187549744d72aa9d2f10d8e0fb84f1c5b0609 assets/functionalstorage/models/item/redstone_upgrade.json
818d0ccc8149687691b50d24c7ee2170c1576024 assets/functionalstorage/models/item/void_upgrade.json 818d0ccc8149687691b50d24c7ee2170c1576024 assets/functionalstorage/models/item/void_upgrade.json
2a0e446d0ec43f1e148ce6cbb192cc6e925b860d data/functionalstorage/advancements/recipes/functionalstorage/netherite_upgrade.json 2a0e446d0ec43f1e148ce6cbb192cc6e925b860d data/functionalstorage/advancements/recipes/functionalstorage/netherite_upgrade.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/acacia_1.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/acacia_1.json
@ -71,6 +81,7 @@ f768a7b0a4e49703c36318bd3da300640caaa295 assets/functionalstorage/models/item/ne
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/birch_2.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/birch_2.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/birch_4.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/birch_4.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/compacting_drawer.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/compacting_drawer.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/compacting_framed_drawer.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/crimson_1.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/crimson_1.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/crimson_2.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/crimson_2.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/crimson_4.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/crimson_4.json
@ -78,6 +89,9 @@ f768a7b0a4e49703c36318bd3da300640caaa295 assets/functionalstorage/models/item/ne
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/dark_oak_2.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/dark_oak_2.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/dark_oak_4.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/dark_oak_4.json
61d2d92d6e17187b566e245df0765770b0ca69dd data/functionalstorage/loot_tables/blocks/ender_drawer.json 61d2d92d6e17187b566e245df0765770b0ca69dd data/functionalstorage/loot_tables/blocks/ender_drawer.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/framed_1.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/framed_2.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/framed_4.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/jungle_1.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/jungle_1.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/jungle_2.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/jungle_2.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/jungle_4.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/jungle_4.json
@ -92,45 +106,53 @@ f768a7b0a4e49703c36318bd3da300640caaa295 assets/functionalstorage/models/item/ne
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/warped_2.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/warped_2.json
374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/warped_4.json 374fc761ad454802cb3e7a484cfec94537b114d8 data/functionalstorage/loot_tables/blocks/warped_4.json
a1a4e8570d19a850f6290d5e8cb00bf226a5d082 data/functionalstorage/recipes/acacia_1.json a1a4e8570d19a850f6290d5e8cb00bf226a5d082 data/functionalstorage/recipes/acacia_1.json
e3138f15dbdc49225d5c66d2313cb4c6f1372ec3 data/functionalstorage/recipes/acacia_2.json c87581a1ee3314927a0a520078a77577e86a7046 data/functionalstorage/recipes/acacia_2.json
371657e01e4e599165049bbc686fca5ab0c27f18 data/functionalstorage/recipes/acacia_4.json 2e3d4447401ef8c857b427cfba21d4026a83a403 data/functionalstorage/recipes/acacia_4.json
46c98779b06bf10965e986fb54e359fb5fa260c9 data/functionalstorage/recipes/armory_cabinet.json 46c98779b06bf10965e986fb54e359fb5fa260c9 data/functionalstorage/recipes/armory_cabinet.json
60434750145755324af7e86952e2905efc616f5e data/functionalstorage/recipes/birch_1.json 60434750145755324af7e86952e2905efc616f5e data/functionalstorage/recipes/birch_1.json
b1e0180179e45d5dcce15a0d9e4c7240b32a0f0a data/functionalstorage/recipes/birch_2.json 21fd122163dec07a57bf996c88eda09d40ea72b9 data/functionalstorage/recipes/birch_2.json
1bb8f4e3018ec26c7ee8179198d114f5f8a5dcd5 data/functionalstorage/recipes/birch_4.json 28dbb0349028aaef447bbc44ec3d530119899708 data/functionalstorage/recipes/birch_4.json
d2c1db653dc024b5dbc6ffa01fb035f616e09388 data/functionalstorage/recipes/collector_upgrade.json d2c1db653dc024b5dbc6ffa01fb035f616e09388 data/functionalstorage/recipes/collector_upgrade.json
2f055e6a11a6e3ccb23545268552792af4b8a4a4 data/functionalstorage/recipes/compacting_drawer.json 2f055e6a11a6e3ccb23545268552792af4b8a4a4 data/functionalstorage/recipes/compacting_drawer.json
8aaad5ee82ef0fc5747280f0cc4f0f6f6f80437f data/functionalstorage/recipes/compacting_framed_drawer.json
17e341b2900147c9ed7786ae45b400107135b382 data/functionalstorage/recipes/configuration_tool.json 17e341b2900147c9ed7786ae45b400107135b382 data/functionalstorage/recipes/configuration_tool.json
ef2fdca03f910cdffd427af1423b3c85587471c7 data/functionalstorage/recipes/copper_upgrade.json ef2fdca03f910cdffd427af1423b3c85587471c7 data/functionalstorage/recipes/copper_upgrade.json
b03ea02d6ccf84af8bf9482b2b0ddfa0284a5520 data/functionalstorage/recipes/crimson_1.json b03ea02d6ccf84af8bf9482b2b0ddfa0284a5520 data/functionalstorage/recipes/crimson_1.json
ea3bf44b8e70ee71f488c62cc674839ede650a04 data/functionalstorage/recipes/crimson_2.json 838e899d596e12c5837c03c1626edeed1afdc82a data/functionalstorage/recipes/crimson_2.json
4a2c846cccedc425748130054972d7e0f2757276 data/functionalstorage/recipes/crimson_4.json 7b1eb766dff38ec1fef050e3d3a83ef7f91a7d81 data/functionalstorage/recipes/crimson_4.json
6236c7bc1e0b621d7024c8e493de684a2083c486 data/functionalstorage/recipes/dark_oak_1.json 6236c7bc1e0b621d7024c8e493de684a2083c486 data/functionalstorage/recipes/dark_oak_1.json
9a466a0d3da5f628c200cfe7a41d39e4740e228f data/functionalstorage/recipes/dark_oak_2.json 99cf13a96433c91e9527a224f277ce4616a74f89 data/functionalstorage/recipes/dark_oak_2.json
c9927a4a2a6c435615cac88249885706fa22f4a1 data/functionalstorage/recipes/dark_oak_4.json 8ca487b5185aa447b4db73561cd02eebc8b7aee1 data/functionalstorage/recipes/dark_oak_4.json
cbcf3ee5994888e92e713e4fb5ab310ddea0fdb6 data/functionalstorage/recipes/diamond_upgrade.json 84255e96e3cb8df5b7f4209adf6da5349cdb6b51 data/functionalstorage/recipes/diamond_upgrade.json
82c0f23b4e5ab1a345e6f4a39b2e6edfa820a082 data/functionalstorage/recipes/ender_drawer.json 82c0f23b4e5ab1a345e6f4a39b2e6edfa820a082 data/functionalstorage/recipes/ender_drawer.json
5aef3785ba1117dd72efcadf973284460affd414 data/functionalstorage/recipes/framed_1.json
5af78fb3b373d979dc686741e1eff9c59804cfc1 data/functionalstorage/recipes/framed_2.json
1d4c91d495252507adcb8aba0d6efbbc79833678 data/functionalstorage/recipes/framed_4.json
706bd944808746f993913f563279021c651c7ec5 data/functionalstorage/recipes/gold_upgrade.json 706bd944808746f993913f563279021c651c7ec5 data/functionalstorage/recipes/gold_upgrade.json
839587568a4163215b2b83d4e148e687d22e43f4 data/functionalstorage/recipes/iron_downgrade.json 839587568a4163215b2b83d4e148e687d22e43f4 data/functionalstorage/recipes/iron_downgrade.json
b01f9c03f49dc1a13acbb1f1099e9cad2aa1a3ad data/functionalstorage/recipes/jungle_1.json b01f9c03f49dc1a13acbb1f1099e9cad2aa1a3ad data/functionalstorage/recipes/jungle_1.json
a57bd729cb2e911f54c8dda1da568ae249ee12f4 data/functionalstorage/recipes/jungle_2.json 7eeeaf93721922b6af5208869ab3bf750118a02f data/functionalstorage/recipes/jungle_2.json
53c35d42c899301fa5754f8a2274b59f8ddbec87 data/functionalstorage/recipes/jungle_4.json 020fe3a6c2c581490f5d785d42d129be49d6fe8c data/functionalstorage/recipes/jungle_4.json
51980e8cb5cc2e90876ed6614017ce81d3024e8b data/functionalstorage/recipes/linking_tool.json 51980e8cb5cc2e90876ed6614017ce81d3024e8b data/functionalstorage/recipes/linking_tool.json
9fd192413aa65e1b43f20d026e13796d10d1862f data/functionalstorage/recipes/netherite_upgrade.json 9fd192413aa65e1b43f20d026e13796d10d1862f data/functionalstorage/recipes/netherite_upgrade.json
1ebe2893f36e62a42fe14425e8fc1738e00e7a6b data/functionalstorage/recipes/oak_1.json 1ebe2893f36e62a42fe14425e8fc1738e00e7a6b data/functionalstorage/recipes/oak_1.json
c74326f87072d56cf74892ea0d1ba06ba2ab9d52 data/functionalstorage/recipes/oak_2.json 81597dd73555d34f75f29c7aa34481b56bc62de1 data/functionalstorage/recipes/oak_2.json
e2e084bb7d7b47e397380bf521b97abbfeb690fa data/functionalstorage/recipes/oak_4.json 8cb69d4ca95e15465ed55651fc29f6f342524eb2 data/functionalstorage/recipes/oak_4.json
5b7e4a3c58b4d3d96d2b2afcfa84425004d2863e data/functionalstorage/recipes/oak_drawer_alternate_x1.json
76a91e8d2c7154b53574fe10c7e64e70aaab448e data/functionalstorage/recipes/oak_drawer_alternate_x2.json
f4a2150ce49f843e9e40c66f3e2bea338c59e8e0 data/functionalstorage/recipes/oak_drawer_alternate_x4.json
716fbfa8193b7c60caf28c306b145167e3ddeae4 data/functionalstorage/recipes/puller_upgrade.json 716fbfa8193b7c60caf28c306b145167e3ddeae4 data/functionalstorage/recipes/puller_upgrade.json
555775b027e86b4d66d3d79ed3531e40c9edc455 data/functionalstorage/recipes/pusher_upgrade.json 555775b027e86b4d66d3d79ed3531e40c9edc455 data/functionalstorage/recipes/pusher_upgrade.json
d95d12dc990cc71a2d3e89ea97034ef23b72443c data/functionalstorage/recipes/redstone_upgrade.json
fcaef11a796fe7bff1363cface153e9a5f6dfc5b data/functionalstorage/recipes/spruce_1.json fcaef11a796fe7bff1363cface153e9a5f6dfc5b data/functionalstorage/recipes/spruce_1.json
b400b9b87446387d55b8c16d5d2f3889621f7f26 data/functionalstorage/recipes/spruce_2.json b012c3427bae69a938a53f404ec45cf40234e301 data/functionalstorage/recipes/spruce_2.json
ff234dac4f0b0b4f83ffa92f2d2fb1074c68df43 data/functionalstorage/recipes/spruce_4.json 452bc021fe90b3055f9b55945aa20b2d67d355c2 data/functionalstorage/recipes/spruce_4.json
d6b02c345edd356b8e4b7421bdd453f454c6ed7f data/functionalstorage/recipes/storage_controller.json d6b02c345edd356b8e4b7421bdd453f454c6ed7f data/functionalstorage/recipes/storage_controller.json
70f002746453274121bb4fc7146ed9a738414228 data/functionalstorage/recipes/void_upgrade.json 70f002746453274121bb4fc7146ed9a738414228 data/functionalstorage/recipes/void_upgrade.json
bcb281904eac23183c45786e3d703d24bba92be6 data/functionalstorage/recipes/warped_1.json bcb281904eac23183c45786e3d703d24bba92be6 data/functionalstorage/recipes/warped_1.json
8fc3f76a2c57eb4d80ce86947fabebe48fa6f692 data/functionalstorage/recipes/warped_2.json 91e56e4558ed55571e9972bca1e8a1772655abdd data/functionalstorage/recipes/warped_2.json
7510a8ca1f1e3bb63f4c4f4add0bb6b713feaa0b data/functionalstorage/recipes/warped_4.json 344de1ec16ecf9095fd5790c1c60a4014520829e data/functionalstorage/recipes/warped_4.json
db0122948639b122cb0c1df7530996e9784356b0 data/functionalstorage/tags/items/drawer.json 34d82556c1781b4ce5da2773e22edc2589d629e8 data/functionalstorage/tags/items/drawer.json
12ec935226bf5a6a1493d353ef6dc6c224c256dd data/functionalstorage/tags/items/ignore_crafting_check.json 486a80437ce84b27a3d93db5134ea1fb4f66401f data/functionalstorage/tags/items/ignore_crafting_check.json
db0122948639b122cb0c1df7530996e9784356b0 data/minecraft/tags/blocks/mineable/axe.json 34d82556c1781b4ce5da2773e22edc2589d629e8 data/minecraft/tags/blocks/mineable/axe.json
2c1ca62408eae8963178024550b0771101e01d53 data/minecraft/tags/blocks/mineable/pickaxe.json 2c1ca62408eae8963178024550b0771101e01d53 data/minecraft/tags/blocks/mineable/pickaxe.json

View File

@ -14,6 +14,9 @@
"block.functionalstorage.dark_oak_2": "Dark Oak Drawer (1x2)", "block.functionalstorage.dark_oak_2": "Dark Oak Drawer (1x2)",
"block.functionalstorage.dark_oak_4": "Dark Oak Drawer (2x2)", "block.functionalstorage.dark_oak_4": "Dark Oak Drawer (2x2)",
"block.functionalstorage.ender_drawer": "Ender Drawer", "block.functionalstorage.ender_drawer": "Ender Drawer",
"block.functionalstorage.framed_1": "Framed Drawer (1x1)",
"block.functionalstorage.framed_2": "Framed Drawer (1x2)",
"block.functionalstorage.framed_4": "Framed Drawer (2x2)",
"block.functionalstorage.jungle_1": "Jungle Drawer (1x1)", "block.functionalstorage.jungle_1": "Jungle Drawer (1x1)",
"block.functionalstorage.jungle_2": "Jungle Drawer (1x2)", "block.functionalstorage.jungle_2": "Jungle Drawer (1x2)",
"block.functionalstorage.jungle_4": "Jungle Drawer (2x2)", "block.functionalstorage.jungle_4": "Jungle Drawer (2x2)",
@ -27,10 +30,6 @@
"block.functionalstorage.warped_1": "Warped Drawer (1x1)", "block.functionalstorage.warped_1": "Warped Drawer (1x1)",
"block.functionalstorage.warped_2": "Warped Drawer (1x2)", "block.functionalstorage.warped_2": "Warped Drawer (1x2)",
"block.functionalstorage.warped_4": "Warped Drawer (2x2)", "block.functionalstorage.warped_4": "Warped Drawer (2x2)",
"block.functionalstorage.framed_1": "Framed Drawer (1x1)",
"block.functionalstorage.framed_2": "Framed Drawer (1x2)",
"block.functionalstorage.framed_4": "Framed Drawer (2x2)",
"block.functionalstorage.compacting_framed_drawer": "Compacting Framed Drawer",
"configurationtool.configmode": "Config Mode: ", "configurationtool.configmode": "Config Mode: ",
"configurationtool.configmode.locking": "Locking", "configurationtool.configmode.locking": "Locking",
"configurationtool.configmode.toggle_numbers": "Hide/Show Amounts", "configurationtool.configmode.toggle_numbers": "Hide/Show Amounts",
@ -38,9 +37,11 @@
"configurationtool.configmode.toggle_upgrades": "Hide/Show Upgrade Renders", "configurationtool.configmode.toggle_upgrades": "Hide/Show Upgrade Renders",
"configurationtool.use": "Sneak + Right Click in the air to change modes. Right click a drawer to toggle the option.", "configurationtool.use": "Sneak + Right Click in the air to change modes. Right click a drawer to toggle the option.",
"drawer.block.contents": "Contents: ", "drawer.block.contents": "Contents: ",
"frameddrawer.use": "How 2 Change Texture: \nInside a crafting window place the block you want use the texture of for the outside of the drawer in the first slot of the crafting window, on the second slot put the block that will be used for the texture on the inside of the framed drawer and on the third slot put a framed drawer. \n",
"item.functionalstorage.collector_upgrade": "Collector Upgrade", "item.functionalstorage.collector_upgrade": "Collector Upgrade",
"item.functionalstorage.configuration_tool": "Configuration Tool", "item.functionalstorage.configuration_tool": "Configuration Tool",
"item.functionalstorage.copper_upgrade": "Copper Upgrade", "item.functionalstorage.copper_upgrade": "Copper Upgrade",
"item.functionalstorage.creative_vending_upgrade": "Creative Vending Upgrade",
"item.functionalstorage.diamond_upgrade": "Diamond Upgrade", "item.functionalstorage.diamond_upgrade": "Diamond Upgrade",
"item.functionalstorage.gold_upgrade": "Gold Upgrade", "item.functionalstorage.gold_upgrade": "Gold Upgrade",
"item.functionalstorage.iron_downgrade": "Iron Downgrade", "item.functionalstorage.iron_downgrade": "Iron Downgrade",
@ -48,13 +49,13 @@
"item.functionalstorage.netherite_upgrade": "Netherite Upgrade", "item.functionalstorage.netherite_upgrade": "Netherite Upgrade",
"item.functionalstorage.puller_upgrade": "Puller Upgrade", "item.functionalstorage.puller_upgrade": "Puller Upgrade",
"item.functionalstorage.pusher_upgrade": "Pusher Upgrade", "item.functionalstorage.pusher_upgrade": "Pusher Upgrade",
"item.functionalstorage.void_upgrade": "Void Upgrade",
"item.functionalstorage.redstone_upgrade": "Redstone Upgrade", "item.functionalstorage.redstone_upgrade": "Redstone Upgrade",
"item.functionalstorage.void_upgrade": "Void Upgrade",
"item.utility.direction": "Direction: ", "item.utility.direction": "Direction: ",
"item.utility.slot": "Slot: ",
"item.utility.direction.desc": "Right click in a GUI to change direction", "item.utility.direction.desc": "Right click in a GUI to change direction",
"item.utility.slot.desc": "Right click in a GUI to change slot",
"item.utility.downgrade": "Downgrades the slots to a max of 64 items", "item.utility.downgrade": "Downgrades the slots to a max of 64 items",
"item.utility.slot": "Slot: ",
"item.utility.slot.desc": "Right click in a GUI to change slot",
"itemGroup.functionalstorage": "Functional Storage", "itemGroup.functionalstorage": "Functional Storage",
"key.categories.storage": "Storage", "key.categories.storage": "Storage",
"key.categories.utility": "Utility", "key.categories.utility": "Utility",
@ -73,6 +74,5 @@
"storageupgrade.desc": "Multiplies the block storage by ", "storageupgrade.desc": "Multiplies the block storage by ",
"upgrade.type": "Type: ", "upgrade.type": "Type: ",
"upgrade.type.storage": "Storage", "upgrade.type.storage": "Storage",
"upgrade.type.utility": "Utility", "upgrade.type.utility": "Utility"
"frameddrawer.use": "How 2 Change Texture: \nInside a crafting window place the block you want use the texture of for the outside of the drawer in the first slot of the crafting window, on the second slot put the block that will be used for the texture on the inside of the framed drawer and on the third slot put a framed drawer. \n"
} }

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "functionalstorage:items/creative_vending_upgrade"
}
}

View File

@ -1,14 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"functionalstorage:oak_1",
"functionalstorage:spruce_1",
"functionalstorage:birch_1",
"functionalstorage:jungle_1",
"functionalstorage:acacia_1",
"functionalstorage:dark_oak_1",
"functionalstorage:crimson_1",
"functionalstorage:warped_1",
"functionalstorage:oak_4", "functionalstorage:oak_4",
"functionalstorage:spruce_4", "functionalstorage:spruce_4",
"functionalstorage:birch_4", "functionalstorage:birch_4",
@ -17,6 +9,7 @@
"functionalstorage:dark_oak_4", "functionalstorage:dark_oak_4",
"functionalstorage:crimson_4", "functionalstorage:crimson_4",
"functionalstorage:warped_4", "functionalstorage:warped_4",
"functionalstorage:framed_4",
"functionalstorage:oak_2", "functionalstorage:oak_2",
"functionalstorage:spruce_2", "functionalstorage:spruce_2",
"functionalstorage:birch_2", "functionalstorage:birch_2",
@ -24,6 +17,16 @@
"functionalstorage:acacia_2", "functionalstorage:acacia_2",
"functionalstorage:dark_oak_2", "functionalstorage:dark_oak_2",
"functionalstorage:crimson_2", "functionalstorage:crimson_2",
"functionalstorage:warped_2" "functionalstorage:warped_2",
"functionalstorage:framed_2",
"functionalstorage:oak_1",
"functionalstorage:spruce_1",
"functionalstorage:birch_1",
"functionalstorage:jungle_1",
"functionalstorage:acacia_1",
"functionalstorage:dark_oak_1",
"functionalstorage:crimson_1",
"functionalstorage:warped_1",
"functionalstorage:framed_1"
] ]
} }

View File

@ -1,15 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"functionalstorage:oak_2",
"functionalstorage:spruce_2",
"functionalstorage:birch_2",
"functionalstorage:jungle_2",
"functionalstorage:acacia_2",
"functionalstorage:dark_oak_2",
"functionalstorage:crimson_2",
"functionalstorage:warped_2",
"functionalstorage:framed_2",
"functionalstorage:oak_4", "functionalstorage:oak_4",
"functionalstorage:spruce_4", "functionalstorage:spruce_4",
"functionalstorage:birch_4", "functionalstorage:birch_4",
@ -19,6 +10,15 @@
"functionalstorage:crimson_4", "functionalstorage:crimson_4",
"functionalstorage:warped_4", "functionalstorage:warped_4",
"functionalstorage:framed_4", "functionalstorage:framed_4",
"functionalstorage:oak_2",
"functionalstorage:spruce_2",
"functionalstorage:birch_2",
"functionalstorage:jungle_2",
"functionalstorage:acacia_2",
"functionalstorage:dark_oak_2",
"functionalstorage:crimson_2",
"functionalstorage:warped_2",
"functionalstorage:framed_2",
"functionalstorage:oak_1", "functionalstorage:oak_1",
"functionalstorage:spruce_1", "functionalstorage:spruce_1",
"functionalstorage:birch_1", "functionalstorage:birch_1",

View File

@ -2,7 +2,6 @@
"replace": false, "replace": false,
"values": [ "values": [
"functionalstorage:compacting_drawer", "functionalstorage:compacting_drawer",
"functionalstorage:compacting_framed_drawer",
"functionalstorage:storage_controller", "functionalstorage:storage_controller",
"functionalstorage:armory_cabinet", "functionalstorage:armory_cabinet",
"functionalstorage:ender_drawer" "functionalstorage:ender_drawer"

View File

@ -13,7 +13,10 @@ import com.buuz135.functionalstorage.data.FunctionalStorageItemTagsProvider;
import com.buuz135.functionalstorage.data.FunctionalStorageLangProvider; import com.buuz135.functionalstorage.data.FunctionalStorageLangProvider;
import com.buuz135.functionalstorage.inventory.BigInventoryHandler; import com.buuz135.functionalstorage.inventory.BigInventoryHandler;
import com.buuz135.functionalstorage.inventory.item.DrawerStackItemHandler; import com.buuz135.functionalstorage.inventory.item.DrawerStackItemHandler;
import com.buuz135.functionalstorage.item.*; import com.buuz135.functionalstorage.item.ConfigurationToolItem;
import com.buuz135.functionalstorage.item.LinkingToolItem;
import com.buuz135.functionalstorage.item.StorageUpgradeItem;
import com.buuz135.functionalstorage.item.UpgradeItem;
import com.buuz135.functionalstorage.network.EnderDrawerSyncMessage; import com.buuz135.functionalstorage.network.EnderDrawerSyncMessage;
import com.buuz135.functionalstorage.recipe.DrawerlessWoodIngredient; import com.buuz135.functionalstorage.recipe.DrawerlessWoodIngredient;
import com.buuz135.functionalstorage.recipe.FramedDrawerRecipe; import com.buuz135.functionalstorage.recipe.FramedDrawerRecipe;
@ -107,6 +110,7 @@ public class FunctionalStorage extends ModuleController {
public static RegistryObject<Item> VOID_UPGRADE; public static RegistryObject<Item> VOID_UPGRADE;
public static RegistryObject<Item> CONFIGURATION_TOOL; public static RegistryObject<Item> CONFIGURATION_TOOL;
public static RegistryObject<Item> REDSTONE_UPGRADE; public static RegistryObject<Item> REDSTONE_UPGRADE;
public static RegistryObject<Item> CREATIVE_UPGRADE;
public static AdvancedTitaniumTab TAB = new AdvancedTitaniumTab("functionalstorage", true); public static AdvancedTitaniumTab TAB = new AdvancedTitaniumTab("functionalstorage", true);
@ -181,6 +185,12 @@ public class FunctionalStorage extends ModuleController {
CONFIGURATION_TOOL = getRegistries().registerGeneric(Item.class, "configuration_tool", ConfigurationToolItem::new); CONFIGURATION_TOOL = getRegistries().registerGeneric(Item.class, "configuration_tool", ConfigurationToolItem::new);
ENDER_DRAWER = getRegistries().registerBlockWithTile("ender_drawer", EnderDrawerBlock::new); ENDER_DRAWER = getRegistries().registerBlockWithTile("ender_drawer", EnderDrawerBlock::new);
REDSTONE_UPGRADE = getRegistries().registerGeneric(Item.class, "redstone_upgrade", () -> new UpgradeItem(new Item.Properties(), UpgradeItem.Type.UTILITY)); REDSTONE_UPGRADE = getRegistries().registerGeneric(Item.class, "redstone_upgrade", () -> new UpgradeItem(new Item.Properties(), UpgradeItem.Type.UTILITY));
CREATIVE_UPGRADE = getRegistries().registerGeneric(Item.class, "creative_vending_upgrade", () -> new UpgradeItem(new Item.Properties(), UpgradeItem.Type.STORAGE) {
@Override
public boolean isFoil(ItemStack p_41453_) {
return true;
}
});
} }
public enum DrawerType { public enum DrawerType {
@ -294,7 +304,7 @@ public class FunctionalStorage extends ModuleController {
.isPresent()) .isPresent())
.collect(Collectors.toList()) .collect(Collectors.toList())
); );
if (false){ if (true) {
event.getGenerator().addProvider(new BlockItemModelGeneratorProvider(event.getGenerator(), MOD_ID, blocksToProcess)); event.getGenerator().addProvider(new BlockItemModelGeneratorProvider(event.getGenerator(), MOD_ID, blocksToProcess));
event.getGenerator().addProvider(new FunctionalStorageBlockstateProvider(event.getGenerator(), event.getExistingFileHelper(), blocksToProcess)); event.getGenerator().addProvider(new FunctionalStorageBlockstateProvider(event.getGenerator(), event.getExistingFileHelper(), blocksToProcess));
event.getGenerator().addProvider(new TitaniumLootTableProvider(event.getGenerator(), blocksToProcess)); event.getGenerator().addProvider(new TitaniumLootTableProvider(event.getGenerator(), blocksToProcess));
@ -313,6 +323,7 @@ public class FunctionalStorage extends ModuleController {
item(PUSHING_UPGRADE.get()); item(PUSHING_UPGRADE.get());
item(VOID_UPGRADE.get()); item(VOID_UPGRADE.get());
item(REDSTONE_UPGRADE.get()); item(REDSTONE_UPGRADE.get());
item(CREATIVE_UPGRADE.get());
} }
private void item(Item item) { private void item(Item item) {
@ -332,6 +343,8 @@ public class FunctionalStorage extends ModuleController {
.texture("lock_icon", modLoc("blocks/lock")); .texture("lock_icon", modLoc("blocks/lock"));
withExistingParent(ENDER_DRAWER.getLeft().get().getRegistryName().getPath() + "_locked", modLoc(ENDER_DRAWER.getLeft().get().getRegistryName().getPath())) withExistingParent(ENDER_DRAWER.getLeft().get().getRegistryName().getPath() + "_locked", modLoc(ENDER_DRAWER.getLeft().get().getRegistryName().getPath()))
.texture("lock_icon", modLoc("blocks/lock")); .texture("lock_icon", modLoc("blocks/lock"));
withExistingParent(FRAMED_COMPACTING_DRAWER.getLeft().get().getRegistryName().getPath() + "_locked", modLoc(FRAMED_COMPACTING_DRAWER.getLeft().get().getRegistryName().getPath()))
.texture("lock_icon", modLoc("blocks/lock"));
} }
}); });
} }

View File

@ -53,6 +53,11 @@ public class CompactingDrawerTile extends ControllableDrawerTile<CompactingDrawe
return CompactingDrawerTile.this.hasDowngrade(); return CompactingDrawerTile.this.hasDowngrade();
} }
@Override
public boolean isCreative() {
return CompactingDrawerTile.this.isCreative();
}
@Override @Override
public boolean isLocked() { public boolean isLocked() {
return CompactingDrawerTile.this.isLocked(); return CompactingDrawerTile.this.isLocked();

View File

@ -250,6 +250,15 @@ public abstract class ControllableDrawerTile<T extends ControllableDrawerTile<T>
return false; return false;
} }
public boolean isCreative() {
for (int i = 0; i < storageUpgrades.getSlots(); i++) {
if (storageUpgrades.getStackInSlot(i).getItem().equals(FunctionalStorage.CREATIVE_UPGRADE.get())) {
return true;
}
}
return false;
}
public InteractionResult onSlotActivated(Player playerIn, InteractionHand hand, Direction facing, double hitX, double hitY, double hitZ, int slot) { public InteractionResult onSlotActivated(Player playerIn, InteractionHand hand, Direction facing, double hitX, double hitY, double hitZ, int slot) {
ItemStack stack = playerIn.getItemInHand(hand); ItemStack stack = playerIn.getItemInHand(hand);
if (stack.getItem().equals(FunctionalStorage.CONFIGURATION_TOOL.get()) || stack.getItem().equals(FunctionalStorage.LINKING_TOOL.get())) if (stack.getItem().equals(FunctionalStorage.CONFIGURATION_TOOL.get()) || stack.getItem().equals(FunctionalStorage.LINKING_TOOL.get()))

View File

@ -2,36 +2,24 @@ package com.buuz135.functionalstorage.block.tile;
import com.buuz135.functionalstorage.FunctionalStorage; import com.buuz135.functionalstorage.FunctionalStorage;
import com.buuz135.functionalstorage.inventory.BigInventoryHandler; import com.buuz135.functionalstorage.inventory.BigInventoryHandler;
import com.buuz135.functionalstorage.util.CompactingUtil;
import com.hrznstudio.titanium.annotation.Save; import com.hrznstudio.titanium.annotation.Save;
import com.hrznstudio.titanium.block.BasicTileBlock; import com.hrznstudio.titanium.block.BasicTileBlock;
import com.hrznstudio.titanium.block.tile.ActiveTile;
import com.hrznstudio.titanium.block.tile.BasicTile;
import com.hrznstudio.titanium.nbthandler.NBTManager;
import com.hrznstudio.titanium.util.RayTraceUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.UUID;
public class DrawerTile extends ControllableDrawerTile<DrawerTile> { public class DrawerTile extends ControllableDrawerTile<DrawerTile> {
@ -69,6 +57,11 @@ public class DrawerTile extends ControllableDrawerTile<DrawerTile> {
return DrawerTile.this.isLocked(); return DrawerTile.this.isLocked();
} }
@Override
public boolean isCreative() {
return DrawerTile.this.isCreative();
}
}; };
lazyStorage = LazyOptional.of(() -> this.handler); lazyStorage = LazyOptional.of(() -> this.handler);

View File

@ -6,34 +6,22 @@ import com.buuz135.functionalstorage.block.tile.DrawerTile;
import com.buuz135.functionalstorage.inventory.BigInventoryHandler; import com.buuz135.functionalstorage.inventory.BigInventoryHandler;
import com.buuz135.functionalstorage.item.ConfigurationToolItem; import com.buuz135.functionalstorage.item.ConfigurationToolItem;
import com.buuz135.functionalstorage.util.NumberUtils; import com.buuz135.functionalstorage.util.NumberUtils;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.VertexFormat;
import com.mojang.math.Matrix3f; import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Quaternion; import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f; import com.mojang.math.Vector3f;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font; import net.minecraft.client.gui.Font;
import net.minecraft.client.renderer.*; import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TextComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> { public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
@ -110,7 +98,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
if (!inventoryHandler.getStoredStacks().get(0).getStack().isEmpty()){ if (!inventoryHandler.getStoredStacks().get(0).getStack().isEmpty()){
matrixStack.translate(0.5, 0.5, 0.0005f); matrixStack.translate(0.5, 0.5, 0.0005f);
ItemStack stack = inventoryHandler.getStoredStacks().get(0).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(0).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(0).getAmount(), 0.015f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(0).getCount(), 0.015f, tile.getDrawerOptions());
} }
} }
@ -121,7 +109,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.5, 0.27f, 0.0005f); matrixStack.translate(0.5, 0.27f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f); matrixStack.scale(0.5f, 0.5f, 0.5f);
ItemStack stack = inventoryHandler.getStoredStacks().get(0).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(0).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(0).getAmount(), 0.02f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(0).getCount(), 0.02f, tile.getDrawerOptions());
matrixStack.popPose(); matrixStack.popPose();
} }
if (!inventoryHandler.getStoredStacks().get(1).getStack().isEmpty()){ if (!inventoryHandler.getStoredStacks().get(1).getStack().isEmpty()){
@ -129,7 +117,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.5, 0.77f, 0.0005f); matrixStack.translate(0.5, 0.77f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f); matrixStack.scale(0.5f, 0.5f, 0.5f);
ItemStack stack = inventoryHandler.getStoredStacks().get(1).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(1).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(1).getAmount(), 0.02f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(1).getCount(), 0.02f, tile.getDrawerOptions());
matrixStack.popPose(); matrixStack.popPose();
} }
} }
@ -140,7 +128,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.75, 0.27f, 0.0005f); matrixStack.translate(0.75, 0.27f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f); matrixStack.scale(0.5f, 0.5f, 0.5f);
ItemStack stack = inventoryHandler.getStoredStacks().get(0).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(0).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(0).getAmount(), 0.02f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(0).getCount(), 0.02f, tile.getDrawerOptions());
matrixStack.popPose(); matrixStack.popPose();
} }
if (!inventoryHandler.getStoredStacks().get(1).getStack().isEmpty()){ //BOTTOM LEFT if (!inventoryHandler.getStoredStacks().get(1).getStack().isEmpty()){ //BOTTOM LEFT
@ -148,7 +136,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.25, 0.27f, 0.0005f); matrixStack.translate(0.25, 0.27f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f); matrixStack.scale(0.5f, 0.5f, 0.5f);
ItemStack stack = inventoryHandler.getStoredStacks().get(1).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(1).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(1).getAmount(), 0.02f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(1).getCount(), 0.02f, tile.getDrawerOptions());
matrixStack.popPose(); matrixStack.popPose();
} }
if (!inventoryHandler.getStoredStacks().get(2).getStack().isEmpty()){ //TOP RIGHT if (!inventoryHandler.getStoredStacks().get(2).getStack().isEmpty()){ //TOP RIGHT
@ -156,7 +144,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.75, 0.77f, 0.0005f); matrixStack.translate(0.75, 0.77f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f); matrixStack.scale(0.5f, 0.5f, 0.5f);
ItemStack stack = inventoryHandler.getStoredStacks().get(2).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(2).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(2).getAmount(), 0.02f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(2).getCount(), 0.02f, tile.getDrawerOptions());
matrixStack.popPose(); matrixStack.popPose();
} }
if (!inventoryHandler.getStoredStacks().get(3).getStack().isEmpty()){ //TOP LEFT if (!inventoryHandler.getStoredStacks().get(3).getStack().isEmpty()){ //TOP LEFT
@ -164,7 +152,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.25, 0.77f, 0.0005f); matrixStack.translate(0.25, 0.77f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f); matrixStack.scale(0.5f, 0.5f, 0.5f);
ItemStack stack = inventoryHandler.getStoredStacks().get(3).getStack(); ItemStack stack = inventoryHandler.getStoredStacks().get(3).getStack();
renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStoredStacks().get(3).getAmount(), 0.02f, tile.getDrawerOptions()); renderStack(matrixStack, bufferIn, combinedLightIn, combinedOverlayIn, stack, inventoryHandler.getStackInSlot(3).getCount(), 0.02f, tile.getDrawerOptions());
matrixStack.popPose(); matrixStack.popPose();
} }
} }

View File

@ -63,7 +63,7 @@ public class FunctionalDrawerProvider implements IProbeInfoProvider {
for (int i = 0; i < handler.getStoredStacks().size(); i++) { for (int i = 0; i < handler.getStoredStacks().size(); i++) {
BigInventoryHandler.BigStack storedStack = handler.getStoredStacks().get(i); BigInventoryHandler.BigStack storedStack = handler.getStoredStacks().get(i);
if (storedStack.getAmount() > 0 || (handler.isLocked() && !storedStack.getStack().isEmpty())) { if (storedStack.getAmount() > 0 || (handler.isLocked() && !storedStack.getStack().isEmpty())) {
elementVertical.element(new CustomElementItemStack(storedStack.getStack(), NumberUtils.getFormatedBigNumber(storedStack.getAmount()) + "/" + NumberUtils.getFormatedBigNumber(handler.getSlotLimit(i)), iProbeInfo.defaultItemStyle(), true)); elementVertical.element(new CustomElementItemStack(storedStack.getStack(), NumberUtils.getFormatedBigNumber(handler.getStackInSlot(i).getCount()) + "/" + NumberUtils.getFormatedBigNumber(handler.getSlotLimit(i)), iProbeInfo.defaultItemStyle(), true));
} }
} }
if (elementVertical.getElements().size() > 0) vertical.element(elementVertical); if (elementVertical.getElements().size() > 0) vertical.element(elementVertical);
@ -74,7 +74,7 @@ public class FunctionalDrawerProvider implements IProbeInfoProvider {
for (int i = 0; i < handler.getStoredStacks().size(); i++) { for (int i = 0; i < handler.getStoredStacks().size(); i++) {
BigInventoryHandler.BigStack storedStack = handler.getStoredStacks().get(i); BigInventoryHandler.BigStack storedStack = handler.getStoredStacks().get(i);
if (storedStack.getAmount() > 0 || (handler.isLocked() && !storedStack.getStack().isEmpty())) { if (storedStack.getAmount() > 0 || (handler.isLocked() && !storedStack.getStack().isEmpty())) {
abstractElementPanel.element(new CustomElementItemStack(storedStack.getStack(), NumberUtils.getFormatedBigNumber(storedStack.getAmount()) + "/" + NumberUtils.getFormatedBigNumber(handler.getSlotLimit(i)), iProbeInfo.defaultItemStyle())); abstractElementPanel.element(new CustomElementItemStack(storedStack.getStack(), NumberUtils.getFormatedBigNumber(handler.getStackInSlot(i).getCount()) + "/" + NumberUtils.getFormatedBigNumber(handler.getSlotLimit(i)), iProbeInfo.defaultItemStyle()));
} }
} }
if (abstractElementPanel.getElements().size() > 0) vertical.element(abstractElementPanel); if (abstractElementPanel.getElements().size() > 0) vertical.element(abstractElementPanel);
@ -106,7 +106,7 @@ public class FunctionalDrawerProvider implements IProbeInfoProvider {
} }
if (blockEntity instanceof CompactingDrawerTile) { if (blockEntity instanceof CompactingDrawerTile) {
CompactingInventoryHandler inventoryHandler = ((CompactingDrawerTile) blockEntity).getHandler(); CompactingInventoryHandler inventoryHandler = ((CompactingDrawerTile) blockEntity).getHandler();
if (player.isShiftKeyDown() || probeMode == ProbeMode.EXTENDED) { if (player.isShiftKeyDown() || probeMode == ProbeMode.EXTENDED || inventoryHandler.isCreative()) {
ElementVertical abstractElementPanel = new ElementVertical(iProbeInfo.defaultLayoutStyle().spacing(2).leftPadding(7).rightPadding(7)); ElementVertical abstractElementPanel = new ElementVertical(iProbeInfo.defaultLayoutStyle().spacing(2).leftPadding(7).rightPadding(7));
abstractElementPanel.getStyle().borderColor(Color.CYAN.darker().getRGB()); abstractElementPanel.getStyle().borderColor(Color.CYAN.darker().getRGB());
abstractElementPanel.element(new CustomElementItemStack(inventoryHandler.getResultList().get(2).getResult(), NumberUtils.getFormatedBigNumber(inventoryHandler.getStackInSlot(2).getCount()) + "/" + NumberUtils.getFormatedBigNumber(inventoryHandler.getSlotLimit(2)), iProbeInfo.defaultItemStyle(), true)); abstractElementPanel.element(new CustomElementItemStack(inventoryHandler.getResultList().get(2).getResult(), NumberUtils.getFormatedBigNumber(inventoryHandler.getStackInSlot(2).getCount()) + "/" + NumberUtils.getFormatedBigNumber(inventoryHandler.getSlotLimit(2)), iProbeInfo.defaultItemStyle(), true));

View File

@ -52,6 +52,7 @@ public class FunctionalStorageLangProvider extends LanguageProvider {
this.add(FunctionalStorage.PUSHING_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.PUSHING_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase()) ); this.add(FunctionalStorage.PUSHING_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.PUSHING_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase()) );
this.add(FunctionalStorage.VOID_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.VOID_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase()) ); this.add(FunctionalStorage.VOID_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.VOID_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase()) );
this.add(FunctionalStorage.REDSTONE_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.REDSTONE_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase())); this.add(FunctionalStorage.REDSTONE_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.REDSTONE_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase()));
this.add(FunctionalStorage.CREATIVE_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.CREATIVE_UPGRADE.get().getRegistryName().getPath().replace('_', ' ').toLowerCase()));
this.add(FunctionalStorage.ARMORY_CABINET.getLeft().get(), "Armory Cabinet"); this.add(FunctionalStorage.ARMORY_CABINET.getLeft().get(), "Armory Cabinet");
this.add(FunctionalStorage.CONFIGURATION_TOOL.get(), "Configuration Tool"); this.add(FunctionalStorage.CONFIGURATION_TOOL.get(), "Configuration Tool");
this.add("item.utility.downgrade", "Downgrades the slots to a max of 64 items"); this.add("item.utility.downgrade", "Downgrades the slots to a max of 64 items");

View File

@ -40,19 +40,21 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
if (type.getSlots() == slot) return ItemStack.EMPTY; if (type.getSlots() == slot) return ItemStack.EMPTY;
BigStack bigStack = this.storedStacks.get(slot); BigStack bigStack = this.storedStacks.get(slot);
ItemStack copied = bigStack.getStack().copy(); ItemStack copied = bigStack.getStack().copy();
copied.setCount(bigStack.getAmount()); copied.setCount(isCreative() ? Integer.MAX_VALUE : bigStack.getAmount());
return copied; return copied;
} }
@Nonnull @Nonnull
@Override @Override
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
if (isVoid() && type.getSlots() == slot && isVoidValid(stack)) return ItemStack.EMPTY; if (isVoid() && type.getSlots() == slot && isVoidValid(stack) || (isVoidValid(stack) && isCreative()))
return ItemStack.EMPTY;
if (isValid(slot, stack)) { if (isValid(slot, stack)) {
BigStack bigStack = this.storedStacks.get(slot); BigStack bigStack = this.storedStacks.get(slot);
int inserted = Math.min(getSlotLimit(slot) - bigStack.getAmount(), stack.getCount()); int inserted = Math.min(getSlotLimit(slot) - bigStack.getAmount(), stack.getCount());
if (!simulate) { if (!simulate) {
if (bigStack.getStack().isEmpty()) bigStack.setStack(ItemHandlerHelper.copyStackWithSize(stack, stack.getMaxStackSize())); if (bigStack.getStack().isEmpty())
bigStack.setStack(ItemHandlerHelper.copyStackWithSize(stack, stack.getMaxStackSize()));
bigStack.setAmount(Math.min(bigStack.getAmount() + inserted, getSlotLimit(slot))); bigStack.setAmount(Math.min(bigStack.getAmount() + inserted, getSlotLimit(slot)));
onChange(); onChange();
} }
@ -72,7 +74,7 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
if (bigStack.getAmount() <= amount) { if (bigStack.getAmount() <= amount) {
ItemStack out = bigStack.getStack().copy(); ItemStack out = bigStack.getStack().copy();
int newAmount = bigStack.getAmount(); int newAmount = bigStack.getAmount();
if (!simulate) { if (!simulate && !isCreative()) {
if (!isLocked()) bigStack.setStack(ItemStack.EMPTY); if (!isLocked()) bigStack.setStack(ItemStack.EMPTY);
bigStack.setAmount(0); bigStack.setAmount(0);
onChange(); onChange();
@ -80,7 +82,7 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
out.setCount(newAmount); out.setCount(newAmount);
return out; return out;
} else { } else {
if (!simulate) { if (!simulate && !isCreative()) {
bigStack.setAmount(bigStack.getAmount() - amount); bigStack.setAmount(bigStack.getAmount() - amount);
onChange(); onChange();
} }
@ -92,6 +94,7 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
@Override @Override
public int getSlotLimit(int slot) { public int getSlotLimit(int slot) {
if (isCreative()) return Integer.MAX_VALUE;
if (type.getSlots() == slot) return Integer.MAX_VALUE; if (type.getSlots() == slot) return Integer.MAX_VALUE;
double stackSize = 1; double stackSize = 1;
if (!getStoredStacks().get(slot).getStack().isEmpty()) { if (!getStoredStacks().get(slot).getStack().isEmpty()) {
@ -155,6 +158,8 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
public abstract boolean isLocked(); public abstract boolean isLocked();
public abstract boolean isCreative();
public List<BigStack> getStoredStacks() { public List<BigStack> getStoredStacks() {
return storedStacks; return storedStacks;
} }

View File

@ -44,14 +44,14 @@ public abstract class CompactingInventoryHandler implements IItemHandler, INBTSe
if (slot == 3) return ItemStack.EMPTY; if (slot == 3) return ItemStack.EMPTY;
CompactingUtil.Result bigStack = this.resultList.get(slot); CompactingUtil.Result bigStack = this.resultList.get(slot);
ItemStack copied = bigStack.getResult().copy(); ItemStack copied = bigStack.getResult().copy();
copied.setCount(this.amount / bigStack.getNeeded()); copied.setCount(isCreative() ? Integer.MAX_VALUE : this.amount / bigStack.getNeeded());
return copied; return copied;
} }
@Nonnull @Nonnull
@Override @Override
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
if (isVoid() && slot == 3 && isVoidValid(stack)) return ItemStack.EMPTY; if (isVoid() && slot == 3 && isVoidValid(stack) || (isVoidValid(stack) && isCreative())) return ItemStack.EMPTY;
if (isValid(slot, stack)) { if (isValid(slot, stack)) {
CompactingUtil.Result result = this.resultList.get(slot); CompactingUtil.Result result = this.resultList.get(slot);
int inserted = Math.min(getSlotLimit(slot) * result.getNeeded() - amount, stack.getCount() * result.getNeeded()); int inserted = Math.min(getSlotLimit(slot) * result.getNeeded() - amount, stack.getCount() * result.getNeeded());
@ -114,7 +114,7 @@ public abstract class CompactingInventoryHandler implements IItemHandler, INBTSe
if (stackAmount >= this.amount) { if (stackAmount >= this.amount) {
ItemStack out = bigStack.getResult().copy(); ItemStack out = bigStack.getResult().copy();
int newAmount = (int) Math.floor(this.amount / bigStack.getNeeded()); int newAmount = (int) Math.floor(this.amount / bigStack.getNeeded());
if (!simulate) { if (!simulate && !isCreative()) {
this.amount -= (newAmount * bigStack.getNeeded()); this.amount -= (newAmount * bigStack.getNeeded());
if (this.amount == 0) reset(); if (this.amount == 0) reset();
onChange(); onChange();
@ -122,7 +122,7 @@ public abstract class CompactingInventoryHandler implements IItemHandler, INBTSe
out.setCount(newAmount); out.setCount(newAmount);
return out; return out;
} else { } else {
if (!simulate) { if (!simulate && !isCreative()) {
this.amount -= stackAmount; this.amount -= stackAmount;
onChange(); onChange();
} }
@ -136,6 +136,7 @@ public abstract class CompactingInventoryHandler implements IItemHandler, INBTSe
@Override @Override
public int getSlotLimit(int slot) { public int getSlotLimit(int slot) {
if (isCreative()) return Integer.MAX_VALUE;
if (slot == 3) return Integer.MAX_VALUE; if (slot == 3) return Integer.MAX_VALUE;
int total = TOTAL_AMOUNT; int total = TOTAL_AMOUNT;
if (hasDowngrade()) total = 64 * 9 * 9; if (hasDowngrade()) total = 64 * 9 * 9;
@ -204,4 +205,6 @@ public abstract class CompactingInventoryHandler implements IItemHandler, INBTSe
} }
public abstract boolean hasDowngrade(); public abstract boolean hasDowngrade();
public abstract boolean isCreative();
} }

View File

@ -70,6 +70,11 @@ public class EnderInventoryHandler extends BigInventoryHandler implements ILocka
return locked; return locked;
} }
@Override
public boolean isCreative() {
return false;
}
public void setFrequency(String frequency) { public void setFrequency(String frequency) {
this.frequency = frequency; this.frequency = frequency;
} }