Add NPC target anchor system to entity instances
This commit is contained in:
@@ -179,11 +179,26 @@ export interface NpcTimeWindowPresence {
|
|||||||
|
|
||||||
export type NpcPresence = NpcAlwaysPresence | NpcTimeWindowPresence;
|
export type NpcPresence = NpcAlwaysPresence | NpcTimeWindowPresence;
|
||||||
|
|
||||||
|
export const NPC_TARGET_ANCHOR_MODES = [
|
||||||
|
"center",
|
||||||
|
"eyeHeight",
|
||||||
|
"top",
|
||||||
|
"origin",
|
||||||
|
"custom"
|
||||||
|
] as const;
|
||||||
|
export type NpcTargetAnchorMode = (typeof NPC_TARGET_ANCHOR_MODES)[number];
|
||||||
|
|
||||||
|
export interface NpcTargetAnchor {
|
||||||
|
mode: NpcTargetAnchorMode;
|
||||||
|
offset: Vec3;
|
||||||
|
}
|
||||||
|
|
||||||
export interface NpcEntity extends PositionedEntity {
|
export interface NpcEntity extends PositionedEntity {
|
||||||
kind: "npc";
|
kind: "npc";
|
||||||
actorId: string;
|
actorId: string;
|
||||||
presence: NpcPresence;
|
presence: NpcPresence;
|
||||||
targetable: boolean;
|
targetable: boolean;
|
||||||
|
targetAnchor: NpcTargetAnchor;
|
||||||
yawDegrees: number;
|
yawDegrees: number;
|
||||||
scale: Vec3;
|
scale: Vec3;
|
||||||
modelAssetId: string | null;
|
modelAssetId: string | null;
|
||||||
@@ -602,6 +617,12 @@ export const DEFAULT_NPC_MODEL_ASSET_ID: string | null = null;
|
|||||||
export const DEFAULT_NPC_DIALOGUE_ID: string | null = null;
|
export const DEFAULT_NPC_DIALOGUE_ID: string | null = null;
|
||||||
export const DEFAULT_NPC_COLLIDER_MODE: PlayerStartColliderMode = "capsule";
|
export const DEFAULT_NPC_COLLIDER_MODE: PlayerStartColliderMode = "capsule";
|
||||||
export const DEFAULT_NPC_TARGETABLE = true;
|
export const DEFAULT_NPC_TARGETABLE = true;
|
||||||
|
export const DEFAULT_NPC_TARGET_ANCHOR_MODE: NpcTargetAnchorMode = "center";
|
||||||
|
export const DEFAULT_NPC_TARGET_ANCHOR_OFFSET: Vec3 = {
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
z: 0
|
||||||
|
};
|
||||||
export const DEFAULT_NPC_TIME_WINDOW_START_HOUR = 9;
|
export const DEFAULT_NPC_TIME_WINDOW_START_HOUR = 9;
|
||||||
export const DEFAULT_NPC_TIME_WINDOW_END_HOUR = 17;
|
export const DEFAULT_NPC_TIME_WINDOW_END_HOUR = 17;
|
||||||
export const DEFAULT_PLAYER_START_COLLIDER_MODE: PlayerStartColliderMode =
|
export const DEFAULT_PLAYER_START_COLLIDER_MODE: PlayerStartColliderMode =
|
||||||
|
|||||||
Reference in New Issue
Block a user