189 lines
6.9 KiB
Plaintext
189 lines
6.9 KiB
Plaintext
{
|
|
"categories": [
|
|
{
|
|
"uuid": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"title": "Task",
|
|
"color": "569eff"
|
|
}
|
|
],
|
|
"stages": [
|
|
{
|
|
"uuid": "94333de9-ebf5-4f38-b95b-9477f4bb9dde",
|
|
"title": "Todo",
|
|
"tasks": [
|
|
"854c7e1e-7521-4bcd-83ff-bb3fecec3142",
|
|
"4e2ca8d1-84e1-4913-ad8f-834007d52160",
|
|
"dd822d14-88e5-4790-808e-7d2cf7f79133",
|
|
"784d5cd3-333a-40a9-b35f-3d0c73f00761"
|
|
]
|
|
},
|
|
{
|
|
"uuid": "211e4050-31cd-4425-a2ba-8ca56b4764cd",
|
|
"title": "Doing",
|
|
"tasks": [
|
|
"d9cebd68-792e-4d01-a916-7df5f128b4a8",
|
|
"eee1990e-f957-4499-84b6-e68003fcb78e"
|
|
]
|
|
},
|
|
{
|
|
"uuid": "fab8a81b-7ca9-4026-96bb-ed66ea58ef2e",
|
|
"title": "Done",
|
|
"tasks": [
|
|
"4ab36c89-a377-4f25-86a1-ac276aadf4a2",
|
|
"cde44fb1-3fdf-4ea0-8267-d28d894e4e7d",
|
|
"a4dd35ae-dc8e-42a3-9044-bf1cb1af281a"
|
|
]
|
|
}
|
|
],
|
|
"tasks": [
|
|
{
|
|
"uuid": "eee1990e-f957-4499-84b6-e68003fcb78e",
|
|
"title": "Implement YAML-based Recipe System & Static RecipeManager",
|
|
"description": "Description: Move all recipe definitions out of hardcoded scripts and into a centralized recipes.yaml file. Create a static RecipeManager class to load this file at startup and handle recipe lookups (including handling symmetry so that combining A + B is the same as B + A).",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": [
|
|
{
|
|
"details": "Create recipes.yaml with structures for combining, cooking, augmenting, chopping, and rolling.",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": " Create static RecipeManager that parses the YAML on game start.",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Implement RecipeManager.getCombination(item_a, item_b) which returns the resulting product regardless of input order (symmetry).",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Implement lookup helper functions for other recipe types (e.g., get_cooking_recipe(item_id)).",
|
|
"done": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"uuid": "854c7e1e-7521-4bcd-83ff-bb3fecec3142",
|
|
"title": "Create Interactive Counter Stations (Chopping, Rolling, etc.)",
|
|
"description": "Description: Implement a base Counter class (and/or specific station child classes like ChopCounter, RollCounter) that interact with the player. These stations should query the RecipeManager to see if the placed item can be processed and require a \"work\" threshold to be met via hand gestures (action inputs) before converting the item.",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": [
|
|
{
|
|
"details": "Station detects placed FoodItem.",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Station queries RecipeManager to check if a valid recipe exists for the interaction type (e.g., Chopping).",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Implement a \"work\" accumulator that increases when the player performs hand gestures/inputs.",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Item converts into the recipe output once accumulated work reaches the required threshold (e.g., work: 50 for lettuce).",
|
|
"done": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"uuid": "4ab36c89-a377-4f25-86a1-ac276aadf4a2",
|
|
"title": "Implement Plate Container System & Dynamic Combination Logic",
|
|
"description": "Description: Create a Plate item that acts as a dynamic container holding a list of FoodItems. Expand the combination logic so plates can accept specific items (e.g., adding Chips to a plate with a Hamburger to make a combo, or adding Cheese to a hamburger on a plate to toggle its has_cheese attribute).",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": [
|
|
{
|
|
"details": "Plate class holds a list of FoodItems.",
|
|
"done": true
|
|
},
|
|
{
|
|
"details": "Implement logic for adding items to the plate, checking if the plate's current contents can legally accept the incoming item.",
|
|
"done": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"uuid": "cde44fb1-3fdf-4ea0-8267-d28d894e4e7d",
|
|
"title": "Implement Dirty Plates",
|
|
"description": "Description: Add a state to plates to handle the cleaning loop. Plates should become \"dirty\" after being cleared by a customer. Dirty plates must be cleaned at a Sink station before they can be used again.",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": [
|
|
{
|
|
"details": "Add is_dirty boolean property to Plate.",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Processing a dirty plate in the Sink resets is_dirty to false and makes it usable again.",
|
|
"done": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"uuid": "d9cebd68-792e-4d01-a916-7df5f128b4a8",
|
|
"title": "Implement Multiplayer Synchronization (Network Architecture)",
|
|
"description": "Establish the client-server (or P2P) networking model for the game. Focus on syncing critical game state: physics objects (FoodItems), player actions (gestures/work progress), and station states (Chopping progress).",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": [
|
|
{
|
|
"details": "Choose a networking model (e.g., Server-Authoritative or Peer-to-Peer).",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Implement basic state synchronization for FoodItems (Position, Rotation, and state changes like is_dirty).",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Synchronize player gesture/work progress across all clients (so players see the same progress bar on stations).",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Ensure \"Authority\" logic: Determine who owns the RecipeManager data and how conflicts are handled (e.g., if two players try to grab the same item).",
|
|
"done": false
|
|
},
|
|
{
|
|
"details": "Test latency handling for high-frequency inputs like the \"wave arms\" gesture.",
|
|
"done": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"uuid": "4e2ca8d1-84e1-4913-ad8f-834007d52160",
|
|
"title": "Containers support augmentation",
|
|
"description": "For example, adding cheese top a Hamburger.\nburger.cheese = true\n\nA plate with a burger need to support adding cheese where the container looks for the first meal or side that accepts the cheese",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": []
|
|
},
|
|
{
|
|
"uuid": "a4dd35ae-dc8e-42a3-9044-bf1cb1af281a",
|
|
"title": "Sink Station",
|
|
"description": "",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": []
|
|
},
|
|
{
|
|
"uuid": "dd822d14-88e5-4790-808e-7d2cf7f79133",
|
|
"title": "Decide how to do gestures",
|
|
"description": "\n- Pop1 style \n- Ghost tools appear as you get close\n- Physical",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": []
|
|
},
|
|
{
|
|
"uuid": "784d5cd3-333a-40a9-b35f-3d0c73f00761",
|
|
"title": "Plate rak",
|
|
"description": "See if we can use the Container.gd to do this.\nWe could possible change it to support extracting items if that is enabled.",
|
|
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
|
|
"steps": []
|
|
}
|
|
],
|
|
"layout": {
|
|
"columns": [
|
|
[
|
|
"94333de9-ebf5-4f38-b95b-9477f4bb9dde"
|
|
],
|
|
[
|
|
"211e4050-31cd-4425-a2ba-8ca56b4764cd"
|
|
],
|
|
[
|
|
"fab8a81b-7ca9-4026-96bb-ed66ea58ef2e"
|
|
]
|
|
]
|
|
}
|
|
} |