Skip to content

Commit

Permalink
Moved action planner types to ai/types.
Browse files Browse the repository at this point in the history
  • Loading branch information
Neloreck committed Aug 25, 2023
1 parent 56cf124 commit c48d69b
Show file tree
Hide file tree
Showing 69 changed files with 267 additions and 246 deletions.
3 changes: 1 addition & 2 deletions src/engine/core/managers/debug/DebugManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ import { alife, cast_planner, relation_registry, stalker_ids } from "xray16";

import { IRegistryObjectState, registry } from "@/engine/core/database";
import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager";
import { EStateActionId } from "@/engine/core/objects/animation";
import { EActionId, EStateActionId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { EActionId } from "@/engine/core/schemes";
import { gameTimeToString } from "@/engine/core/utils/game/game_time";
import { LuaLogger } from "@/engine/core/utils/logging";
import { getObjectActiveWeaponSlot } from "@/engine/core/utils/object";
Expand Down
1 change: 1 addition & 0 deletions src/engine/core/objects/ai/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from "@/engine/core/objects/ai/setup";
export * from "@/engine/core/objects/ai/types";
8 changes: 4 additions & 4 deletions src/engine/core/objects/ai/setup/motivation_planner.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { describe, expect, it } from "@jest/globals";

import { setupStalkerMotivationPlanner } from "@/engine/core/objects/ai/setup/motivation_planner";
import { EActionId, EEvaluatorId } from "@/engine/core/objects/ai/types";
import { EAnimationType } from "@/engine/core/objects/animation/animation_types";
import { StalkerAnimationManager } from "@/engine/core/objects/state/StalkerAnimationManager";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { EvaluatorStateIdleAlife } from "@/engine/core/objects/state/state/EvaluatorStateIdleAlife";
import { EvaluatorStateIdleCombat } from "@/engine/core/objects/state/state/EvaluatorStateIdleCombat";
import { EvaluatorStateIdleItems } from "@/engine/core/objects/state/state/EvaluatorStateIdleItems";
import { EvaluatorStateLogicActive } from "@/engine/core/objects/state/state/EvaluatorStateLogicActive";
import { EActionId, EEvaluatorId } from "@/engine/core/schemes";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
import { checkPlannerAction } from "@/fixtures/engine";
import { MockActionPlanner, mockClientGameObject } from "@/fixtures/xray";
Expand Down Expand Up @@ -44,14 +44,14 @@ describe("motivation_planner setup util", () => {

checkPlannerAction(
planner.action(EActionId.STATE_TO_IDLE_COMBAT),
"ToIdleCombat",
"ActionToIdleCombat",
[[EEvaluatorId.IS_STATE_IDLE_COMBAT, false]],
[[EEvaluatorId.IS_STATE_IDLE_COMBAT, true]]
);

checkPlannerAction(
planner.action(EActionId.STATE_TO_IDLE_ITEMS),
"ToIdleItems",
"ActionToIdleItems",
[
[EEvaluatorId.IS_STATE_IDLE_ITEMS, false],
[mockStalkerIds.property_items, true],
Expand All @@ -62,7 +62,7 @@ describe("motivation_planner setup util", () => {

checkPlannerAction(
planner.action(EActionId.STATE_TO_IDLE_ALIFE),
"ToIdleAlife",
"ActionToIdleAlife",
[
[mockStalkerIds.property_alive, true],
[mockStalkerIds.property_enemy, false],
Expand Down
8 changes: 4 additions & 4 deletions src/engine/core/objects/ai/setup/motivation_planner.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { stalker_ids, world_property } from "xray16";

import { EActionId, EEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionStateToIdle } from "@/engine/core/objects/state/state/ActionStateToIdle";
import { EvaluatorStateIdleAlife } from "@/engine/core/objects/state/state/EvaluatorStateIdleAlife";
import { EvaluatorStateIdleCombat } from "@/engine/core/objects/state/state/EvaluatorStateIdleCombat";
import { EvaluatorStateIdleItems } from "@/engine/core/objects/state/state/EvaluatorStateIdleItems";
import { EvaluatorStateLogicActive } from "@/engine/core/objects/state/state/EvaluatorStateLogicActive";
import { EActionId, EEvaluatorId } from "@/engine/core/schemes";
import { LuaLogger } from "@/engine/core/utils/logging";
import { ActionPlanner } from "@/engine/lib/types";

Expand All @@ -25,14 +25,14 @@ export function setupStalkerMotivationPlanner(planner: ActionPlanner, stateManag
planner.add_evaluator(EEvaluatorId.IS_STATE_IDLE_ITEMS, new EvaluatorStateIdleItems(stateManager));
planner.add_evaluator(EEvaluatorId.IS_STATE_LOGIC_ACTIVE, new EvaluatorStateLogicActive(stateManager));

const actionCombatStateToIdle: ActionStateToIdle = new ActionStateToIdle(stateManager, "ToIdleCombat");
const actionCombatStateToIdle: ActionStateToIdle = new ActionStateToIdle(stateManager, "ActionToIdleCombat");

actionCombatStateToIdle.add_precondition(new world_property(EEvaluatorId.IS_STATE_IDLE_COMBAT, false));
actionCombatStateToIdle.add_effect(new world_property(EEvaluatorId.IS_STATE_IDLE_COMBAT, true));

planner.add_action(EActionId.STATE_TO_IDLE_COMBAT, actionCombatStateToIdle);

const actionItemsToIdle: ActionStateToIdle = new ActionStateToIdle(stateManager, "ToIdleItems");
const actionItemsToIdle: ActionStateToIdle = new ActionStateToIdle(stateManager, "ActionToIdleItems");

actionItemsToIdle.add_precondition(new world_property(EEvaluatorId.IS_STATE_IDLE_ITEMS, false));
actionItemsToIdle.add_precondition(new world_property(stalker_ids.property_items, true));
Expand All @@ -41,7 +41,7 @@ export function setupStalkerMotivationPlanner(planner: ActionPlanner, stateManag

planner.add_action(EActionId.STATE_TO_IDLE_ITEMS, actionItemsToIdle);

const actionAlifeToIdle: ActionStateToIdle = new ActionStateToIdle(stateManager, "ToIdleAlife");
const actionAlifeToIdle: ActionStateToIdle = new ActionStateToIdle(stateManager, "ActionToIdleAlife");

actionAlifeToIdle.add_precondition(new world_property(stalker_ids.property_alive, true));
actionAlifeToIdle.add_precondition(new world_property(stalker_ids.property_enemy, false));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerAnimationStatePlanner } from "@/engine/core/objects/ai/setup/state/animation_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { ActionAnimationStart, ActionAnimationStop } from "@/engine/core/objects/state/animation";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
Expand All @@ -14,7 +14,7 @@ describe("setup_state_manager util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerAnimationStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.ANIMATION_START),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionAnimationStart, ActionAnimationStop } from "@/engine/core/objects/state/animation";
import { ActionStateLocked } from "@/engine/core/objects/state/state";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { ActionAnimationStart, ActionAnimationStop } from "@/engine/core/objects/state/animation";
import { setupStalkerAnimstateStatePlanner } from "@/engine/core/objects/ai/setup/state/animstate_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { ActionAnimstateStart, ActionAnimstateStop } from "@/engine/core/objects/state/animstate";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
Expand All @@ -15,7 +14,7 @@ describe("animation_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerAnimstateStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.ANIMSTATE_START),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionAnimstateStart, ActionAnimstateStop } from "@/engine/core/objects/state/animstate";
import { ActionStateLocked } from "@/engine/core/objects/state/state";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { ActionAnimationStart, ActionAnimationStop } from "@/engine/core/objects/state/animation";
import { ActionAnimstateStart, ActionAnimstateStop } from "@/engine/core/objects/state/animstate";
import { setupStalkerBodyStatePlanner } from "@/engine/core/objects/ai/setup/state/body_state_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import {
ActionBodyStateCrouch,
ActionBodyStateCrouchDanger,
Expand All @@ -21,7 +19,7 @@ describe("body_state_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerBodyStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.BODYSTATE_CROUCH),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import {
ActionBodyStateCrouch,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerDirectionStatePlanner } from "@/engine/core/objects/ai/setup/state/direction_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { ActionDirectionSearch, ActionDirectionTurn } from "@/engine/core/objects/state/direction";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
Expand All @@ -14,7 +14,7 @@ describe("direction_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerDirectionStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.DIRECTION_TURN),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionDirectionSearch, ActionDirectionTurn } from "@/engine/core/objects/state/direction";
import { ActionPlanner } from "@/engine/lib/types";
Expand Down
6 changes: 3 additions & 3 deletions src/engine/core/objects/ai/setup/state/locked_planner.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerLockedStatePlanner } from "@/engine/core/objects/ai/setup/state/locked_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
import { checkPlannerAction } from "@/fixtures/engine";
Expand All @@ -13,7 +13,7 @@ describe("locked_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerLockedStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.LOCKED),
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/objects/ai/setup/state/locked_planner.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionStateLocked } from "@/engine/core/objects/state/state";
import { ActionPlanner } from "@/engine/lib/types";
Expand Down
6 changes: 3 additions & 3 deletions src/engine/core/objects/ai/setup/state/mental_planner.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerMentalStatePlanner } from "@/engine/core/objects/ai/setup/state/mental_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { ActionMentalDanger, ActionMentalFree, ActionMentalPanic } from "@/engine/core/objects/state/mental";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
Expand All @@ -14,7 +14,7 @@ describe("mental_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerMentalStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.MENTAL_FREE),
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/objects/ai/setup/state/mental_planner.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionMentalDanger, ActionMentalFree, ActionMentalPanic } from "@/engine/core/objects/state/mental";
import { ActionPlanner } from "@/engine/lib/types";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerMovementStatePlanner } from "@/engine/core/objects/ai/setup/state/movement_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import {
ActionMovementRun,
ActionMovementRunSearch,
Expand All @@ -24,7 +24,7 @@ describe("movement_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerMovementStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.MOVEMENT_WALK),
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/objects/ai/setup/state/movement_planner.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import {
ActionMovementRun,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerSmartCoverStatePlanner } from "@/engine/core/objects/ai/setup/state/smart_cover_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { ActionSmartCoverEnter, ActionSmartCoverExit } from "@/engine/core/objects/state/smart_cover";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import { ActionPlanner, ClientObject } from "@/engine/lib/types";
Expand All @@ -14,7 +14,7 @@ describe("smart_cover_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerSmartCoverStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.SMARTCOVER_ENTER),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import { ActionSmartCoverEnter, ActionSmartCoverExit } from "@/engine/core/objects/state/smart_cover";
import { ActionStateLocked } from "@/engine/core/objects/state/state";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, expect, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerStateEvaluators } from "@/engine/core/objects/ai/setup/state/state_evaluators";
import { EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import {
EvaluatorAnimation,
EvaluatorAnimationLocked,
Expand Down Expand Up @@ -70,7 +70,7 @@ describe("state_evaluator util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerStateEvaluators(planner, stateManager);

expect(Object.keys((planner as unknown as MockActionPlanner).evaluators)).toHaveLength(43);

Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/objects/ai/setup/state/state_evaluators.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import {
EvaluatorAnimation,
Expand Down
6 changes: 3 additions & 3 deletions src/engine/core/objects/ai/setup/state/weapon_planner.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it } from "@jest/globals";

import { setupStalkerStatePlanner } from "@/engine/core/objects/ai";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation/state_types";
import { setupStalkerWeaponStatePlanner } from "@/engine/core/objects/ai/setup/state/weapon_planner";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager";
import {
ActionWeaponDrop,
Expand All @@ -19,7 +19,7 @@ describe("weapon_planner util", () => {
const stateManager: StalkerStateManager = new StalkerStateManager(object);
const planner: ActionPlanner = stateManager.planner;

setupStalkerStatePlanner(planner, stateManager);
setupStalkerWeaponStatePlanner(planner, stateManager);

checkPlannerAction(
planner.action(EStateActionId.WEAPON_UNSTRAPP),
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/objects/ai/setup/state/weapon_planner.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { world_property } from "xray16";

import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/animation";
import { EStateActionId, EStateEvaluatorId } from "@/engine/core/objects/ai/types";
import { StalkerStateManager } from "@/engine/core/objects/state";
import {
ActionWeaponDrop,
Expand Down
Loading

0 comments on commit c48d69b

Please sign in to comment.