Skip to content

Changes, Fixes, Additions and BIG Refactoring#27

Merged
blueskythlikesclouds merged 44 commits intohedge-dev:masterfrom
Justin113D:master
Feb 18, 2025
Merged

Changes, Fixes, Additions and BIG Refactoring#27
blueskythlikesclouds merged 44 commits intohedge-dev:masterfrom
Justin113D:master

Conversation

@Justin113D
Copy link
Copy Markdown
Contributor

@Justin113D Justin113D commented Feb 6, 2025

Doing all of these commits in different pull requests would take too long and overcomplicate things, so i am sending them all at once.

Refactoring

  • Resource related code moved to the Resources namespace
  • IO related classes from root moved to the IO namespace
  • Game specific code moved into the Frameworks namespace
  • Further splitting of classes into individual files in SonicTeam.DiEvent
  • The entire library is now nullable for better intellisense and improved self-documentation
  • vars replaced with full types for improved readability, and should be avoided in the future
  • Added .editconfig for improved code formatting that matches the pre-existing code style
  • Cleared Bodge
  • Amacitia.IO submodule replaced with nuget

Additions

  • Implemented Needle Archives support
  • Implemented Needle Shaders support
  • Implemented Bulletmesh support

Changes

  • FileSystem has been made an instance class with a static Instance property, similar to the ResourceManager class, to allow for multiple FileSystem instances if needed.
  • Sample chunk nodes now write data more accurately to how they do ingame
  • Classes that can resolve dependencies now throw special exceptions when resolving fails and will try to resolve every resource regardless of previously "thrown" exceptions
  • Light resources now use resource references

Fixes

  • Morph models now read and write correctly
  • (Several) arrays now write no pointer when they are empty
  • Material "enable additional blending" replaced with blendmode (lost world onwards)
  • Added missing override keywords in several places

There were many commits across these past 3 months, so these lists may be incomplete.

Justin113D and others added 30 commits November 30, 2024 20:41
- Parenting now managable
- Reading of data now happens in substream to ensure no reading of outside data
- writer get flushed after writing node data to ensure localled node data
- Fixed Node flags on write
- Empty material parameters no longer receive a pointer
- All game related namespaces now placed in "Framework" namespace
- All resource related files are now in the Resource namespace
- Renamed Numeric to Structs and moved several toplevel files in
- Several stream related files moved to IO
- Updated global usings and cleaned up usings in all files
- IDirectory and IFile received doc
- Filesystem made local class with singleton instance
- Nullability implemented for IO and resource classes
- Code reorganized
- IDirectory now has an "overwrite" parameter in add/create file methods
- Archive.AddFile now actually adds file to archive files
- Many file checks added for error predictability
- materials can now be json serialized
- mesh groups can write dependencies now
- models can resolve and write dependencies now
- fixed some model node semantics
- added default version to lod info block and model block
- fixed writing of needle archives
Copy link
Copy Markdown
Member

@blueskythlikesclouds blueskythlikesclouds left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just noticed some typos.

Comment thread Source/SharpNeedle/Framework/HedgehogEngine/Mirage/MorphModel.cs Outdated
Comment thread Source/SharpNeedle/Framework/HedgehogEngine/Needle/Archive/ModelBlock.cs Outdated
Comment thread Source/SharpNeedle/Framework/HedgehogEngine/Mirage/MeshGroup.cs Outdated
Comment thread Source/SharpNeedle/Framework/HedgehogEngine/Mirage/ModelBase.cs Outdated
Comment thread Source/SharpNeedle/Framework/HedgehogEngine/Mirage/TerrainInstanceInfo.cs Outdated
@blueskythlikesclouds blueskythlikesclouds merged commit 3441aaa into hedge-dev:master Feb 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants