From 41f933406ffc7220a792e5cd970953b64bf44d77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Botond=20J=C3=A1nos=20Kov=C3=A1cs?= Date: Thu, 16 May 2024 09:03:20 +0200 Subject: [PATCH] !8 Fixed compile errors --- package-lock.json | 10 ++ packages/app-game/src/NotABirdApp.tsx | 4 - packages/app-game/src/pages/GamePage.tsx | 20 --- packages/app-game/src/pages/LandingPage.tsx | 2 +- packages/app-game/src/pages/StarMapPage.tsx | 127 ------------------ .../app-game/src/pages/StarSystemPage.tsx | 68 ---------- .../app-game/src/service/PlanetService.ts | 17 --- .../src/service/StarMapChangesService.ts | 38 ------ .../app-game/src/service/StarMapService.ts | 42 ------ .../src/service/StarSystemChangesService.ts | 26 ---- .../app-game/src/service/StarSystemService.ts | 38 ------ 11 files changed, 11 insertions(+), 381 deletions(-) delete mode 100644 packages/app-game/src/pages/StarMapPage.tsx delete mode 100644 packages/app-game/src/pages/StarSystemPage.tsx delete mode 100644 packages/app-game/src/service/PlanetService.ts delete mode 100644 packages/app-game/src/service/StarMapChangesService.ts delete mode 100644 packages/app-game/src/service/StarMapService.ts delete mode 100644 packages/app-game/src/service/StarSystemChangesService.ts delete mode 100644 packages/app-game/src/service/StarSystemService.ts diff --git a/package-lock.json b/package-lock.json index fe582a6..4246d52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -808,6 +808,10 @@ "resolved": "packages/assets", "link": true }, + "node_modules/@not-a-bird/content": { + "resolved": "packages/content", + "link": true + }, "node_modules/@not-a-bird/model": { "resolved": "packages/model", "link": true @@ -3550,6 +3554,12 @@ "fs-extra": "*" } }, + "packages/content": { + "version": "0.0.1", + "dependencies": { + "@not-a-bird/model": "*" + } + }, "packages/contracts": { "version": "1.0.0", "license": "ISC", diff --git a/packages/app-game/src/NotABirdApp.tsx b/packages/app-game/src/NotABirdApp.tsx index eb92600..b29667c 100644 --- a/packages/app-game/src/NotABirdApp.tsx +++ b/packages/app-game/src/NotABirdApp.tsx @@ -3,15 +3,11 @@ import { LandingPage } from "./pages/LandingPage"; import { GamePage } from "./pages/GamePage"; import { FrankPage } from "./pages/FrankPage"; import { GameOverPage } from "./pages/GameOverPage"; -import { StarMapPage } from "./pages/StarMapPage"; -import { StarSystemPage } from "./pages/StarSystemPage"; import { ItemsWikiPage } from "./pages/ItemsWikiPage"; import { MergicanPage } from "./pages/MergicanPage"; const pages: Array<{ path: string; component: any }> = [ { path: "/landing-page", component: LandingPage }, - { path: "/star-map", component: StarMapPage }, - { path: "/star-system", component: StarSystemPage }, { path: "/game", component: GamePage }, { path: "/game-over", component: GameOverPage }, { path: "/frank", component: FrankPage }, diff --git a/packages/app-game/src/pages/GamePage.tsx b/packages/app-game/src/pages/GamePage.tsx index 3d89c37..b135e55 100644 --- a/packages/app-game/src/pages/GamePage.tsx +++ b/packages/app-game/src/pages/GamePage.tsx @@ -4,35 +4,15 @@ import { Card } from "../components/Card"; import { Group } from "../components/Group"; import { CenteredLayout } from "../layout/CenteredLayout"; import { GameTutorial } from "../tutorials/GameTutorial"; -import { $planetService } from "../service/PlanetService"; -import { $starSystemService } from "../service/StarSystemService"; function GameToolbar( props: { navigate: (path: string) => void; } ) { - const [currentPlanetName, setCurrentPlanetName] = useState(""); - - useEffect( - () => { - const perform = async () => { - const generatedPlanet = await $planetService.getPlanet( - ...$starSystemService.selectedPlanetCoordinates - ); - setCurrentPlanetName(generatedPlanet.name); - }; - perform(); - }, - [] - ); - return - - {currentPlanetName} - } diff --git a/packages/app-game/src/pages/LandingPage.tsx b/packages/app-game/src/pages/LandingPage.tsx index 2393e0e..beb93a3 100644 --- a/packages/app-game/src/pages/LandingPage.tsx +++ b/packages/app-game/src/pages/LandingPage.tsx @@ -4,7 +4,7 @@ import { CenteredLayout } from "../layout/CenteredLayout"; export function LandingPage(props: { navigate: (path: string) => void }) { const onStartPlaying = () => { - props.navigate("/star-map"); + props.navigate("/game"); }; const goToFrankPage = () => { props.navigate("/frank"); diff --git a/packages/app-game/src/pages/StarMapPage.tsx b/packages/app-game/src/pages/StarMapPage.tsx deleted file mode 100644 index ba72dfb..0000000 --- a/packages/app-game/src/pages/StarMapPage.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import { useEffect, useState } from "react"; -import { Card } from "../components/Card"; -import { CenteredLayout } from "../layout/CenteredLayout"; -import { Group } from "../components/Group"; -import { $starMapService } from "../service/StarMapService"; -import { Button } from "../components/Button"; -import { StarMapTutorial } from "../tutorials/StarMapTutorial"; -import { $starSystemService } from "../service/StarSystemService"; -import { $starMapChangesService } from "../service/StarMapChangesService"; -import { StackedLayout } from "../layout/StackedLayout"; -import { HorizontalLayout } from "../layout/HorizontalLayout"; - -export function StarMapPage(props: { navigate: (path: string) => void }) { - const [regionX, setRegionX] = useState( - -127 + Math.floor(Math.random() * 256), - ); - const [regionY, setRegionY] = useState( - -127 + Math.floor(Math.random() * 256), - ); - const [regionSystems, setRegionSystems] = useState([]); - const [regionName, setRegionName] = useState(""); - - const populateRegion = async () => { - const region = await $starMapService.getRegion(regionX, regionY); - const regionSystems = []; - for (let nSystem = 0; nSystem < region.numStarSystems; nSystem++) { - const generatedSystem = await $starSystemService.getStarSystem(regionX, regionY, nSystem); - regionSystems.push(generatedSystem); - } - setRegionSystems(regionSystems); - setRegionName(region.name); - }; - - const onRegionCoordinatesChanged = () => { - const perform = async () => { - $starMapService.selectRegion(regionX, regionY); - await populateRegion(); - }; - perform(); - }; - - const onSelectStarSystem = (n: number) => { - $starMapService.selectStarSystem(n); - $starSystemService.selectPlanet(0); - props.navigate("/star-system"); - }; - - useEffect(onRegionCoordinatesChanged, [regionX, regionY]); - - useEffect(onRegionCoordinatesChanged, []); - - useEffect( - () => { - // Select before subscribing - $starMapService.selectRegion(regionX, regionY); - const regionCoordsSub = $starMapChangesService.regionCoordinatesChanged.subscribe( - (newCoords: [number, number]) => { - if (newCoords[0] === regionX && newCoords[1] === regionY) return; - setRegionX(newCoords[0]); - setRegionY(newCoords[1]); - }, - ); - return () => { - regionCoordsSub.unsubscribe(); - }; - }, - [] - ); - - return (<> - - -
{regionName}
- - {regionSystems.map((system, systemIndex) => ( - - ))} - - - }, - { - className: "padded", - content: -
Star system details
-
- } - ]} /> - - }, - - { - className: "padded top-left", - content: -
Coordinates
- - setRegionX(parseInt(e.target.value))} - /> - setRegionY(parseInt(e.target.value))} - /> - -
- }, - - ]} /> - - ); -} diff --git a/packages/app-game/src/pages/StarSystemPage.tsx b/packages/app-game/src/pages/StarSystemPage.tsx deleted file mode 100644 index 5c80979..0000000 --- a/packages/app-game/src/pages/StarSystemPage.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { useEffect, useState } from "react"; -import { Card } from "../components/Card"; -import { CenteredLayout } from "../layout/CenteredLayout"; -import { $starMapService } from "../service/StarMapService"; -import { $starSystemService } from "../service/StarSystemService"; -import { Button } from "../components/Button"; -import { StarSystemTutorial } from "../tutorials/StarSystemTutorial"; -import { $planetService } from "../service/PlanetService"; - -export function StarSystemPage(props: { navigate: (path: string) => void }) { - const [regionX, setRegionX] = useState(0); - const [regionY, setRegionY] = useState(0); - const [systemN, setSystemN] = useState(0); - const [starSystem, setStarSystem] = useState(null); - const [starSystemPlanets, setStarSystemPlanets] = useState([]); - - const onSelectPlanet = (planetN: number) => { - $starSystemService.selectPlanet(planetN); - props.navigate("/game"); - }; - - useEffect(() => { - const perform = async () => { - const selectedCoords = $starMapService.selectedStarSystemCoordinates; - setRegionX(selectedCoords[0]); - setRegionY(selectedCoords[1]); - setSystemN(selectedCoords[2]); - const system = await $starSystemService.getStarSystem( - selectedCoords[0], - selectedCoords[1], - selectedCoords[2], - ); - setStarSystem(system); - const systemPlanets = []; - for (let nPlanet = 0; nPlanet < system.numPlanets; nPlanet++) { - const generatedPlanet = await $planetService.getPlanet( - selectedCoords[0], - selectedCoords[1], - selectedCoords[2], - nPlanet, - ); - systemPlanets.push(generatedPlanet); - } - setStarSystemPlanets(systemPlanets); - }; - perform(); - }, []); - - return (<> - - - -
{starSystem && starSystem.name}
-
- -
Planets
- {starSystem && - starSystemPlanets.map((planet, planetIndex) => ( - - ))} -
-
-
- - ); -} diff --git a/packages/app-game/src/service/PlanetService.ts b/packages/app-game/src/service/PlanetService.ts deleted file mode 100644 index e7432f3..0000000 --- a/packages/app-game/src/service/PlanetService.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { IPlanet } from "@not-a-bird/model"; -import { generatePlanet } from "@not-a-bird/planet-generator"; - -export interface IPlanetService { - getPlanet(x: number, y: number, nSystem: number, nPlanet: number): IPlanet; -} - -class PlanetServiceImpl implements IPlanetService { - - constructor() { } - - getPlanet(x: number, y: number, nSystem: number, nPlanet: number): IPlanet { - return generatePlanet(x, y, nSystem, nPlanet); - } -} - -export const $planetService = new PlanetServiceImpl(); diff --git a/packages/app-game/src/service/StarMapChangesService.ts b/packages/app-game/src/service/StarMapChangesService.ts deleted file mode 100644 index 0d23b3d..0000000 --- a/packages/app-game/src/service/StarMapChangesService.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Observable, Subject } from "rxjs"; - -export type StarMapRegionCoordinatesChangedObservable = Observable<[number, number]>; -export type StarMapSelectedStarSystemCoordinatesChangedObservable = Observable<[number, number, number]>; - -export interface IStarMapChangesService { - readonly regionCoordinatesChanged: StarMapRegionCoordinatesChangedObservable; - triggerRegionCoordinatesChanged(newCoordinates: [number, number]); - readonly selectedStarSystemCoordinatesChanged: StarMapSelectedStarSystemCoordinatesChangedObservable; - triggerSelectedStarSystemCoordinatesChanged(newCoordinates: [number, number, number]); -} - -class StarMapChangesServiceImpl implements IStarMapChangesService { - private _starMapRegionCoordinatesChangedSubject: Subject<[number, number]> = new Subject<[number, number]>(); - private _selectedStarSystemCoordinatesChangedSubject: Subject<[number, number, number]> = new Subject<[number, number, number]>(); - - constructor() { - - } - - public get regionCoordinatesChanged(): StarMapRegionCoordinatesChangedObservable { - return this._starMapRegionCoordinatesChangedSubject.asObservable(); - } - - triggerRegionCoordinatesChanged(newCoordinates: [number, number]) { - this._starMapRegionCoordinatesChangedSubject.next(newCoordinates); - } - - public get selectedStarSystemCoordinatesChanged(): StarMapSelectedStarSystemCoordinatesChangedObservable { - return this._selectedStarSystemCoordinatesChangedSubject.asObservable(); - } - - triggerSelectedStarSystemCoordinatesChanged(newCoordinates: [number, number, number]) { - this._selectedStarSystemCoordinatesChangedSubject.next(newCoordinates); - } -} - -export const $starMapChangesService = new StarMapChangesServiceImpl(); diff --git a/packages/app-game/src/service/StarMapService.ts b/packages/app-game/src/service/StarMapService.ts deleted file mode 100644 index 0f434b5..0000000 --- a/packages/app-game/src/service/StarMapService.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ISpaceRegion, IStarSystem } from "@not-a-bird/model"; -import { generateRegion } from "@not-a-bird/region-generator"; -import { $starMapChangesService } from "./StarMapChangesService"; - -export interface IStarMapService { - getRegion(x: number, y: number): ISpaceRegion; - readonly regionCoordinates: [number, number]; - readonly selectedStarSystemCoordinates: [number, number, number]; - selectRegion(x: number, y: number): void; - selectStarSystem(n: number): void; -} - -class StarMapServiceImpl implements IStarMapService { - private _regionCoordinates: [number, number] = [0, 0]; - private _selectedStarSystemCoordinates: [number, number, number] = [0, 0, 0]; - - constructor() { } - - public get selectedStarSystemCoordinates(): [number, number, number] { - return this._selectedStarSystemCoordinates; - } - - public get regionCoordinates(): [number, number] { - return this._regionCoordinates; - } - - getRegion(x: number, y: number): ISpaceRegion { - return generateRegion(x, y); - } - - selectRegion(x: number, y: number): void { - this._regionCoordinates = [x, y]; - $starMapChangesService.triggerRegionCoordinatesChanged(this._regionCoordinates); - } - - selectStarSystem(n: number): void { - this._selectedStarSystemCoordinates = [...this._regionCoordinates, n]; - $starMapChangesService.triggerSelectedStarSystemCoordinatesChanged(this._selectedStarSystemCoordinates); - } -} - -export const $starMapService = new StarMapServiceImpl(); diff --git a/packages/app-game/src/service/StarSystemChangesService.ts b/packages/app-game/src/service/StarSystemChangesService.ts deleted file mode 100644 index bdcfef8..0000000 --- a/packages/app-game/src/service/StarSystemChangesService.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Observable, Subject } from "rxjs"; - -export type StarSystemSelectedPlanetCoordinatesChangedObservable = Observable<[number, number, number, number]>; - -export interface IStarSystemChangesService { - readonly selectedPlanetCoordinatesChanged: StarSystemSelectedPlanetCoordinatesChangedObservable; - triggerSelectedPlanetCoordinatesChanged(newCoordinates: [number, number, number, number]); -} - -class StarSystemChangesServiceImpl implements IStarSystemChangesService { - private _selectedPlanetCoordinatesChangedSubject: Subject<[number, number, number, number]> = new Subject<[number, number, number, number]>(); - - constructor() { - - } - - public get selectedPlanetCoordinatesChanged(): StarSystemSelectedPlanetCoordinatesChangedObservable { - return this._selectedPlanetCoordinatesChangedSubject.asObservable(); - } - - triggerSelectedPlanetCoordinatesChanged(newCoordinates: [number, number, number, number]) { - this._selectedPlanetCoordinatesChangedSubject.next(newCoordinates); - } -} - -export const $starSystemChangesService = new StarSystemChangesServiceImpl(); diff --git a/packages/app-game/src/service/StarSystemService.ts b/packages/app-game/src/service/StarSystemService.ts deleted file mode 100644 index 7e327eb..0000000 --- a/packages/app-game/src/service/StarSystemService.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { IStarSystem } from "@not-a-bird/model"; -import { generateStarSystem } from "@not-a-bird/star-system-generator"; -import { $starMapService } from "./StarMapService"; -import { $starSystemChangesService } from "./StarSystemChangesService"; - -export interface IStarSystemService { - getStarSystem(x: number, y: number, n: number): IStarSystem; - readonly selectedPlanetCoordinates: [number, number, number, number]; - selectPlanet(n: number); -} - -class StarSystemServiceImpl implements IStarSystemService { - private _selectedPlanetCoordinates: [number, number, number, number] = [ - 0, 0, 0, 0, - ]; - - constructor() { } - - public get selectedPlanetCoordinates(): [number, number, number, number] { - return this._selectedPlanetCoordinates; - } - - getStarSystem(x: number, y: number, n: number): IStarSystem { - return generateStarSystem(x, y, n); - } - - selectPlanet(n: number) { - this._selectedPlanetCoordinates = [ - ...$starMapService.selectedStarSystemCoordinates, - n - ]; - $starSystemChangesService.triggerSelectedPlanetCoordinatesChanged( - this._selectedPlanetCoordinates - ); - } -} - -export const $starSystemService = new StarSystemServiceImpl();