-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: generate_drawers function to place all possible drawers
- Loading branch information
Showing
1 changed file
with
87 additions
and
0 deletions.
There are no files selected for viewing
87 changes: 87 additions & 0 deletions
87
data/simpledrawer/functions/impl/generate_drawers.mcfunction
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
|
||
|
||
|
||
|
||
|
||
|
||
def place_drawer(wood_type, variant, drawer_type, upgrade, hopper): | ||
scoreboard players add #global simpledrawer.new_drawer.id 1 | ||
data modify storage simpledrawer:main temp.simpledrawer set from storage simpledrawer:main ItemsNBT.new_drawer.tag.BlockEntityTag.Items[0].tag.simpledrawer | ||
|
||
data modify storage simpledrawer:main temp.simpledrawer.wood_type set value f"{wood_type}" | ||
data modify storage simpledrawer:main temp.simpledrawer.type set value f"{drawer_type}" | ||
data modify storage simpledrawer:main temp.simpledrawer.variant set value f"{variant}" | ||
data modify storage simpledrawer:main temp.simpledrawer.upgrade set value f"{upgrade}" | ||
raw f"data modify storage simpledrawer:main temp.simpledrawer.maxCount set from storage simpledrawer:main drawer_type.{upgrade}.maxCount" | ||
raw f"data modify storage simpledrawer:main temp.simpledrawer.hopper set value {hopper}b" | ||
|
||
if drawer_type == "compacting": | ||
data modify storage simpledrawer:main temp.simpledrawer.current_material set value "none" | ||
data modify storage simpledrawer:main temp.simpledrawer.current_material_name set value '{"text":"none"}' | ||
data modify storage simpledrawer:main temp.simpledrawer.slot_count set value 1 | ||
|
||
|
||
execute rotated 180 0 align xyz positioned ~.5 ~.5 ~.5 summon item_display run function simpledrawer:impl/new_drawer/place/base | ||
|
||
|
||
|
||
wood_types = [ | ||
"acacia", | ||
"bamboo", | ||
"birch", | ||
"cherry", | ||
"crimson", | ||
"dark_oak", | ||
"jungle", | ||
"mangrove", | ||
"spruce", | ||
"warped", | ||
"oak" | ||
] | ||
wood_types.sort() | ||
|
||
drawer_variants = [ | ||
"single", | ||
"double", | ||
"quadruple", | ||
] | ||
|
||
upgrades = [ | ||
"wood", | ||
"iron", | ||
"gold", | ||
"diamond", | ||
"star", | ||
"netherite", | ||
] | ||
|
||
|
||
|
||
for i,wood_type in enumerate(wood_types): | ||
for j,drawer_variant in enumerate(drawer_variants): | ||
for hopper in [0,1]: | ||
for k,upgrade in enumerate(upgrades): | ||
i_offset = 2*i | ||
j_offset = 2*j + len(drawer_variants)*2*hopper | ||
k_offset = 2*k | ||
name = f"simpledrawer:impl/generate_all_drawer/{wood_type}_{drawer_variant}_{upgrade}_{hopper}" | ||
function name: | ||
place_drawer("simpledrawer:"+wood_type, drawer_variant, "normal", upgrade, hopper) | ||
execute positioned ~i_offset ~k_offset ~j_offset run function name | ||
|
||
i+=1 | ||
j = 0 | ||
|
||
|
||
|
||
for hopper in [0,1]: | ||
for k,upgrade in enumerate(upgrades): | ||
i_offset = 2*i | ||
j_offset = 2*j + len(drawer_variants)*2*hopper | ||
k_offset = 2*k | ||
name = f"simpledrawer:impl/generate_all_drawer/compacting_{upgrade}_{hopper}" | ||
function name: | ||
place_drawer("simpledrawer:acacia", "normal", "compacting", upgrade, hopper) | ||
execute positioned ~i_offset ~k_offset ~j_offset run function name |