Repository navigation
Conversation
New > Map compiles a map from a name, a title, 1 to 64 bubbles, a ground size and a colour: definition and keys, root, per-bubble branch and containers, a flat static ground with collision and shaders, one arrival, an inert point-query owner, and a scenario with one state per bubble. Installed inputs are named by tag and checked against their pinned layouts. The map is one added-asset group (manifest version 8), imported as one undo step, and opens in the viewport. MapCatalog and WorldLoader list maps a project adds in a new package. SunriseStudio.NewWorld.Tests covers compiles, Studio's readers, the build, the workflow, and byte parity with World Studio's compiler.
Version 8 now lists the features a manifest holds by name, so this and the other world-authoring features can merge in any order. A build refuses a manifest naming a feature it does not know.
NativeBuffer keeps its padded, native and compact placements but frames every array through NativeArrays, the same file in every world-authoring branch that appends typed arrays, so merging them dedupes it. The bytes are unchanged.
…ith World Studio The cooker now returns each object's data section, fixups and imports, and Authoring frames them with HavokPackfileBuilder: the reflection class table, signatures and user tags installed packfiles carry. HavokPackfile reads the result, so the collision view shows new grounds and the built package's collision decodes. Parity compares packfiles by data section, fixups, object classes and imports; every other entry stays byte for byte. The oracle and World Studio are named by WORLD_STUDIO_SOURCE and SUNRISE_PARITY_DRIVERS, and the parity check is skipped when they are unset.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes New > Map work. It asks for a name, title, bubble count (1 to 64), ground size and ground colour, compiles a complete map into one new package and opens it in the viewport. The map holds the definition and keys, a root, per bubble a branch with six containers (visibility, render, name, empty service, geometry, physics), a flat static ground with collision, an arrival point and an inert point-query owner, plus a scenario with one enabled state per bubble, registries, the player-service object and localized names.
How:
Formats/NewWorld/: the compiler, ported from World Studio. A graph allocator gives tags in key order and root manifests for every type-16 root; writers cover the definition and keys, containers and branches, component tables and simple entities, the static archetype profile, the ground mesh and its flat-colour technique, the ground collision, the visibility owner and query partition, and the scenario. Ground shaders compile from an embedded HLSL file withD3DCompile. The recipe is saved asNAME.newmap.json.NewWorldCompilerreads the installed inputs by tag (collision archetype80C70CE9, surface80C70D6A, navigation entity80C70D01, placeholder navigation root80C4E6E9, the static archetype profile and three player-service configs), checks each against its pinned layout, and stores copies as derived assets. Collision is framed throughHavokPackfileBuilder, so Studio's own reader decodes it.Group(featureasset-groups); a map is one group, so one transaction adds it and undo/redo restore the same ids.MapCatalogandWorldLoaderlist project-added maps and scenarios.