Files
vs-vineyard/plan.md
Tim Riddell b0e773aae2 Add suggested development plan for group discussion
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 20:44:24 +13:00

93 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.*