Commit graph

42 commits

Author SHA1 Message Date
b2efc73602 feat!: Half-implemented sprite container
- Updated all assets
- Refactored door again
- Half of the sprites are visually broken for now
2026-04-01 09:40:00 +03:00
929ad45571 test: Removed equality check for levels 2026-03-31 13:40:38 +03:00
08751ff12f feat: lighting system
- Added lamp bundle
- Moved door collider to its children
- Updated level structure
2026-03-31 13:37:54 +03:00
3cddecf592 feat: added clap for level parsing
- Camera sets up as a child of player entity
2026-03-30 20:43:46 +03:00
79fe190b6b feat: Level loading from TOML asset
- Fixed detect_interactions system
- Added test for deserializing asset with plugin
2026-03-28 01:46:27 +03:00
0ab2620724 feat: Unfinished level loading
- Added level struct
- Added loading tests
- Partially implemented level setting up system
2026-03-27 18:31:46 +03:00
24153e476f feat: Updated tilemap bundle
- Layout is now defined from bottom left corner
- Added rotation to lockpick bundle
- Added level TOML structures that match current level
2026-03-27 13:04:47 +03:00
0e18bb6df5 feat: Inventory mouse scroll & visible item data 2026-03-26 15:12:13 +03:00
c5c6378303 assets: Using new lockpick and stairs sprites
- Fixed stairs transparency
2026-03-26 12:01:58 +03:00
528c511445 refactor!: Item changes
- Bump version to 0.3.0
- Moved crate::inventory::item to crate::item
- Made Item.position non-option
- Renamed Item::new_positioned -> Item::new
- Removed old Item::new method
- Changed Inventory.can_fit signature to use item borrow
2026-03-25 14:16:33 +03:00
42cfd14214 feat: Layout changes
- Added padlock layout object
- Added lockpick item
- Added ItemImage component
- Tilemap colliders are now creating from the tiles themselves
- Removed items from container bundle
- Removed colliders from tilemap bundle
- Removed setup_player system
2026-03-25 13:32:12 +03:00
5157450ced feat: Functionally working stairs without sprite
- Made all observers public
- Observe all InteractionEvents in the app, not in the entity
- Added names to layout bundles
- Raised player speed to 4 m/s for quicker debugging
- Added second container on 2nd floor
2026-03-24 16:10:43 +03:00
764e196d39 chore: Removed warnings about non-item children 2026-03-24 13:04:32 +03:00
0c0dcec4b8 feat!: "Syntax sugar" for pixels per meter measure
- Added meters function for better readability
- Adjusted tilemap_bundle transform
- Added 2nd floor in setup_world system

BREAKING CHANGE: Removed HALVED_PIXELS_PER_METER const
2026-03-24 12:13:08 +03:00
b59cec172d feat: Barely working tilemap system
- Added tilemap bundle
- Added HALVED_METERS_PER_PIXEL constant
2026-03-23 14:06:36 +03:00
ffdb5d94a8 feat: Derive traits 2026-03-19 15:57:29 +03:00
0a0eb14a6b feat: input plugin reflects, derives 2026-03-19 15:01:04 +03:00
7c386d4128 refactor!: Split everything into submodules
- Bump version to 0.2.0
- Split every module to systems, observers, plugins, etc
- Renamed Crate to Container
- Removed Wall component
- Removed try_insert_item system
- Removed inventory::ui module
2026-03-19 14:23:26 +03:00
3094a8af13 refactor: Non-breaking refactor
- Everything should work as before
- Added blank submodules in layout
- Added blank submodules in player
- Moved inventory::ui submodule to ui::inventory
- Added blank submodules in ui::inventory
- Re-exported ui::inventory as inventory::ui for temporary compatibility
- Split tests submodules into different files
2026-03-19 12:36:51 +03:00
d65ca6fe97 feat: Implemented crates functionality 2026-03-19 11:24:10 +03:00
3dde5a729e fix: Door sprite is facing right direction
- Moved doors closer to center
2026-03-18 13:38:56 +03:00
bb357d8062 feat: Finished door mechanics
- Door now has i8 direction (-1 or 1)
- Door may be locked with Locked component
- Player entity RigidBody now cannot sleep to keep MayInteract when idle
2026-03-18 13:29:05 +03:00
4c23a38b92 feat: Collision beginning
- Added system for detecting collisions with interactive objects
- Added interactive doors
2026-03-16 17:21:10 +03:00
3fdfa4a4ad ui: Buggy 'natural' item dragging
- Items are now placed relative to cursor instead of upper left corner
- Bug: after item drop all hovered slots are cleared and you cannot drag
  and drop item right away
2026-03-16 09:44:58 +03:00
337986d2b9 ui: Multiple inventories support
- Added scrollable container for inventories
- Fixed slots being visibly hovered when dragging items
2026-03-13 16:17:44 +03:00
0c8259583a feat: Updated dragged item behavior
- Added Inventory.can_replace
- Added tests for Inventory.can_replace
- Dragged item is now a copy of original item
- Dragged item can be rotated while dragged
2026-03-13 13:42:53 +03:00
beacc28ace ui: Inventory item rotation
- Fixed rotated item position
2026-03-12 13:08:08 +03:00
9a09b4da96 feat: Implemented Inventory.can_rotate
- Added tests for rotating items in place
2026-03-12 11:45:01 +03:00
55c4e3a1d1 ui: Unfinished item rotating 2026-03-12 10:32:55 +03:00
55cbd39172 ui: Visible item dragging
- Also tinting inventory slot on hover
2026-03-12 10:04:35 +03:00
a462c64786 feat: Implemented basic item drag-and-drop
- Added bundle names
- Added system to update bundle names with entity name
2026-03-11 22:40:17 +03:00
0add3e4c20 feat: unfinished item drag and drop 2026-03-11 17:29:27 +03:00
c46fa75e54 feat!: Item processing
- Added try_insert_item system
- Added rotated field on Item
- Implemented UI item drawing with scale and rotation

BREAKING CHANGE: Item.swap_size renamed to Item.rotate
    Item.clone_swapped renamed to Item.clone_rotated
2026-03-11 14:55:27 +03:00
ab993be476 ui: Beginning of UI-related stuff
- UiRoot component
- WindowSize resource and update_window_size system
- UiInventory and UiInventorySlot components
- UiInventory now shows player inventory slots
2026-03-09 13:59:51 +03:00
5f59e02788 feat: Implemented Inventory.find_free_space
- Added tests for find_free_space
2026-03-07 22:00:00 +03:00
13dd936044 tests: Added more tests
- Added 2 more tests related to item moving
- Refactored inventory tests internals
2026-03-07 19:47:21 +03:00
fee774dddd feat: Implemented Inventory::can_move
- Changed Inventory::can_fit signature
- Added can_move_item test
2026-03-06 17:38:57 +03:00
dab3134f15 feat: Added Inventory and Item components
- Moved input tests into nested module
- Added inventory tests
2026-03-06 16:41:17 +03:00
957717671a feat: Player is now using leafwing-input-manager 2026-03-03 16:49:28 +03:00
ae7bfd7c27 feat: Added input system
- Added input plugin to manage controls config
- Added tests for casting InputMap to InputAsset and backwards
2026-03-03 09:26:52 +03:00
10afe6fd08 feat: Player, assets and basic movement 2026-02-12 17:09:57 +03:00
975e065fde Initial commit 2026-02-12 10:18:42 +00:00