Add static-simple collision mode for model instances

This commit is contained in:
2026-04-11 16:30:55 +02:00
parent 27664d9074
commit f4150ea4a8
8 changed files with 521 additions and 23 deletions

View File

@@ -77,6 +77,7 @@ import {
DEFAULT_PROJECT_NAME,
DEFAULT_PROJECT_SCENE_ID,
SCENE_EDITOR_PREFERENCES_SCENE_DOCUMENT_VERSION,
STATIC_SIMPLE_MODEL_COLLIDERS_SCENE_DOCUMENT_VERSION,
ENTITY_NAMES_SCENE_DOCUMENT_VERSION,
ENTITY_SYSTEM_FOUNDATION_SCENE_DOCUMENT_VERSION,
FACE_MATERIALS_SCENE_DOCUMENT_VERSION,
@@ -2636,6 +2637,7 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
if (
source.version !== SCENE_DOCUMENT_VERSION &&
source.version !== SCENE_EDITOR_PREFERENCES_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_GAMEPAD_CAMERA_LOOK_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_INPUT_BINDINGS_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_NAVIGATION_MODE_SCENE_DOCUMENT_VERSION &&
@@ -2747,7 +2749,7 @@ export function migrateProjectDocument(source: unknown): ProjectDocument {
const allowMissingProjectName =
source.version < PROJECT_NAME_SCENE_DOCUMENT_VERSION;
const allowMissingEditorPreferences =
source.version < SCENE_EDITOR_PREFERENCES_SCENE_DOCUMENT_VERSION;
source.version < STATIC_SIMPLE_MODEL_COLLIDERS_SCENE_DOCUMENT_VERSION;
for (const [sceneKey, sceneValue] of Object.entries(source.scenes)) {
scenes[sceneKey] = readProjectScene(

View File

@@ -1070,7 +1070,7 @@ function validateModelInstance(
createDiagnostic(
"error",
"invalid-model-instance-collision-mode",
"Model instance collision mode must be one of none, terrain, static, dynamic, or simple.",
"Model instance collision mode must be one of none, terrain, static, static-simple, dynamic, or simple.",
`${path}.collision.mode`
)
);

View File

@@ -15,7 +15,8 @@ import {
type WorldSettings
} from "./world-settings";
export const SCENE_DOCUMENT_VERSION = 29 as const;
export const SCENE_DOCUMENT_VERSION = 30 as const;
export const STATIC_SIMPLE_MODEL_COLLIDERS_SCENE_DOCUMENT_VERSION = 30 as const;
export const SCENE_EDITOR_PREFERENCES_SCENE_DOCUMENT_VERSION = 29 as const;
export const PROJECT_NAME_SCENE_DOCUMENT_VERSION = 28 as const;
export const PLAYER_START_GAMEPAD_CAMERA_LOOK_SCENE_DOCUMENT_VERSION = 27 as const;