From e5a109206294293173d1f46037029849b85091ba Mon Sep 17 00:00:00 2001 From: Cjsah <2684117397@qq.com> Date: Mon, 24 Jan 2022 04:37:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E5=86=99=E7=BB=B4=E5=BA=A6..?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ironstars/dimension/moon.json | 0 .../ironstars/dimension_type/moon.json | 0 .../ironstars/worldgen/biome/moon.json | 0 .../worldgen/configured_feature/moon_ore.json | 0 .../worldgen/noise_settings/moon.json | 0 .../worldgen/placed_feature/moon_ore.json | 0 src/generated/resources/.cache/cache | 3 + .../data/ironstars/dimension/moon.json | 14 ++++ .../ironstars/dimension_type/moon_type.json | 17 ++++ .../noise_settings/moon_noise_config.json | 84 +++++++++++++++++++ .../java/com/xekr/ironstars/world/Area.java | 5 -- .../com/xekr/ironstars/world/AreaFactory.java | 5 -- .../ironstars/world/AreaTransformer0.java | 12 --- .../com/xekr/ironstars/world/BigContext.java | 30 ------- .../xekr/ironstars/world/BiomeProvider.java | 46 +--------- .../com/xekr/ironstars/world/Context.java | 9 -- .../ironstars/world/GenLayerTFBiomes.java | 51 ----------- .../java/com/xekr/ironstars/world/Layer.java | 26 ------ .../com/xekr/ironstars/world/LazyArea.java | 40 --------- .../xekr/ironstars/world/LazyAreaContext.java | 62 -------------- .../ironstars/world/PixelTransformer.java | 5 -- 21 files changed, 120 insertions(+), 289 deletions(-) rename {src/main/resources/data => datapack-world}/ironstars/dimension/moon.json (100%) rename {src/main/resources/data => datapack-world}/ironstars/dimension_type/moon.json (100%) rename {src/main/resources/data => datapack-world}/ironstars/worldgen/biome/moon.json (100%) rename {src/main/resources/data => datapack-world}/ironstars/worldgen/configured_feature/moon_ore.json (100%) rename {src/main/resources/data => datapack-world}/ironstars/worldgen/noise_settings/moon.json (100%) rename {src/main/resources/data => datapack-world}/ironstars/worldgen/placed_feature/moon_ore.json (100%) create mode 100644 src/generated/resources/.cache/cache create mode 100644 src/generated/resources/data/ironstars/dimension/moon.json create mode 100644 src/generated/resources/data/ironstars/dimension_type/moon_type.json create mode 100644 src/generated/resources/data/ironstars/worldgen/noise_settings/moon_noise_config.json delete mode 100644 src/main/java/com/xekr/ironstars/world/Area.java delete mode 100644 src/main/java/com/xekr/ironstars/world/AreaFactory.java delete mode 100644 src/main/java/com/xekr/ironstars/world/AreaTransformer0.java delete mode 100644 src/main/java/com/xekr/ironstars/world/BigContext.java delete mode 100644 src/main/java/com/xekr/ironstars/world/Context.java delete mode 100644 src/main/java/com/xekr/ironstars/world/GenLayerTFBiomes.java delete mode 100644 src/main/java/com/xekr/ironstars/world/Layer.java delete mode 100644 src/main/java/com/xekr/ironstars/world/LazyArea.java delete mode 100644 src/main/java/com/xekr/ironstars/world/LazyAreaContext.java delete mode 100644 src/main/java/com/xekr/ironstars/world/PixelTransformer.java diff --git a/src/main/resources/data/ironstars/dimension/moon.json b/datapack-world/ironstars/dimension/moon.json similarity index 100% rename from src/main/resources/data/ironstars/dimension/moon.json rename to datapack-world/ironstars/dimension/moon.json diff --git a/src/main/resources/data/ironstars/dimension_type/moon.json b/datapack-world/ironstars/dimension_type/moon.json similarity index 100% rename from src/main/resources/data/ironstars/dimension_type/moon.json rename to datapack-world/ironstars/dimension_type/moon.json diff --git a/src/main/resources/data/ironstars/worldgen/biome/moon.json b/datapack-world/ironstars/worldgen/biome/moon.json similarity index 100% rename from src/main/resources/data/ironstars/worldgen/biome/moon.json rename to datapack-world/ironstars/worldgen/biome/moon.json diff --git a/src/main/resources/data/ironstars/worldgen/configured_feature/moon_ore.json b/datapack-world/ironstars/worldgen/configured_feature/moon_ore.json similarity index 100% rename from src/main/resources/data/ironstars/worldgen/configured_feature/moon_ore.json rename to datapack-world/ironstars/worldgen/configured_feature/moon_ore.json diff --git a/src/main/resources/data/ironstars/worldgen/noise_settings/moon.json b/datapack-world/ironstars/worldgen/noise_settings/moon.json similarity index 100% rename from src/main/resources/data/ironstars/worldgen/noise_settings/moon.json rename to datapack-world/ironstars/worldgen/noise_settings/moon.json diff --git a/src/main/resources/data/ironstars/worldgen/placed_feature/moon_ore.json b/datapack-world/ironstars/worldgen/placed_feature/moon_ore.json similarity index 100% rename from src/main/resources/data/ironstars/worldgen/placed_feature/moon_ore.json rename to datapack-world/ironstars/worldgen/placed_feature/moon_ore.json diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache new file mode 100644 index 0000000..b9f9b69 --- /dev/null +++ b/src/generated/resources/.cache/cache @@ -0,0 +1,3 @@ +08e56a0290a7b2bcb59afbb499abe59edef73925 data/ironstars/dimension/moon.json +a0bb608ed4bc527c91941856da1791896ec1c016 data/ironstars/dimension_type/moon_type.json +64dab7c693513ddd3c9e48c4f485ec5076fd8944 data/ironstars/worldgen/noise_settings/moon_noise_config.json diff --git a/src/generated/resources/data/ironstars/dimension/moon.json b/src/generated/resources/data/ironstars/dimension/moon.json new file mode 100644 index 0000000..d276b2e --- /dev/null +++ b/src/generated/resources/data/ironstars/dimension/moon.json @@ -0,0 +1,14 @@ +{ + "type": "ironstars:moon_type", + "generator": { + "wrapped_generator": { + "biome_source": { + "type": "ironstars:ironstars_biomes" + }, + "seed": 0, + "settings": "ironstars:moon_noise_config", + "type": "minecraft:noise" + }, + "type": "ironstars:structure_locating_wrapper" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironstars/dimension_type/moon_type.json b/src/generated/resources/data/ironstars/dimension_type/moon_type.json new file mode 100644 index 0000000..8dffab8 --- /dev/null +++ b/src/generated/resources/data/ironstars/dimension_type/moon_type.json @@ -0,0 +1,17 @@ +{ + "logical_height": 256, + "infiniburn": "minecraft:infiniburn_overworld", + "effects": "minecraft:the_end", + "ambient_light": 0.0, + "respawn_anchor_works": true, + "has_raids": false, + "min_y": 0, + "height": 256, + "natural": false, + "coordinate_scale": 1.0, + "piglin_safe": true, + "bed_works": false, + "has_skylight": true, + "has_ceiling": false, + "ultrawarm": false +} \ No newline at end of file diff --git a/src/generated/resources/data/ironstars/worldgen/noise_settings/moon_noise_config.json b/src/generated/resources/data/ironstars/worldgen/noise_settings/moon_noise_config.json new file mode 100644 index 0000000..7fb87e6 --- /dev/null +++ b/src/generated/resources/data/ironstars/worldgen/noise_settings/moon_noise_config.json @@ -0,0 +1,84 @@ +{ + "ore_veins_enabled": false, + "noodle_caves_enabled": false, + "legacy_random_source": false, + "disable_mob_generation": false, + "aquifers_enabled": false, + "noise_caves_enabled": false, + "default_fluid": { + "Properties": { + "level": "0" + }, + "Name": "minecraft:water" + }, + "surface_rule": { + "sequence": [ + { + "if_true": { + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + }, + "false_at_and_above": { + "above_bottom": 5 + }, + "type": "minecraft:vertical_gradient" + }, + "then_run": { + "result_state": { + "Name": "minecraft:bedrock" + }, + "type": "minecraft:block" + }, + "type": "minecraft:condition" + }, + { + "if_true": { + "type": "minecraft:above_preliminary_surface" + }, + "then_run": { + "result_state": { + "Name": "ironstars:moon_soil" + }, + "type": "minecraft:block" + }, + "type": "minecraft:condition" + } + ], + "type": "minecraft:sequence" + }, + "sea_level": 0, + "structures": { + "structures": {} + }, + "noise": { + "terrain_shaper": { + "offset": 0.0, + "factor": 0.0, + "jaggedness": 0.0 + }, + "size_horizontal": 1, + "size_vertical": 1, + "sampling": { + "xz_scale": 1.0, + "y_scale": 1.0, + "xz_factor": 80.0, + "y_factor": 160.0 + }, + "top_slide": { + "target": -10.0, + "size": 3, + "offset": 0 + }, + "bottom_slide": { + "target": 15.0, + "size": 3, + "offset": 0 + }, + "min_y": 0, + "height": 256 + }, + "default_block": { + "Name": "ironstars:moon_rock" + } +} \ No newline at end of file diff --git a/src/main/java/com/xekr/ironstars/world/Area.java b/src/main/java/com/xekr/ironstars/world/Area.java deleted file mode 100644 index b2ef0b9..0000000 --- a/src/main/java/com/xekr/ironstars/world/Area.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.xekr.ironstars.world; - -public interface Area { - int get(int p_76486_, int p_76487_); -} diff --git a/src/main/java/com/xekr/ironstars/world/AreaFactory.java b/src/main/java/com/xekr/ironstars/world/AreaFactory.java deleted file mode 100644 index 7b610e0..0000000 --- a/src/main/java/com/xekr/ironstars/world/AreaFactory.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.xekr.ironstars.world; - -public interface AreaFactory { - A make(); -} \ No newline at end of file diff --git a/src/main/java/com/xekr/ironstars/world/AreaTransformer0.java b/src/main/java/com/xekr/ironstars/world/AreaTransformer0.java deleted file mode 100644 index 2b0708a..0000000 --- a/src/main/java/com/xekr/ironstars/world/AreaTransformer0.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.xekr.ironstars.world; - -public interface AreaTransformer0 { - default AreaFactory run(BigContext p_76985_) { - return () -> p_76985_.createResult((p_164642_, p_164643_) -> { - p_76985_.initRandom(p_164642_, p_164643_); - return this.applyPixel(p_76985_, p_164642_, p_164643_); - }); - } - - int applyPixel(Context p_76990_, int p_76991_, int p_76992_); -} diff --git a/src/main/java/com/xekr/ironstars/world/BigContext.java b/src/main/java/com/xekr/ironstars/world/BigContext.java deleted file mode 100644 index 9607e71..0000000 --- a/src/main/java/com/xekr/ironstars/world/BigContext.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.xekr.ironstars.world; - -public interface BigContext extends Context { - void initRandom(long p_76508_, long p_76509_); - - R createResult(PixelTransformer p_76510_); - - default R createResult(PixelTransformer p_76511_, R p_76512_) { - return this.createResult(p_76511_); - } - - default R createResult(PixelTransformer p_76513_, R p_76514_, R p_76515_) { - return this.createResult(p_76513_); - } - - default int random(int p_76501_, int p_76502_) { - return this.nextRandom(2) == 0 ? p_76501_ : p_76502_; - } - - default int random(int p_76504_, int p_76505_, int p_76506_, int p_76507_) { - int i = this.nextRandom(4); - if (i == 0) { - return p_76504_; - } else if (i == 1) { - return p_76505_; - } else { - return i == 2 ? p_76506_ : p_76507_; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/xekr/ironstars/world/BiomeProvider.java b/src/main/java/com/xekr/ironstars/world/BiomeProvider.java index ff6a3c3..f4b7cc4 100644 --- a/src/main/java/com/xekr/ironstars/world/BiomeProvider.java +++ b/src/main/java/com/xekr/ironstars/world/BiomeProvider.java @@ -3,9 +3,9 @@ import com.google.common.collect.ImmutableList; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.xekr.ironstars.registry.AllBiomes; import com.xekr.ironstars.registry.AllDimensions; import net.minecraft.core.Registry; +import net.minecraft.data.worldgen.biome.OverworldBiomes; import net.minecraft.resources.RegistryLookupCodec; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; @@ -15,7 +15,6 @@ import java.util.List; import java.util.Optional; -import java.util.function.LongFunction; public class BiomeProvider extends BiomeSource { public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( @@ -26,14 +25,12 @@ public class BiomeProvider extends BiomeSource { private static final List> BIOMES = ImmutableList.of(Biomes.DESERT); private final Registry registry; - private final Layer genBiomes; private final long seed; public BiomeProvider(long seed, Registry registryIn) { super(BIOMES.stream().map(ResourceKey::location).map(registryIn::getOptional).filter(Optional::isPresent).map(opt -> opt::get)); this.seed = seed; registry = registryIn; - genBiomes = makeLayers(seed, registryIn); } @@ -41,45 +38,6 @@ public static int getBiomeId(ResourceKey biome, Registry registry) return registry.getId(registry.get(biome)); } - private static > AreaFactory makeLayers(LongFunction seed, Registry registry, long rawSeed) { - - AreaFactory biomes = GenLayerTFBiomes.INSTANCE.setup(registry).run(seed.apply(1L)); -// biomes = GenLayerTFKeyBiomes.INSTANCE.setup(registry, rawSeed).run(seed.apply(1000L), biomes); -// biomes = GenLayerTFCompanionBiomes.INSTANCE.setup(registry).run(seed.apply(1000L), biomes); -// -// biomes = ZoomLayer.NORMAL.run(seed.apply(1000L), biomes); -// biomes = ZoomLayer.NORMAL.run(seed.apply(1001L), biomes); -// -// biomes = GenLayerTFBiomeStabilize.INSTANCE.run(seed.apply(700L), biomes); -// -// biomes = GenLayerTFThornBorder.INSTANCE.setup(registry).run(seed.apply(500L), biomes); -// -// biomes = ZoomLayer.NORMAL.run(seed.apply(1002), biomes); -// biomes = ZoomLayer.NORMAL.run(seed.apply(1003), biomes); -// biomes = ZoomLayer.NORMAL.run(seed.apply(1004), biomes); -// biomes = ZoomLayer.NORMAL.run(seed.apply(1005), biomes); -// -// AreaFactory riverLayer = GenLayerTFStream.INSTANCE.setup(registry).run(seed.apply(1L), biomes); -// riverLayer = SmoothLayer.INSTANCE.run(seed.apply(7000L), riverLayer); -// biomes = GenLayerTFRiverMix.INSTANCE.setup(registry).run(seed.apply(100L), biomes, riverLayer); - - return biomes; - } - - public static Layer makeLayers(long seed, Registry registry) { - AreaFactory areaFactory = makeLayers((context) -> new LazyAreaContext(25, seed, context), registry, seed); - return new Layer(areaFactory) { - @Override - public Biome get(Registry p_242936_1_, int p_242936_2_, int p_242936_3_) { - int i = this.area.get(p_242936_2_, p_242936_3_); - Biome biome = registry.byId(i); - if (biome == null) - throw new IllegalStateException("Unknown biome id emitted by layers: " + i); - return biome; - } - }; - } - @Override protected Codec codec() { return CODEC; @@ -92,6 +50,6 @@ public BiomeSource withSeed(long pSeed) { @Override public Biome getNoiseBiome(int p_186735_, int p_186736_, int p_186737_, Climate.Sampler p_186738_) { - return genBiomes.get(registry, p_186735_, p_186737_); + return OverworldBiomes.desert(); } } diff --git a/src/main/java/com/xekr/ironstars/world/Context.java b/src/main/java/com/xekr/ironstars/world/Context.java deleted file mode 100644 index 290e8fc..0000000 --- a/src/main/java/com/xekr/ironstars/world/Context.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.xekr.ironstars.world; - -import net.minecraft.world.level.levelgen.synth.ImprovedNoise; - -public interface Context { - int nextRandom(int p_76516_); - - ImprovedNoise getBiomeNoise(); -} \ No newline at end of file diff --git a/src/main/java/com/xekr/ironstars/world/GenLayerTFBiomes.java b/src/main/java/com/xekr/ironstars/world/GenLayerTFBiomes.java deleted file mode 100644 index ef175e8..0000000 --- a/src/main/java/com/xekr/ironstars/world/GenLayerTFBiomes.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.xekr.ironstars.world; - -import com.google.common.collect.ImmutableList; -import com.xekr.ironstars.registry.AllBiomes; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.Biomes; - -import java.util.List; - -/** - * Applies the twilight forest biomes to the map - * - * @author Ben - */ -public enum GenLayerTFBiomes implements AreaTransformer0 { - INSTANCE; - private static final int RARE_BIOME_CHANCE = 15; - - protected static final List> commonBiomes = ImmutableList.of(Biomes.DESERT); - protected static final List> rareBiomes = ImmutableList.of(); - - private Registry registry; - - public GenLayerTFBiomes setup(Registry registry) { - this.registry = registry; - return this; - } - - GenLayerTFBiomes() { - - } - - @Override - public int applyPixel(Context iNoiseRandom, int x, int y) { - //return 0; //getRandomBiome(iNoiseRandom, commonBiomes)); - - if (iNoiseRandom.nextRandom(RARE_BIOME_CHANCE) == 0) { - // make specialBiomes biome - return getRandomBiome(iNoiseRandom, rareBiomes); - } else { - // make common biome - return getRandomBiome(iNoiseRandom, commonBiomes); - } - } - - private int getRandomBiome(Context random, List> biomes) { - return BiomeProvider.getBiomeId(biomes.get(random.nextRandom(biomes.size())), registry); - } -} diff --git a/src/main/java/com/xekr/ironstars/world/Layer.java b/src/main/java/com/xekr/ironstars/world/Layer.java deleted file mode 100644 index d2a7938..0000000 --- a/src/main/java/com/xekr/ironstars/world/Layer.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.xekr.ironstars.world; - -import net.minecraft.Util; -import net.minecraft.core.Registry; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.Biomes; - -public class Layer { - public final LazyArea area; - - public Layer(AreaFactory p_76714_) { - this.area = p_76714_.make(); - } - - public Biome get(Registry p_76716_, int p_76717_, int p_76718_) { - int i = this.area.get(p_76717_, p_76718_); - Biome biome = p_76716_.byId(i); - if (biome == null) { - Util.logAndPauseIfInIde("Unknown biome id: " + i); - return p_76716_.get(Biomes.PLAINS); - } else { - return biome; - } - - } -} diff --git a/src/main/java/com/xekr/ironstars/world/LazyArea.java b/src/main/java/com/xekr/ironstars/world/LazyArea.java deleted file mode 100644 index c401f36..0000000 --- a/src/main/java/com/xekr/ironstars/world/LazyArea.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.xekr.ironstars.world; - -import it.unimi.dsi.fastutil.longs.Long2IntLinkedOpenHashMap; -import net.minecraft.world.level.ChunkPos; - -public class LazyArea implements Area { - private final PixelTransformer transformer; - private final Long2IntLinkedOpenHashMap cache; - private final int maxCache; - - public LazyArea(Long2IntLinkedOpenHashMap p_76493_, int p_76494_, PixelTransformer p_76495_) { - this.cache = p_76493_; - this.maxCache = p_76494_; - this.transformer = p_76495_; - } - - public int get(int p_76498_, int p_76499_) { - long i = ChunkPos.asLong(p_76498_, p_76499_); - synchronized(this.cache) { - int j = this.cache.get(i); - if (j != Integer.MIN_VALUE) { - return j; - } else { - int k = this.transformer.apply(p_76498_, p_76499_); - this.cache.put(i, k); - if (this.cache.size() > this.maxCache) { - for(int l = 0; l < this.maxCache / 16; ++l) { - this.cache.removeFirstInt(); - } - } - - return k; - } - } - } - - public int getMaxCache() { - return this.maxCache; - } -} diff --git a/src/main/java/com/xekr/ironstars/world/LazyAreaContext.java b/src/main/java/com/xekr/ironstars/world/LazyAreaContext.java deleted file mode 100644 index cb9d60c..0000000 --- a/src/main/java/com/xekr/ironstars/world/LazyAreaContext.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.xekr.ironstars.world; - -import it.unimi.dsi.fastutil.longs.Long2IntLinkedOpenHashMap; -import net.minecraft.util.LinearCongruentialGenerator; -import net.minecraft.world.level.levelgen.LegacyRandomSource; -import net.minecraft.world.level.levelgen.synth.ImprovedNoise; - -public class LazyAreaContext implements BigContext { - private final Long2IntLinkedOpenHashMap cache; - private final int maxCache; - private final ImprovedNoise biomeNoise; - private final long seed; - private long rval; - - public LazyAreaContext(int p_76523_, long p_76524_, long p_76525_) { - this.seed = mixSeed(p_76524_, p_76525_); - this.biomeNoise = new ImprovedNoise(new LegacyRandomSource(p_76524_)); - this.cache = new Long2IntLinkedOpenHashMap(16, 0.25F); - this.cache.defaultReturnValue(Integer.MIN_VALUE); - this.maxCache = p_76523_; - } - - public LazyArea createResult(PixelTransformer p_76552_) { - return new LazyArea(this.cache, this.maxCache, p_76552_); - } - - public LazyArea createResult(PixelTransformer p_76541_, LazyArea p_76542_) { - return new LazyArea(this.cache, Math.min(1024, p_76542_.getMaxCache() * 4), p_76541_); - } - - public LazyArea createResult(PixelTransformer p_76544_, LazyArea p_76545_, LazyArea p_76546_) { - return new LazyArea(this.cache, Math.min(1024, Math.max(p_76545_.getMaxCache(), p_76546_.getMaxCache()) * 4), p_76544_); - } - - public void initRandom(long p_76529_, long p_76530_) { - long i = this.seed; - i = LinearCongruentialGenerator.next(i, p_76529_); - i = LinearCongruentialGenerator.next(i, p_76530_); - i = LinearCongruentialGenerator.next(i, p_76529_); - i = LinearCongruentialGenerator.next(i, p_76530_); - this.rval = i; - } - - public int nextRandom(int p_76527_) { - int i = Math.floorMod(this.rval >> 24, p_76527_); - this.rval = LinearCongruentialGenerator.next(this.rval, this.seed); - return i; - } - - public ImprovedNoise getBiomeNoise() { - return this.biomeNoise; - } - - private static long mixSeed(long p_76549_, long p_76550_) { - long i = LinearCongruentialGenerator.next(p_76550_, p_76550_); - i = LinearCongruentialGenerator.next(i, p_76550_); - i = LinearCongruentialGenerator.next(i, p_76550_); - long j = LinearCongruentialGenerator.next(p_76549_, i); - j = LinearCongruentialGenerator.next(j, i); - return LinearCongruentialGenerator.next(j, i); - } -} diff --git a/src/main/java/com/xekr/ironstars/world/PixelTransformer.java b/src/main/java/com/xekr/ironstars/world/PixelTransformer.java deleted file mode 100644 index 3033327..0000000 --- a/src/main/java/com/xekr/ironstars/world/PixelTransformer.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.xekr.ironstars.world; - -public interface PixelTransformer { - int apply(int p_77076_, int p_77077_); -} \ No newline at end of file