diff --git a/plan.md b/plan.md new file mode 100644 index 0000000..22a5562 --- /dev/null +++ b/plan.md @@ -0,0 +1,92 @@ +# VS Vineyard — Development Plan + +This is a suggested breakdown of the work ahead. Nothing here is set in stone — feel free to reorder, combine, skip, or tackle things differently. It's meant as a starting point for discussion and to help split work between contributors. + +--- + +## Phase 1: Grape Vines (Foundation) + +Everything else depends on being able to grow and harvest grapes, so this is a natural place to start — but the art and JSON work can happen independently while the C# is being written. + +### 1a. Grape Vine Block Logic — *C#* +- Create `BlockGrapeVine.cs` to handle growth stages, seasonal transitions, and right-click harvesting +- Register it in `VSVineyardModSystem.cs` + +### 1b. Grape Vine Block Definition — *JSON* +- `blocktypes/grapevine.json` — defines growth stages, drops, and how the vine attaches (trellis, wall, etc.) + +### 1c. Grape Vine Textures & Shapes — *Art* +- Textures for each growth stage: bare, budding, leafy, fruiting, dormant +- 3D shape (or a simple flat cross-plant shape to start) +- Tools: pixel art editor (16×16), optionally Blockbench for shapes + +--- + +## Phase 2: Grapes as Items + +### 2a. Grape Item Definition — *JSON* +- `itemtypes/grapes.json` — nutritional values, variants by grape type + +### 2b. Grape Item Texture — *Art* +- Inventory sprite for grapes + +--- + +## Phase 3: Juice Pressing + +### 3a. Wine Press Block Logic — *C#* +- `BlockEntityWinePress.cs` — a container block entity with input/output slots and a pressing interaction + +### 3b. Wine Press Definition, Shape & Textures — *JSON + Art* +- Blocktype JSON, 3D shape model, textures +- Tools: Blockbench, pixel art editor + +### 3c. Pressing Recipes — *JSON* +- Recipe entries: grapes → grape juice + +--- + +## Phase 4: Fermentation & Barrel Aging + +This phase has the most complexity. The barrel block entity will need to handle time-based fermentation, liquid storage, and aging — worth discussing the approach before diving in. + +### 4a. Wine Barrel Block Entity — *C#* +- `BlockEntityWineBarrel.cs` — time-based fermentation, liquid handling, aging stages +- Probably the most involved C# task in the mod + +### 4b. Barrel Definition, Shape & Textures — *JSON + Art* +- Blocktype JSON, shape, textures (empty / filling / full variants) + +### 4c. Barrel Recipes — *JSON* +- `recipes/barrel/` entries: grape juice → wine over time + +### 4d. Wine Item Variants — *JSON + Art* +- Item definitions for each wine variety, stat effects, textures + +--- + +## Phase 5: World Generation + +### 5a. Wild Vine Worldgen Patches — *JSON* +- `worldgen/patches/` — spawn wild vines on trees or cliff faces in appropriate biomes + +### 5b. Wild Vine Behaviour — *C# (optional)* +- Only needed if wild vines require different behaviour from player-placed vines + +--- + +## Skill Summary + +| Area | Skill | Can start immediately? | +|---|---|---| +| Block/item/recipe logic | C# | Phase 1a first, then in parallel | +| Block/item/recipe definitions | JSON | Yes — alongside C# once structure is clear | +| Textures | Pixel art (16×16) | Yes — fully independent | +| 3D block shapes | Blockbench + JSON | Yes — fully independent | +| World generation | JSON | After Phase 1 | + +The art work (textures and shapes) can be picked up **right now** without needing to wait for any code. JSON definitions and C# can generally be split across two people once Phase 1a establishes the patterns to follow. + +--- + +*This plan was put together as a rough guide. Adapt it however works best for the group — the goal is to have fun building this.*