Wheat + corn both produce TYPE_GRAIN; potato + strawberry both produce TYPE_VEGETABLE. Until now they rendered identically (yellow stalks for both grains, green-leafed root for both vegetables) since shape was driven by item_type alone. Added an Item.subtype field that carries the origin crop_kind through harvest. draw_item_shape dispatches on subtype FIRST then falls back to item_type — so storage filters (which match on item_type) still treat wheat+corn as one Grain category and potato+strawberry as one Vegetable category, but the visuals are now distinct. New procedural shapes: - wheat: 3 yellow stalks with grain-heads (same as existing grain) - corn: yellow cob with kernel dots wrapped in green husk leaves - potato: 2 brown overlapping lumps with sprout-eye dots - strawberry: red heart-shape body with green calyx + yellow seeds Crop.on_harvest_tick assigns subtype = crop_kind on spawn. SaveSystem._spawn_item now round-trips subtype through saves. Pawn carry indicator + Item._draw both pass subtype to draw_item_shape. |
||
|---|---|---|
| .. | ||
| .gitkeep | ||
| bed.gd | ||
| bed.gd.uid | ||
| bed.tscn | ||
| big_rock.gd | ||
| big_rock.gd.uid | ||
| big_rock.tscn | ||
| corpse.gd | ||
| corpse.gd.uid | ||
| corpse.tscn | ||
| cremation_pyre.gd | ||
| cremation_pyre.gd.uid | ||
| crop.gd | ||
| crop.gd.uid | ||
| crop.tscn | ||
| door.gd | ||
| door.gd.uid | ||
| door.tscn | ||
| floor.gd | ||
| floor.gd.uid | ||
| floor.tscn | ||
| grave_marker.gd | ||
| grave_marker.gd.uid | ||
| grave_slot.gd | ||
| grave_slot.gd.uid | ||
| item.gd | ||
| item.gd.uid | ||
| item.tscn | ||
| rock.gd | ||
| rock.gd.uid | ||
| rock.tscn | ||
| torch.gd | ||
| torch.gd.uid | ||
| torch.tscn | ||
| tree.gd | ||
| tree.gd.uid | ||
| tree.tscn | ||
| wall.gd | ||
| wall.gd.uid | ||
| wall.tscn | ||
| wolf.gd | ||
| wolf.gd.uid | ||
| wolf.tscn | ||
| workbench.gd | ||
| workbench.gd.uid | ||
| workbench.tscn | ||