Posted May 18, 20214 yr I am putting together a spellcasting system, and the spells will have visual effects. I have a Capability which holds the player's active Spell, as well as whichever passive Spells may still be causing residual effects. I would like to access these Spells through a rendering event (I was thinking RenderWorldLastEvent), and perform the relevant rendering. The problem is that I would like to define these rendering methods in a neat way, rather than dumping them willy-nilly into the event class, especially as there are potentially many Spells, each with potentially different rendering specifications. That would get horrible quite quickly, and I'd have to check each Spell to find the appropriate rendering method. As an alternative, I was thinking of having Spell#render methods which could easily be called from the render event, and would be overridden by extensions of the base class. These methods, though, would crash a dedicated server when the given Spell was loaded, if I understand things correctly, even though they would never be called. Looking at the Item class, it seems a solution to a similar problem is accomplished with @OnlyIn, which I think would work here too, but the Documentation says "Only use it if you are overriding a vanilla method that already has @OnlyIn defined. In most other cases ..., use DistExecutor instead." I've heard some dissuasion around DistExecutor, though, too (and I'm less sure how it works). What would be an appropriate way of separating this code, without producing a mess? Fancy 3D Graphing Calculator mod, with many different coordinate systems. Lightweight 3D/2D position/vector transformations library, also with support for different coordinate systems.
May 18, 20214 yr Author That's a pretty nice way of doing it, thanks! Fancy 3D Graphing Calculator mod, with many different coordinate systems. Lightweight 3D/2D position/vector transformations library, also with support for different coordinate systems.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.