[Request] LootFunction conditions
Dabombber opened this issue ยท 1 comments
As it is, I'm not sure if the smelt function is particularly useful. People may expect it to implement its vanilla usage, adding a condition of the entity being on fire.
The following are currently equivalent
Functions.smelt()
Functions.parse({"function": "minecraft:furnace_smelt"})
While vanilla uses it as
Functions.parse({"function": "minecraft:furnace_smelt", "conditions": [{"properties": {"minecraft:on_fire": true}, "entity": "this", "condition": "minecraft:entity_properties"}]})
I guess you could implement this with something like smelt(true)
, but that's a bit ugly. It'd make more sense to add a method for smelt(ZenLootConditionWrapper[] conditions)
. Then it'd be possible to write it as
Functions.smelt([Conditions.parse({"properties": {"minecraft:on_fire": true}, "entity": "this", "condition": "minecraft:entity_properties"})])
Which is ummm, yea not really a lot better I guess. While minecraft:entity_properties
is complicated, the on_fire
part of it isn't too bad as it only has true
/false
and the entity (this
/killer
/killer_player
). If that was also added you'd be able to write it as
Functions.smelt([Conditions.onFire(true, "this")])
Or even shorter if onFire
s arguments had default values. I think it's almost possible to do in pure zenscript, but I'm not sure how to turn a LootCondition back into something useful.