class Editor: Object
attachable: SpectrumAttachable
display: Display
camera: Camera
active: boolean
editorRoot: EditorRoot
undoStack: Modification[]
redoStack: Modification[]
placeable: {entity: Entity, factory: fun(): Entity} | nil
tool: Tool
selectorMode: string
selectorModes: table<string, string>
filepath: string | nil
fileEnabled: boolean
keybindsEnabled: boolean
__new(
    self: Editor,
    attachable: any,
    display: any,
    fileEnabled: any
)
fillMode: boolean
isActive(self: Editor): boolean
startEditing(self: Editor)
setAttachable(self: Editor, attachable: SpectrumAttachable)
update(self: Editor, dt: any)
execute(self: Editor, modification: Modification)
undo(self: Editor)
redo(self: Editor)
draw(self: Editor)
mousereleased(self: Editor, x: any, y: any, button: any)
mousepressed(self: Editor, x: any, y: any, button: any)
mousemoved(self: Editor, x: any, y: any, dx: any, dy: any, istouch: any)
textinput(self: Editor, text: any)
wheelmoved(self: Editor, dx: any, dy: any)