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.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 {
functionalstorage {

View File

@ -6,6 +6,7 @@ e505e84f33a45dea1ef5dc4f6ab500965a32d1f3 assets/functionalstorage/blockstates/bi
4803730c1801ac8c78703c4db182b2e116d02035 assets/functionalstorage/blockstates/birch_2.json
415f30768aa5f298098192b8a887d8b01617566b assets/functionalstorage/blockstates/birch_4.json
62bfbb466ae1f92b81db8ad38259b0fb52a56dcd assets/functionalstorage/blockstates/compacting_drawer.json
63a30228dd6ea390327977455a30f0ef4a802463 assets/functionalstorage/blockstates/compacting_framed_drawer.json
764fd595f14c2f186834a5c073dc40fd783de2d5 assets/functionalstorage/blockstates/crimson_1.json
75ec6d10e1cf1e98fb5ec2e20727cac47829b0b4 assets/functionalstorage/blockstates/crimson_2.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
6a6edbfb0407982b63fd75e614591b0fea2a8c96 assets/functionalstorage/blockstates/dark_oak_4.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
938ce731a06469a054b6217c168b45886a82d572 assets/functionalstorage/blockstates/jungle_2.json
0e8619fea465be18de161b81904e1e9596e01b14 assets/functionalstorage/blockstates/jungle_4.json
@ -26,7 +30,7 @@ a50aeb3877dd4003bb3ed359fccde1f3674bc028 assets/functionalstorage/blockstates/sp
fbf8ebd85350f3b4ad0bf6faf51f9ecf0677bf5b assets/functionalstorage/blockstates/warped_1.json
bcd4b5e128d5175bea44ecae340aeec86cd5a123 assets/functionalstorage/blockstates/warped_2.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
c7d0376ba2a080ba12c344369ad11538899db176 assets/functionalstorage/models/block/acacia_2_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
8b466330111b80833458ae6e23f1f475d4fc0671 assets/functionalstorage/models/block/birch_4_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
323a60308b46df6110ad0f02bd208e1e449bfa59 assets/functionalstorage/models/block/crimson_2_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
b8cc25554026c56044dad18aa07f0e092eb028da assets/functionalstorage/models/block/dark_oak_4_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
d447ad68f1d5a2ea467ec485bbbbb334f79cbdea assets/functionalstorage/models/block/jungle_2_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
f9c11e430cfeef0c24c5b10b7e6bdff04d5efa6a assets/functionalstorage/models/item/collector_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
0619620911ab7512e57a491beef71dc68769ba3b assets/functionalstorage/models/item/gold_upgrade.json
d9f1bebe92b59f71359f39dc3441135989fde037 assets/functionalstorage/models/item/iron_downgrade.json
f768a7b0a4e49703c36318bd3da300640caaa295 assets/functionalstorage/models/item/netherite_upgrade.json
443379309025696b7608536277f33a6c444fa525 assets/functionalstorage/models/item/puller_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
2a0e446d0ec43f1e148ce6cbb192cc6e925b860d data/functionalstorage/advancements/recipes/functionalstorage/netherite_upgrade.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_4.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_2.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_4.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_2.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_4.json
a1a4e8570d19a850f6290d5e8cb00bf226a5d082 data/functionalstorage/recipes/acacia_1.json
e3138f15dbdc49225d5c66d2313cb4c6f1372ec3 data/functionalstorage/recipes/acacia_2.json
371657e01e4e599165049bbc686fca5ab0c27f18 data/functionalstorage/recipes/acacia_4.json
c87581a1ee3314927a0a520078a77577e86a7046 data/functionalstorage/recipes/acacia_2.json
2e3d4447401ef8c857b427cfba21d4026a83a403 data/functionalstorage/recipes/acacia_4.json
46c98779b06bf10965e986fb54e359fb5fa260c9 data/functionalstorage/recipes/armory_cabinet.json
60434750145755324af7e86952e2905efc616f5e data/functionalstorage/recipes/birch_1.json
b1e0180179e45d5dcce15a0d9e4c7240b32a0f0a data/functionalstorage/recipes/birch_2.json
1bb8f4e3018ec26c7ee8179198d114f5f8a5dcd5 data/functionalstorage/recipes/birch_4.json
21fd122163dec07a57bf996c88eda09d40ea72b9 data/functionalstorage/recipes/birch_2.json
28dbb0349028aaef447bbc44ec3d530119899708 data/functionalstorage/recipes/birch_4.json
d2c1db653dc024b5dbc6ffa01fb035f616e09388 data/functionalstorage/recipes/collector_upgrade.json
2f055e6a11a6e3ccb23545268552792af4b8a4a4 data/functionalstorage/recipes/compacting_drawer.json
8aaad5ee82ef0fc5747280f0cc4f0f6f6f80437f data/functionalstorage/recipes/compacting_framed_drawer.json
17e341b2900147c9ed7786ae45b400107135b382 data/functionalstorage/recipes/configuration_tool.json
ef2fdca03f910cdffd427af1423b3c85587471c7 data/functionalstorage/recipes/copper_upgrade.json
b03ea02d6ccf84af8bf9482b2b0ddfa0284a5520 data/functionalstorage/recipes/crimson_1.json
ea3bf44b8e70ee71f488c62cc674839ede650a04 data/functionalstorage/recipes/crimson_2.json
4a2c846cccedc425748130054972d7e0f2757276 data/functionalstorage/recipes/crimson_4.json
838e899d596e12c5837c03c1626edeed1afdc82a data/functionalstorage/recipes/crimson_2.json
7b1eb766dff38ec1fef050e3d3a83ef7f91a7d81 data/functionalstorage/recipes/crimson_4.json
6236c7bc1e0b621d7024c8e493de684a2083c486 data/functionalstorage/recipes/dark_oak_1.json
9a466a0d3da5f628c200cfe7a41d39e4740e228f data/functionalstorage/recipes/dark_oak_2.json
c9927a4a2a6c435615cac88249885706fa22f4a1 data/functionalstorage/recipes/dark_oak_4.json
cbcf3ee5994888e92e713e4fb5ab310ddea0fdb6 data/functionalstorage/recipes/diamond_upgrade.json
99cf13a96433c91e9527a224f277ce4616a74f89 data/functionalstorage/recipes/dark_oak_2.json
8ca487b5185aa447b4db73561cd02eebc8b7aee1 data/functionalstorage/recipes/dark_oak_4.json
84255e96e3cb8df5b7f4209adf6da5349cdb6b51 data/functionalstorage/recipes/diamond_upgrade.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
839587568a4163215b2b83d4e148e687d22e43f4 data/functionalstorage/recipes/iron_downgrade.json
b01f9c03f49dc1a13acbb1f1099e9cad2aa1a3ad data/functionalstorage/recipes/jungle_1.json
a57bd729cb2e911f54c8dda1da568ae249ee12f4 data/functionalstorage/recipes/jungle_2.json
53c35d42c899301fa5754f8a2274b59f8ddbec87 data/functionalstorage/recipes/jungle_4.json
7eeeaf93721922b6af5208869ab3bf750118a02f data/functionalstorage/recipes/jungle_2.json
020fe3a6c2c581490f5d785d42d129be49d6fe8c data/functionalstorage/recipes/jungle_4.json
51980e8cb5cc2e90876ed6614017ce81d3024e8b data/functionalstorage/recipes/linking_tool.json
9fd192413aa65e1b43f20d026e13796d10d1862f data/functionalstorage/recipes/netherite_upgrade.json
1ebe2893f36e62a42fe14425e8fc1738e00e7a6b data/functionalstorage/recipes/oak_1.json
c74326f87072d56cf74892ea0d1ba06ba2ab9d52 data/functionalstorage/recipes/oak_2.json
e2e084bb7d7b47e397380bf521b97abbfeb690fa data/functionalstorage/recipes/oak_4.json
81597dd73555d34f75f29c7aa34481b56bc62de1 data/functionalstorage/recipes/oak_2.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
555775b027e86b4d66d3d79ed3531e40c9edc455 data/functionalstorage/recipes/pusher_upgrade.json
d95d12dc990cc71a2d3e89ea97034ef23b72443c data/functionalstorage/recipes/redstone_upgrade.json
fcaef11a796fe7bff1363cface153e9a5f6dfc5b data/functionalstorage/recipes/spruce_1.json
b400b9b87446387d55b8c16d5d2f3889621f7f26 data/functionalstorage/recipes/spruce_2.json
ff234dac4f0b0b4f83ffa92f2d2fb1074c68df43 data/functionalstorage/recipes/spruce_4.json
b012c3427bae69a938a53f404ec45cf40234e301 data/functionalstorage/recipes/spruce_2.json
452bc021fe90b3055f9b55945aa20b2d67d355c2 data/functionalstorage/recipes/spruce_4.json
d6b02c345edd356b8e4b7421bdd453f454c6ed7f data/functionalstorage/recipes/storage_controller.json
70f002746453274121bb4fc7146ed9a738414228 data/functionalstorage/recipes/void_upgrade.json
bcb281904eac23183c45786e3d703d24bba92be6 data/functionalstorage/recipes/warped_1.json
8fc3f76a2c57eb4d80ce86947fabebe48fa6f692 data/functionalstorage/recipes/warped_2.json
7510a8ca1f1e3bb63f4c4f4add0bb6b713feaa0b data/functionalstorage/recipes/warped_4.json
db0122948639b122cb0c1df7530996e9784356b0 data/functionalstorage/tags/items/drawer.json
12ec935226bf5a6a1493d353ef6dc6c224c256dd data/functionalstorage/tags/items/ignore_crafting_check.json
db0122948639b122cb0c1df7530996e9784356b0 data/minecraft/tags/blocks/mineable/axe.json
91e56e4558ed55571e9972bca1e8a1772655abdd data/functionalstorage/recipes/warped_2.json
344de1ec16ecf9095fd5790c1c60a4014520829e data/functionalstorage/recipes/warped_4.json
34d82556c1781b4ce5da2773e22edc2589d629e8 data/functionalstorage/tags/items/drawer.json
486a80437ce84b27a3d93db5134ea1fb4f66401f data/functionalstorage/tags/items/ignore_crafting_check.json
34d82556c1781b4ce5da2773e22edc2589d629e8 data/minecraft/tags/blocks/mineable/axe.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_4": "Dark Oak Drawer (2x2)",
"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_2": "Jungle Drawer (1x2)",
"block.functionalstorage.jungle_4": "Jungle Drawer (2x2)",
@ -27,10 +30,6 @@
"block.functionalstorage.warped_1": "Warped Drawer (1x1)",
"block.functionalstorage.warped_2": "Warped Drawer (1x2)",
"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.locking": "Locking",
"configurationtool.configmode.toggle_numbers": "Hide/Show Amounts",
@ -38,9 +37,11 @@
"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.",
"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.configuration_tool": "Configuration Tool",
"item.functionalstorage.copper_upgrade": "Copper Upgrade",
"item.functionalstorage.creative_vending_upgrade": "Creative Vending Upgrade",
"item.functionalstorage.diamond_upgrade": "Diamond Upgrade",
"item.functionalstorage.gold_upgrade": "Gold Upgrade",
"item.functionalstorage.iron_downgrade": "Iron Downgrade",
@ -48,13 +49,13 @@
"item.functionalstorage.netherite_upgrade": "Netherite Upgrade",
"item.functionalstorage.puller_upgrade": "Puller Upgrade",
"item.functionalstorage.pusher_upgrade": "Pusher Upgrade",
"item.functionalstorage.void_upgrade": "Void Upgrade",
"item.functionalstorage.redstone_upgrade": "Redstone Upgrade",
"item.functionalstorage.void_upgrade": "Void Upgrade",
"item.utility.direction": "Direction: ",
"item.utility.slot": "Slot: ",
"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.slot": "Slot: ",
"item.utility.slot.desc": "Right click in a GUI to change slot",
"itemGroup.functionalstorage": "Functional Storage",
"key.categories.storage": "Storage",
"key.categories.utility": "Utility",
@ -73,6 +74,5 @@
"storageupgrade.desc": "Multiplies the block storage by ",
"upgrade.type": "Type: ",
"upgrade.type.storage": "Storage",
"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"
"upgrade.type.utility": "Utility"
}

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,
"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:spruce_4",
"functionalstorage:birch_4",
@ -17,6 +9,7 @@
"functionalstorage:dark_oak_4",
"functionalstorage:crimson_4",
"functionalstorage:warped_4",
"functionalstorage:framed_4",
"functionalstorage:oak_2",
"functionalstorage:spruce_2",
"functionalstorage:birch_2",
@ -24,6 +17,16 @@
"functionalstorage:acacia_2",
"functionalstorage:dark_oak_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,
"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:spruce_4",
"functionalstorage:birch_4",
@ -19,6 +10,15 @@
"functionalstorage:crimson_4",
"functionalstorage:warped_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:spruce_1",
"functionalstorage:birch_1",

View File

@ -2,7 +2,6 @@
"replace": false,
"values": [
"functionalstorage:compacting_drawer",
"functionalstorage:compacting_framed_drawer",
"functionalstorage:storage_controller",
"functionalstorage:armory_cabinet",
"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.inventory.BigInventoryHandler;
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.recipe.DrawerlessWoodIngredient;
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> CONFIGURATION_TOOL;
public static RegistryObject<Item> REDSTONE_UPGRADE;
public static RegistryObject<Item> CREATIVE_UPGRADE;
public static AdvancedTitaniumTab TAB = new AdvancedTitaniumTab("functionalstorage", true);
@ -180,7 +184,13 @@ public class FunctionalStorage extends ModuleController {
ARMORY_CABINET = getRegistries().registerBlockWithTile("armory_cabinet", ArmoryCabinetBlock::new);
CONFIGURATION_TOOL = getRegistries().registerGeneric(Item.class, "configuration_tool", ConfigurationToolItem::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 {
@ -294,7 +304,7 @@ public class FunctionalStorage extends ModuleController {
.isPresent())
.collect(Collectors.toList())
);
if (false){
if (true) {
event.getGenerator().addProvider(new BlockItemModelGeneratorProvider(event.getGenerator(), MOD_ID, blocksToProcess));
event.getGenerator().addProvider(new FunctionalStorageBlockstateProvider(event.getGenerator(), event.getExistingFileHelper(), blocksToProcess));
event.getGenerator().addProvider(new TitaniumLootTableProvider(event.getGenerator(), blocksToProcess));
@ -313,6 +323,7 @@ public class FunctionalStorage extends ModuleController {
item(PUSHING_UPGRADE.get());
item(VOID_UPGRADE.get());
item(REDSTONE_UPGRADE.get());
item(CREATIVE_UPGRADE.get());
}
private void item(Item item) {
@ -332,6 +343,8 @@ public class FunctionalStorage extends ModuleController {
.texture("lock_icon", modLoc("blocks/lock"));
withExistingParent(ENDER_DRAWER.getLeft().get().getRegistryName().getPath() + "_locked", modLoc(ENDER_DRAWER.getLeft().get().getRegistryName().getPath()))
.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();
}
@Override
public boolean isCreative() {
return CompactingDrawerTile.this.isCreative();
}
@Override
public boolean isLocked() {
return CompactingDrawerTile.this.isLocked();

View File

@ -250,6 +250,15 @@ public abstract class ControllableDrawerTile<T extends ControllableDrawerTile<T>
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) {
ItemStack stack = playerIn.getItemInHand(hand);
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.inventory.BigInventoryHandler;
import com.buuz135.functionalstorage.util.CompactingUtil;
import com.hrznstudio.titanium.annotation.Save;
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.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntityType;
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.util.LazyOptional;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.UUID;
public class DrawerTile extends ControllableDrawerTile<DrawerTile> {
@ -69,6 +57,11 @@ public class DrawerTile extends ControllableDrawerTile<DrawerTile> {
return DrawerTile.this.isLocked();
}
@Override
public boolean isCreative() {
return DrawerTile.this.isCreative();
}
};
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.item.ConfigurationToolItem;
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.VertexConsumer;
import com.mojang.blaze3d.vertex.VertexFormat;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
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.blockentity.BlockEntityRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
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.level.block.Block;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
@ -110,7 +98,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
if (!inventoryHandler.getStoredStacks().get(0).getStack().isEmpty()){
matrixStack.translate(0.5, 0.5, 0.0005f);
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.scale(0.5f, 0.5f, 0.5f);
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();
}
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.scale(0.5f, 0.5f, 0.5f);
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();
}
}
@ -140,7 +128,7 @@ public class DrawerRenderer implements BlockEntityRenderer<DrawerTile> {
matrixStack.translate(0.75, 0.27f, 0.0005f);
matrixStack.scale(0.5f, 0.5f, 0.5f);
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();
}
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.scale(0.5f, 0.5f, 0.5f);
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();
}
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.scale(0.5f, 0.5f, 0.5f);
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();
}
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.scale(0.5f, 0.5f, 0.5f);
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();
}
}

View File

@ -63,7 +63,7 @@ public class FunctionalDrawerProvider implements IProbeInfoProvider {
for (int i = 0; i < handler.getStoredStacks().size(); i++) {
BigInventoryHandler.BigStack storedStack = handler.getStoredStacks().get(i);
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);
@ -74,7 +74,7 @@ public class FunctionalDrawerProvider implements IProbeInfoProvider {
for (int i = 0; i < handler.getStoredStacks().size(); i++) {
BigInventoryHandler.BigStack storedStack = handler.getStoredStacks().get(i);
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);
@ -106,7 +106,7 @@ public class FunctionalDrawerProvider implements IProbeInfoProvider {
}
if (blockEntity instanceof CompactingDrawerTile) {
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));
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));

View File

@ -51,7 +51,8 @@ public class FunctionalStorageLangProvider extends LanguageProvider {
this.add(FunctionalStorage.PULLING_UPGRADE.get(), WordUtils.capitalize(FunctionalStorage.PULLING_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.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.CONFIGURATION_TOOL.get(), "Configuration Tool");
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;
BigStack bigStack = this.storedStacks.get(slot);
ItemStack copied = bigStack.getStack().copy();
copied.setCount(bigStack.getAmount());
copied.setCount(isCreative() ? Integer.MAX_VALUE : bigStack.getAmount());
return copied;
}
@Nonnull
@Override
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)) {
BigStack bigStack = this.storedStacks.get(slot);
int inserted = Math.min(getSlotLimit(slot) - bigStack.getAmount(), stack.getCount());
if (!simulate){
if (bigStack.getStack().isEmpty()) bigStack.setStack(ItemHandlerHelper.copyStackWithSize(stack, stack.getMaxStackSize()));
if (!simulate) {
if (bigStack.getStack().isEmpty())
bigStack.setStack(ItemHandlerHelper.copyStackWithSize(stack, stack.getMaxStackSize()));
bigStack.setAmount(Math.min(bigStack.getAmount() + inserted, getSlotLimit(slot)));
onChange();
}
@ -72,7 +74,7 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
if (bigStack.getAmount() <= amount) {
ItemStack out = bigStack.getStack().copy();
int newAmount = bigStack.getAmount();
if (!simulate) {
if (!simulate && !isCreative()) {
if (!isLocked()) bigStack.setStack(ItemStack.EMPTY);
bigStack.setAmount(0);
onChange();
@ -80,7 +82,7 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
out.setCount(newAmount);
return out;
} else {
if (!simulate) {
if (!simulate && !isCreative()) {
bigStack.setAmount(bigStack.getAmount() - amount);
onChange();
}
@ -92,6 +94,7 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
@Override
public int getSlotLimit(int slot) {
if (isCreative()) return Integer.MAX_VALUE;
if (type.getSlots() == slot) return Integer.MAX_VALUE;
double stackSize = 1;
if (!getStoredStacks().get(slot).getStack().isEmpty()) {
@ -155,6 +158,8 @@ public abstract class BigInventoryHandler implements IItemHandler, INBTSerializa
public abstract boolean isLocked();
public abstract boolean isCreative();
public List<BigStack> getStoredStacks() {
return storedStacks;
}

View File

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

View File

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