Add NPC support in interaction source entity handling
This commit is contained in:
@@ -481,9 +481,22 @@ type WorldNightEnvironmentNumericField =
|
|||||||
|
|
||||||
type InteractionSourceEntity = Extract<
|
type InteractionSourceEntity = Extract<
|
||||||
EntityInstance,
|
EntityInstance,
|
||||||
{ kind: "triggerVolume" | "interactable" }
|
{ kind: "triggerVolume" | "interactable" | "npc" }
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
function getInteractionSourceEntityLabel(
|
||||||
|
entity: InteractionSourceEntity
|
||||||
|
): string {
|
||||||
|
switch (entity.kind) {
|
||||||
|
case "triggerVolume":
|
||||||
|
return "Trigger Volume";
|
||||||
|
case "interactable":
|
||||||
|
return "Interactable";
|
||||||
|
case "npc":
|
||||||
|
return "NPC";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getModelInstanceCollisionModeDescription(
|
function getModelInstanceCollisionModeDescription(
|
||||||
mode: ModelInstanceCollisionMode
|
mode: ModelInstanceCollisionMode
|
||||||
): string {
|
): string {
|
||||||
@@ -1495,7 +1508,9 @@ function isInteractionSourceEntity(
|
|||||||
): entity is InteractionSourceEntity {
|
): entity is InteractionSourceEntity {
|
||||||
return (
|
return (
|
||||||
entity !== null &&
|
entity !== null &&
|
||||||
(entity.kind === "triggerVolume" || entity.kind === "interactable")
|
(entity.kind === "triggerVolume" ||
|
||||||
|
entity.kind === "interactable" ||
|
||||||
|
entity.kind === "npc")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2133,6 +2148,13 @@ export function App({ store, initialStatusMessage }: AppProps) {
|
|||||||
editorState.document.interactionLinks,
|
editorState.document.interactionLinks,
|
||||||
selectedInteractable.id
|
selectedInteractable.id
|
||||||
);
|
);
|
||||||
|
const selectedNpcLinks =
|
||||||
|
selectedNpc === null
|
||||||
|
? []
|
||||||
|
: getInteractionLinksForSource(
|
||||||
|
editorState.document.interactionLinks,
|
||||||
|
selectedNpc.id
|
||||||
|
);
|
||||||
const sceneTargetOptions = sceneList.map((scene) => ({
|
const sceneTargetOptions = sceneList.map((scene) => ({
|
||||||
id: scene.id,
|
id: scene.id,
|
||||||
name: scene.name
|
name: scene.name
|
||||||
|
|||||||
Reference in New Issue
Block a user