92 lines
2.7 KiB
TypeScript
92 lines
2.7 KiB
TypeScript
import { clientUIButtonHook } from "/Scripts/client/uihooks";
|
|
import { Engine } from "/Scripts/types/engine";
|
|
import { Hook } from "/Scripts/types/hook";
|
|
import { AreaSelection } from "/Scripts/types/host/client/client-area-utils";
|
|
|
|
/**
|
|
* The client-wide hooks
|
|
*/
|
|
export const clientHooks: Hook[] = [
|
|
{
|
|
signal: "OPEN_VOXEL",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.menuUtils.static.openVoxel()
|
|
}
|
|
},
|
|
{
|
|
signal: "ADD_VOXEL",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.voxelUtils.static.applyEdit()
|
|
}
|
|
},
|
|
{
|
|
signal: "OPEN_SPAWN_SELECT",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.menuUtils.static.openSpawnSelection()
|
|
}
|
|
},
|
|
{
|
|
signal: "LEVEL_EDIT_SPAWN",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.levelEditorUtils.static.spawnEntity()
|
|
}
|
|
},
|
|
{
|
|
signal: "INSPECTOR",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.levelEditorUtils.static.inspectEntity()
|
|
}
|
|
},
|
|
{
|
|
signal: "SPAWN_WATER",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.voxelUtils.static.spawnWater()
|
|
}
|
|
},
|
|
{
|
|
signal: "DIG",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.voxelUtils.static.dig()
|
|
}
|
|
},
|
|
{
|
|
signal: "SELECT_FAB",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.menuUtils.static.openFabSelection()
|
|
}
|
|
},
|
|
{
|
|
signal: "PLACE_FAB",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.voxelUtils.static.placeFab()
|
|
}
|
|
},
|
|
{
|
|
signal: "ROOM_TOOL_ACTION",
|
|
callback: (engine: Engine) => {
|
|
switch(engine.playerState.controlState.roomTool.currentState){
|
|
case 'DetectRoom': {
|
|
} break;
|
|
case 'SelectFurniture': {
|
|
} break;
|
|
case 'SelectRoom': {
|
|
const areaSelection: AreaSelection = engine.classes.areaUtils.static.selectAreaRectangular()
|
|
console.log(areaSelection.getRectStart())
|
|
console.log(JSON.stringify(areaSelection.getRectStart()))
|
|
engine.classes.areaUtils.static.makeSelectionVisible(areaSelection)
|
|
} break;
|
|
case 'ShowFurniture': {
|
|
} break;
|
|
case 'ShowRoom': {
|
|
} break;
|
|
}
|
|
}
|
|
},
|
|
{
|
|
signal: "ROOM_TOOL_MENU",
|
|
callback: (engine: Engine) => {
|
|
engine.classes.menuUtils.static.openDialog('Data/menu/room/roomToolConfig.html')
|
|
}
|
|
},
|
|
clientUIButtonHook,
|
|
] |