visitor list

This commit is contained in:
2026-03-17 16:01:33 +01:00
parent e304fcbf6f
commit ecc82a9dce
13 changed files with 98 additions and 12 deletions

View File

@@ -4,8 +4,8 @@ import { ERouteKey } from '../../types/route-key';
import { Chibi, ChibiId } from '../../types/chibi/chibi';
import { InteractionCanvasComponent } from "../../components/interaction-canvas/interaction-canvas.component";
import { ChibiStore } from '../../api/chibi.store';
import { FoodPantryComponent } from "../../components/food-pantry/food-pantry.component";
import { InventoryComponent } from "../../components/inventory/inventory.component";
import { FoodPantryComponent } from "../../components/interaction-menus/food-pantry/food-pantry.component";
import { InventoryComponent } from "../../components/interaction-menus/inventory/inventory.component";
import { ButtonComponent } from "../../components/ui-elements/button/button.component";
import { EChibiInteraction } from '../../types/chibi/chibi-interaction';
import { IBrain } from '../../logic/chibi-behaviour/brain';
@@ -15,18 +15,22 @@ import { Food } from '../../types/food';
import { interval, Subscribable, Subscription } from 'rxjs';
import { RandomService } from '../../logic/random.service';
import { ChibiInteraction } from '../../logic/chibi-behaviour/brains/aperio.brain';
import { isState, STATES } from '../../types/chibi/chibi-state';
import { EChibiStateName } from '../../types/chibi/chibi-state-name';
import { VisitorListComponent } from "../../components/interaction-menus/visitor-list/visitor-list.component";
enum EInteractionMenuState {
Neutral,
Pantry,
Inventory
Inventory,
VisitorList
}
const THINKING_INTERVAL: number = 2000;
@Component({
selector: 'ff-interactions',
imports: [HeaderComponent, InteractionCanvasComponent, FoodPantryComponent, InventoryComponent, ButtonComponent],
imports: [HeaderComponent, InteractionCanvasComponent, FoodPantryComponent, InventoryComponent, ButtonComponent, VisitorListComponent],
templateUrl: './interactions.component.html',
})
export class InteractionsComponent extends TranslateableComponent implements OnDestroy {
@@ -65,6 +69,10 @@ export class InteractionsComponent extends TranslateableComponent implements OnD
this.sub.unsubscribe();
}
public isAwake(): boolean {
return isState(STATES[this.chibi().state], EChibiStateName.Awake);
}
public interact(interaction: EChibiInteraction, item?: Food): void {
console.log(`${interaction} ${this.chibi().name} and item ${item}`);
this.brain.resolveInteraction({ name: interaction, payload: item } as ChibiInteraction<Food>);
@@ -78,6 +86,10 @@ export class InteractionsComponent extends TranslateableComponent implements OnD
this.interactionMenuState.set(EInteractionMenuState.Inventory);
}
public openVisitorList(): void {
this.interactionMenuState.set(EInteractionMenuState.VisitorList);
}
public closeMenu(): void {
this.interactionMenuState.set(EInteractionMenuState.Neutral);
}