From 1f097de233f303833613f0757e04afbede419c3f Mon Sep 17 00:00:00 2001 From: Daniar Mannanov Date: Wed, 26 Aug 2026 01:30:57 +0300 Subject: [PATCH] world: drop dead per-type feature replay wrappers The combined stage-6 pass in placeScheduledUndergroundOresStage already replays ores, underwater magma, and disks in datapack order; the separate placeScheduledDisks and placeScheduledUnderwaterMagma passes have no callers left. Keep the per-position helpers the combined pass and tests use. --- internal/world/disks.go | 47 +++------------------------- internal/world/underwater_magma.go | 49 +++--------------------------- 2 files changed, 8 insertions(+), 88 deletions(-) diff --git a/internal/world/disks.go b/internal/world/disks.go index d7fe3ef..c41e018 100644 --- a/internal/world/disks.go +++ b/internal/world/disks.go @@ -2,49 +2,10 @@ package world import "regionio/internal/worldgen" -// placeScheduledDisks replays the vanilla disk features from one source -// center into the mutable decoration region. Disks are in the underground-ore -// feature stage (6), after the ore entries in the 26.1.2 overworld datapack. -func (r *decorationRegion) placeScheduledDisks(seed int64) error { - set, err := worldgen.LoadFeatureSet() - if err != nil { - return err - } - if err := r.ensureSourceNeighborhood(); err != nil { - return err - } - schedule, err := set.FeatureSchedule(possibleBiomeOrder(), r.sourceBiomes(), undergroundOresStage) - if err != nil { - return err - } - random, decorationSeed := worldgen.DecorationRandom(seed, int(r.sourceX), int(r.sourceZ)) - origin := worldgen.FeaturePosition{X: int(r.sourceX) << 4, Y: MinY, Z: int(r.sourceZ) << 4} - for _, scheduled := range schedule { - placed, ok := set.Placed[scheduled.Name] - if !ok { - continue - } - configured, ok := set.Configured[placed.Feature] - if !ok || configured.Type != "minecraft:disk" { - continue - } - config, err := set.Disk(placed.Feature) - if err != nil { - return err - } - random.SetFeatureSeed(decorationSeed, scheduled.Index, undergroundOresStage) - context := r.placementContext(func(position worldgen.FeaturePosition) bool { - return r.biomeAllowsFeature(set, scheduled.Name, undergroundOresStage, position) - }) - if err := set.ForEachPlacementPosition(scheduled.Name, random, origin, context, func(position worldgen.FeaturePosition) error { - return r.placeDisk(set, random, position, config) - }); err != nil { - return err - } - } - return nil -} - +// placeDisk places one disk feature at position. Disks are replayed by the +// combined stage-6 pass in region_ores.go, ordered between underwater magma +// and the biome's remaining entries exactly as the 26.1.2 datapack schedules +// them; this helper holds only the per-position placement. func (r *decorationRegion) placeDisk(set *worldgen.FeatureSet, random worldgen.RandomSource, position worldgen.FeaturePosition, config worldgen.DiskFeatureConfig) error { radius := config.RadiusMin if config.RadiusMax > config.RadiusMin { diff --git a/internal/world/underwater_magma.go b/internal/world/underwater_magma.go index 5d23237..c5b77ad 100644 --- a/internal/world/underwater_magma.go +++ b/internal/world/underwater_magma.go @@ -2,51 +2,10 @@ package world import "regionio/internal/worldgen" -func (r *decorationRegion) placeScheduledUnderwaterMagma(seed int64) error { - set, err := worldgen.LoadFeatureSet() - if err != nil { - return err - } - if err := r.ensureSourceNeighborhood(); err != nil { - return err - } - schedule, err := set.FeatureSchedule(possibleBiomeOrder(), r.sourceBiomes(), undergroundOresStage) - if err != nil { - return err - } - random, decorationSeed := worldgen.DecorationRandom(seed, int(r.sourceX), int(r.sourceZ)) - origin := worldgen.FeaturePosition{X: int(r.sourceX) << 4, Y: MinY, Z: int(r.sourceZ) << 4} - for _, scheduled := range schedule { - placed, ok := set.Placed[scheduled.Name] - if !ok { - continue - } - configured, ok := set.Configured[placed.Feature] - if !ok || configured.Type != "minecraft:underwater_magma" { - continue - } - config, err := set.UnderwaterMagma(placed.Feature) - if err != nil { - return err - } - magma, ok := nameToStateID("minecraft:magma_block", nil) - if !ok { - continue - } - random.SetFeatureSeed(decorationSeed, scheduled.Index, undergroundOresStage) - context := r.placementContext(func(position worldgen.FeaturePosition) bool { - return r.biomeAllowsFeature(set, scheduled.Name, undergroundOresStage, position) - }) - if err := set.ForEachPlacementPosition(scheduled.Name, random, origin, context, func(position worldgen.FeaturePosition) error { - r.placeUnderwaterMagma(random, position, config, magma) - return nil - }); err != nil { - return err - } - } - return nil -} - +// placeUnderwaterMagma places one magma feature attempt at origin. The feature +// is replayed by the combined stage-6 pass in region_ores.go, ordered between +// the ore entries and the disk features as the 26.1.2 datapack schedules them; +// this helper holds only the per-position placement. func (r *decorationRegion) placeUnderwaterMagma(random worldgen.RandomSource, origin worldgen.FeaturePosition, config worldgen.UnderwaterMagmaFeatureConfig, magma uint16) bool { floorY, ok := r.underwaterFloor(origin.X, origin.Y, origin.Z, config.FloorSearchRange) if !ok {