- Better picking on tiers - disable terrain picks
- move prefs to own crate (and use it).
- Crash - inserting flora compute task on deleted entity.
- wall draw sometimes kicks into remove mode - missing exemplar ref?
- separate crate for realms?
- Quit confirm dialog
- Text input
- File unsaved indicator.
- Track which things are unsaved.
- Undo / Redo
- Terrain contour list.
- filter by group
- contours not appearing in the correct order in groups.
- empty tile shows nothing, should show black floor.
- think about converting realm name to Arc. Either that or have a realm id.
- World camera pan needs to use bubbled scroll events.
- Build an entity inspector
- Bugs:
- Materials get loaded multiple times?
- Assets
- Asset Reader that allows cache miss
- Wall Physics
- implement
- Use enum for collider type? Really depends on whether it's editable.
- Finish terrain shader
- biomes (snow, desert, etc.)
- Portals
- perspective projection
- modified frustum
- Possibly move to common crate:
- msgpack (no, we want to remove this actually, get rid of extension types)
- inline_assets?
- reflect_types
- random
- Skybox experiments
- TODO: Wheel rotation should only work if mouse within viewport. We'll need to add a system to track which region we're in.
- Finish water motion.
Future:
- Floor surface texture rotation
- Unit tests for HexColor.
- Editor-only floor surfaces (for things like water currents / hints)
- Invalid Generation Error
- Reflection type aliases
- Upstream bevy_mod_picking
- Multi-pass materials
- Support archive assets
- Allow missing assets
- Support hemisphere light
- Floor
- floor::StdSurface - texture asset
- floor::NoiseSurface - procedural texture
- floor::Geometry - floor mesh options
- floor::Nav - pathfinding effects
- SceneryElement
- scenery::Models - list of glb models to display
- scenery::Colliders - physics colliders
- scenery::Marks - interaction marks
- scenery::Container - open / close / lock behaviors
- scenery::Door - open / close / lock
- scenery::Stairs - allows click-to-climb
- scenery::Ladder - allows click-to-climb
- scenery::Sign - click to read
- scenery::PortalAperture - portal dimensions
- scenery::PortalTarget - portal target location
- scenery::LightSource - point light source location
- scenery::SoundSource - ambient sound emitter
- scenery::WallSize - grid alignment options
- mechanics::PushButton - click to interact
- mechanics::ToggleButton - click to interact
- mechanics::PressurePlate - senses being walked on
- mechanics::ControlledOpenable - change state via remote signal
- mechanics::AutoDoor
- trigger::Circle - detects when player is within circle
- trigger::Rect - detects when player is within rect
- trigger::Encounter - increases chance of enemy spawn based on proximity
- scenery::Waymark - used for NPC scripted events
- Sfx
- sfx::Music
- sfx::WaterFx
- sfx::Particles
- Actors
- actor::Model
- actor::ColorSlots
- actor::Colors
- actor::FeatureSlots
- actor::Features
- actor::EquippedSlots
- actor::Equipped
- actor::Skills
- actor::Physics
- actor::Gender
- actor::Ally
- actor::Portrait
- actor::GoalsXXX* (can be multiple)
- InventoryItem
- inventory::Item - appearance, weight, stack size, price
- inventory::Container - carrying capacity
- inventory::Equippable - equip slot
- inventory::Weapon - damage type, range
- inventory::Document - link to text content, page style
- inventory::QuestItem - quest id, stage
- Book
- actors
- Action
- Actor
- ActorTemplate
- ActorArchetype
- ActorAffix
- goals
- components
- Activate
- ApplySkill
- Attack
- Contingent
- Deactivate
- Dialogue
- Equip
- FaceToward
- LookAt
- Park
- Pose
- Pursue
- Random
- Ranked
- Remark
- SceneryInteraction
- Sequence
- TargetEnemy
- ThreatChange
- Travel
- Unequip
- Wait
- Wander
- GoalRoot
- PrioritizedGoalList
- components
- parking
- SkinnedModel
- ThreatMap
- assets
- archetypes
- Archetype
- archetypes
- audio
- AudioFx
- AudioFxTemplate
- AudioFxSystem
- books
- dialogue
- CutScene
- DialogueSet
- RemarkSet
- items
- Inventory
- InventoryItem
- InventoryItemArchetype
- nav
- NavigationMesh
- NavigationMeshBuilder
- NavController
- NavTract
- NavRouteRequest
- NavRouteTask
- overlays
- DebugPhysicsOverlay
- TargetingCircle
- PathVisualizer
- TranslucentLines
- TranslucentSprites
- TranslucentPoints
- TranslucentMesh
- quests
- StageId
- Quest
- QuestMgr
- particles
- MissileSystem
- ParticleEffect
- ParticleEmitter
- ParticleAspect
- physics
- scenery
- Fixture
- FixtureArchetype
- FixtureModels
- FixtureObstacles
- FixturePhysics
- Floor
- FloorArchetype
- FloorModels
- FloorObstacles
- FloorPhysics
- PrecinctCache
- Precinct
- Tier
- skills
- terrain
- ParcelCache
- Parcel
- TerrainShape
- TerrainFx
- view
- Viewpoint
- Portals
- Cutaways
- Nameplates
- world
- Biome
- Realm
- World
convert quest.png -background black -alpha Remove quest.png -compose Copy_Opacity -composite quest.png convert artwork/export/editor/building.png -background black -alpha Remove artwork/export/editor/building.png -compose Copy_Opacity -composite assets/editor/building.png
- precincts
- contours
- terrain maps
- terrain groups
- exemplars
- region?
- quests and other meta.
- scenery
- mod
- panel
- tool_create_floor etc.
- enter / exit / update
- mutations / commands
- drag states
- overlays
let source = asset_server.get_source(AssetSourceId::Default).unwrap(); let writer = source.writer().unwrap(); let mut write = writer.write(Path::new("bunny.meshlet_mesh")).await.unwrap(); let saver = CompressedImageSaver; let loaded_image = LoadedAsset::new_with_dependencies(Image::default(), None); let erased = ErasedLoadedAsset::from(loaded_image); saver.save(&mut *write, &erased, &()).await;