editor

package
v0.0.0-...-124f97e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2023 License: GPL-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const ToolLayer = physics.Mask(2)

Variables

This section is empty.

Functions

func ConstructEditors

func ConstructEditors(ctx *Context, current object.Component, target object.Component) object.Component

func Inspector

func Inspector(target object.Component, propEditors ...node.T) node.T

func MakeGUI

func MakeGUI(editor *App) gui.Manager

func ObjectList

func ObjectList(key string, props ObjectListProps) node.T

func ObjectListEntry

func ObjectListEntry(key string, props ObjectListEntryProps) node.T

func PropertyEditorFragment

func PropertyEditorFragment(position gui.FragmentPosition, render node.RenderFunc) gui.Fragment

func Register

func Register[K object.Component, E T](obj K, constructor func(*Context, K) E)

Register an Editor constructor for a given object type

func Scene

Types

type Action

type Action struct {
	Name     string
	Icon     icon.Icon
	Key      keys.Code
	Modifier keys.Modifier
	Callback func(*ToolManager)
}

type App

type App struct {
	object.Object
	GUI    gui.Manager
	Tools  *ToolManager
	World  *physics.World
	Player *Player
	// contains filtered or unexported fields
}

func NewApp

func NewApp(workspace object.Object) *App

func (*App) Lookup

func (e *App) Lookup(obj object.Object) T

func (*App) Refresh

func (e *App) Refresh()

func (*App) Update

func (e *App) Update(scene object.Component, dt float32)

type ComponentEditor

type ComponentEditor struct {
	object.Object

	GUI gui.Fragment
	// contains filtered or unexported fields
}

func NewComponentEditor

func NewComponentEditor(target object.Component) *ComponentEditor

func (*ComponentEditor) Actions

func (e *ComponentEditor) Actions() []Action

func (*ComponentEditor) Deselect

func (e *ComponentEditor) Deselect(ev mouse.Event) bool

func (*ComponentEditor) Select

func (e *ComponentEditor) Select(ev mouse.Event)

func (*ComponentEditor) Target

func (e *ComponentEditor) Target() object.Component

func (*ComponentEditor) Update

func (e *ComponentEditor) Update(scene object.Component, dt float32)

type Constructor

type Constructor func(*Context, object.Component) T

type Context

type Context struct {
	Camera *camera.Camera
	Scene  object.Object
}

type EditorScene

type EditorScene struct {
	object.Object
	App       *App
	Workspace object.Object
	// contains filtered or unexported fields
}

func NewEditorScene

func NewEditorScene(workspace object.Object, playing bool) *EditorScene

func (*EditorScene) KeyEvent

func (s *EditorScene) KeyEvent(e keys.Event)

func (*EditorScene) Replace

func (s *EditorScene) Replace(workspace object.Object)

func (*EditorScene) Update

func (s *EditorScene) Update(scene object.Component, dt float32)

type EditorUpdater

type EditorUpdater interface {
	object.Component
	EditorUpdate(scene object.Component, dt float32)
}

EditorUpdater is an optional interface that can be implemented by components to receive editor updates.

type ObjectEditor

type ObjectEditor struct {
	object.Object

	GUI gui.Fragment
	// contains filtered or unexported fields
}

func NewObjectEditor

func NewObjectEditor(target object.Object) *ObjectEditor

func (*ObjectEditor) Actions

func (e *ObjectEditor) Actions() []Action

func (*ObjectEditor) Deselect

func (e *ObjectEditor) Deselect(ev mouse.Event) bool

func (*ObjectEditor) Select

func (e *ObjectEditor) Select(ev mouse.Event)

func (*ObjectEditor) Target

func (e *ObjectEditor) Target() object.Component

func (*ObjectEditor) Update

func (e *ObjectEditor) Update(scene object.Component, dt float32)

type ObjectListEntryProps

type ObjectListEntryProps struct {
	Object   object.Component
	OnSelect SelectObjectHandler
}

type ObjectListProps

type ObjectListProps struct {
	Scene       object.Component
	EditorRoot  object.Component
	ToolManager *ToolManager
}

type Player

type Player struct {
	object.Object
	Camera   *camera.Object
	Speed    float32
	Friction vec3.T
	// contains filtered or unexported fields
}

func NewPlayer

func NewPlayer(position vec3.T, rotation quat.T) *Player

func (*Player) KeyEvent

func (p *Player) KeyEvent(e keys.Event)

func (*Player) MouseEvent

func (p *Player) MouseEvent(e mouse.Event)

func (*Player) Update

func (p *Player) Update(scene object.Component, dt float32)

type SelectObjectHandler

type SelectObjectHandler func(object.Component)

type T

type T interface {
	object.Object
	Target() object.Component

	Select(ev mouse.Event)
	Deselect(ev mouse.Event) bool

	Actions() []Action
}

type Tool

type Tool interface {
	object.Component
	CanDeselect() bool
	ToolMouseEvent(e mouse.Event, hover physics.RaycastHit)
}

type ToolManager

type ToolManager struct {
	object.Object

	// built-in tools
	Mover   *gizmo.Mover
	Rotater *gizmo.Rotater
	// contains filtered or unexported fields
}

func NewToolManager

func NewToolManager() *ToolManager

func (*ToolManager) Actions

func (m *ToolManager) Actions() []Action

func (*ToolManager) KeyEvent

func (m *ToolManager) KeyEvent(e keys.Event)

func (*ToolManager) MouseEvent

func (m *ToolManager) MouseEvent(e mouse.Event)

func (*ToolManager) MoveTool

func (m *ToolManager) MoveTool(obj object.Component)

func (*ToolManager) PreDraw

func (m *ToolManager) PreDraw(args render.Args, scene object.Object) error

func (*ToolManager) RotateTool

func (m *ToolManager) RotateTool(obj object.Component)

func (*ToolManager) Select

func (m *ToolManager) Select(obj T)

func (*ToolManager) Selected

func (m *ToolManager) Selected() []T

func (*ToolManager) Tool

func (m *ToolManager) Tool() Tool

func (*ToolManager) UseTool

func (m *ToolManager) UseTool(tool Tool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL