Skip to content

Commit

Permalink
rename render context to scope
Browse files Browse the repository at this point in the history
  • Loading branch information
trymnilsen committed Oct 11, 2024
1 parent c200cef commit 6f46447
Show file tree
Hide file tree
Showing 63 changed files with 319 additions and 183 deletions.
6 changes: 3 additions & 3 deletions ts/src/game/component/actor/mob/workerSpriteComponent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import { Sprite2, sprites2 } from "../../../../asset/sprite.js";
import { JSONValue } from "../../../../common/object.js";
import { Point } from "../../../../common/point.js";
import { ItemCategory } from "../../../../data/inventory/inventoryItem.js";
import { RenderContext } from "../../../../rendering/renderContext.js";
import { RenderScope } from "../../../../rendering/renderContext.js";
import { EntityComponent } from "../../entityComponent.js";
import { EquipmentComponent } from "../../inventory/equipmentComponent.js";

export class WorkerSpriteComponent extends EntityComponent {
override onDraw(context: RenderContext, screenPosition: Point): void {
override onDraw(context: RenderScope, screenPosition: Point): void {
const sprite = this.getSprite();
context.drawScreenSpaceSprite({
sprite: sprite,
Expand All @@ -18,7 +18,7 @@ export class WorkerSpriteComponent extends EntityComponent {
});
}

private getSprite(): Sprite2 {
public getSprite(): Sprite2 {
const equipment = this.entity.requireComponent(EquipmentComponent);
const mainItem = equipment.mainItem.getItem();
if (mainItem) {
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/building/buildingComponent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
import { getBuildingById } from "../../../data/building/buildings.js";
import { InventoryItemQuantity } from "../../../data/inventory/inventoryItemQuantity.js";
import { woodResourceItem } from "../../../data/inventory/items/resources.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { EntityComponent } from "../entityComponent.js";
import { ChunkMapComponent } from "../root/chunk/chunkMapComponent.js";

Expand Down Expand Up @@ -116,7 +116,7 @@ export class BuildingComponent extends EntityComponent {
}
}

override onDraw(context: RenderContext, screenPosition: Point): void {
override onDraw(context: RenderScope, screenPosition: Point): void {
let sprite = this.buildingSprite;
if (this.isScaffolded) {
sprite = this.scaffoldSprite;
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/draw/spriteComponent.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Sprite2, emptySprite, sprites2 } from "../../../asset/sprite.js";
import { Point, zeroPoint } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { EntityComponent } from "../entityComponent.js";

export class SpriteComponent extends EntityComponent {
Expand All @@ -19,7 +19,7 @@ export class SpriteComponent extends EntityComponent {
this.sprite = sprite;
}

override onDraw(context: RenderContext, screenPosition: Point): void {
override onDraw(context: RenderScope, screenPosition: Point): void {
const scale = 1;

let targetWidth = this.size?.x;
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/entityComponent.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { JSONValue } from "../../common/object.js";
import { Point } from "../../common/point.js";
import { RenderContext } from "../../rendering/renderContext.js";
import { RenderScope } from "../../rendering/renderContext.js";
import { RenderVisibilityMap } from "../../rendering/renderVisibilityMap.js";
import { Entity } from "../entity/entity.js";
import { ComponentEvent } from "./componentEvent.js";
Expand Down Expand Up @@ -35,7 +35,7 @@ export abstract class EntityComponent {
onStop(_tick: number) {}
onUpdate(_tick: number) {}
onDraw(
_context: RenderContext,
_context: RenderScope,
_screenPosition: Point,
_visibilityMap: RenderVisibilityMap,
) {}
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/health/healthComponent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
NumberRange,
zeroRange as zeroNumberRange,
} from "../../../common/range.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { Entity } from "../../entity/entity.js";
import { EntityComponent } from "../entityComponent.js";
import { HealthEvent } from "./healthEvent.js";
Expand Down Expand Up @@ -98,7 +98,7 @@ export class HealthComponent extends EntityComponent {
}
}

override onDraw(context: RenderContext, screenPosition: Point): void {
override onDraw(context: RenderScope, screenPosition: Point): void {
if (
this._health > this._showHealthBarThreshold.min &&
this._health < this._showHealthBarThreshold.max
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/inventory/jumpingInventoryItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Sprite2 } from "../../../asset/sprite.js";
import { Point } from "../../../common/point.js";
import { InventoryItem } from "../../../data/inventory/inventoryItem.js";
import { CraftingOutputTag } from "../../../data/inventory/inventoryItemQuantity.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { RenderVisibilityMap } from "../../../rendering/renderVisibilityMap.js";
import { EntityComponent } from "../entityComponent.js";
import { InventoryComponent2 } from "./inventoryComponent.js";
Expand Down Expand Up @@ -35,7 +35,7 @@ export class JumpingInventoryItem extends EntityComponent {
}
}
override onDraw(
context: RenderContext,
context: RenderScope,
screenPosition: Point,
_visibilityMap: RenderVisibilityMap,
): void {
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/job/job.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { InvalidStateError } from "../../../common/error/invalidStateError.js";
import { NotInitializedError } from "../../../common/error/notInitializedError.js";
import { JSONValue } from "../../../common/object.js";
import { Point, isPointAdjacentTo } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { Entity } from "../../entity/entity.js";
import { JobConstraint } from "./jobConstraint.js";
import { JobOwner } from "./jobOwner.js";
Expand Down Expand Up @@ -209,7 +209,7 @@ export abstract class Job {
* logic should consider that entity can be null and the job not started
* @param renderContext the context to render to
*/
onDraw(_renderContext: RenderContext) {}
onDraw(_renderContext: RenderScope) {}

/**
* Request to update this job. Called when attached to an actor and running
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/job/jobQueueComponent.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Event, EventListener } from "../../../common/event.js";
import { Point } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { Entity } from "../../entity/entity.js";
import { EntityComponent } from "../entityComponent.js";
import { Job } from "./job.js";
Expand Down Expand Up @@ -89,7 +89,7 @@ export class JobQueueComponent
this.removeJob(job);
}

override onDraw(context: RenderContext): void {
override onDraw(context: RenderScope): void {
for (const pendingJob of this._pendingJobs) {
pendingJob.onDraw(context);
}
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/job/jobRunnerComponent.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Point } from "../../../common/point.js";
import { jobDebug } from "../../../constants.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { EntityComponent } from "../entityComponent.js";
import { Job } from "./job.js";
import { JobOwner } from "./jobOwner.js";
Expand Down Expand Up @@ -96,7 +96,7 @@ export class JobRunnerComponent extends EntityComponent implements JobOwner {
}
}

override onDraw(context: RenderContext): void {
override onDraw(context: RenderScope): void {
if (this.activeJob) {
this.activeJob.onDraw(context);
}
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/job/jobs/chopTreeJob.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { sprites2 } from "../../../../asset/sprite.js";
import { woodResourceItem } from "../../../../data/inventory/items/resources.js";
import { RenderContext } from "../../../../rendering/renderContext.js";
import { RenderScope } from "../../../../rendering/renderContext.js";
import { BlinkingImageAnimation } from "../../../../rendering/visual/blinkingImageAnimation.js";
import { HealthComponent } from "../../../component/health/healthComponent.js";
import { InventoryComponent2 } from "../../../component/inventory/inventoryComponent.js";
Expand Down Expand Up @@ -77,7 +77,7 @@ export class ChopTreeJob extends Job {
}
}

override onDraw(renderContext: RenderContext) {
override onDraw(renderContext: RenderScope) {
if (!this._target) {
return;
}
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/job/jobs/moveJob.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Point } from "../../../../common/point.js";
import { RenderContext } from "../../../../rendering/renderContext.js";
import { RenderScope } from "../../../../rendering/renderContext.js";
import { Entity } from "../../../entity/entity.js";
import { TileSize } from "../../../map/tile.js";
import { IsInstanceJobConstraint } from "../constraint/isInstanceJobConstraint.js";
Expand Down Expand Up @@ -27,7 +27,7 @@ export class MoveJob extends Job {
}
}

override onDraw(renderContext: RenderContext): void {
override onDraw(renderContext: RenderScope): void {
for (const pathPoint of this.path) {
renderContext.drawRectangle({
x: pathPoint.x * TileSize + 14,
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/resource/treeComponent.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { sprites2 } from "../../../asset/sprite.js";
import { Point } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { EntityComponent } from "../entityComponent.js";
import { HealthComponent } from "../health/healthComponent.js";

Expand Down Expand Up @@ -38,7 +38,7 @@ export class TreeComponent extends EntityComponent {
this.previousTick = tick;
}

override onDraw(context: RenderContext, screenPosition: Point): void {
override onDraw(context: RenderScope, screenPosition: Point): void {
const health = this.entity?.getComponent(HealthComponent);

if (!health) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { Sprite2, sprites2 } from "../../../../asset/sprite.js";
import { ItemCategory } from "../../../../data/inventory/inventoryItem.js";
import { Entity } from "../../../entity/entity.js";
import { WorkerSpriteComponent } from "../../actor/mob/workerSpriteComponent.js";
import { EquipmentComponent } from "../../inventory/equipmentComponent.js";
import { SelectionInfo } from "../selectionInfo.js";
import { SelectionInfoProvider } from "../selectionInfoProvider.js";

export class WorkerSelectionInfoProvider implements SelectionInfoProvider {
getInfo(entity: Entity): SelectionInfo | null {
const workerSpriteComponent = entity.getComponent(
WorkerSpriteComponent,
);
const equipmentComponent = entity.getComponent(EquipmentComponent);

if (workerSpriteComponent && equipmentComponent) {
const mainItem = equipmentComponent.mainItem.getItem();
if (mainItem) {
switch (mainItem.category) {
case ItemCategory.Magic:
return this.makeSelectionInfo(
"Wizard",
workerSpriteComponent.getSprite(),
);
case ItemCategory.Melee:
return this.makeSelectionInfo(
"Knight",
workerSpriteComponent.getSprite(),
);
case ItemCategory.Productivity:
return this.makeSelectionInfo(
"Worker",
workerSpriteComponent.getSprite(),
);
case ItemCategory.Ranged:
return this.makeSelectionInfo(
"Archer",
workerSpriteComponent.getSprite(),
);
default:
break;
}
}

return this.makeSelectionInfo("Villager", sprites2.worker);
} else {
return null;
}
}

private makeSelectionInfo(label: string, sprite: Sprite2): SelectionInfo {
return {
icon: sprite,
title: label,
subtitle: "Villager",
};
}
}
2 changes: 1 addition & 1 deletion ts/src/game/component/selection/selectionInfoProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ import { Entity } from "../../entity/entity.js";
import { SelectionInfo } from "./selectionInfo.js";

export interface SelectionInfoProvider {
getInfo(component: Entity): SelectionInfo | null;
getInfo(entity: Entity): SelectionInfo | null;
}
4 changes: 2 additions & 2 deletions ts/src/game/component/tile/tilesComponent.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { sprites2 } from "../../../asset/sprite.js";
import { Bounds } from "../../../common/bounds.js";
import { Point } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { RenderVisibilityMap } from "../../../rendering/renderVisibilityMap.js";
import { BiomeType, biomes } from "../../map/biome/biome.js";
import { ChunkSize, getChunkId, getChunkPosition } from "../../map/chunk.js";
Expand Down Expand Up @@ -140,7 +140,7 @@ export class TilesComponent extends EntityComponent implements Ground {
}

override onDraw(
context: RenderContext,
context: RenderScope,
_screenPosition: Point,
visiblityMap: RenderVisibilityMap,
): void {
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/world/mountainComponent.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Point } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { RenderVisibilityMap } from "../../../rendering/renderVisibilityMap.js";
import { EntityComponent } from "../entityComponent.js";

export class MountainComponent extends EntityComponent {
override onDraw(
context: RenderContext,
context: RenderScope,
_screenPosition: Point,
_visibilityMap: RenderVisibilityMap,
): void {
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/component/world/waterComponent.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Point } from "../../../common/point.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { RenderVisibilityMap } from "../../../rendering/renderVisibilityMap.js";
import { EntityComponent } from "../entityComponent.js";

export class WaterComponent extends EntityComponent {
override onDraw(
context: RenderContext,
context: RenderScope,
_screenPosition: Point,
_visibilityMap: RenderVisibilityMap,
): void {
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/entity/entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
zeroPoint,
} from "../../common/point.js";
import { GameTime } from "../../common/time.js";
import { RenderContext } from "../../rendering/renderContext.js";
import { RenderScope } from "../../rendering/renderContext.js";
import { RenderVisibilityMap } from "../../rendering/renderVisibilityMap.js";
import { ComponentEvent } from "../component/componentEvent.js";
import { ComponentQueryCache } from "../component/componentQueryCache.js";
Expand Down Expand Up @@ -436,7 +436,7 @@ export class Entity {
* needs a consistent update cycle should be called in onUpdate
* @param renderContext the context used to render anything to the canvas
*/
onDraw(renderContext: RenderContext, visibilityMap: RenderVisibilityMap) {
onDraw(renderContext: RenderScope, visibilityMap: RenderVisibilityMap) {
if (this._componentsMap.size > 0) {
/*
const isVisible = visibilityMap.isVisible(this.worldPosition);
Expand Down
4 changes: 2 additions & 2 deletions ts/src/game/interaction/handler/interactionHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { GameTime } from "../../../common/time.js";
import { InputAction, InputActionType } from "../../../input/inputAction.js";
import { OnTapEndEvent } from "../../../input/touchInput.js";
import { Camera } from "../../../rendering/camera.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { ChunkMapComponent } from "../../component/root/chunk/chunkMapComponent.js";
import { TilesComponent } from "../../component/tile/tilesComponent.js";
import { Entity } from "../../entity/entity.js";
Expand Down Expand Up @@ -182,7 +182,7 @@ export class InteractionHandler {
this.history.state.onUpdate(tick);
}

onDraw(renderContext: RenderContext) {
onDraw(renderContext: RenderScope) {
if (this.history.state.isModal) {
renderContext.drawScreenSpaceRectangle({
x: 0,
Expand Down
6 changes: 3 additions & 3 deletions ts/src/game/interaction/handler/interactionState.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
InputActionType,
getDirectionFromInputType,
} from "../../../input/inputAction.js";
import { RenderContext } from "../../../rendering/renderContext.js";
import { RenderScope } from "../../../rendering/renderContext.js";
import { UIEvent } from "../../../ui/event/uiEvent.js";
import { FocusGroup } from "../../../ui/focus/focusGroup.js";
import { FocusState } from "../../../ui/focus/focusState.js";
Expand Down Expand Up @@ -179,7 +179,7 @@ export abstract class InteractionState {
* needs a consistent update cycle should be called in onUpdate
* @param context Render context with access to camera and drawing methods
*/
onDraw(context: RenderContext): void {
onDraw(context: RenderScope): void {
if (this._view) {
//const start = performance.now();
if (this._view.isDirty) {
Expand Down Expand Up @@ -246,7 +246,7 @@ export abstract class InteractionState {
return consumedInput;
}

private drawFocus(context: RenderContext) {
private drawFocus(context: RenderScope) {
const currentFocusGroup = this.getCurrentFocusGroup();
if (!currentFocusGroup) {
return;
Expand Down
Loading

0 comments on commit 6f46447

Please sign in to comment.