diff --git a/dist/shattered_sword_assets/images/Logo.png b/dist/shattered_sword_assets/images/Logo.png new file mode 100644 index 0000000..82f3d4c Binary files /dev/null and b/dist/shattered_sword_assets/images/Logo.png differ diff --git a/dist/shattered_sword_assets/jsons/samplestory.json b/dist/shattered_sword_assets/jsons/samplestory.json new file mode 100644 index 0000000..90faec8 --- /dev/null +++ b/dist/shattered_sword_assets/jsons/samplestory.json @@ -0,0 +1,19 @@ +{ + "resources": [ + { + "type": "image", + "key": "hiro", + "path": "shattered_sword_assets/images/Logo.png" + } + ], + "texts": [ + { + "speaker": "Hiro", + "content": "Hello world!" + }, + { + "speaker": "world", + "content": "Hello Hiro!" + } + ] +} \ No newline at end of file diff --git a/src/shattered_sword/Scenes/Layers/StoryLayer.ts b/src/shattered_sword/Scenes/Layers/StoryLayer.ts new file mode 100644 index 0000000..8055f10 --- /dev/null +++ b/src/shattered_sword/Scenes/Layers/StoryLayer.ts @@ -0,0 +1,114 @@ +// import Vec2 from "../../../Wolfie2D/DataTypes/Vec2"; +// import Sprite from "../../../Wolfie2D/Nodes/Sprites/Sprite"; +// import Label, { HAlign } from "../../../Wolfie2D/Nodes/UIElements/Label"; +// import { UIElementType } from "../../../Wolfie2D/Nodes/UIElements/UIElementTypes"; +// import Layer from "../../../Wolfie2D/Scene/Layer"; +// import Scene from "../../../Wolfie2D/Scene/Scene"; +// import Color from "../../../Wolfie2D/Utils/Color"; +// import Story from "../../Tools/DataTypes/Story"; +// import StorySceneTester from "../StorySceneTester"; + +// export default class StoryLayer extends Layer { +// private progress: number; +// private sprites: Array; +// private currentSpeaker: string; +// private currentContent: string; + + +// constructor(scene: Scene, name: string, story: Story) { +// super(scene, name); +// this.story = story; +// } + +// static async storyLayerFactory(scene: StorySceneTester, name: string, storyPath: string): Promise { +// const response = await (await fetch(storyPath)).json(); +// let instance = new StoryLayer(scene, name, response); +// instance.story.resources.forEach((resource) => { +// switch (resource.type) { +// case "image": +// instance.scene.load.image(resource.key, resource.path); +// break; +// case "spritesheet": +// instance.scene.load.spritesheet(resource.key, resource.path); +// break; +// case "audio": +// instance.scene.load.audio(resource.key, resource.path); +// break; +// default: +// break; +// } +// }) + +// instance.currentSpeaker = instance.story.texts[0].speaker; +// instance.currentContent = instance.story.texts[0].content; + +// instance.textLabel =