Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
aymericdelab committed Jan 16, 2025
1 parent 3188582 commit deb5f38
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 33 deletions.
11 changes: 9 additions & 2 deletions client/apps/game/src/ui/components/resources/realm-transfer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@ import { OSWindow } from "@/ui/components/navigation/os-window";
import Button from "@/ui/elements/button";
import { NumberInput } from "@/ui/elements/number-input";
import { ResourceIcon } from "@/ui/elements/resource-icon";
import { calculateDonkeysNeeded, currencyFormat, multiplyByPrecision } from "@/ui/utils/utils";
import { ID, PlayerStructure, ResourcesIds, findResourceById, getTotalResourceWeight } from "@bibliothecadao/eternum";
import { currencyFormat, multiplyByPrecision } from "@/ui/utils/utils";
import {
ID,
PlayerStructure,
ResourcesIds,
calculateDonkeysNeeded,
findResourceById,
getTotalResourceWeight,
} from "@bibliothecadao/eternum";
import { useDojo, usePlayerStructures, useResourceManager, useUIStore } from "@bibliothecadao/react";
import { ArrowLeftIcon, ArrowRightIcon } from "lucide-react";
import { Dispatch, SetStateAction, memo, useCallback, useEffect, useMemo, useState } from "react";
Expand Down
3 changes: 2 additions & 1 deletion client/apps/game/src/ui/components/resources/travel-info.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { GRAMS_PER_KG } from "@/ui/constants";
import { ResourceIcon } from "@/ui/elements/resource-icon";
import { calculateDonkeysNeeded, currencyFormat, divideByPrecision, multiplyByPrecision } from "@/ui/utils/utils";
import { currencyFormat, divideByPrecision, multiplyByPrecision } from "@/ui/utils/utils";
import {
calculateDonkeysNeeded,
configManager,
getBalance,
getTotalResourceWeight,
Expand Down
15 changes: 5 additions & 10 deletions client/apps/game/src/ui/components/trading/market-order-panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,17 @@ import { ConfirmationPopup } from "@/ui/components/bank/confirmation-popup";
import Button from "@/ui/elements/button";
import { NumberInput } from "@/ui/elements/number-input";
import { ResourceIcon } from "@/ui/elements/resource-icon";
import { currencyFormat, divideByPrecision, formatNumber, multiplyByPrecision } from "@/ui/utils/utils";
import {
calculateDonkeysNeeded,
currencyFormat,
divideByPrecision,
formatNumber,
multiplyByPrecision,
} from "@/ui/utils/utils";
import {
DONKEY_ENTITY_TYPE,
ONE_MONTH,
ResourceManager,
ResourcesIds,
configManager,
DONKEY_ENTITY_TYPE,
findResourceById,
getRealmAddressName,
getTotalResourceWeight,
ONE_MONTH,
ResourceManager,
ResourcesIds,
type ID,
type MarketInterface,
} from "@bibliothecadao/eternum";
Expand Down
9 changes: 0 additions & 9 deletions client/apps/game/src/ui/utils/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ import { HEX_SIZE } from "@/three/scenes/constants";
import { SortInterface } from "@/ui/elements/sort-button";
import {
calculateDistance,
CapacityConfigCategory,
ClientConfigManager,
ContractAddress,
EternumGlobalConfig,
ResourceCost,
Expand Down Expand Up @@ -346,13 +344,6 @@ export const getSeasonAddresses = async (): Promise<ResourceAddresses> => {
}
};

export const calculateDonkeysNeeded = (orderWeight: number): number => {
const configManager = ClientConfigManager.instance();
const donkeyCapacityGrams = configManager.getCapacityConfig(CapacityConfigCategory.Donkey);

return Math.ceil(divideByPrecision(orderWeight) / donkeyCapacityGrams);
};

export const normalizeDiacriticalMarks = (str: string) => {
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
};
1 change: 1 addition & 0 deletions client/sdk/packages/core/src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export * from "./players";
export * from "./realm";
export * from "./resources";
export * from "./structure";
export * from "./transport";
export * from "./utils";

export const scaleResourceOutputs = (resourceOutputs: ResourceOutputs, multiplier: number) => {
Expand Down
12 changes: 1 addition & 11 deletions client/sdk/packages/core/src/utils/resources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { getStartingResources } from ".";
import { BuildingType, resources, ResourcesIds } from "../constants";
import { ClientComponents } from "../dojo";
import { ResourceManager } from "../modelManager";
import { ClientConfigManager, configManager } from "../modelManager/ConfigManager";
import { configManager } from "../modelManager/ConfigManager";
import { ID, Resource } from "../types";
import { unpackResources } from "./packed-data";

Expand Down Expand Up @@ -67,16 +67,6 @@ export const getQuestResources = (realmEntityId: ID, components: ClientComponent
return getStartingResources(resourcesProduced);
};

export const getTotalResourceWeight = (resources: Array<Resource | undefined>) => {
const configManager = ClientConfigManager.instance();

return resources.reduce(
(total, resource) =>
total + (resource ? resource.amount * configManager.getResourceWeight(resource.resourceId) || 0 : 0),
0,
);
};

export const isResourceProductionBuilding = (buildingId: BuildingType) => {
return (
buildingId === BuildingType.Resource ||
Expand Down
21 changes: 21 additions & 0 deletions client/sdk/packages/core/src/utils/transport.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { divideByPrecision } from ".";
import { CapacityConfigCategory } from "../constants";
import { ClientConfigManager } from "../modelManager";
import { Resource } from "../types";

export const calculateDonkeysNeeded = (orderWeight: number): number => {
const configManager = ClientConfigManager.instance();
const donkeyCapacityGrams = configManager.getCapacityConfig(CapacityConfigCategory.Donkey);

return Math.ceil(divideByPrecision(orderWeight) / donkeyCapacityGrams);
};

export const getTotalResourceWeight = (resources: Array<Resource | undefined>) => {
const configManager = ClientConfigManager.instance();

return resources.reduce(
(total, resource) =>
total + (resource ? resource.amount * configManager.getResourceWeight(resource.resourceId) || 0 : 0),
0,
);
};

0 comments on commit deb5f38

Please sign in to comment.