import { globalConfig } from "../../core/config"; import { DrawParameters } from "../../core/draw_parameters"; import { GameSystem } from "../game_system"; import { MapChunkView } from "../map_chunk_view"; export class StaticMapEntitySystem extends GameSystem { constructor(root) { super(root); } /** * Draws the static entities * @param {DrawParameters} parameters * @param {MapChunkView} chunk */ drawChunk(parameters, chunk) { if (G_IS_DEV && globalConfig.debug.doNotRenderStatics) { return; } const drawnUids = new Set(); const contents = chunk.contents; for (let y = 0; y < globalConfig.mapChunkSize; ++y) { for (let x = 0; x < globalConfig.mapChunkSize; ++x) { const entity = contents[x][y]; if (entity) { if (drawnUids.has(entity.uid)) { continue; } drawnUids.add(entity.uid); const staticComp = entity.components.StaticMapEntity; const sprite = staticComp.getSprite(); if (sprite) { staticComp.drawSpriteOnFullEntityBounds(parameters, sprite, 2); } } } } } /** * Draws the static wire entities * @param {DrawParameters} parameters * @param {MapChunkView} chunk */ drawWiresChunk(parameters, chunk) { if (G_IS_DEV && globalConfig.debug.doNotRenderStatics) { return; } const drawnUids = new Set(); const contents = chunk.wireContents; for (let y = 0; y < globalConfig.mapChunkSize; ++y) { for (let x = 0; x < globalConfig.mapChunkSize; ++x) { const entity = contents[x][y]; if (entity) { if (drawnUids.has(entity.uid)) { continue; } drawnUids.add(entity.uid); const staticComp = entity.components.StaticMapEntity; const sprite = staticComp.getSprite(); if (sprite) { staticComp.drawSpriteOnFullEntityBounds(parameters, sprite, 2); } } } } } }