@kbve/laser 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -10
- package/laser.es.js +376 -0
- package/package.json +54 -24
- package/src/index.d.ts +0 -19
- package/src/index.js +0 -37
- package/src/index.js.map +0 -1
- package/src/lib/animations/TypewriterComponent.d.ts +0 -8
- package/src/lib/animations/TypewriterComponent.js +0 -53
- package/src/lib/animations/TypewriterComponent.js.map +0 -1
- package/src/lib/constants.d.ts +0 -2
- package/src/lib/constants.js +0 -6
- package/src/lib/constants.js.map +0 -1
- package/src/lib/eventhandler.d.ts +0 -31
- package/src/lib/eventhandler.js +0 -45
- package/src/lib/eventhandler.js.map +0 -1
- package/src/lib/icon/CollapseIcon.d.ts +0 -4
- package/src/lib/icon/CollapseIcon.js +0 -10
- package/src/lib/icon/CollapseIcon.js.map +0 -1
- package/src/lib/icon/ExpandIcon.d.ts +0 -4
- package/src/lib/icon/ExpandIcon.js +0 -10
- package/src/lib/icon/ExpandIcon.js.map +0 -1
- package/src/lib/laser.d.ts +0 -1
- package/src/lib/laser.js +0 -8
- package/src/lib/laser.js.map +0 -1
- package/src/lib/localdb.d.ts +0 -55
- package/src/lib/localdb.js +0 -592
- package/src/lib/localdb.js.map +0 -1
- package/src/lib/minigame/dice/MinigameDice.d.ts +0 -4
- package/src/lib/minigame/dice/MinigameDice.js +0 -85
- package/src/lib/minigame/dice/MinigameDice.js.map +0 -1
- package/src/lib/phaser/map/mapdatabase.d.ts +0 -1
- package/src/lib/phaser/map/mapdatabase.js +0 -175
- package/src/lib/phaser/map/mapdatabase.js.map +0 -1
- package/src/lib/phaser/monster/bird.d.ts +0 -7
- package/src/lib/phaser/monster/bird.js +0 -44
- package/src/lib/phaser/monster/bird.js.map +0 -1
- package/src/lib/phaser/npc/chatbubble.d.ts +0 -10
- package/src/lib/phaser/npc/chatbubble.js +0 -78
- package/src/lib/phaser/npc/chatbubble.js.map +0 -1
- package/src/lib/phaser/npc/npcdatabase.d.ts +0 -59
- package/src/lib/phaser/npc/npcdatabase.js +0 -550
- package/src/lib/phaser/npc/npcdatabase.js.map +0 -1
- package/src/lib/phaser/npc/npchandler.d.ts +0 -21
- package/src/lib/phaser/npc/npchandler.js +0 -123
- package/src/lib/phaser/npc/npchandler.js.map +0 -1
- package/src/lib/phaser/npc/tooltipmenu.d.ts +0 -17
- package/src/lib/phaser/npc/tooltipmenu.js +0 -68
- package/src/lib/phaser/npc/tooltipmenu.js.map +0 -1
- package/src/lib/phaser/player/playercontroller.d.ts +0 -24
- package/src/lib/phaser/player/playercontroller.js +0 -219
- package/src/lib/phaser/player/playercontroller.js.map +0 -1
- package/src/lib/quadtree.d.ts +0 -23
- package/src/lib/quadtree.js +0 -123
- package/src/lib/quadtree.js.map +0 -1
- package/src/lib/regex.d.ts +0 -1
- package/src/lib/regex.js +0 -6
- package/src/lib/regex.js.map +0 -1
- package/src/lib/utils/debug.d.ts +0 -8
- package/src/lib/utils/debug.js +0 -46
- package/src/lib/utils/debug.js.map +0 -1
- package/src/lib/utils/loader.d.ts +0 -3
- package/src/lib/utils/loader.js +0 -87
- package/src/lib/utils/loader.js.map +0 -1
- package/src/lib/utils/ulid.d.ts +0 -1
- package/src/lib/utils/ulid.js +0 -38
- package/src/lib/utils/ulid.js.map +0 -1
- package/src/types.d.ts +0 -423
- package/src/types.js +0 -14
- package/src/types.js.map +0 -1
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
// MinigameDice.tsx
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const fiber_1 = require("@react-three/fiber");
|
|
8
|
-
const react_2 = require("@nanostores/react");
|
|
9
|
-
const eventhandler_1 = require("../../eventhandler");
|
|
10
|
-
const localdb_1 = require("../../localdb");
|
|
11
|
-
const types_1 = require("../../../types");
|
|
12
|
-
const THREE = tslib_1.__importStar(require("three"));
|
|
13
|
-
const diceOrientations = [
|
|
14
|
-
new THREE.Euler(-Math.PI / 2, -Math.PI / 2, -Math.PI / 2), // 1
|
|
15
|
-
new THREE.Euler(0, Math.PI / 2, 0), // 2
|
|
16
|
-
new THREE.Euler(0, -Math.PI / 2, -Math.PI / 2), // 3
|
|
17
|
-
new THREE.Euler(Math.PI / 2, Math.PI, Math.PI), // 4
|
|
18
|
-
new THREE.Euler(0, 0, -Math.PI / 2), // 5
|
|
19
|
-
new THREE.Euler(Math.PI, 0, 0) // 6
|
|
20
|
-
];
|
|
21
|
-
const PixelatedDice = ({ diceValues, isRolling, textures }) => {
|
|
22
|
-
const diceRefs = (0, react_1.useRef)([]);
|
|
23
|
-
const materialsRef = (0, react_1.useRef)([]);
|
|
24
|
-
(0, react_1.useEffect)(() => {
|
|
25
|
-
const loader = new THREE.TextureLoader();
|
|
26
|
-
//const yellowTint = new THREE.Color(0xffff00);
|
|
27
|
-
const yellowTint = new THREE.Color(0xFFD700);
|
|
28
|
-
materialsRef.current = [
|
|
29
|
-
new THREE.MeshStandardMaterial({ map: loader.load(textures.side1), color: yellowTint }),
|
|
30
|
-
new THREE.MeshStandardMaterial({ map: loader.load(textures.side2), color: yellowTint }),
|
|
31
|
-
new THREE.MeshStandardMaterial({ map: loader.load(textures.side3), color: yellowTint }),
|
|
32
|
-
new THREE.MeshStandardMaterial({ map: loader.load(textures.side4), color: yellowTint }),
|
|
33
|
-
new THREE.MeshStandardMaterial({ map: loader.load(textures.side5), color: yellowTint }),
|
|
34
|
-
new THREE.MeshStandardMaterial({ map: loader.load(textures.side6), color: yellowTint }),
|
|
35
|
-
];
|
|
36
|
-
diceRefs.current.forEach((dice) => {
|
|
37
|
-
if (dice) {
|
|
38
|
-
dice.material = materialsRef.current;
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}, [textures]);
|
|
42
|
-
(0, fiber_1.useFrame)(() => {
|
|
43
|
-
diceRefs.current.forEach((dice, index) => {
|
|
44
|
-
if (dice) {
|
|
45
|
-
if (isRolling) {
|
|
46
|
-
dice.rotation.x += 0.2;
|
|
47
|
-
dice.rotation.y += 0.2;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const targetRotation = diceOrientations[diceValues[index] - 1];
|
|
51
|
-
dice.rotation.x = THREE.MathUtils.lerp(dice.rotation.x, targetRotation.x, 0.1);
|
|
52
|
-
dice.rotation.y = THREE.MathUtils.lerp(dice.rotation.y, targetRotation.y, 0.1);
|
|
53
|
-
dice.rotation.z = THREE.MathUtils.lerp(dice.rotation.z, targetRotation.z, 0.1);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: diceValues.map((value, index) => ((0, jsx_runtime_1.jsxs)("mesh", { ref: el => diceRefs.current[index] = el, position: [index * 2 - (diceValues.length - 1), 0, 0], children: [(0, jsx_runtime_1.jsx)("boxGeometry", { args: [1, 1, 1] }), materialsRef.current.length === 6 && materialsRef.current.map((material, i) => ((0, jsx_runtime_1.jsx)("meshStandardMaterial", Object.assign({ attach: `material-${i}` }, material), i)))] }, index))) }));
|
|
59
|
-
};
|
|
60
|
-
const MinigameDice = ({ styleClass, textures, diceCount }) => {
|
|
61
|
-
const state = (0, react_2.useStore)(localdb_1.minigameState);
|
|
62
|
-
(0, react_1.useEffect)(() => {
|
|
63
|
-
(0, localdb_1.setGameMode)('Dice');
|
|
64
|
-
(0, localdb_1.setTextures)(textures);
|
|
65
|
-
(0, localdb_1.setAction)({
|
|
66
|
-
type: 'ROLL_DICE',
|
|
67
|
-
diceValues: Array(diceCount).fill(1),
|
|
68
|
-
isRolling: false,
|
|
69
|
-
});
|
|
70
|
-
}, [textures, diceCount]);
|
|
71
|
-
const rollDice = () => {
|
|
72
|
-
(0, localdb_1.setRollingStatus)(true);
|
|
73
|
-
setTimeout(() => {
|
|
74
|
-
const newValues = Array.from({ length: diceCount }, () => Math.floor(Math.random() * 6) + 1);
|
|
75
|
-
(0, localdb_1.updateDiceValues)(newValues);
|
|
76
|
-
(0, localdb_1.setRollingStatus)(false);
|
|
77
|
-
// Emit the roll result
|
|
78
|
-
const rollResult = { diceValues: newValues };
|
|
79
|
-
eventhandler_1.EventEmitter.emit('diceRollResult', rollResult);
|
|
80
|
-
}, 2000); // Duration matches the animation
|
|
81
|
-
};
|
|
82
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: `flex flex-col items-center justify-center p-4 ${styleClass}`, children: [(0, jsx_runtime_1.jsx)("h1", { className: "text-2xl font-bold mb-4", children: "Dice Roller" }), (0, jsx_runtime_1.jsxs)(fiber_1.Canvas, { className: "w-full h-full", camera: { position: [0, 0, 5] }, children: [(0, jsx_runtime_1.jsx)("ambientLight", { intensity: 2.5 }), (0, jsx_runtime_1.jsx)("pointLight", { position: [10, 10, 10] }), (0, types_1.isDiceAction)(state.action) && ((0, jsx_runtime_1.jsx)(PixelatedDice, { diceValues: state.action.diceValues, isRolling: state.action.isRolling, textures: state.textures }))] }), (0, types_1.isDiceAction)(state.action) && ((0, jsx_runtime_1.jsx)("button", { onClick: rollDice, className: `mt-4 p-2 border border-yellow-300 rounded text-yellow-400 hover:scale-110 ${state.action.isRolling ? 'opacity-50' : ''}`, disabled: state.action.isRolling, children: "Roll Dice" }))] }));
|
|
83
|
-
};
|
|
84
|
-
exports.default = MinigameDice;
|
|
85
|
-
//# sourceMappingURL=MinigameDice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MinigameDice.js","sourceRoot":"","sources":["../../../../../../../packages/laser/src/lib/minigame/dice/MinigameDice.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const dexie_1 = tslib_1.__importDefault(require("dexie"));
|
|
5
|
-
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
-
const debug_1 = require("../../utils/debug");
|
|
7
|
-
class MapDatabase extends dexie_1.default {
|
|
8
|
-
constructor() {
|
|
9
|
-
super('MapDatabase');
|
|
10
|
-
this.version(1).stores({
|
|
11
|
-
maps: 'tilemapKey',
|
|
12
|
-
jsonFiles: 'tilemapKey',
|
|
13
|
-
tilesetImages: 'tilemapKey',
|
|
14
|
-
});
|
|
15
|
-
this.maps = this.table('maps');
|
|
16
|
-
this.jsonFiles = this.table('jsonFiles');
|
|
17
|
-
this.tilesetImages = this.table('tilesetImages');
|
|
18
|
-
}
|
|
19
|
-
// Adding or updating map data
|
|
20
|
-
addMap(mapData) {
|
|
21
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
yield this.maps.put(mapData);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
// Fetching a map by its key
|
|
26
|
-
getMap(tilemapKey) {
|
|
27
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
return yield this.maps.get(tilemapKey);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
// Adding or updating JSON data for a map
|
|
32
|
-
addJsonData(tilemapKey, jsonData) {
|
|
33
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
yield this.jsonFiles.put({ tilemapKey, jsonData });
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
// Fetching JSON data for a map
|
|
38
|
-
getJsonData(tilemapKey) {
|
|
39
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const jsonData = yield this.jsonFiles.get(tilemapKey);
|
|
41
|
-
return jsonData === null || jsonData === void 0 ? void 0 : jsonData.jsonData;
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
// Adding or updating a tileset image for a map
|
|
45
|
-
addTilesetImage(tilemapKey, imageData) {
|
|
46
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
yield this.tilesetImages.put({ tilemapKey, imageData });
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
// Fetching a tileset image for a map
|
|
51
|
-
getTilesetImage(tilemapKey) {
|
|
52
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
const image = yield this.tilesetImages.get(tilemapKey);
|
|
54
|
-
return image === null || image === void 0 ? void 0 : image.imageData;
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
// Fetching map data from a URL
|
|
58
|
-
fetchMapData(url) {
|
|
59
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
try {
|
|
61
|
-
const response = yield axios_1.default.get(url);
|
|
62
|
-
return response.data;
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
debug_1.Debug.error(`Failed to fetch map data from ${url}:`, error);
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
// Fetching JSON data from a URL
|
|
71
|
-
fetchJsonData(url) {
|
|
72
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
try {
|
|
74
|
-
const response = yield axios_1.default.get(url);
|
|
75
|
-
return response.data;
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
debug_1.Debug.error(`Failed to fetch JSON data from ${url}:`, error);
|
|
79
|
-
return undefined;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
// Fetching a tileset image from a URL
|
|
84
|
-
fetchTilesetImage(url) {
|
|
85
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
try {
|
|
87
|
-
const response = yield axios_1.default.get(url, { responseType: 'blob' });
|
|
88
|
-
return response.data;
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
debug_1.Debug.error(`Failed to fetch tileset image from ${url}:`, error);
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
// Initialize the map database with data from URLs
|
|
97
|
-
initializeMap(tilemapKey, mapDataUrl, jsonDataUrl, tilesetImageUrl) {
|
|
98
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
try {
|
|
100
|
-
const mapData = yield this.fetchMapData(mapDataUrl);
|
|
101
|
-
if (mapData) {
|
|
102
|
-
yield this.addMap(mapData);
|
|
103
|
-
const jsonData = yield this.fetchJsonData(jsonDataUrl);
|
|
104
|
-
if (jsonData) {
|
|
105
|
-
yield this.addJsonData(tilemapKey, jsonData);
|
|
106
|
-
}
|
|
107
|
-
const tilesetImage = yield this.fetchTilesetImage(tilesetImageUrl);
|
|
108
|
-
if (tilesetImage) {
|
|
109
|
-
yield this.addTilesetImage(tilemapKey, tilesetImage);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
debug_1.Debug.error('Failed to initialize map database:', error);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
// Example method to load a map into a Phaser scene
|
|
119
|
-
loadMapIntoScene(scene, tilemapKey) {
|
|
120
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
const mapData = yield this.getMap(tilemapKey);
|
|
122
|
-
if (!mapData) {
|
|
123
|
-
debug_1.Debug.error(`Map with key ${tilemapKey} not found`);
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const jsonData = yield this.getJsonData(tilemapKey);
|
|
127
|
-
if (!jsonData) {
|
|
128
|
-
debug_1.Debug.error(`JSON data for map ${tilemapKey} not found`);
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const tilesetImage = yield this.getTilesetImage(tilemapKey);
|
|
132
|
-
if (!tilesetImage) {
|
|
133
|
-
debug_1.Debug.error(`Tileset image for map ${tilemapKey} not found`);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
let tilesetImageUrl = null;
|
|
137
|
-
try {
|
|
138
|
-
tilesetImageUrl = URL.createObjectURL(tilesetImage);
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
debug_1.Debug.error(`Failed to create object URL for tileset image: ${error}`);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
// If tilesetImageUrl is still null, something went wrong
|
|
145
|
-
if (!tilesetImageUrl) {
|
|
146
|
-
debug_1.Debug.error(`Tileset image URL for map ${tilemapKey} could not be created.`);
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
// Load the JSON data and tileset image into the Phaser scene
|
|
150
|
-
scene.load.tilemapTiledJSON(tilemapKey, jsonData);
|
|
151
|
-
scene.load.image(mapData.tilesetKey, tilesetImageUrl);
|
|
152
|
-
scene.load.once('complete', () => {
|
|
153
|
-
const map = scene.make.tilemap({ key: tilemapKey });
|
|
154
|
-
const tileset = map.addTilesetImage(mapData.tilesetName, mapData.tilesetKey);
|
|
155
|
-
if (tileset) {
|
|
156
|
-
// Use the tileset here, now TypeScript knows it's not null
|
|
157
|
-
for (let i = 0; i < map.layers.length; i++) {
|
|
158
|
-
const layer = map.createLayer(i, tileset, 0, 0);
|
|
159
|
-
if (layer) {
|
|
160
|
-
layer.scale = mapData.scale;
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
debug_1.Debug.error(`Layer ${i} could not be created.`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
debug_1.Debug.error(`Tileset ${mapData.tilesetName} could not be created.`);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
scene.load.start();
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
//# sourceMappingURL=mapdatabase.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapdatabase.js","sourceRoot":"","sources":["../../../../../../../packages/laser/src/lib/phaser/map/mapdatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Scene } from 'phaser';
|
|
2
|
-
export declare function getBirdNum(charId: string): number;
|
|
3
|
-
export declare function isBird(charId: string): boolean;
|
|
4
|
-
export declare function createCroppedSprites(scene: Scene, x: number, y: number, width: number, height: number): Phaser.GameObjects.Sprite[];
|
|
5
|
-
export declare function createBirdSprites(scene: Scene): Phaser.GameObjects.Sprite[];
|
|
6
|
-
export declare function createShadowSprites(scene: Scene): Phaser.GameObjects.Sprite[];
|
|
7
|
-
export declare function createBirdAnimation(scene: Scene): void;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createBirdAnimation = exports.createShadowSprites = exports.createBirdSprites = exports.createCroppedSprites = exports.isBird = exports.getBirdNum = void 0;
|
|
4
|
-
function getBirdNum(charId) {
|
|
5
|
-
return +charId[charId.length - 1];
|
|
6
|
-
}
|
|
7
|
-
exports.getBirdNum = getBirdNum;
|
|
8
|
-
function isBird(charId) {
|
|
9
|
-
return charId.startsWith('monster_bird_') && !charId.startsWith('monster_bird_shadow');
|
|
10
|
-
}
|
|
11
|
-
exports.isBird = isBird;
|
|
12
|
-
function createCroppedSprites(scene, x, y, width, height) {
|
|
13
|
-
const croppedSprites = [];
|
|
14
|
-
for (let i = 0; i < 10; i++) {
|
|
15
|
-
const monsterBirdSprite = scene.add.sprite(0, 0, "monster_bird");
|
|
16
|
-
monsterBirdSprite.setCrop(x, y, width, height);
|
|
17
|
-
monsterBirdSprite.scale = 3;
|
|
18
|
-
croppedSprites.push(monsterBirdSprite);
|
|
19
|
-
}
|
|
20
|
-
return croppedSprites;
|
|
21
|
-
}
|
|
22
|
-
exports.createCroppedSprites = createCroppedSprites;
|
|
23
|
-
function createBirdSprites(scene) {
|
|
24
|
-
return createCroppedSprites(scene, 0, 0, 61, 47);
|
|
25
|
-
}
|
|
26
|
-
exports.createBirdSprites = createBirdSprites;
|
|
27
|
-
function createShadowSprites(scene) {
|
|
28
|
-
return createCroppedSprites(scene, 22, 47, 16, 10);
|
|
29
|
-
}
|
|
30
|
-
exports.createShadowSprites = createShadowSprites;
|
|
31
|
-
function createBirdAnimation(scene) {
|
|
32
|
-
scene.anims.create({
|
|
33
|
-
key: "bird",
|
|
34
|
-
frames: scene.anims.generateFrameNumbers("monster_bird", {
|
|
35
|
-
start: 0,
|
|
36
|
-
end: 2,
|
|
37
|
-
}),
|
|
38
|
-
frameRate: 10,
|
|
39
|
-
repeat: -1,
|
|
40
|
-
yoyo: true,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
exports.createBirdAnimation = createBirdAnimation;
|
|
44
|
-
//# sourceMappingURL=bird.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bird.js","sourceRoot":"","sources":["../../../../../../../packages/laser/src/lib/phaser/monster/bird.ts"],"names":[],"mappings":";;;AAEA,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,MAAM,CAAC,MAAc;IACnC,OAAO,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACzF,CAAC;AAFD,wBAEC;AAED,SAAgB,oBAAoB,CAAC,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;IACpG,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QACjE,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5B,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AATD,oDASC;AAED,SAAgB,iBAAiB,CAAC,KAAY;IAC5C,OAAO,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAFD,8CAEC;AAED,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,OAAO,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAFD,kDAEC;AAED,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,cAAc,EAAE;YACvD,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;SACP,CAAC;QACF,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,CAAC,CAAC;QACV,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAXD,kDAWC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Scene } from 'phaser';
|
|
2
|
-
declare class ExtendedSprite extends Phaser.GameObjects.Sprite {
|
|
3
|
-
textBubble?: Phaser.GameObjects.Container;
|
|
4
|
-
messageBubble?: Phaser.GameObjects.Container;
|
|
5
|
-
}
|
|
6
|
-
export declare function createMessageBubble(scene: Scene, sprite: ExtendedSprite, text: string | string[], duration: number): Phaser.GameObjects.Container;
|
|
7
|
-
export declare function createTextBubble(scene: Scene, sprite: ExtendedSprite, text: string | string[]): Phaser.GameObjects.Container;
|
|
8
|
-
export declare function updateTextBubblePosition(sprite: ExtendedSprite): void;
|
|
9
|
-
export declare function updateMessageBubblePosition(sprite: ExtendedSprite): void;
|
|
10
|
-
export {};
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateMessageBubblePosition = exports.updateTextBubblePosition = exports.createTextBubble = exports.createMessageBubble = void 0;
|
|
4
|
-
class ExtendedSprite extends Phaser.GameObjects.Sprite {
|
|
5
|
-
}
|
|
6
|
-
function createMessageBubble(scene, sprite, text, duration) {
|
|
7
|
-
const bubbleWidth = 200;
|
|
8
|
-
const bubbleHeight = 60;
|
|
9
|
-
const bubblePadding = 10;
|
|
10
|
-
const bubble = scene.add.graphics();
|
|
11
|
-
bubble.fillStyle(0xffffff, 1);
|
|
12
|
-
bubble.fillRoundedRect(0, 0, bubbleWidth, bubbleHeight, 16);
|
|
13
|
-
bubble.setDepth(99);
|
|
14
|
-
const content = scene.add.text(100, 30, text, {
|
|
15
|
-
fontFamily: 'Arial',
|
|
16
|
-
fontSize: 16,
|
|
17
|
-
color: '#000000',
|
|
18
|
-
});
|
|
19
|
-
content.setOrigin(0.5);
|
|
20
|
-
content.setWordWrapWidth(bubbleWidth - bubblePadding * 2);
|
|
21
|
-
content.setDepth(100);
|
|
22
|
-
const container = scene.add.container(0, 0, [bubble, content]);
|
|
23
|
-
container.setDepth(100);
|
|
24
|
-
sprite.messageBubble = container;
|
|
25
|
-
updateMessageBubblePosition(sprite);
|
|
26
|
-
scene.time.addEvent({
|
|
27
|
-
delay: duration,
|
|
28
|
-
callback: () => {
|
|
29
|
-
container.destroy();
|
|
30
|
-
if (sprite.messageBubble === container) {
|
|
31
|
-
sprite.messageBubble = undefined;
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
callbackScope: scene
|
|
35
|
-
});
|
|
36
|
-
return container;
|
|
37
|
-
}
|
|
38
|
-
exports.createMessageBubble = createMessageBubble;
|
|
39
|
-
function createTextBubble(scene, sprite, text) {
|
|
40
|
-
const bubbleWidth = 200;
|
|
41
|
-
const bubbleHeight = 60;
|
|
42
|
-
const bubblePadding = 10;
|
|
43
|
-
const bubble = scene.add.graphics();
|
|
44
|
-
bubble.fillStyle(0xffffff, 1);
|
|
45
|
-
bubble.fillRoundedRect(0, 0, bubbleWidth, bubbleHeight, 16);
|
|
46
|
-
bubble.setDepth(99);
|
|
47
|
-
const content = scene.add.text(100, 30, text, {
|
|
48
|
-
fontFamily: 'Arial',
|
|
49
|
-
fontSize: 16,
|
|
50
|
-
color: '#000000',
|
|
51
|
-
});
|
|
52
|
-
content.setOrigin(0.5);
|
|
53
|
-
content.setWordWrapWidth(bubbleWidth - bubblePadding * 2);
|
|
54
|
-
content.setDepth(100);
|
|
55
|
-
const container = scene.add.container(0, 0, [bubble, content]);
|
|
56
|
-
container.setDepth(100);
|
|
57
|
-
sprite.textBubble = container;
|
|
58
|
-
updateTextBubblePosition(sprite);
|
|
59
|
-
return container;
|
|
60
|
-
}
|
|
61
|
-
exports.createTextBubble = createTextBubble;
|
|
62
|
-
function updateTextBubblePosition(sprite) {
|
|
63
|
-
const container = sprite.textBubble;
|
|
64
|
-
if (container) {
|
|
65
|
-
container.x = sprite.x;
|
|
66
|
-
container.y = sprite.y - sprite.height - container.height / 2;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
exports.updateTextBubblePosition = updateTextBubblePosition;
|
|
70
|
-
function updateMessageBubblePosition(sprite) {
|
|
71
|
-
const container = sprite.messageBubble;
|
|
72
|
-
if (container) {
|
|
73
|
-
container.x = sprite.x;
|
|
74
|
-
container.y = sprite.y - sprite.height - container.height / 2;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
exports.updateMessageBubblePosition = updateMessageBubblePosition;
|
|
78
|
-
//# sourceMappingURL=chatbubble.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chatbubble.js","sourceRoot":"","sources":["../../../../../../../packages/laser/src/lib/phaser/npc/chatbubble.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import Dexie from 'dexie';
|
|
2
|
-
import { WritableAtom } from 'nanostores';
|
|
3
|
-
import { INPCData, ISprite, IAvatar, IDialogueObject } from '../../../types';
|
|
4
|
-
import { Scene } from 'phaser';
|
|
5
|
-
interface ExtendedScene extends Scene {
|
|
6
|
-
gridEngine: any;
|
|
7
|
-
}
|
|
8
|
-
declare class NPCDatabase extends Dexie {
|
|
9
|
-
npcs: Dexie.Table<INPCData, string>;
|
|
10
|
-
sprites: Dexie.Table<ISprite, string>;
|
|
11
|
-
avatars: Dexie.Table<IAvatar, string>;
|
|
12
|
-
dialogues: Dexie.Table<IDialogueObject, string>;
|
|
13
|
-
constructor();
|
|
14
|
-
addNPC(npcData: INPCData): Promise<void>;
|
|
15
|
-
getNPC(id: string): Promise<INPCData | undefined>;
|
|
16
|
-
getNPCByName(name: string): Promise<INPCData | undefined>;
|
|
17
|
-
getAllNPCs(): Promise<INPCData[]>;
|
|
18
|
-
exportNPCs(): Promise<string>;
|
|
19
|
-
importNPCs(jsonData: string): Promise<void>;
|
|
20
|
-
fetchNPCData(url: string): Promise<INPCData | undefined>;
|
|
21
|
-
addSprite(sprite: ISprite): Promise<void>;
|
|
22
|
-
getSprite(id: string): Promise<ISprite | undefined>;
|
|
23
|
-
getAllSprites(): Promise<ISprite[]>;
|
|
24
|
-
addAvatar(avatar: IAvatar): Promise<void>;
|
|
25
|
-
getAvatar(id: string): Promise<IAvatar | undefined>;
|
|
26
|
-
getAllAvatars(): Promise<IAvatar[]>;
|
|
27
|
-
urlToBlob(url: string): Promise<Blob | undefined>;
|
|
28
|
-
addNewSprite(url: string, spriteDetails: Omit<ISprite, 'spriteData'>): Promise<string | undefined>;
|
|
29
|
-
addNewNPC(npcDetails: Omit<INPCData, 'spriteImageId' | 'avatarImageId'>, spriteImageId: string, avatarImageId: string): Promise<void>;
|
|
30
|
-
addNewAvatar(url: string, avatarDetails: Omit<IAvatar, 'avatarData'>): Promise<string | undefined>;
|
|
31
|
-
fetchAvatars(url: string): Promise<void>;
|
|
32
|
-
fetchSprites(url: string): Promise<void>;
|
|
33
|
-
fetchNPCs(url: string): Promise<void>;
|
|
34
|
-
initializeDatabase(baseURL?: string): Promise<void>;
|
|
35
|
-
loadNPC(scene: ExtendedScene, npcName: string, x?: number, y?: number): Promise<void>;
|
|
36
|
-
loadCharacter(scene: ExtendedScene, npcId: string, x?: number, y?: number): Promise<void>;
|
|
37
|
-
addNPCToScene(scene: ExtendedScene, npcData: INPCData, x?: number, y?: number): void;
|
|
38
|
-
addDialogue(dialogue: IDialogueObject): Promise<void>;
|
|
39
|
-
getDialogue(id: string): Promise<IDialogueObject | undefined>;
|
|
40
|
-
getAllDialogues(): Promise<IDialogueObject[]>;
|
|
41
|
-
getDialoguesForNPC(npcId: string): Promise<IDialogueObject[]>;
|
|
42
|
-
markDialogueAsRead(npcId: string, dialogueId: string): Promise<void>;
|
|
43
|
-
fetchDialogues(url: string): Promise<void>;
|
|
44
|
-
getPrioritizedDialoguesForNPC(npcId: string): Promise<(IDialogueObject & {
|
|
45
|
-
priority: number;
|
|
46
|
-
read: boolean;
|
|
47
|
-
})[]>;
|
|
48
|
-
getNPCNameById(npcId: string): Promise<string | undefined>;
|
|
49
|
-
getNPCAvatarById(npcId: string): Promise<Blob | undefined>;
|
|
50
|
-
getNPCSlugById(npcId: string): Promise<string | undefined>;
|
|
51
|
-
getNPCHealthById(npcId: string): Promise<string | undefined>;
|
|
52
|
-
getNPCManaById(npcId: string): Promise<string | undefined>;
|
|
53
|
-
createNPCSession(SessionAtom: WritableAtom<Record<string, string>>, npcId: string): Promise<void>;
|
|
54
|
-
getNPCDialogueOptionsByULID(dialogueId: string): Promise<string>;
|
|
55
|
-
getAllDialogueOptions(dialogueId: string): Promise<IDialogueObject[]>;
|
|
56
|
-
createDialogueSession(DialogueSessionAtom: WritableAtom<Record<string, string>>, dialogueId: string): Promise<void>;
|
|
57
|
-
}
|
|
58
|
-
export { NPCDatabase };
|
|
59
|
-
export declare const npcDatabase: NPCDatabase;
|