Commit Graph

13 Commits

Author SHA1 Message Date
Michal Pikulski
bb68d1fd31 SaveLoad using managed lifecycle 2025-11-05 20:37:17 +01:00
011901eb8f Refactoring of the interaction system and preliminary integration of save/load functionality across the game. (#44)
### Interactables Architecture Refactor
- Converted composition to inheritance, moved from component-based to class-based interactables. No more requirement for chain of "Interactable -> Item" etc.
- Created `InteractableBase` abstract base class with common functionality that replaces the old component
- Specialized child classes: `Pickup`, `ItemSlot`, `LevelSwitch`, `MinigameSwitch`, `CombinationItem`, `OneClickInteraction` are now children classes
- Light updates to the interactable inspector, moved some things arround, added collapsible inspector sections in the  UI for better editor experience

### State Machine Integration
- Custom `AppleMachine` inheritong from Pixelplacement's StateMachine which implements our own interface for saving, easy place for future improvements
- Replaced all previous StateMachines by `AppleMachine`
- Custom `AppleState`  extends from default `State`. Added serialization, split state logic into "EnterState", "RestoreState", "ExitState" allowing for separate logic when triggering in-game vs loading game
- Restores directly to target state without triggering transitional logic
- Migration tool converts existing instances

### Prefab Organization
- Saved changes from scenes into prefabs
- Cleaned up duplicated components, confusing prefabs hierarchies
- Created prefab variants where possible
- Consolidated Environment prefabs and moved them out of Placeholders subfolder into main Environment folder
- Organized item prefabs from PrefabsPLACEHOLDER into proper Items folder
- Updated prefab references - All scene references updated to new locations
- Removed placeholder files from Characters, Levels, UI, and Minigames folders

### Scene Updates
- Quarry scene with major updates
- Saved multiple working versions (Quarry, Quarry_Fixed, Quarry_OLD)
- Added proper lighting data
- Updated all interactable components to new architecture

### Minor editor tools
- New tool for testing cards from an editor window (no in-scene object required)
- Updated Interactable Inspector
- New debug option to opt in-and-out of the save/load system
- Tooling for easier migration

Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #44
2025-11-03 10:12:51 +00:00
acf3ecec3f Added Highlights to the quarry button and the Bunfflers. 2025-10-22 10:36:56 +02:00
82fce5c135 Added aglow to the Pickable Items 2025-10-17 12:36:09 +02:00
7ed258f87a Added Sprites and Changed Placeholders for final art 2025-10-06 17:41:12 +02:00
f686f28cb8 Create a simple dialogue authoring system, tied into our items (#10)
- Editor dialogue graph
- Asset importer for processing the graph into runtime data
- DialogueComponent that steers the dialogue interactions
- DialogueCanbas with a scalable speech bubble to display everything
- Brief README overview of the system

Co-authored-by: AlexanderT <alexander@foolhardyhorizons.com>
Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #10
2025-09-29 09:34:15 +00:00
9b590ca6ec Made Changes To slotted items (not fully functional but progressing)
Added Unity events to the Slotting Items, the eyes react fine but sometimes they fuck up. gonna check that out later.
2025-09-11 17:03:56 +02:00
Michal Pikulski
32888a6843 [Interactions] Switch interactables to trace on layer configured in game settings 2025-09-08 12:51:33 +02:00
Michal Pikulski
4a098365d0 Setup Universal Render Pipeline 2025-09-05 09:10:19 +02:00
Michal Pikulski
496ef10b8b [Player][Interactions] Items can be switched when picked up now 2025-09-04 13:08:42 +02:00
Michal Pikulski
0c930d09a4 [Player][Interactions] Pulver moves to item and goes back. Item disappears, but in wrong order 2025-09-04 00:00:46 +02:00
Michal Pikulski
e53b5a0034 [Player] Add AI Pathfinding on a 2D grid to the player character 2025-09-02 11:42:25 +02:00
Michal Pikulski
8e1174d4bf [Input][Interaction] Add interactable items 2025-09-01 16:14:21 +02:00