Commit Graph
13 Commits
Author SHA1 Message Date
feldenr dfff76b0f9 test+fix: deep generation tests + bug cleanup (licence, docs, deps)
Two cohesive passes that harden the latitude worldgen and clean up
long-standing inconsistencies.

== Bug fixes & doc alignment ==
- licence: set MIT in gradle.properties and neoforge.mods.toml
  (was "Not specified" - blocks distribution)
- OreAuditHandler: fix javadoc that referenced a non-existent system
  property; the trigger is the .oreaudit marker file. Add an explicit
  warning about the System.exit(0) and point to LatitudeGameTest as the
  non-destructive alternative
- KubeJS: remove the dead kubejs_version, the commented dependency and
  all README claims about an "automatic KubeJS script"/KubeJSIntegration
  class that no longer exists. Vanilla ore removal is now native via the
  neoforge:remove_features biome modifier
- README: refresh the technical header (1.21.1 / NeoForge 21.1.219 /
  Java 21 / v3.2, was 1.20.1/Forge/Java17/v2.1.5) and the shard-diamond
  surface note (both variants are generated, gated by shardDiamondOre)
- CLAUDE.md / CONFIG_INTEGRATION_GUIDE.md: mark the feature toggles and
  tool stats as wired (they read ModConfigs at runtime); correct the
  "hardcoded tools" claim

== Generation tests (56 unit + 6 GameTest, all green) ==
- Extract the pure geometry of LatitudeBiomeSource into LatitudeMath
  (temperature, 3-zone underground model, spawn safe zone, dual-octave
  selector index). LatitudeBiomeSource now delegates to it, so one
  source of truth drives both runtime and tests - no behaviour drift
- LatitudeMathTest (21): temperature clamp/monotonicity, zone boundaries
  without gaps, Deep Dark / cave threshold predicates, spawn-safe square
  symmetry, selector index bounds + near-uniform distribution
- BiomeBandTest (18): fromTemperature boundary cases, surface/ocean
  pool non-empty, cave biomes never in a surface pool
- ModConfigsTest (+2 guards): every ConfigHelper toggle string maps to
  a real FeatureToggleConfig field, so a typo cannot silently produce a
  dead toggle (default: return true)
- LatitudeGameTest (+4 server tests): determinism (1485 pts, 0 mismatch),
  no cave biome at surface (160k samples, 0 leak), surface continuity
  (7% transitions - large biomes), climate gradient (north=cold 100%,
  south=hot 100%, equator cold 0%)

== Build ==
- build.gradle: addModdingDependenciesTo(sourceSets.test) so pure unit
  tests can reference Minecraft types without a full game server
- neoforge.mods.toml: optional BOP/create/mekanism dependencies removed;
  declared with mandatory=false + versionRange="[0,)" they broke mod
  loading when the mods were absent ("requires X 0 or above"). Optional
  integration is already handled via data tags (required:false) and
  data-only recipes that no-op if the mod is missing
- gradlew: restore executable bit

Verification: ./gradlew test build -> BUILD SUCCESSFUL, 56/56 unit tests
            ./gradlew runGameTestServer -> 6/6 GameTests passed in 840ms
2026-06-20 22:33:06 +02:00
feldenr 169a447f7b test: add automated latitude validation via GameTest server
Run `./gradlew runGameTestServer` to validate the latitude biome system
without manual in-game testing. Boots a headless game server (full biome
registry), samples a 32000x32000 grid through LatitudeBiomeSource, renders a
PNG map and writes a distribution report, then asserts climate invariants:
  - spawn on a safe biome (plains/forest)
  - FROZEN band dominated by cold/frozen biomes (>60%)
  - HOT band dominated by warm/hot biomes (>60%)
  - swamp remains rare in the temperate band (<15%)

Outputs land in run/gametest-results/latitude/ (latitude_map.png +
latitude_report.txt). Sampling is BiomeSource-only (no chunk generation),
so it runs in ~35s regardless of installed mods.

- LatitudeGameTest: @GameTestHolder + @PrefixGameTestTemplate(false)
- structure/empty_1x1.nbt: minimal 1x1x1 air structure required by GameTest
- build.gradle: add gameTestServer run configuration
2026-06-15 21:07:43 +02:00
feldenr 74480d9d2c feat: replace event-based drops with Global Loot Modifier (fix Create drill crash)
- Add CustomOreLootModifier (Global Loot Modifier) handling all ore drops,
  ensuring compatibility with machines (Create drill/contraptions) and avoiding
  duplication. Handles silk touch (vanilla block / shard diamond block) and
  fortune via config-driven min/max drops.
- Register GLM serializer via DeferredRegister in CustomOreGenMod (user code block)
- Rewrite OreBreakEventHandler: remove direct drops mutation that caused
  UnsupportedOperationException on immutable list when broken by Create drill.
  Drops are now fully GLM-driven; handler only triggers XP/procedure logic.
- Migrate loot tables from loot_table/ (singular, 1.20) to loot_tables/
  (plural, NeoForge 1.21 format) for all 16 ore blocks.
- Declare GLM in data/neoforge/loot_modifiers/global_loot_modifiers.json
- Add Create crushing + milling recipes for diamond -> diamond shards
- Config tweaks: tool durabilities (pickaxe/axe/shovel 450, paxel 800),
  Pure Golden Ore maxHeight 256 -> 320
- Refresh shard diamond armor/item textures
- Simplify unit tests for new drop system
2026-06-14 11:08:59 +02:00
[email protected] b636fd4295 Fix world crash, restore custom ores, fix armor textures (NeoForge 1.21.1) 2026-02-02 16:57:31 +01:00
feldenr 1030689b64 v2.1.12: Fix Ore Gen, Optional BOP Tags, Add Create Millstone Recipe 2026-02-01 00:43:06 +01:00
feldenr 734f89a720 feat: Add FR translation and Mekanism/Create compatibility + Bump version to 2.1.8 2026-01-23 14:27:15 +01:00
feldenr d64792d3d3 feat: Version 2.1.7 - Mekanism Compatibility & Ore Rebalance
- Added Forge tags (forge:ores/*) for all ores

- Added Shik Mekanism Enrichment recipe for Shard Diamond

- Rebalanced Lapis (0-32, 2x) and Diamond (Deepslate 6x) to match Vanilla

- Reduced Shard Diamond vein sizes for rarity

- Updated Biome Scanner & /ores to display Y-levels

- Fixed Shard Diamond Boots crafting recipe
2026-01-22 22:20:48 +01:00
feldenrandClaude 140b1f9111 Version 2.1.6 - Bug fixes
- Fixed paxel recipe: now requires 1 pickaxe + 2 sticks (instead of 3 pickaxes)
- Fixed silk touch on Concentrated Diamond Ore: now drops vanilla diamond_ore
- Fixed Copper High Ore sound: changed from GRAVEL to STONE

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
2026-01-07 17:09:36 +01:00
feldenrandClaude 11d596b788 Version 2.1.5 - Major update with armor, creative tab, KubeJS integration
Features:
- Added Diamond Shard armor set (helmet, chestplate, leggings, boots)
- Added Diamond Shard tools (pickaxe, shovel, axe, paxel)
- Created custom creative tab "Custom Ore Gen" with all mod items
- Fixed armor texture loading with proper ArmorMaterial implementation
- Updated diamond shard item texture to 32x32
- Fixed diamond shard ore textures (swapped surface/deepslate)
- Disabled surface diamond shard ore generation (only deepslate remains)
- Added KubeJS as mandatory dependency
- Auto-create KubeJS startup script to remove vanilla ores

Technical changes:
- Created ShardDiamondArmorMaterial class with proper getName() format
- Created KubeJSIntegration class for automatic script creation
- Updated mods.toml with KubeJS dependency and version 2.1.5
- Removed ModArmorMaterials enum (replaced by class-based approach)
- Updated CreativeTab to include all mod items in custom tab

Textures:
- New armor textures from new_armor folder
- New diamond shard item texture
- Fixed armor layer textures for proper rendering

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
2026-01-07 13:52:01 +01:00
feldenr 3f199c1bdf Creation d'un menu dans le creatif, Rework image de l'ore du Diamond shard et de l'items 2026-01-07 12:51:24 +01:00
feldenrandClaude 919980cb34 Version 2.0.8 - Correction armure et craft paxel
- Correction bug texture armure Diamond Shard (renommage textures layer_1/layer_2)
- Correction craft paxel (remplacement espace par lettre T pour stick)
- Correction compilation SharddiamondpaxelItem (getTier().getSpeed())
- Mise à jour version 2.0.6 -> 2.0.8

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
2026-01-05 21:44:03 +01:00
feldenr e388fb6ad1 Changement global + ajout item et commande 2026-01-04 22:08:42 +01:00
Roman ea4bcfbbeb Correction texture diamond shard ore 2025-12-30 14:03:14 +01:00