* mods/ENTITIES/mcl_mobs/api.lua (get_staticdata): Clear effect
particle spawner ID before serialization.
* mods/ITEMS/mcl_potions/functions.lua (add_spawner): New
function.
(_add_spawner): Delete obsolete function.
(register_globalstep, _reset_effects, _save_player_effects)
(_clear_effects): Create particle spawners just once and clear
them prior to serialization.
* mods/ITEMS/mcl_potions/functions.lua (_use_potion): Remove
unused parameter.
(generate_on_use): New parameter `vanish'. If set, do not
replace the consumed potion with a glass bottle.
(register_potion): New parameter `vanishing'.
* mods/ITEMS/mcl_potions/potions.lua (ominous): Specify
`vanishing'.
* mods/ENTITIES/mobs_mc/witch.lua (hit_node): Add a
`potion_splash_flying' rather than an old style entity. Not
that this does much of anything.
* mods/ENVIRONMENT/mcl_raids/init.lua (on_complete): Verify that
the player exists and apply effects to objects not usernames.
* mods/ITEMS/mcl_potions/functions.lua (hero_of_village): Effect
color is 44FF44, not 006D2A.
* mods/ITEMS/mcl_potions/potions.lua (register_potion): Enable
overriding the entire description of the potion.
(ominous_bottle): Don't mark as dur_variable.
Re-enable modifying brewed potions and homogenize slowness
potion durations with Minecraft.
* mods/HELP/mcl_tt/snippets_mcl.lua: Make use of common metric
computation functions.
* mods/HUD/mcl_inventory/creative.lua (set_inv_search):
Guarantee that potion tooltips appear for unmodified potions
also.
* mods/ITEMS/mcl_brewing/init.lua (sort_stack): Permit placing
splash and lingering potions in item stands.
* mods/ITEMS/mcl_core/craftitems.lua (eat_gapple): Enchanted
apples should grant Resistance I, not V.
* mods/ITEMS/mcl_potions/functions.lua (duration_from_details):
Respect potent_factor if provided.
* mods/ITEMS/mcl_potions/init.lua: Update comment.
* mods/ITEMS/mcl_potions/potions.lua (generate_on_use): Use
common metric computation functions.
(register_potion): Accept a `potent_factor' that overrides
POTENT_FACTOR in the context of a single potion effect. Return
"oral" potions to the `potion' group.
(slowness): Set potent_factor to 4.5, as in Minecraft.
* mods/ENTITIES/mcl_mobs/api.lua (get_staticdata): Verify that
_mcl_potions is non-nil before attempting to access it.
* mods/ENTITIES/mcl_mobs/init.lua (register_mob): Don't define
_mcl_potions as an empty table in the class defaults to
guarantee that each mob receives an table independent of any
others.
* mods/ENTITIES/mcl_mobs/physics.lua (do_env_damage): Correctly
attribute fire damage to its sources.
* mods/ITEMS/mcl_potions/functions.lua (water_breating): Apply
to mobs as well. Verify that _mcl_potions is non-nil before
attempting to access it.
* mods/ITEMS/mcl_potions/splash.lua (register_splash):
Whitespace.
* mods/CORE/mcl_damage/API.md: Fix errors in description of
modifier prioritization.
* mods/ENTITIES/mcl_mobs/breeding.lua (feed_tame)
(check_breathing):
* mods/ENTITIES/mcl_mobs/mod.conf: Delete references to luck.
* mods/ENTITIES/mcl_mobs/physics.lua (reset_breath): New
function.
* mods/ENTITIES/mobs_mc/shulker.lua (hit_mob): Fix typo.
* mods/HELP/mcl_tt/snippets_mcl.lua: Remove references to
stackable effects, which don't exist in Minecraft.
* mods/HELP/tt/init.lua (apply_snippets): Delete unused local
variable.
(reload_itemstack_description): Filter original description
through `def._mcl_filter_description' if it exists. Delete
special case for potions.
* mods/HUD/mcl_experience/bottle.lua (bottle, throw_xp_bottle):
* mods/HUD/mcl_experience/mod.conf: Delete references to luck.
* mods/HUD/mcl_inventory/creative.lua (set_inv_search):
Guarantee that potent and extended variants of potions appear in
search list.
* mods/HUD/mcl_inventory/mod.conf: Render tt a mandatory
dependency.
* mods/ITEMS/mcl_bows/bow.lua:
* mods/ITEMS/mcl_bows/crossbow.lua:
* mods/ITEMS/mcl_bows/mod.conf:
* mods/ITEMS/mcl_end/eye_of_ender.lua (ender_eye):
* mods/ITEMS/mcl_end/mod.conf (depends):
* mods/ITEMS/mcl_fishing/init.lua (mcl_fishing):
* mods/ITEMS/mcl_fishing/mod.conf (description): Delete
references to mcl_luck.
* mods/ITEMS/mcl_potions/API.md: Document on_reject.
* mods/ITEMS/mcl_potions/functions.lua (register_effect): Save
`on_reject' in registered definitions.
(absorption): Enable for mobs as well; implement on_reject to
set a lower bound on absorption health when an inferior effect
is discarded for a better one, but without affecting the
duration of the latter.
(fire_resistance, resistance): Enable for mobs.
(luck, bad_luck): Extricate from mcl_luck.
(level_from_details, duration_from_details): Extract some
copypasta here.
(give_effect): Call on_reject in the abovementioned scenario.
(_extinguish_nearby_fire): Rename to `_water_effect'.
Extinguish nearby burning entities and replenish breath counter
of axolotls.
* mods/ITEMS/mcl_potions/init.lua (water_splash): Delete
function.
(water): Call _water_effect on splash.
* mods/ITEMS/mcl_potions/lingering.lua (lingering_effect_at):
Rename to `lingering_effects_at'.
(potency_to_level): New function.
(add_lingering_effects): New function. Record a list of active
effects at any position to enable applying multiple effects to
one position.
(def_to_effect_list, particle_texture): New function.
(register_globalstep): Enable overriding the total lifespan of
an area effect cloud. Restore ability to extinguish nearby
fires and mobs, and adapt to the new area effect representation.
(register_lingering): Set _mcl_filter_description. Correct
invocation of obsolete function and adapt to the foregoing
changes.
* mods/ITEMS/mcl_potions/potions.lua (generate_on_use)
(register_potion): Effects do not stack in Minecraft, so remove
them from Mineclonia also. Register implementation of
_mcl_filter_description.
(filter_potion_description): New function.
* mods/ITEMS/mcl_potions/splash.lua (register_splash): Extract
some widely reused code into a common function, and register
implementation of _mcl_filter_description.
* mods/ITEMS/mcl_potions/tipped_arrow.lua (register_arrow):
Likewise.
* mods/ITEMS/mcl_totems/init.lua: Grant user Regeneration, Fire
Resistance and Absorption upon resurrection.
* mods/ITEMS/mcl_totems/mod.conf (depends): Depend on
mcl_potions.
* mods/PLAYER/mcl_criticals/init.lua:
* mods/PLAYER/mcl_criticals/mod.conf: Revert mcl_luck changes.
* mods/CORE/mcl_util/init.lua (converter): New variable.
(mcl_util.to_roman): Move roman numeral conversion routine
to mcl_util.
* mods/ENTITIES/mcl_mobs/combat.lua (mob_class:on_punch):
Restore code overwritten during merge.
* mods/ENTITIES/mobs_mc/guardian_elder.lua: Remove redundant
statements.
* mods/ENVIRONMENT/mcl_raids/init.lua (mcl_raids): Remove
references to fireworks.
* mods/ITEMS/mcl_beacons/init.lua (effect_player): Port to new
effect framework.
(apply_effects_to_all_players): Establish that a secondary
effect exists before providing it to effect_player.
(apply_beacon_formspec): Delete redundant statement.
* mods/ITEMS/mcl_enchanting/groupcaps.lua (update_groupcaps):
New parameter IGNORE_HASH; used by Haste and Mining Fatigue
implementations. All callers changed.
* mods/ITEMS/mcl_enchanting/init.lua (mcl_enchanting): Remove
roman numeral converter.
* mods/ITEMS/mcl_fishing/items.lua (eat_pufferfish): Adapt to
names of parameters renamed in Mineclonia.
* mods/ITEMS/mcl_mobitems/init.lua (drink_milk): Call
_reset_effects, not _reset_player_effects.
* mods/ITEMS/mcl_potions/commands.lua (get_chat_function): Delete
unused variable.
(effect): Delete redundant initializer.
* mods/ITEMS/mcl_potions/functions.lua
(generate_rational_lvl_to_frac): Fix math.
(regeneration, strength, weakness, swiftness, slowness)
(fire_resistance): Explicitly specify icons whose names cannot
be derived from those of the effects.
(blindness, nausea): Disable FOV modification for the time
being.
(hf_update_internal, update_haste_and_fatigue)
(_reset_haste_fatigue_item_meta): Guarantee that tool
capabilities are reset properly to their standard values.
(_load_player_effects): Correct typos.
(clear_effect, _reset_effects): Remove effects from
item_speed_effects also.
(give_effect): Fix typo.
* mods/ITEMS/mcl_potions/init.lua (awkward_table, thick_table)
(inversion_table): Delete numerous recipes absent from
Minecraft.
* mods/ITEMS/mcl_potions/lingering.lua (register_lingering): Typos.
* mods/ITEMS/mcl_potions/potions.lua (time_string, perc_string)
(return_on_use): Delete obsolete functions.
(generate_on_use): Provide itemstack to _use_potion.
(trolling, levitation, darkness, glowing, health_boost)
(absorption, resistance, blindness, nausea, food_poisoning)
(saturation, haste, fatigue): Delete numerous potions absent
from Minecraft.
(turtle_master, withering): Rename descriptions to agree with
Minecraft.
* mods/ITEMS/mcl_potions/splash.lua (register_splash): Delete
redundant statement.
* mods/ITEMS/mcl_potions/tipped_arrow.lua (arrow_image): Restore
ommitted function.
(register_arrow): Remove redundant statements; return to
deriving bespoke ARROW_ENTITIES from the original. Set potency
and plus to 0.
* mods/ITEMS/mcl_sus_stew/init.lua (mcl_sus_stew)
(registered_stews, item_effects, register_stew): Delete unused
variables and functions.
(get_random_effect, eat_stew): Port properly from VL.
* mods/PLAYER/mcl_hunger/init.lua (mcl_hunger): Use hunger in
place of food_poisoning.
* mods/PLAYER/mcl_hunger/hunger.lua (mcl_hunger): Remove
reference to variable and option absent from Mineclonia.
* various API functions now work with mobs properly
* the following effects don't work with mobs at all:
water breathing, dolphin's grace, leaping, swiftness,
slowness, slow falling, night vision, darkness, frost,
health boost, absorption, fire resistance, resistance,
luck, bad luck, blindness, nausea, hunger, saturation,
haste, fatigue, conduit power
* the following effects should work with mobs:
invisibility, regeneration, poison, withering,
strength, weakness, levitation, glowing
* the following effects have no effect on mobs
(but can be applied with the API):
bad omen, hero of the village