Skip to content

Commit

Permalink
Refactored InfoProvider loader
Browse files Browse the repository at this point in the history
  • Loading branch information
TwoAbove committed Aug 31, 2024
1 parent 7fc10d3 commit dce7160
Show file tree
Hide file tree
Showing 49 changed files with 355 additions and 155 deletions.
4 changes: 2 additions & 2 deletions src/components/SearchSeeds/SearchViews/FungalShifts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
import React, { useState, useEffect, FC } from "react";
import { Row, Col, Container, Stack, Button } from "react-bootstrap";

import { FungalInfoProvider } from "../../../services/SeedInfo/infoHandler/InfoProviders/Fungal";
import { FungalShiftInfoProvider } from "../../../services/SeedInfo/infoHandler/InfoProviders/FungalShift";
import { IRule } from "../../../services/SeedInfo/infoHandler/IRule";
import { Square } from "../../helpers";
import { FlaskMaterialSelect } from "../../MaterialSelect";

const fungalInfoProvider = new FungalInfoProvider({} as any);
const fungalInfoProvider = new FungalShiftInfoProvider({} as any);

interface IFungalShiftsProps {
onUpdateConfig: (config: Partial<IRule>) => void;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ const ExcavationsiteCubeChamber = () => {
const { gameInfoProvider } = useContext(GameInfoContext);

const [wand, setWand] = React.useState(() =>
gameInfoProvider.providers.excavationSiteCubeChamber.provide(gameInfoProvider.config.seed),
gameInfoProvider.providers.excavationsiteCubeChamber.provide(gameInfoProvider.config.seed),
);

useEffect(() => {
const wand = gameInfoProvider.providers.excavationSiteCubeChamber.provide(gameInfoProvider.config.seed);
const wand = gameInfoProvider.providers.excavationsiteCubeChamber.provide(gameInfoProvider.config.seed);
setWand(wand);
}, [gameInfoProvider]);

Expand Down
6 changes: 3 additions & 3 deletions src/components/SeedInfo/SeedInfoViews/FungalShifts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Stack, Form, Tooltip, OverlayTrigger, Table } from "react-bootstrap";
import { CountdownCircleTimer } from "react-countdown-circle-timer";

import { GameInfoProvider } from "../../../services/SeedInfo/infoHandler";
import { FungalInfoProvider } from "../../../services/SeedInfo/infoHandler/InfoProviders/Fungal";
import { FungalShiftInfoProvider } from "../../../services/SeedInfo/infoHandler/InfoProviders/FungalShift";
import { MaterialInfoProvider } from "../../../services/SeedInfo/infoHandler/InfoProviders/Material";
import { AlchemyConfigContext } from "../../AlchemyConfigContext";
import { capitalize } from "../../../services/helpers";
Expand Down Expand Up @@ -148,7 +148,7 @@ export const FungalMaterialList: React.FC<IFungalMaterialListProps> = ({
};

interface IShiftProps {
data: ReturnType<FungalInfoProvider["provide"]>[number];
data: ReturnType<FungalShiftInfoProvider["provide"]>[number];
shifted: boolean;
setShifted: (shifted: boolean) => void;
materialProvider: MaterialInfoProvider;
Expand Down Expand Up @@ -250,7 +250,7 @@ export const Shift: FC<IShiftProps> = props => {
};

interface IFungalShiftsProps {
fungalData: ReturnType<FungalInfoProvider["provide"]>;
fungalData: ReturnType<FungalShiftInfoProvider["provide"]>;
infoProvider: GameInfoProvider;
}

Expand Down
7 changes: 2 additions & 5 deletions src/components/SeedInfo/SeedInfoViews/HolyMountain.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -514,12 +514,9 @@ const HolyMountainContextProvider = (props: IHolyMountainContextProviderProps) =
const [perkStacks, setPerkStacks] = useState<IPerkChangeAction[][]>(() => infoProvider.config.perkStacks);
const perkStack = perkStacks[perkStacks.length - 1];

const favorites = useFavoritePerks(
advanced ? infoProvider.providers.statelessPerk : infoProvider.providers.perk,
perkDeck,
);
const favorites = useFavoritePerks(infoProvider.providers.perk, perkDeck);
const getPerkData = () => {
const perk = infoProvider.providers.statelessPerk;
const perk = infoProvider.providers.perk;
const data = perk.provideStateless(perkStack);
const hydrated = perk.hydrate(data.perks);
return {
Expand Down
4 changes: 2 additions & 2 deletions src/components/Settings/FavoritesSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import SpellSelect from "../SpellSelect";
import { ConfigRow, ConfigTitle } from "./helpers";

import useLocalStorage from "../../services/useLocalStorage";
import { FungalInfoProvider } from "../../services/SeedInfo/infoHandler/InfoProviders/Fungal";
import { FungalShiftInfoProvider } from "../../services/SeedInfo/infoHandler/InfoProviders/FungalShift";

const fungalInfoProvider = new FungalInfoProvider({} as any);
const fungalInfoProvider = new FungalShiftInfoProvider({} as any);

const materialsFrom = fungalInfoProvider.fungalData.materials_from.flatMap(m => m.materials);
const materialsTo = fungalInfoProvider.fungalData.materials_to.map(m => m.material);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,5 @@ export class AlchemyInfoProvider extends InfoProvider {
return allLC && allAP;
}
}

export default AlchemyInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/AlwaysCast.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,5 @@ export class AlwaysCastInfoProvider extends InfoProvider {
return true;
}
}

export default AlwaysCastInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Biome.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@ export class BiomeInfoProvider extends InfoProvider {
return true;
}
}

export default BiomeInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -227,3 +227,5 @@ export class BiomeModifierInfoProvider extends InfoProvider {
return true;
}
}

export default BiomeModifierInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export interface IItem {
extra?: any;
}

export class ChestRandomProvider extends InfoProvider {
export class ChestRandomInfoProvider extends InfoProvider {
unlockedSpells: boolean[];

constructor(randoms: IRandom, unlockedSpells: boolean[], spellInfoProvider: SpellInfoProvider) {
Expand Down Expand Up @@ -389,3 +389,5 @@ export class ChestRandomProvider extends InfoProvider {
return true;
}
}

export default ChestRandomInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@ export class EntityInfoProvider extends InfoProvider {
return true;
}
}

export default EntityInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,5 @@ export class ExcavationsiteCubeChamberInfoProvider extends InfoProvider {
return true;
}
}

export default ExcavationsiteCubeChamberInfoProvider;
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// TypeScript bindings for emscripten-generated code. Automatically generated at compile time.
declare namespace RuntimeExports {
let HEAPF32: any;
let HEAPF64: any;
let HEAP_DATA_VIEW: any;
let HEAP8: any;
let HEAPU8: any;
let HEAP16: any;
let HEAPU16: any;
let HEAP32: any;
let HEAPU32: any;
let HEAP64: any;
let HEAPU64: any;
}
interface WasmModule {
_malloc(_0: number): number;
_free(_0: number): void;
}

type EmbindString = ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|string;
export interface VectorString {
push_back(_0: EmbindString): void;
resize(_0: number, _1: EmbindString): void;
size(): number;
get(_0: number): EmbindString | undefined;
set(_0: number, _1: EmbindString): boolean;
delete(): void;
}

export type FungalTransformation = {
flaskTo: boolean,
flaskFrom: boolean,
from: VectorString,
to: EmbindString,
gold_to_x: EmbindString,
grass_to_x: EmbindString
};

export interface VectorFungalTransformation {
push_back(_0: FungalTransformation): void;
resize(_0: number, _1: FungalTransformation): void;
size(): number;
get(_0: number): FungalTransformation | undefined;
set(_0: number, _1: FungalTransformation): boolean;
delete(): void;
}

interface EmbindModule {
VectorString: {new(): VectorString};
VectorFungalTransformation: {new(): VectorFungalTransformation};
PickForSeed(_0: number, _1: number): VectorFungalTransformation;
}

export type MainModule = WasmModule & typeof RuntimeExports & EmbindModule;
export default function MainModuleFactory (options?: unknown): Promise<MainModule>;

Large diffs are not rendered by default.

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// TypeScript bindings for emscripten-generated code. Automatically generated at compile time.
declare namespace RuntimeExports {
let HEAPF32: any;
let HEAPF64: any;
let HEAP_DATA_VIEW: any;
let HEAP8: any;
let HEAPU8: any;
let HEAP16: any;
let HEAPU16: any;
let HEAP32: any;
let HEAPU32: any;
let HEAP64: any;
let HEAPU64: any;
}
interface WasmModule {
_malloc(_0: number): number;
_free(_0: number): void;
}

type EmbindString = ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|string;
export interface VectorString {
push_back(_0: EmbindString): void;
resize(_0: number, _1: EmbindString): void;
size(): number;
get(_0: number): EmbindString | undefined;
set(_0: number, _1: EmbindString): boolean;
delete(): void;
}

export type FungalTransformation = {
flaskTo: boolean,
flaskFrom: boolean,
from: VectorString,
to: EmbindString,
gold_to_x: EmbindString,
grass_to_x: EmbindString
};

export interface VectorFungalTransformation {
push_back(_0: FungalTransformation): void;
resize(_0: number, _1: FungalTransformation): void;
size(): number;
get(_0: number): FungalTransformation | undefined;
set(_0: number, _1: FungalTransformation): boolean;
delete(): void;
}

interface EmbindModule {
VectorString: {new(): VectorString};
VectorFungalTransformation: {new(): VectorFungalTransformation};
PickForSeed(_0: number, _1: number): VectorFungalTransformation;
}

export type MainModule = WasmModule & typeof RuntimeExports & EmbindModule;
export default function MainModuleFactory (options?: unknown): Promise<MainModule>;

Large diffs are not rendered by default.

Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import type { FungalTransformation, MainModule } from "./Fungal.d.ts";

import createModule from "./Fungal.mjs";

export class FungalInfoProvider extends InfoProvider {
export class FungalShiftInfoProvider extends InfoProvider {
readyPromise: Promise<void>;

fungal!: MainModule;
Expand Down Expand Up @@ -131,3 +131,5 @@ export type IFungalRule = Array<{
flaskFrom?: boolean;
flaskTo?: boolean;
}>;

export default FungalShiftInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Lottery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,5 @@ export class LotteryInfoProvider extends InfoProvider {
return true;
}
}

export default LotteryInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Map/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -549,3 +549,5 @@ snowCave, 2160684, 1988
snowCastle, 1104125, 25762
vault, 2252795, 11505
*/

export default MapInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Material.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,5 @@ export class MaterialInfoProvider extends InfoProvider {
return true;
}
}

export default MaterialInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ const itemMap = {
"data/entities/items/pickup/heart_fullhp.xml": null,
};

export class PacifistChestProvider extends InfoProvider {
export class PacifistChestInfoProvider extends InfoProvider {
temples = templeData;

chestProvider: ChestRandomProvider;
Expand Down Expand Up @@ -109,3 +109,5 @@ export class PacifistChestProvider extends InfoProvider {
return true;
}
}

export default PacifistChestInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Perk/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -597,3 +597,5 @@ export interface IPerkRule {
all: string[][];
deck: string[][];
}

export default PerkInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Potion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -166,3 +166,5 @@ export class PotionInfoProvider extends InfoProvider {
// return isEqual(rule.val, info);
// }
}

export default PotionInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -253,3 +253,5 @@ export class PotionRandomMaterialInfoProvider extends InfoProvider {
return true;
}
}

export default PotionRandomMaterialInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,5 @@ export class PotionSecretInfoProvider extends InfoProvider {
return true;
}
}

export default PotionSecretInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,5 @@ export class PowderStashInfoProvider extends InfoProvider {
// return isEqual(rule.val, info);
// }
}

export default PowderStashInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Shop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -354,3 +354,5 @@ export class ShopInfoProvider extends InfoProvider {
return true;
}
}

export default ShopInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { InfoProvider } from "./Base";
import { MapInfoProvider } from "./Map";

// Hourglass chamber
export class SnowcastleSecretChamberProvider extends InfoProvider {
export class SnowcastleSecretChamberInfoProvider extends InfoProvider {
mapInfoProvider: MapInfoProvider;
constructor(randoms, mapInfoProvider: MapInfoProvider) {
super(randoms);
Expand All @@ -29,3 +29,5 @@ export class SnowcastleSecretChamberProvider extends InfoProvider {
return true;
}
}

export default SnowcastleSecretChamberInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const getWandArgs = (wand: string): [number, number, boolean] => {
return [0, 0, false];
};

export class SnowcaveSecretChamberProvider extends InfoProvider {
export class SnowcaveSecretChamberInfoProvider extends InfoProvider {
wandInfoProvider: WandInfoProvider;
mapInfoProvider: MapInfoProvider;
constructor(randoms, mapInfoProvider: MapInfoProvider, wandInfoProvider: WandInfoProvider) {
Expand All @@ -41,3 +41,5 @@ export class SnowcaveSecretChamberProvider extends InfoProvider {
return true;
}
}

export default SnowcaveSecretChamberInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Spell.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,5 @@ export class SpellInfoProvider extends InfoProvider {
return true;
}
}

export default SpellInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ export class StartingBombSpellInfoProvider extends InfoProvider {
return true;
}
}

export default StartingBombSpellInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,5 @@ export class StartingFlaskInfoProvider extends InfoProvider {
return true;
}
}

export default StartingFlaskInfoProvider;
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,5 @@ export class StartingSpellInfoProvider extends InfoProvider {
return true;
}
}

export default StartingSpellInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/Wand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -678,3 +678,5 @@ export interface IWandRule {
cards?: string[];
permanentCard?: string;
}

export default WandInfoProvider;
2 changes: 2 additions & 0 deletions src/services/SeedInfo/infoHandler/InfoProviders/WaterCave.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ export class WaterCaveInfoProvider extends InfoProvider {
return true;
}
}

export default WaterCaveInfoProvider;
Loading

0 comments on commit dce7160

Please sign in to comment.