79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
import { engine } from "/Scripts/engine/engine-init";
|
|
import { Engine } from "/Scripts/types/engine";
|
|
import { Scene } from "/Scripts/types/scene";
|
|
import { Vector } from "/Scripts/types/spatial";
|
|
|
|
/**
|
|
* The main scene interface
|
|
*/
|
|
class TestScene1 extends Scene {
|
|
|
|
/**
|
|
* Called when the scene is created
|
|
* @param instanceId The scene instanceId
|
|
*/
|
|
onCreate = (instanceId: number) => {
|
|
console.log('Hello from the scene! My ID is ' + instanceId)
|
|
console.log(Object.keys(this))
|
|
}
|
|
|
|
/**
|
|
* All hooks for the scene
|
|
*/
|
|
hooks = [
|
|
|
|
/**
|
|
* Equip item hook
|
|
*/
|
|
{
|
|
signal: "equipItem",
|
|
callback: (engine: Engine) => {
|
|
// throw tutorial message
|
|
engine.classes.simulation.static.setFramestep(0)
|
|
engine.classes.tutorialUtils.static.showTutorialHint(
|
|
"EquippingItems",
|
|
true,
|
|
() => {
|
|
engine.classes.simulation.static.setFramestep(2)
|
|
}
|
|
)
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Move hook
|
|
*/
|
|
{
|
|
signal: "entityGroundMove",
|
|
callback: (engine: Engine, newPos: Vector) => {
|
|
// console.log("Entity moved " + entityId + " to " + Vector.toString(newPos))
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Storing an item in inventory
|
|
*/
|
|
{
|
|
signal: "itemPickup",
|
|
callback: (engine: Engine, inWorldItemEntityId: number, inInventoryItemEntityId: number) => {
|
|
// throw tutorial message
|
|
engine.classes.simulation.static.setFramestep(0)
|
|
engine.classes.tutorialUtils.static.showTutorialHint(
|
|
"GrabbingItems",
|
|
true,
|
|
() => {
|
|
engine.classes.simulation.static.setFramestep(2)
|
|
}
|
|
)
|
|
}
|
|
},
|
|
|
|
]
|
|
|
|
}
|
|
|
|
/**
|
|
* The scene to export
|
|
*/
|
|
export default TestScene1
|