Mass is derived by a cubic law: mass = BaseMassKg * (size / reference)^3, so a juvenile/seedling weighs far less than an adult/mature and the size gene moves mass too. New Mass helper + BaseMassKg on AnimalDef/PlantDef (deer 70, wolf 45, boar 80, chicken 2.5; trees ~450, grass 0.4, etc.) and MassKg per unit on ProductDef (foundation for hauling/inventory). Wired into the sim (as chosen): - Corpse meat is now proportional to body mass (Mass.MeatFraction), not raw bodySize; Corpse gained a BodySize field so sprite scale stays independent of meat (save/load updated). - Kleiber metabolism: need decay x= (mass/refMass)^0.75, normalized per species, so juveniles are cheaper to feed and heavier individuals eat a bit more, without cross-species balance blowups (adults of typical size are unchanged). - Carry capacity = mass x fraction x carry capability (Moving for quadrupeds; Manipulation for future humans), shown in inspector/console. A dormant Carrier component + Mass.LoadSpeedFactor hook slow an overloaded animal — the foundation for item hauling. Inspector shows body/plant weight (+carry); `animal`/`plant` console print mass. Build + --check-content clean (42 genes, 41 traits). Not GUI-verified. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
20 lines
1.0 KiB
JSON
20 lines
1.0 KiB
JSON
{
|
|
"type": "Plant",
|
|
// Трава: быстрый почвопокров, основной скаттер лугов и леса.
|
|
"defs": [
|
|
{ "defName": "GrassA", "label": "plant.grass", "texture": "things/plant/grass/grassa", "sizeCells": 1.5,
|
|
"baseMassKg": 0.4,
|
|
"harvestProduct": "ProductGrass",
|
|
"genome": { "optimalLight": 0.85, "lightTolerance": 0.35, "optimalTemperature": 19, "temperatureTolerance": 8,
|
|
"coldHardiness": 9, "heatHardiness": 6,
|
|
"optimalFertility": 1.0, "fertilityTolerance": 1.0, "vigor": 1.3,
|
|
"lifespan": 22, "dispersalRange": 3, "reproduceInterval": 3, "selfPollination": 0.8,
|
|
"mutationRate": 0.06, "variantChance": 0.2, "spread": 0.1,
|
|
"harvestAmount": 2, "leafHue": 0.36 },
|
|
"stages": [
|
|
{ "texture": "things/plant/seed_default", "sizeCells": 0.5, "growDays": 2, "label": "plant.stage.sprout" },
|
|
{ "sizeCells": 1.5, "label": "plant.stage.mature" }
|
|
] }
|
|
]
|
|
}
|