mirror of
https://git.leinelab.org/Mal/mr-crocs-adventures.git
synced 2025-09-11 02:57:36 +02:00
Snow fullscreen effect implemented
This commit is contained in:
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user