EverestAPI / CelesteTAS-EverestInterop

Everest interop for DevilSquirrel's CelesteTAS
https://github.com/EuniverseCat/CelesteTAS
MIT License
67 stars 28 forks source link

Allow parameterless methods in InfoCustom #44

Closed LozenChen closed 1 year ago

LozenChen commented 1 year ago

as described in title, will be useful when people want something like {Player.Speed.Length():} things like {Player.Hiccup():} make this feature a bit dangerous, so i ban it when EnforceLegal is on

besides, this PR adds support for IEnumerable<Component/Entity>

have roughly tested and no bug found

known issue1: the grammar is a bit casual, e.g. {Player.Speed.Length_(abcdefg_.GetTypeCode():} is same as {Player.Speed.Length().GetTypeCode():} (which returns single) known issue2: methods like Player.SlipCheck(float addY = 0f) are considered as non-parameterless. But maybe we can just use those default parameters?

It would be nice if we can do everything in InfoCustom just like when using debug console mod

LozenChen commented 1 year ago

closed coz i found DJ have already done this several days ago, and his codes is much better than mine :(