Skip to content

package editor_stage_manager

import "kaiju/editor/editor_stage_manager"

Constants

Types

StageAlreadyExistsError

struct

type StageAlreadyExistsError struct {
    Id string
}

StageAlreadyExistsError.Error

func (e StageAlreadyExistsError) Error() string

StageEntity

struct

type StageEntity struct {
    engine.Entity
    StageData StageEntityEditorData

    // Has unexported fields.
}

EntityToStageEntity

func EntityToStageEntity(e *engine.Entity) *StageEntity

StageEntity.AddDataBinding

func (e *StageEntity) AddDataBinding(binding *entity_data_binding.EntityDataEntry)

StageEntity.DataBindings

func (e *StageEntity) DataBindings() []*entity_data_binding.EntityDataEntry

StageEntity.Depth

func (e *StageEntity) Depth() int

StageEntity.SetMaterial

func (e *StageEntity) SetMaterial(mat *rendering.Material, manager *StageManager)

StageEntityEditorData

struct

type StageEntityEditorData struct {
    Bvh         *collision.BVH
    Mesh        *rendering.Mesh
    ShaderData  rendering.DrawInstance
    Description stages.EntityDescription
}

StageEntityEditorData is the structure holding all the uniquely identifiable and linking data about the entity on this stage. That will include things like content linkage, data bindings, etc.

StageManager

struct

type StageManager struct {
    OnEntitySpawn         events.EventWithArg[*StageEntity]
    OnEntityDestroy       events.EventWithArg[*StageEntity]
    OnEntitySelected      events.EventWithArg[*StageEntity]
    OnEntityDeselected    events.EventWithArg[*StageEntity]
    OnEntityChangedParent events.EventWithArg[*StageEntity]

    // Has unexported fields.
}

StageManager represents the current stage in the editor. It contains all of the entities on the stage.

StageManager.AddBVH

func (m *StageManager) AddBVH(bvh *collision.BVH, transform *matrix.Transform)

StageManager.AddEntity

func (m *StageManager) AddEntity(name string, point matrix.Vec3) *StageEntity

AddEntity will generate a new entity for the stage with a new random Id. It will internally just call AddEntityWithId

StageManager.AddEntityWithId

func (m *StageManager) AddEntityWithId(id, name string, point matrix.Vec3) *StageEntity

AddEntityWithId will create an entity for the stage with a specified Id rather than generating one. This entity will have a StageEntityData automatically added to it as named data named "stage".

StageManager.Clear

func (m *StageManager) Clear()

Clear will destroy all entities that are managed by this stage manager.

StageManager.ClearSelection

func (m *StageManager) ClearSelection()

StageManager.DeselectEntity

func (m *StageManager) DeselectEntity(e *StageEntity)

StageManager.DestroySelected

func (m *StageManager) DestroySelected()

StageManager.EntityById

func (m *StageManager) EntityById(id string) (*StageEntity, bool)

StageManager.HasSelection

func (m *StageManager) HasSelection() bool

StageManager.HierarchyRespectiveSelection

func (m *StageManager) HierarchyRespectiveSelection() []*StageEntity

StageManager.Initialize

func (m *StageManager) Initialize(host *engine.Host, history *memento.History)

StageManager.IsNew

func (m *StageManager) IsNew() bool

StageManager.IsSelected

func (m *StageManager) IsSelected(e *StageEntity) bool

StageManager.IsSelectedById

func (m *StageManager) IsSelectedById(id string) bool

StageManager.List

func (m *StageManager) List() []*StageEntity

List will return all of the internally held entities for the stage

StageManager.LoadStage

func (m *StageManager) LoadStage(id string, host *engine.Host, cache *content_database.Cache, proj *project.Project) error

StageManager.NewStage

func (m *StageManager) NewStage()

StageManager.RemoveBVH

func (m *StageManager) RemoveBVH(bvh *collision.BVH)

StageManager.SaveStage

func (m *StageManager) SaveStage(cache *content_database.Cache, fs *project_file_system.FileSystem) error

StageManager.SelectAppendEntityById

func (m *StageManager) SelectAppendEntityById(id string)

StageManager.SelectEntity

func (m *StageManager) SelectEntity(e *StageEntity)

StageManager.SelectEntityById

func (m *StageManager) SelectEntityById(id string)

StageManager.SelectToggleEntityById

func (m *StageManager) SelectToggleEntityById(id string)

StageManager.Selection

func (m *StageManager) Selection() []*StageEntity

StageManager.SelectionBounds

func (m *StageManager) SelectionBounds() collision.AABB

StageManager.SelectionCenter

func (m *StageManager) SelectionCenter() matrix.Vec3

StageManager.SelectionPivotCenter

func (m *StageManager) SelectionPivotCenter() matrix.Vec3

StageManager.SetEntityParent

func (m *StageManager) SetEntityParent(child, parent *StageEntity)

StageManager.SetStageId

func (m *StageManager) SetStageId(id string, cache *content_database.Cache) error

StageManager.StageId

func (m *StageManager) StageId() string

StageManager.TryAppendSelect

func (m *StageManager) TryAppendSelect(ray collision.Ray) (*StageEntity, bool)

StageManager.TryHitEntity

func (m *StageManager) TryHitEntity(ray collision.Ray) (*StageEntity, bool)

StageManager.TrySelect

func (m *StageManager) TrySelect(ray collision.Ray) (*StageEntity, bool)

StageManager.TryToggleSelect

func (m *StageManager) TryToggleSelect(ray collision.Ray) (*StageEntity, bool)