Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- objectives:
- unique_id = Unique id for each object
- group_id = a group id for each group of objects
- group_counter = counter for deciding how much to subtract
- group_needed = How many of the current group are not done_grouping
- group_lowest = OPTIONAL for making the group ids sequential
- tags:
- done_grouping = tag thats set when an entity has done grouping and no longer can or need to.
- do_grouping = do grouping that tick
- master = master tracker for grouping
- to_group = entities to group
- execute @e[tag=to_group] ~ ~ ~ scoreboard players operation @e[tag=to_group] group_id = @e[tag=to_group,c=1] unique_id
- #Use Setblock to set loop to closed
- scoreboard players tag @e[score_group_id_min=0,score_group_id=0,tag!done_grouping] add do_grouping
- execute @e[do_grouping] ~ ~ ~ scoreboard players set e[c=1] group_id 0
- scoreboard players tag @e[tag=do_grouping] add done_grouping
- scoreboard players tag @e[tag=do_grouping] remove do_grouping
- scoreboard players set @e[tag=master] group_needed 0
- execute @e[score_group_id_min=0, score_group_id=0] ~ ~ ~ scoreboard players add @e[tag=master] group_needed 1
- scoreboard players set @e[tag=master,score_group_needed=0] group_counter 2100000000
- execute @e[tag=master,score_group_needed=0] ~ ~ ~ scoreboard players operation @e[tag=master] group_counter > @e[tag=to_group,score_group_id_min=1] group_id
- execute @e[tag=master,score_group_needed=0] ~ ~ ~ scoreboard players operation @e[tag=to_group] group_id -= @e[tag=master] group_counter
- execute @e[tag=master,score_group_counter_min=2100000000] ~ ~ ~ #Use Setblock to exit loop
- scoreboard players operation @e[tag=master] group_counter > @e[tag=to_group] group_id
- scoreboard players operation @e[tag=to_group] group_id -= @e[tag=master] group_counter
- scoreboard players tag @e[tag=to_group] remove done_grouping
- # V OPTIONAL sequentializer V #
- #Set the following loop to closed
- scoreboard players set @e[tag=master] group_lowest = 21000000000
- scoreboard players operation @e[tag=master] group_lowest > @e[tag=to_group,score_group_id_min=0] group_id
- scoreboard players operation @e[tag=to_group,score_group_id_min=0] group_id -= @e[tag=master] group_lowest
- scoreboard players remove @e[tag=to_group] group_id 1
- scoreboard players set @e[tag=master,score_group_needed=0] group_counter 2100000000
- scoreboard players operation @e[tag=master] group_counter > @e[tag=to_group,score_group_id_min=0] group_id
- execute @e[tag=master,score_group_counter_min=2100000000] ~ ~ ~ #Use Setblock to exit loop
- scoreboard players operation @e[tag=master] group_counter > @e[tag=to_group] group_id
- scoreboard players operation @e[tag=to_group] group_id -= @e[tag=master] group_counter
Advertisement
Add Comment
Please, Sign In to add comment