Closed Gallardo994 closed 1 year ago
Hi,
this issue most likely happens, because you called your contexts ElementContext
and PlayerContext
instead of Element
and Player
Consider the word "Context" a keyword that might get stripped away or added by code generators.
Usually your context attributes should look like this
using Entitas;
using Entitas.CodeGeneration.Attributes;
[Element, Player] // <-- no context suffix
public class RemoteIdComponent : IComponent
{
[PrimaryEntityIndex] public uint Value;
}
Example from Match-One
https://github.com/sschmid/Match-One/blob/master/Jenny.properties#L52-L55
Entitas.CodeGeneration.Plugins.Contexts = Game, \
Input, \
GameState, \
Config
Should it be better to forbid usage of Context word in context names then?
I can confirm that the change fixes the issue. Considering it happens only for (Primary)EntityIndex, it might be useful to fix the issue another way than the PR I suggested. If you have a specific method on your mind, I'd be glad to submit a new PR.
Thanks.
Hello.
For some strange reason, Entitas code generator creates wrong EntityIndex/PrimaryEntityIndex pieces of code for Contexts.cs.
Say, i have 2 contexts, named ElementContext and PlayerContext, and create a component relying on IDs:
After code generation, it creates such piece of code in Contexts.cs:
Meanwhile, this is wrong. Look precisely at:
and
ElementContextContext and PlayerContextContext does not exist (it has to be ElementContext and PlayerContext respectfully). Code generator basically adds "Context" word to the end of it. If I fix it manually, it works as intended. But because it's code generation, it will overwrite next time I press generate.
In fact, when I remove all EntityIndex/PrimaryEntityIndex, re-generation does absolutely nothing, even if I purge Generated folder and re-generate it again: errorous code gets generated again, even though nothing has EntityIndex/PrimaryEntityIndex.
I am pretty sure the issue lies here, which adds Context to the end of the variable:![alt img](https://i.imgur.com/LTDwyAI.png)
PR: https://github.com/sschmid/Entitas-CSharp/pull/983
Thanks.