From 4b85a314c411306908ba2dc00b74fdfeccb9a662 Mon Sep 17 00:00:00 2001 From: Mal Date: Sun, 8 Dec 2024 16:53:56 +0100 Subject: [PATCH] Snow fullscreen effect implemented --- js/Game.js | 8 +++- js/Level.js | 13 ++++- js/effects/FullscreenEffect.js | 22 +++++++++ js/effects/FullscreenEffectFactory.js | 27 +++++++++++ js/effects/SnowEffect.js | 31 ++++++++++++ js/effects/snow.png | Bin 0 -> 85129 bytes tilorswift/js/Tilorswift.js | 45 ++++++++++++++++++ tilorswift/js/dialog/Dialog.js | 13 +++++ tilorswift/js/dialog/DialogEffects.js | 45 ++++++++++++++++++ tilorswift/js/dialog/elements/Checkbox.js | 29 +++++++++++ .../events/TilorswiftEffectsUpdatedEvent.js | 9 ++++ tilorswift/js/events/TilorswiftEvent.js | 1 + .../TilorswiftMenuEffectsClickedEvent.js | 9 ++++ 13 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 js/effects/FullscreenEffect.js create mode 100644 js/effects/FullscreenEffectFactory.js create mode 100644 js/effects/SnowEffect.js create mode 100644 js/effects/snow.png create mode 100644 tilorswift/js/dialog/DialogEffects.js create mode 100644 tilorswift/js/dialog/elements/Checkbox.js create mode 100644 tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js create mode 100644 tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js diff --git a/js/Game.js b/js/Game.js index b82befa..bb58bd2 100644 --- a/js/Game.js +++ b/js/Game.js @@ -71,7 +71,13 @@ export class Game this.architecture.draw(this.context, this.camera); this.mrCroc.draw(this.context, this.camera); this.gisela.draw(this.context, this.camera); - this.userInterface.draw(this.context); + + for (const effect of this.level.fullscreenEffects) { + effect.update(timestamp); + effect.render(this.context); + } + + this.userInterface.draw(this.context); this.lastRendered = timestamp; } diff --git a/js/Level.js b/js/Level.js index 80c4e81..23d4ecd 100644 --- a/js/Level.js +++ b/js/Level.js @@ -1,5 +1,6 @@ import FileLoader from "./FileLoader.js"; import Terrain from "../tilorswift/js/Terrain.js"; +import {FullscreenEffectFactory} from "./effects/FullscreenEffectFactory.js"; export default class Level { @@ -8,6 +9,7 @@ export default class Level constructor(terrain) { this.terrain = terrain; + this.fullscreenEffects = []; this.gravity = 2.0; } @@ -83,7 +85,6 @@ export default class Level const json = JSON.parse(data); const level = new Level(Terrain.createFromJson(json)); level.setGravity(json.gravity / Level.FACTOR_GRAVITY); - callback(level); } loader.loadContent(); @@ -97,6 +98,16 @@ export default class Level const level = new Level(terrain); level.setGravity(data.gravity / Level.FACTOR_GRAVITY); + if (data.hasOwnProperty('effects')) { + const effectFactory = new FullscreenEffectFactory(); + + for (const effect of data.effects) { + level.fullscreenEffects.push( + effectFactory.getEffect(effect) + ); + } + } + return level; } } diff --git a/js/effects/FullscreenEffect.js b/js/effects/FullscreenEffect.js new file mode 100644 index 0000000..66ab38a --- /dev/null +++ b/js/effects/FullscreenEffect.js @@ -0,0 +1,22 @@ +export class FullscreenEffect +{ + static NAME = ''; + + constructor(canvas) + { + this.canvas = canvas; + } + + update(timestamp) + { + } + + render(context) + { + } + + getName() + { + return this.constructor.NAME; + } +} diff --git a/js/effects/FullscreenEffectFactory.js b/js/effects/FullscreenEffectFactory.js new file mode 100644 index 0000000..a4f8fc9 --- /dev/null +++ b/js/effects/FullscreenEffectFactory.js @@ -0,0 +1,27 @@ +import {SnowEffect} from "./SnowEffect.js"; + +export class FullscreenEffectFactory +{ + static EFFECTS = { + [SnowEffect.NAME]: SnowEffect, + } + + getEffect(name) + { + return new FullscreenEffectFactory.EFFECTS[name](); + } + + static getNames() + { + const names = []; + + for (const name in FullscreenEffectFactory.EFFECTS) { + console.log(name); + names.push(name); + } + + console.log(names); + + return names; + } +} diff --git a/js/effects/SnowEffect.js b/js/effects/SnowEffect.js new file mode 100644 index 0000000..2011fa2 --- /dev/null +++ b/js/effects/SnowEffect.js @@ -0,0 +1,31 @@ +import {FullscreenEffect} from "./FullscreenEffect.js"; + +export class SnowEffect extends FullscreenEffect +{ + static NAME = 'snow'; + + constructor() + { + super(); + this.image = new Image(); + this.image.src = '/js/effects/snow.png'; + this.offset = 0; + } + + update(timestamp) + { + super.update(timestamp); + this.offset = timestamp % 512; + } + + render(context) + { + super.render(context); + + for (let y = -1; y < Math.ceil(context.canvas.height / 512); y++) { + for (let x = -1; x < Math.ceil(context.canvas.width / 512); x++) { + context.drawImage(this.image, this.offset + 512 * x, this.offset + 512 * y); + } + } + } +} diff --git a/js/effects/snow.png b/js/effects/snow.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf8d41b138a53f2a131d40ca3582df784e78252 GIT binary patch literal 85129 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 z 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 literal 0 HcmV?d00001 diff --git a/tilorswift/js/Tilorswift.js b/tilorswift/js/Tilorswift.js index 7eea964..267134f 100644 --- a/tilorswift/js/Tilorswift.js +++ b/tilorswift/js/Tilorswift.js @@ -17,19 +17,27 @@ import TilorswiftMenuSaveClickedEvent from "./events/TilorswiftMenuSaveClickedEv import TilorswiftAddRowsClickedEvent from "./events/TilorswiftAddRowsClickedEvent.js"; import TilorswiftAddColumnsClickedEvent from "./events/TilorswiftAddColumnsClickedEvent.js"; import TilorswiftMenuGravityClickedEvent from "./events/TilorswiftMenuGravityClickedEvent.js"; +import TilorswiftMenuEffectsClickedEvent from "./events/TilorswiftMenuEffectsClickedEvent.js"; import TilorswiftEvent from "./events/TilorswiftEvent.js"; import BrushMode from "./BrushMode.js"; import DialogNewTerrain from "./dialog/DialogNewTerrain.js"; import DialogGravity from "./dialog/DialogGravity.js"; +import DialogEffects from "./dialog/DialogEffects.js"; import DialogAddRows from "./dialog/DialogAddRows.js"; import DialogAddColumns from "./dialog/DialogAddColumns.js"; import Terrain from "./Terrain.js"; import TilorswiftSavedEvent from "./events/TilorswiftSavedEvent.js"; import Level from "../../js/Level.js"; import {IntelligentBrushSwitch} from "./menu/IntelligentBrushSwitch.js"; +import {SnowEffect} from "../../js/effects/SnowEffect.js"; +import {FullscreenEffectFactory} from "../../js/effects/FullscreenEffectFactory.js"; export default class Tilorswift { + static EFFECT_NAMES = { + [SnowEffect.NAME]: 'Schnee', + } + constructor(level) { this.level = level; this.map = document.getElementById('map'); @@ -65,6 +73,7 @@ export default class Tilorswift const menuLevel = new MenuGroup('Level'); menuLevel.addMenuEntry(new MainMenuEntry('Gravitation...', TilorswiftMenuGravityClickedEvent)); + menuLevel.addMenuEntry(new MainMenuEntry('Effekte...', TilorswiftMenuEffectsClickedEvent)); this.mainbar.addMenuGroup(menuLevel); document.body.appendChild(this.mainbar.getElement()); @@ -96,6 +105,7 @@ export default class Tilorswift targetY: this.level.getTargetY(), gravity: this.level.gravity, matrix: matrix, + effects: this.level.fullscreenEffects.map((effect) => {return effect.getName()}), }; return JSON.stringify(data); @@ -105,6 +115,7 @@ export default class Tilorswift { const dialog = new LoadLevelDialog(); dialog.onLoad = (json) => { + console.log(json); this.tileset = new Tileset(JSON.parse(json).tileset); this.level = Level.createFromJson(json); this.loadLevel(); @@ -297,6 +308,25 @@ export default class Tilorswift } ); + window.addEventListener( + TilorswiftEvent.MENU_EFFECTS_CLICKED, + () => { + const effects = []; + + for (const effect of this.level.fullscreenEffects) { + effects.push(effect.getName()); + } + + new DialogEffects( + FullscreenEffectFactory.getNames(), + effects, + { + [SnowEffect.NAME]: 'Schnee', + } + ); + } + ); + window.addEventListener( TilorswiftEvent.ADD_ROWS_CLICKED, () => { @@ -318,6 +348,21 @@ export default class Tilorswift } ); + window.addEventListener( + TilorswiftEvent.EFFECTS_UPDATED, + (event) => { + this.level.fullscreenEffects = []; + + const effectFactory = new FullscreenEffectFactory(); + + for (const effectName of event.effectNames) { + this.level.fullscreenEffects.push( + effectFactory.getEffect(effectName) + ); + } + } + ); + window.addEventListener( TilorswiftEvent.ADD_ROWS, (event) => { diff --git a/tilorswift/js/dialog/Dialog.js b/tilorswift/js/dialog/Dialog.js index 14810d9..1f02aa5 100644 --- a/tilorswift/js/dialog/Dialog.js +++ b/tilorswift/js/dialog/Dialog.js @@ -1,6 +1,7 @@ import GraphicSet from "../../../js/GraphicSet.js"; import Setting from "../../../js/Setting.js"; import TilorswiftTilesetSelectedEvent from "../events/TilorswiftTilesetSelectedEvent.js"; +import {Checkbox} from "./elements/Checkbox.js"; export default class Dialog { @@ -66,6 +67,16 @@ export default class Dialog return htmlElementInput; } + createCheckbox(label, value, isChecked = false, onClick = () => {}) + { + const checkbox = new Checkbox(label, value, isChecked); + checkbox.onClick = onClick; + + this.inputAreaElement.appendChild(checkbox.htmlElement); + + return checkbox; + } + createTilesetSelector() { let htmlElement = document.createElement('div'); @@ -133,6 +144,8 @@ export default class Dialog return htmlElement; } + + createFileInput(types = []) { let input = document.createElement('input'); diff --git a/tilorswift/js/dialog/DialogEffects.js b/tilorswift/js/dialog/DialogEffects.js new file mode 100644 index 0000000..960d1af --- /dev/null +++ b/tilorswift/js/dialog/DialogEffects.js @@ -0,0 +1,45 @@ +import Dialog from "./Dialog.js"; +import TilorswiftEffectsUpdatedEvent from "../events/TilorswiftEffectsUpdatedEvent.js"; + +export default class DialogEffects extends Dialog +{ + constructor(effects, checked, translations) + { + super(); + this.setMessage('Effekte'); + this.effects = []; + + for (const effect of effects) { + const checkbox = this.createCheckbox( + translations[effect], + effect, + checked.indexOf(effect) !== -1, + () => { + console.log(checkbox.name, 'is', checkbox.isChecked()); + } + ); + + this.effects.push(checkbox); + this.inputAreaElement.appendChild(checkbox.htmlElement); + } + + this.createButton('Abbrechen'); + this.buttonOk = this.createButton('OK'); + this.buttonOk.addEventListener( + 'click', + () => { + const effectNames = []; + + for (const effect of this.effects) { + if (effect.isChecked()) { + effectNames.push(effect.name); + } + } + + window.dispatchEvent( + new TilorswiftEffectsUpdatedEvent(effectNames) + ); + } + ) + } +} diff --git a/tilorswift/js/dialog/elements/Checkbox.js b/tilorswift/js/dialog/elements/Checkbox.js new file mode 100644 index 0000000..e7a4d63 --- /dev/null +++ b/tilorswift/js/dialog/elements/Checkbox.js @@ -0,0 +1,29 @@ +export class Checkbox +{ + constructor(label, name, isChecked = false) + { + this.name = name; + + this.htmlElement = document.createElement('div'); + + this.onClick = () => {}; + + this.checkbox = document.createElement('input'); + this.checkbox.type = 'checkbox'; + this.checkbox.checked = isChecked; + this.checkbox.onclick = () => { + this.onClick(); + } + + this.htmlLabel = document.createElement('label'); + this.htmlLabel.innerText = label; + + this.htmlElement.appendChild(this.checkbox); + this.htmlElement.appendChild(this.htmlLabel); + } + + isChecked() + { + return this.checkbox.checked; + } +} diff --git a/tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js b/tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js new file mode 100644 index 0000000..e71db56 --- /dev/null +++ b/tilorswift/js/events/TilorswiftEffectsUpdatedEvent.js @@ -0,0 +1,9 @@ +import TilorswiftEvent from "./TilorswiftEvent.js"; + +export default class TilorswiftEffectsUpdatedEvent extends Event +{ + constructor(effectNames) { + super(TilorswiftEvent.EFFECTS_UPDATED); + this.effectNames = effectNames; + } +} diff --git a/tilorswift/js/events/TilorswiftEvent.js b/tilorswift/js/events/TilorswiftEvent.js index 791d092..523d4f6 100644 --- a/tilorswift/js/events/TilorswiftEvent.js +++ b/tilorswift/js/events/TilorswiftEvent.js @@ -17,6 +17,7 @@ const TilorswiftEvent = { TILESET_SELECTED: 'tilesetSelected', MENU_GRAVITY_CLICKED: 'menuGravityClicked', GRAVITY_UPDATED: 'gravityUpdated', + MENU_EFFECTS_CLICKED: 'menuEffectsClicked', }; export default TilorswiftEvent; diff --git a/tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js b/tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js new file mode 100644 index 0000000..220a2e0 --- /dev/null +++ b/tilorswift/js/events/TilorswiftMenuEffectsClickedEvent.js @@ -0,0 +1,9 @@ +import TilorswiftEvent from "./TilorswiftEvent.js"; + +export default class TilorswiftMenuEffectsClickedEvent extends Event +{ + constructor() + { + super(TilorswiftEvent.MENU_EFFECTS_CLICKED); + } +}