Skip to content

WIP Cycledogg terrain mods#139

Draft
timdmackey wants to merge 4 commits intomemo33:mainfrom
timdmackey:cycledogg-terrain-mods
Draft

WIP Cycledogg terrain mods#139
timdmackey wants to merge 4 commits intomemo33:mainfrom
timdmackey:cycledogg-terrain-mods

Conversation

@timdmackey
Copy link
Contributor

Work in progress / for reference

Refactor Cycledogg terrain mods to use variants

Consolidate 18+ separate terrain mod packages into 8 base packages using the sc4pac variants system. This provides a cleaner structure and better user experience.

Changes:
- Implement variant system for snow-level/controller options across all terrain mods (Columbus: 5 variants, Canyonlands: 3, Grand Canyon: 3, Italia: 3, Meadowshire: 3)
- Merge Monument Valley as a variant of Canyonlands terrain mod

Before: Users chose between 18+ separate packages (e.g., columbus-terrain, columbus-terrain-snowcapped, columbus-terrain-snowcapped-low, etc.)

After: Users install 8 base packages and select variants in sc4pac config (e.g., cycledogg:columbus-terrain with snow-level variant selection)

All file paths verified against JAR installers. Default variants marked with default: true in variantInfo sections.
Changes:
- Add variant-specific Lowkee33 Seasonal Flora Patches to all 8 terrain mods, ensuring proper seasonal vegetation behavior
- Update all package descriptions to note seasonal flora patches are pre-applied
- Use withConditions for variant-based asset inclusion to match correct flora patches to each controller variant

All file paths verified against JAR installers. Default variants marked with default: true in variantInfo sections.
Change all terrain mods to use separate asset entries instead of combined entries, matching the Missouri Breaks pattern. This ensures flat folder structure extraction and ensures correct SimCity 4 in-game load order.

Changes:
- Split each package's assets into separate entries: essentials, rock textures, terrain controller (with variants), beach, cliff, water, and seasonal flora patch (with variants)
- Add explanatory comment to each package: "using the same asset multiple times to enforce a flat folder structure, ensuring that flora patch loads last"
- Maintain variant functionality using withConditions on individual asset entries

Technical details:
When the same assetId is used multiple times with single-file includes, sc4pac extracts files into a flat folder structure rather than nested directories. This ensures alphabetical load order in SimCity 4, forcing the z_LK_FloraTuningParameters file to load after terrain controller files.
Converted previously always-included beach, cliff, and water textures to optional variants across all 8 Cycledogg terrain mods. Each variant offers "none" (use Maxis defaults or other mods) and "default" (use matching terrain textures) options, with "default" set as the default to preserve existing behavior.

Changes:
- Columbus terrain: Added beach and cliff variants
- Canyonlands terrain: Added beach, cliff, and water variants
- Grand Canyon terrain: Added beach, cliff, and water variants
- Painted Desert terrain: Added beach, cliff, and water variants
- Italia terrain: Added beach and cliff variants
- Meadowshire terrain: Added beach and cliff variants
- Olympic terrain: Added beach and cliff variants
- Missouri Breaks terrain: Added beach, cliff, and water variants

Technical implementation:
- Converted unconditional asset includes to conditional includes using withConditions and ifVariant
- Added variantInfo sections for each optional texture type with descriptive values
- Rock textures remain essential (always included) as per original design
- All variants default to including the matching textures to maintain backward compatibility

This allows users to opt out of the custom beach/cliff/water textures if they prefer to use Maxis defaults or alternative texture mods (e.g., PEG's rock mods, other water mods).
@memo33 memo33 force-pushed the cycledogg-terrain-mods branch from ae8e287 to 867705e Compare November 17, 2025 19:24
@memo33
Copy link
Owner

memo33 commented Nov 17, 2025

Rebased onto main.

@memo33 memo33 marked this pull request as draft January 29, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants