Skip to content

Commit

Permalink
[SYNC] Utils unification, more unit tests (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
Neloreck committed Jul 3, 2023
2 parents 47e5799 + 588385c commit 6eca2d0
Show file tree
Hide file tree
Showing 342 changed files with 3,617 additions and 2,720 deletions.
1 change: 1 addition & 0 deletions cli/test/jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ module.exports = {
testEnvironment: "node",
rootDir: ROOT_DIR,
setupFiles: [path.resolve(__dirname, "./jest_global.ts")],
setupFilesAfterEnv: [path.resolve(__dirname, "./jest_after_env.ts")],
roots: ["<rootDir>"],
collectCoverage: true,
coverageReporters: ["json", "html"],
Expand Down
3 changes: 3 additions & 0 deletions cli/test/jest_after_env.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { extendJest } from "@/fixtures/jest/extendJest";

extendJest();
2 changes: 1 addition & 1 deletion src/engine/configs/scripts/labx8/lx8_toilet_door.ltx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ snd_open_start = metal_small_open
snd_close_start = metal_small_close_start
snd_close_stop = metal_small_close_stop
;on_use = ph_door@open
hit_on_bone = 4 | ph_door@open_2 %+lx8_toilet_door_open_again% | 2 | ph_door@open_2 %+lx8_toilet_door_open_again%
hit_on_bone = 4|ph_door@open_2 %+lx8_toilet_door_open_again%|2|ph_door@open_2 %+lx8_toilet_door_open_again%
on_info = {+lx8_toilet_burer_dead} ph_door@free
on_info2 = {+pri_a19_lab_x16_info} ph_door@open_2

Expand Down
4 changes: 2 additions & 2 deletions src/engine/core/database/logic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import { registry } from "@/engine/core/database/registry";
import { closeLoadMarker, closeSaveMarker, openLoadMarker, openSaveMarker } from "@/engine/core/database/save_markers";
import { IRegistryObjectState } from "@/engine/core/database/types";
import { ESchemeEvent, IBaseSchemeState } from "@/engine/core/schemes/base/types";
import { emitSchemeEvent } from "@/engine/core/utils/scheme/event";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/time";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time";
import { emitSchemeEvent } from "@/engine/core/utils/scheme/scheme_event";
import { NIL } from "@/engine/lib/constants/words";
import {
ClientObject,
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/database/monster.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { clsid } from "xray16";

import { abort } from "@/engine/core/utils/assertion";
import { readIniString } from "@/engine/core/utils/ini/read";
import { readIniString } from "@/engine/core/utils/ini/ini_read";
import { LuaLogger } from "@/engine/core/utils/logging";
import { EMonsterState } from "@/engine/lib/constants/monsters";
import { ClientObject, IniFile, Optional, TSection } from "@/engine/lib/types";
Expand Down
3 changes: 2 additions & 1 deletion src/engine/core/database/registry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { registry } from "@/engine/core/database/registry";

describe("registry storage", () => {
it("storage to contain all fields", () => {
expect(Object.keys(registry)).toHaveLength(36);
expect(Object.keys(registry)).toHaveLength(37);
});

it("storage to initialize with correct data", () => {
Expand All @@ -13,6 +13,7 @@ describe("registry storage", () => {
expect(registry.activeSmartTerrainId).toBeNull();
expect(registry.managers instanceof LuaTable).toBeTruthy();
expect(registry.schemes instanceof LuaTable).toBeTruthy();
expect(registry.conditionLists instanceof LuaTable).toBeTruthy();
expect(registry.actorCombat instanceof LuaTable).toBeTruthy();
expect(registry.objects instanceof LuaTable).toBeTruthy();
expect(registry.offlineObjects instanceof LuaTable).toBeTruthy();
Expand Down
5 changes: 5 additions & 0 deletions src/engine/core/database/registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import type { CampStoryManager } from "@/engine/core/schemes/camper";
import type { PatrolManager } from "@/engine/core/schemes/patrol";
import type { ReachTaskPatrolManager } from "@/engine/core/schemes/reach_task";
import type { LightManager } from "@/engine/core/schemes/sr_light";
import type { TConditionList } from "@/engine/core/utils/ini/ini_types";
import type { ERelation } from "@/engine/core/utils/relation";
import { storyNames, TStoryName } from "@/engine/lib/constants/story_names";
import type {
Expand Down Expand Up @@ -59,6 +60,10 @@ export const registry = {
* List of activated schemes in game.
*/
schemes: new LuaTable<EScheme, TAbstractSchemeConstructor>(),
/**
* Memoized condlist for parsing simplification, where key is string data and value is parsed descriptor.
*/
conditionLists: new LuaTable<string, TConditionList>(),
/**
* Set of objects in combat with actor.
*/
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/database/simulation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { clsid } from "xray16";
import { SIMULATION_OBJECTS_PROPS_LTX } from "@/engine/core/database/ini_registry";
import { registry } from "@/engine/core/database/registry";
import { TSimulationObject } from "@/engine/core/objects/server/types";
import { parseConditionsList } from "@/engine/core/utils/ini/parse";
import { parseConditionsList } from "@/engine/core/utils/ini/ini_parse";
import { ACTOR, DEFAULT } from "@/engine/lib/constants/words";
import { TCount, TSection } from "@/engine/lib/types";

Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/database/story_objects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { alife, level } from "xray16";
import { SYSTEM_INI } from "@/engine/core/database/ini_registry";
import { registry } from "@/engine/core/database/registry";
import { abort, assert } from "@/engine/core/utils/assertion";
import { readIniString } from "@/engine/core/utils/ini/read";
import { readIniString } from "@/engine/core/utils/ini/ini_read";
import { ClientObject, IniFile, Optional, ServerObject, TName, TNumberId, TStringId } from "@/engine/lib/types";

/**
Expand Down
4 changes: 2 additions & 2 deletions src/engine/core/managers/debug/DebugManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreMan
import { EStateActionId } from "@/engine/core/objects/state";
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 { getNumberRelationBetweenCommunities } from "@/engine/core/utils/relation/get";
import { gameTimeToString } from "@/engine/core/utils/time";
import { getNumberRelationBetweenCommunities } from "@/engine/core/utils/relation";
import { toJSON } from "@/engine/core/utils/transform/json";
import { stalkerCommunities, TCommunity } from "@/engine/lib/constants/communities";
import { NIL } from "@/engine/lib/constants/words";
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/managers/debug/ProfilingManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { profile_timer } from "xray16";

import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager";
import { abort } from "@/engine/core/utils/assertion";
import { executeConsoleCommand } from "@/engine/core/utils/console";
import { executeConsoleCommand } from "@/engine/core/utils/game/game_console";
import { LuaLogger } from "@/engine/core/utils/logging";
import { gameConfig } from "@/engine/lib/configs/GameConfig";
import { consoleCommands } from "@/engine/lib/constants/console_commands";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import { SmartTerrain } from "@/engine/core/objects/server/smart_terrain/SmartTe
import { SquadReachTargetAction } from "@/engine/core/objects/server/squad/action";
import { Squad } from "@/engine/core/objects/server/squad/Squad";
import { TSimulationObject } from "@/engine/core/objects/server/types";
import { evaluateSimulationPriority } from "@/engine/core/utils/alife";
import { abort } from "@/engine/core/utils/assertion";
import { parseStringsList } from "@/engine/core/utils/ini/parse";
import { parseStringsList } from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import { changeTeamSquadGroup } from "@/engine/core/utils/object/object_general";
import { evaluateSimulationPriority } from "@/engine/core/utils/object/object_alife";
import { changeTeamSquadGroup } from "@/engine/core/utils/object/object_set";
import { setSquadRelationToActor } from "@/engine/core/utils/relation";
import { TCommunity } from "@/engine/lib/constants/communities";
import { levels, TLevel } from "@/engine/lib/constants/levels";
Expand Down
4 changes: 2 additions & 2 deletions src/engine/core/managers/interaction/SleepManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import { ActorInputManager } from "@/engine/core/managers/interface";
import { SurgeManager } from "@/engine/core/managers/world/SurgeManager";
import { WeatherManager } from "@/engine/core/managers/world/WeatherManager";
import { SleepDialog } from "@/engine/core/ui/interaction/SleepDialog";
import { executeConsoleCommand, getConsoleFloatCommand } from "@/engine/core/utils/console";
import { disableInfo, giveInfo } from "@/engine/core/utils/info_portion";
import { executeConsoleCommand, getConsoleFloatCommand } from "@/engine/core/utils/game/game_console";
import { LuaLogger } from "@/engine/core/utils/logging";
import { disableInfo, giveInfo } from "@/engine/core/utils/object/object_info_portion";
import { animations } from "@/engine/lib/constants/animation/animations";
import { postProcessors } from "@/engine/lib/constants/animation/post_processors";
import { consoleCommands } from "@/engine/lib/constants/console_commands";
Expand Down
7 changes: 2 additions & 5 deletions src/engine/core/managers/interaction/TradeManager.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import { ini_file, time_global } from "xray16";

import { closeLoadMarker, closeSaveMarker, openSaveMarker, registry } from "@/engine/core/database";
import { openLoadMarker } from "@/engine/core/database/save_markers";
import { closeLoadMarker, closeSaveMarker, openLoadMarker, openSaveMarker, registry } from "@/engine/core/database";
import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager";
import { abort, assert } from "@/engine/core/utils/assertion";
import { pickSectionFromCondList } from "@/engine/core/utils/ini/config";
import { parseConditionsList } from "@/engine/core/utils/ini/parse";
import { readIniNumber, readIniString } from "@/engine/core/utils/ini/read";
import { parseConditionsList, pickSectionFromCondList, readIniNumber, readIniString } from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import {
ClientObject,
Expand Down
4 changes: 2 additions & 2 deletions src/engine/core/managers/interaction/TravelManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ import { SquadStayOnTargetAction } from "@/engine/core/objects/server/squad/acti
import { Squad } from "@/engine/core/objects/server/squad/Squad";
import { TSimulationObject } from "@/engine/core/objects/server/types";
import { abort } from "@/engine/core/utils/assertion";
import { createAutoSave } from "@/engine/core/utils/game_save";
import { createAutoSave } from "@/engine/core/utils/game/game_save";
import { parseConditionsList, pickSectionFromCondList, TConditionList } from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import {
getAlifeCharacterCommunity,
getObjectSmartTerrain,
getObjectSquad,
getServerDistanceBetween,
} from "@/engine/core/utils/object/object_general";
} from "@/engine/core/utils/object";
import { isAnySquadMemberEnemyToActor } from "@/engine/core/utils/relation";
import { postProcessors } from "@/engine/lib/constants/animation/post_processors";
import { captions } from "@/engine/lib/constants/captions/captions";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { EAchievement } from "@/engine/core/managers/interaction/achievements/ty
import { ENotificationType, ITipNotification } from "@/engine/core/managers/interface";
import { StatisticsManager } from "@/engine/core/managers/interface/StatisticsManager";
import { WeatherManager } from "@/engine/core/managers/world/WeatherManager";
import { disableInfo, giveInfo, hasAlifeInfo } from "@/engine/core/utils/info_portion";
import { disableInfo, giveInfo, hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion";
import { captions } from "@/engine/lib/constants/captions";
import { communities } from "@/engine/lib/constants/communities";
import { infoPortions, TInfoPortion } from "@/engine/lib/constants/info_portions";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,16 @@ import {
notificationManagerIcons,
} from "@/engine/core/managers/interface/notifications";
import { StatisticsManager } from "@/engine/core/managers/interface/StatisticsManager";
import { giveInfo, hasAlifeInfo, hasAlifeInfos, hasFewAlifeInfos } from "@/engine/core/utils/info_portion";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time";
import { LuaLogger } from "@/engine/core/utils/logging";
import {
giveInfo,
hasAlifeInfo,
hasAlifeInfos,
hasFewAlifeInfos,
} from "@/engine/core/utils/object/object_info_portion";
import { spawnItemsForObjectFromList } from "@/engine/core/utils/object/object_spawn";
import { increaseCommunityGoodwillToId } from "@/engine/core/utils/relation";
import { spawnItemsForObjectFromList } from "@/engine/core/utils/spawn";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/time";
import { captions } from "@/engine/lib/constants/captions/captions";
import { communities } from "@/engine/lib/constants/communities";
import { infoPortions } from "@/engine/lib/constants/info_portions/info_portions";
Expand Down
21 changes: 13 additions & 8 deletions src/engine/core/managers/interaction/dialog/DialogManager.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import { CPhraseScript, level } from "xray16";

import { closeLoadMarker, closeSaveMarker, DIALOG_MANAGER_LTX, openSaveMarker, registry } from "@/engine/core/database";
import { openLoadMarker } from "@/engine/core/database/save_markers";
import {
closeLoadMarker,
closeSaveMarker,
DIALOG_MANAGER_LTX,
openLoadMarker,
openSaveMarker,
registry,
} from "@/engine/core/database";
import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager";
import { EGameEvent, EventsManager } from "@/engine/core/managers/events";
import {
Expand All @@ -11,11 +17,10 @@ import {
TPRTTable,
} from "@/engine/core/managers/interaction/dialog/types";
import { assert } from "@/engine/core/utils/assertion";
import { isObjectWounded } from "@/engine/core/utils/check/check";
import { hasAlifeInfo } from "@/engine/core/utils/info_portion";
import { parseInfoPortions, parseStringsList } from "@/engine/core/utils/ini/parse";
import { parseInfoPortions, parseStringsList } from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import { getCharacterCommunity } from "@/engine/core/utils/object/object_general";
import { getCharacterCommunity, isObjectWounded } from "@/engine/core/utils/object";
import { hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion";
import { FALSE, TRUE } from "@/engine/lib/constants/words";
import {
ClientObject,
Expand Down Expand Up @@ -343,10 +348,10 @@ export class DialogManager extends AbstractCoreManager {

if (PTIDSubtable.wounded === TRUE) {
// --if (!(ActionWoundManager.is_heavy_wounded_by_id(npc.id())) {
priority = isObjectWounded(object) ? priority + 1 : -1;
priority = isObjectWounded(object.id()) ? priority + 1 : -1;
} else {
// --if(ActionWoundManager.is_heavy_wounded_by_id(npc.id())) {
priority = isObjectWounded(object) ? -1 : priority + 1;
priority = isObjectWounded(object.id()) ? -1 : priority + 1;
}

if (fComm === false || fLevel === false) {
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/managers/interaction/dialog/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IConfigCondition } from "@/engine/core/utils/ini/types";
import type { IConfigCondition } from "@/engine/core/utils/ini";
import { LuaArray, Optional, TName, TStringId } from "@/engine/lib/types";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { disposeManager, registerActor, registry, TASK_MANAGER_LTX } from "@/eng
import { TaskManager } from "@/engine/core/managers/interaction/tasks/TaskManager";
import { TaskObject } from "@/engine/core/managers/interaction/tasks/TaskObject";
import { ETaskStatus } from "@/engine/core/managers/interaction/tasks/types";
import { parseConditionsList } from "@/engine/core/utils/ini/parse";
import { parseConditionsList } from "@/engine/core/utils/ini/ini_parse";
import { NIL } from "@/engine/lib/constants/words";
import { MockLuaTable } from "@/fixtures/lua/mocks/LuaTable.mock";
import { mockClientGameObject } from "@/fixtures/xray";
Expand Down
19 changes: 12 additions & 7 deletions src/engine/core/managers/interaction/tasks/TaskObject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,26 @@ import {
closeLoadMarker,
closeSaveMarker,
getObjectIdByStoryId,
openLoadMarker,
openSaveMarker,
registry,
} from "@/engine/core/database";
import { openLoadMarker } from "@/engine/core/database/save_markers";
import { ETaskState, ETaskStatus, POSSIBLE_STATES } from "@/engine/core/managers/interaction/tasks/types";
import { NotificationManager } from "@/engine/core/managers/interface/notifications";
import { assertDefined } from "@/engine/core/utils/assertion";
import { getExtern } from "@/engine/core/utils/binding";
import { pickSectionFromCondList } from "@/engine/core/utils/ini/config";
import { parseConditionsList, parseStringsList } from "@/engine/core/utils/ini/parse";
import { readIniBoolean, readIniNumber, readIniString } from "@/engine/core/utils/ini/read";
import { TConditionList } from "@/engine/core/utils/ini/types";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time";
import {
parseConditionsList,
parseStringsList,
pickSectionFromCondList,
readIniBoolean,
readIniNumber,
readIniString,
TConditionList,
} from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import { giveMoneyToActor, transferItemsToActor } from "@/engine/core/utils/task_reward";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/time";
import { giveMoneyToActor, transferItemsToActor } from "@/engine/core/utils/object/object_task_reward";
import { levels, TLevel } from "@/engine/lib/constants/levels";
import { storyNames } from "@/engine/lib/constants/story_names";
import { NIL } from "@/engine/lib/constants/words";
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/managers/interface/ActorInputManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { game, get_hud, level } from "xray16";
import { closeLoadMarker, closeSaveMarker, openLoadMarker, openSaveMarker, registry } from "@/engine/core/database";
import { AbstractCoreManager, EGameEvent, EventsManager } from "@/engine/core/managers";
import { SchemeNoWeapon } from "@/engine/core/schemes/sr_no_weapon";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time";
import { LuaLogger } from "@/engine/core/utils/logging";
import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/time";
import { misc } from "@/engine/lib/constants/items/misc";
import { ClientObject, GameHud, NetPacket, NetProcessor, Optional, TDuration, Time, TIndex } from "@/engine/lib/types";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { system_ini } from "xray16";

import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager";
import { executeConsoleCommand } from "@/engine/core/utils/console";
import { readIniString } from "@/engine/core/utils/ini/read";
import { executeConsoleCommand } from "@/engine/core/utils/game/game_console";
import { readIniString } from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import { consoleCommands } from "@/engine/lib/constants/console_commands";
import { ACTOR } from "@/engine/lib/constants/words";
Expand Down
2 changes: 1 addition & 1 deletion src/engine/core/managers/interface/GameSettingsManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { level } from "xray16";

import { closeLoadMarker, closeSaveMarker, openLoadMarker, openSaveMarker } from "@/engine/core/database";
import { AbstractCoreManager } from "@/engine/core/managers";
import { executeConsoleCommand } from "@/engine/core/utils/console";
import { executeConsoleCommand } from "@/engine/core/utils/game/game_console";
import { consoleCommands } from "@/engine/lib/constants/console_commands";
import { EGameDifficulty, gameDifficultiesByNumber } from "@/engine/lib/constants/game_difficulties";
import { NetPacket, NetProcessor } from "@/engine/lib/types";
Expand Down
9 changes: 6 additions & 3 deletions src/engine/core/managers/interface/ItemUpgradesManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ import { game } from "xray16";

import { ITEM_UPGRADES, registry, STALKER_UPGRADE_INFO, SYSTEM_INI } from "@/engine/core/database";
import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager";
import { pickSectionFromCondList } from "@/engine/core/utils/ini/config";
import { parseConditionsList, parseStringsList } from "@/engine/core/utils/ini/parse";
import { TConditionList } from "@/engine/core/utils/ini/types";
import {
parseConditionsList,
parseStringsList,
pickSectionFromCondList,
TConditionList,
} from "@/engine/core/utils/ini";
import { LuaLogger } from "@/engine/core/utils/logging";
import { gameSettingConfig } from "@/engine/lib/configs/GameSettingConfig";
import { captions, TCaption } from "@/engine/lib/constants/captions/captions";
Expand Down
Loading

0 comments on commit 6eca2d0

Please sign in to comment.