Add lobby particle slot menus

Replace the particle inventory with a main menu showing the 7 slots and
unlocked presets, a slot editor with a read-only view for locked slots,
and an entry editor with pickers for designs, choices, colours and icons.
Slots are limited to 10 entries and a particles-per-tick budget.
This commit is contained in:
2026-10-26 09:48:00 +01:00
parent 211e2693cf
commit c95901bc42
12 changed files with 1041 additions and 77 deletions
@@ -85,6 +85,105 @@ PARTICLE_SELECT = §eClick to select
PARTICLE_LOCKED = §c§lLocked
PARTICLE_DEACTIVATED = §cThere are too many players online, particles are deactivated
PARTICLE_BACK = §7Back
PARTICLE_SLOT_EMPTY = §7Empty slot
PARTICLE_SLOT_CREATE = §eClick to create
PARTICLE_SLOT_ENTRIES = §7{0} entries
PARTICLE_SLOT_ACTIVE = §aActive
PARTICLE_SLOT_SELECT = §eLeft click§8: §7select
PARTICLE_SLOT_EDIT = §eRight click§8: §7edit
PARTICLE_SLOT_VIEW = §eClick§8: §7view
PARTICLE_SLOT_EDITOR = §0Edit {0}
PARTICLE_SLOT_VIEWER = §0{0}
PARTICLE_SLOT_ADD_ENTRY = §aAdd entry
PARTICLE_SLOT_MAX_ENTRIES = §cThis slot is full
PARTICLE_SLOT_OVER_BUDGET = §cThat would spawn too many particles for this slot
PARTICLE_SLOT_RENAME = §eRename
PARTICLE_SLOT_RENAME_TITLE = Slot name
PARTICLE_SLOT_ICON = §eChange icon
PARTICLE_SLOT_ICON_TITLE = §0Slot icon
PARTICLE_SLOT_DELETE = §cDelete slot
PARTICLE_SLOT_DELETE_CONFIRM = §7Shift click to delete
PARTICLE_SLOT_COST = §7Particles per tick§8: §e{0}§8/§7{1}
PARTICLE_ENTRY_EDITOR = §0Edit entry
PARTICLE_ENTRY_DESIGN = §7Design§8: {0}
PARTICLE_ENTRY_PARTICLE = §7Particle§8: {0}
PARTICLE_ENTRY_LOCKED = §cDesign locked, not shown
PARTICLE_ENTRY_EDIT = §eLeft click§8: §7edit
PARTICLE_ENTRY_DUPLICATE = §eRight click§8: §7duplicate
PARTICLE_ENTRY_DELETE = §eShift right click§8: §7delete
PARTICLE_ENTRY_CHANGE_DESIGN = §eClick to change the design
PARTICLE_ENTRY_DELETE_ITEM = §cDelete entry
PARTICLE_DESIGN_PICKER = §0Choose design
PARTICLE_CHOICE_PICKER = §0{0}
PARTICLE_COLOR_PICKER = §0Choose colour
PARTICLE_VALUE = §7Value§8: {0}
PARTICLE_VALUE_NUMBER_HELP = §eLeft§8/§eright click§8: §7+/- {0}, §eshift§8: §7x10
PARTICLE_VALUE_EXACT_HELP = §eQ§8: §7enter value
PARTICLE_VALUE_TOGGLE_HELP = §eClick§8: §7toggle
PARTICLE_VALUE_CHOICE_HELP = §eLeft§8/§eright click§8: §7next/previous
PARTICLE_VALUE_LIST_HELP = §eClick§8: §7choose
PARTICLE_VALUE_COLORS_HELP = §eLeft click§8: §7add colour, §eright click§8: §7remove last
PARTICLE_VALUE_RANDOM = §7Random colours
PARTICLE_VALUE_YES = §aYes
PARTICLE_VALUE_NO = §cNo
PARTICLE_DESIGN_SIMPLE = §fSimple
PARTICLE_DESIGN_CIRCLE = §fCircle
PARTICLE_DESIGN_WING = §fWings
PARTICLE_DESIGN_CLOUD = §fCloud
PARTICLE_PARAM_PARTICLE = §fParticle
PARTICLE_PARAM_COUNT = §fAmount
PARTICLE_PARAM_SPREAD_X = §fSpread X
PARTICLE_PARAM_SPREAD_Y = §fSpread Y
PARTICLE_PARAM_SPREAD_Z = §fSpread Z
PARTICLE_PARAM_SPEED = §fSpeed
PARTICLE_PARAM_COLORS = §fColours
PARTICLE_PARAM_OFFSET_X = §fOffset X
PARTICLE_PARAM_OFFSET_Y = §fOffset Y
PARTICLE_PARAM_OFFSET_Z = §fOffset Z
PARTICLE_PARAM_INTERVAL = §fEvery n ticks
PARTICLE_PARAM_TICK_MODE = §fShown
PARTICLE_PARAM_MOVEMENT = §fMovement
PARTICLE_PARAM_GLIDING = §fElytra
PARTICLE_PARAM_GROUND = §fGround
PARTICLE_PARAM_SNEAK = §fSneaking
PARTICLE_PARAM_VISIBILITY = §fVisible to
PARTICLE_PARAM_RADIUS = §fRadius
PARTICLE_PARAM_CIRCLE_SPEED = §fRotation speed
PARTICLE_PARAM_PHASE = §fStart angle
PARTICLE_PARAM_RISE = §fUp and down height
PARTICLE_PARAM_RISE_SPEED = §fUp and down speed
PARTICLE_PARAM_BOUNCE = §fBounce back
PARTICLE_PARAM_INVERTED = §fStart at the top
PARTICLE_PARAM_WING_IMAGE = §fWing shape
PARTICLE_PARAM_WING_SIZE = §fWing size
PARTICLE_CHOICE_TICKMODE_MOVE = §fWhile moving
PARTICLE_CHOICE_TICKMODE_ALWAYS = §fAlways
PARTICLE_CHOICE_MOVEMENT_ANY = §fAny movement
PARTICLE_CHOICE_MOVEMENT_MOVING = §fOnly while moving
PARTICLE_CHOICE_MOVEMENT_STANDING_STILL = §fOnly while standing still
PARTICLE_CHOICE_GLIDING_ANY = §fWith or without elytra
PARTICLE_CHOICE_GLIDING_GLIDING = §fOnly while gliding
PARTICLE_CHOICE_GLIDING_NOT_GLIDING = §fNot while gliding
PARTICLE_CHOICE_GROUND_ANY = §fOn ground and in air
PARTICLE_CHOICE_GROUND_ON_GROUND = §fOnly on ground
PARTICLE_CHOICE_GROUND_IN_AIR = §fOnly in air
PARTICLE_CHOICE_SNEAK_ANY = §fSneaking or not
PARTICLE_CHOICE_SNEAK_SNEAKING = §fOnly while sneaking
PARTICLE_CHOICE_SNEAK_NOT_SNEAKING = §fNot while sneaking
PARTICLE_CHOICE_VISIBILITY_EVERYONE = §fEveryone
PARTICLE_CHOICE_VISIBILITY_ONLY_SELF = §fOnly me
PARTICLE_CHOICE_VISIBILITY_ONLY_OTHERS = §fOnly others
PARTICLE_CHOICE_IMAGE_SIMPLE = §fSimple
PARTICLE_CHOICE_IMAGE_COMPLEX = §fComplex
PARTICLE_CHOICE_IMAGE_SWORD = §fSword
PARTICLE_SNEEZE = §aSneeze
PARTICLE_SMOKE = §7Smoke
PARTICLE_FIRE = §cFire