JECS
JECS copied to clipboard
Do a big refactor of everything
The core of this project was written when I was a much less seasoned programmer, and SUCC as a whole is not up to my current standards of code quality. Todo, at some point: refactor the whole damn thing.
In particular, good lord BaseTypes
needs to be split up into a dozen smaller classes. I started doing this with TypeStrings
(d0b2647), but it needs to come to the rest of the base types, ideally with some nice abstraction for classes with base type logic.
This will be absolutely necessary if we add complex arithmetic parsing for float types (#28)
Another notable space where code should be improved: instead of hardcoding which collection types are supported (currently Array, List<T>, HashSet<T>), implement an abstract solution that uses ICollection
or something. (Though we'll still need special code for Dictionaries)
Oh yeah, also we really need a common interface for ReadOnlyDataFile
and DistributedData
, like ISuccDataContainer
. Probably most of the methods, like GetAsDictionary
, can be abstracted to extension methods on that interface.