From 28b19c8f35fcf12273e3bb1d6b99d291e71f878f Mon Sep 17 00:00:00 2001 From: OLEGSHA Date: Wed, 22 Sep 2021 23:48:38 +0300 Subject: [PATCH] Added more flowers and more grass types, fixed cross tile render - Added Clover, Daisy, Dandelion, Geranium, Knapweed, Yellow Pea, Bluegrass - Renamed grass herbs and flat flowers - Cross tile renderer now uses a kostyl that forces face normals to be oriented vertically - Refactored flower generation - Added a coherent error message when a texture could not be found --- .../client/graphics/model/ShapeParts.java | 79 +++++++--- .../graphics/texture/TextureLoader.java | 8 +- .../graphics/world/WorldRenderProgram.java | 38 ++++- .../client/world/tile/TileRenderCross.java | 6 +- .../ru/windcorp/progressia/test/Flowers.java | 147 ++++++++++++++++++ .../windcorp/progressia/test/TestContent.java | 49 +++--- .../windcorp/progressia/test/gen/Fields.java | 4 + .../test/gen/TestGenerationConfig.java | 14 +- .../test/gen/feature/TestFlowerFeature.java | 59 +++++-- .../test/gen/feature/TestGrassFeature.java | 27 +++- .../assets/textures/tiles/BlueFlowers.png | Bin 481 -> 0 bytes .../resources/assets/textures/tiles/Bush.png | Bin 2015 -> 15810 bytes .../resources/assets/textures/tiles/Fern.png | Bin 11312 -> 14608 bytes .../textures/tiles/FlowerCloverFlat.png | Bin 0 -> 301 bytes .../textures/tiles/FlowerCloverHerb.png | Bin 0 -> 977 bytes .../textures/tiles/FlowerCloverTiny.png | Bin 0 -> 600 bytes .../assets/textures/tiles/FlowerDaisyFlat.png | Bin 0 -> 12979 bytes .../assets/textures/tiles/FlowerDaisyTiny.png | Bin 0 -> 8447 bytes .../textures/tiles/FlowerDandelionFlat.png | Bin 0 -> 384 bytes .../textures/tiles/FlowerDandelionTiny.png | Bin 0 -> 458 bytes .../textures/tiles/FlowerGeraniumFlat.png | Bin 0 -> 379 bytes .../textures/tiles/FlowerGeraniumTiny.png | Bin 0 -> 361 bytes .../textures/tiles/FlowerKnapweedFlat.png | Bin 0 -> 424 bytes .../textures/tiles/FlowerKnapweedTiny.png | Bin 0 -> 465 bytes .../textures/tiles/FlowerLavanderFlat.png | Bin 0 -> 402 bytes ...nderFlowers.png => FlowerLavanderTiny.png} | Bin .../textures/tiles/FlowerYellowPeaFlat.png | Bin 0 -> 314 bytes .../textures/tiles/FlowerYellowPeaTiny.png | Bin 0 -> 337 bytes .../assets/textures/tiles/GrassBluegrass0.png | Bin 0 -> 1261 bytes .../assets/textures/tiles/GrassBluegrass1.png | Bin 0 -> 1490 bytes .../assets/textures/tiles/GrassBluegrass2.png | Bin 0 -> 1508 bytes .../assets/textures/tiles/GrassMeadow0.png | Bin 0 -> 7353 bytes .../assets/textures/tiles/GrassMeadow1.png | Bin 0 -> 9044 bytes .../assets/textures/tiles/GrassMeadow2.png | Bin 0 -> 13721 bytes .../assets/textures/tiles/LowGrass.png | Bin 448 -> 0 bytes .../assets/textures/tiles/MediumGrass.png | Bin 690 -> 0 bytes .../assets/textures/tiles/PurpleFlowers.png | Bin 519 -> 0 bytes .../assets/textures/tiles/TallGrass.png | Bin 8990 -> 0 bytes .../textures/tiles/TinyDandelionFlowers.png | Bin 4380 -> 0 bytes .../assets/textures/tiles/WhiteFlowers.png | Bin 586 -> 0 bytes .../assets/textures/tiles/YellowFlowers.png | Bin 9945 -> 0 bytes 41 files changed, 355 insertions(+), 76 deletions(-) create mode 100644 src/main/java/ru/windcorp/progressia/test/Flowers.java delete mode 100644 src/main/resources/assets/textures/tiles/BlueFlowers.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerCloverFlat.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerCloverHerb.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerCloverTiny.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerDaisyFlat.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerDaisyTiny.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerDandelionFlat.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerDandelionTiny.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerGeraniumFlat.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerGeraniumTiny.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerKnapweedFlat.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerKnapweedTiny.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerLavanderFlat.png rename src/main/resources/assets/textures/tiles/{TinyLavanderFlowers.png => FlowerLavanderTiny.png} (100%) create mode 100644 src/main/resources/assets/textures/tiles/FlowerYellowPeaFlat.png create mode 100644 src/main/resources/assets/textures/tiles/FlowerYellowPeaTiny.png create mode 100644 src/main/resources/assets/textures/tiles/GrassBluegrass0.png create mode 100644 src/main/resources/assets/textures/tiles/GrassBluegrass1.png create mode 100644 src/main/resources/assets/textures/tiles/GrassBluegrass2.png create mode 100644 src/main/resources/assets/textures/tiles/GrassMeadow0.png create mode 100644 src/main/resources/assets/textures/tiles/GrassMeadow1.png create mode 100644 src/main/resources/assets/textures/tiles/GrassMeadow2.png delete mode 100644 src/main/resources/assets/textures/tiles/LowGrass.png delete mode 100644 src/main/resources/assets/textures/tiles/MediumGrass.png delete mode 100644 src/main/resources/assets/textures/tiles/PurpleFlowers.png delete mode 100644 src/main/resources/assets/textures/tiles/TallGrass.png delete mode 100644 src/main/resources/assets/textures/tiles/TinyDandelionFlowers.png delete mode 100644 src/main/resources/assets/textures/tiles/WhiteFlowers.png delete mode 100644 src/main/resources/assets/textures/tiles/YellowFlowers.png diff --git a/src/main/java/ru/windcorp/progressia/client/graphics/model/ShapeParts.java b/src/main/java/ru/windcorp/progressia/client/graphics/model/ShapeParts.java index 50f744f..4030249 100644 --- a/src/main/java/ru/windcorp/progressia/client/graphics/model/ShapeParts.java +++ b/src/main/java/ru/windcorp/progressia/client/graphics/model/ShapeParts.java @@ -25,13 +25,14 @@ import glm.vec._3.Vec3; import glm.vec._4.Vec4; import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram.VertexBuilder; import ru.windcorp.progressia.client.graphics.texture.Texture; +import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram.WRPVertexBuilder; import ru.windcorp.progressia.common.world.rels.AbsFace; public class ShapeParts { private ShapeParts() { } - + public static ShapePart createRectangle( ShapeRenderProgram program, Texture texture, @@ -41,25 +42,65 @@ public class ShapeParts { Vec3 height, boolean flip ) { - VertexBuilder builder = program.getVertexBuilder(); + return createRectangle(program, texture, colorMultiplier, origin, width, height, flip, null); + } - builder.addVertex( - origin, - colorMultiplier, - new Vec2(0, 0) - ).addVertex( - origin.add_(height), - colorMultiplier, - new Vec2(0, 1) - ).addVertex( - origin.add_(width), - colorMultiplier, - new Vec2(1, 0) - ).addVertex( - origin.add_(width).add(height), - colorMultiplier, - new Vec2(1, 1) - ); + public static ShapePart createRectangle( + ShapeRenderProgram program, + Texture texture, + Vec4 colorMultiplier, + Vec3 origin, + Vec3 width, + Vec3 height, + boolean flip, + Vec3 forcedNormals + ) { + VertexBuilder builder = program.getVertexBuilder(); + + if (forcedNormals != null && builder instanceof WRPVertexBuilder) { + ((WRPVertexBuilder) builder).addVertex( + origin, + colorMultiplier, + new Vec2(0, 0), + forcedNormals + ); + ((WRPVertexBuilder) builder).addVertex( + origin.add_(height), + colorMultiplier, + new Vec2(0, 1), + forcedNormals + ); + ((WRPVertexBuilder) builder).addVertex( + origin.add_(width), + colorMultiplier, + new Vec2(1, 0), + forcedNormals + ); + ((WRPVertexBuilder) builder).addVertex( + origin.add_(width).add(height), + colorMultiplier, + new Vec2(1, 1), + forcedNormals + ); + } else { + builder.addVertex( + origin, + colorMultiplier, + new Vec2(0, 0) + ).addVertex( + origin.add_(height), + colorMultiplier, + new Vec2(0, 1) + ).addVertex( + origin.add_(width), + colorMultiplier, + new Vec2(1, 0) + ).addVertex( + origin.add_(width).add(height), + colorMultiplier, + new Vec2(1, 1) + ); + } ShortBuffer buffer = flip ? ShortBuffer.wrap( new short[] { diff --git a/src/main/java/ru/windcorp/progressia/client/graphics/texture/TextureLoader.java b/src/main/java/ru/windcorp/progressia/client/graphics/texture/TextureLoader.java index 18f2326..1ce3998 100644 --- a/src/main/java/ru/windcorp/progressia/client/graphics/texture/TextureLoader.java +++ b/src/main/java/ru/windcorp/progressia/client/graphics/texture/TextureLoader.java @@ -28,6 +28,7 @@ import javax.imageio.ImageIO; import ru.windcorp.progressia.common.resource.Resource; import ru.windcorp.progressia.common.util.BinUtil; +import ru.windcorp.progressia.common.util.crash.CrashReports; public class TextureLoader { @@ -99,7 +100,12 @@ public class TextureLoader { TextureSettings settings ) throws IOException { - return loadPixels(resource.getInputStream(), settings); + + InputStream stream = resource.getInputStream(); + if (stream == null) { + throw CrashReports.report(null, "Texture \"%s\" not found", resource.getName()); + } + return loadPixels(stream, settings); } private TextureLoader() { diff --git a/src/main/java/ru/windcorp/progressia/client/graphics/world/WorldRenderProgram.java b/src/main/java/ru/windcorp/progressia/client/graphics/world/WorldRenderProgram.java index c005454..55ef3f8 100644 --- a/src/main/java/ru/windcorp/progressia/client/graphics/world/WorldRenderProgram.java +++ b/src/main/java/ru/windcorp/progressia/client/graphics/world/WorldRenderProgram.java @@ -199,6 +199,10 @@ public class WorldRenderProgram extends ShapeRenderProgram { int offset = vertices.position() + index * getBytesPerVertex() + (3 * Float.BYTES + 4 * Float.BYTES + 2 * Float.BYTES); + + if (!Float.isNaN(vertices.getFloat(offset + 0 * Float.BYTES))) { + return; // normals are forced + } vertices.putFloat(offset + 0 * Float.BYTES, normal.x); vertices.putFloat(offset + 1 * Float.BYTES, normal.y); @@ -212,7 +216,7 @@ public class WorldRenderProgram extends ShapeRenderProgram { return new WRPVertexBuilder(); } - private static class WRPVertexBuilder implements VertexBuilder { + public static class WRPVertexBuilder implements VertexBuilder { // TODO Throw VertexBuilders out the window and rewrite completely. // I want to _extend_ VBs, not re-implement them for children of SRP @@ -220,11 +224,17 @@ public class WorldRenderProgram extends ShapeRenderProgram { final Vec3 position; final Vec4 colorMultiplier; final Vec2 textureCoords; - + final Vec3 normals; + Vertex(Vec3 position, Vec4 colorMultiplier, Vec2 textureCoords) { + this(position, colorMultiplier, textureCoords, new Vec3(Float.NaN, Float.NaN, Float.NaN)); + } + + Vertex(Vec3 position, Vec4 colorMultiplier, Vec2 textureCoords, Vec3 normals) { this.position = position; this.colorMultiplier = colorMultiplier; this.textureCoords = textureCoords; + this.normals = normals; } } @@ -291,6 +301,24 @@ public class WorldRenderProgram extends ShapeRenderProgram { return this; } + + public VertexBuilder addVertex( + Vec3 position, + Vec4 colorMultiplier, + Vec2 textureCoords, + Vec3 normals + ) { + vertices.add( + new Vertex( + new Vec3(position), + new Vec4(colorMultiplier), + new Vec2(textureCoords), + new Vec3(normals) + ) + ); + + return this; + } @Override public ByteBuffer assemble() { @@ -309,9 +337,9 @@ public class WorldRenderProgram extends ShapeRenderProgram { .putFloat(v.colorMultiplier.w) .putFloat(v.textureCoords.x) .putFloat(v.textureCoords.y) - .putFloat(Float.NaN) - .putFloat(Float.NaN) - .putFloat(Float.NaN); + .putFloat(v.normals.x) + .putFloat(v.normals.y) + .putFloat(v.normals.z); } result.flip(); diff --git a/src/main/java/ru/windcorp/progressia/client/world/tile/TileRenderCross.java b/src/main/java/ru/windcorp/progressia/client/world/tile/TileRenderCross.java index 01af8f6..f312ed2 100644 --- a/src/main/java/ru/windcorp/progressia/client/world/tile/TileRenderCross.java +++ b/src/main/java/ru/windcorp/progressia/client/world/tile/TileRenderCross.java @@ -114,7 +114,8 @@ public class TileRenderCross extends TileRender implements TileOptimizedCustom { origin, width, height, - false + false, + new Vec3(0, 0, 1) ) ); output.accept( @@ -125,7 +126,8 @@ public class TileRenderCross extends TileRender implements TileOptimizedCustom { origin, width, height, - true + true, + new Vec3(0, 0, 1) ) ); } diff --git a/src/main/java/ru/windcorp/progressia/test/Flowers.java b/src/main/java/ru/windcorp/progressia/test/Flowers.java new file mode 100644 index 0000000..9eb45a8 --- /dev/null +++ b/src/main/java/ru/windcorp/progressia/test/Flowers.java @@ -0,0 +1,147 @@ +/* + * Progressia + * Copyright (C) 2020-2021 Wind Corporation and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package ru.windcorp.progressia.test; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import ru.windcorp.progressia.client.graphics.texture.Texture; +import ru.windcorp.progressia.client.world.tile.TileRenderRegistry; +import ru.windcorp.progressia.client.world.tile.TileRenderTransparentSurface; +import ru.windcorp.progressia.common.world.tile.TileData; +import ru.windcorp.progressia.common.world.tile.TileDataRegistry; +import ru.windcorp.progressia.server.world.tile.HangingTileLogic; +import ru.windcorp.progressia.server.world.tile.TileLogicRegistry; + +public class Flowers { + + private static final int HERB_MAX_COUNT = 3; + private static final int TINY_MAX_COUNT = 8; + private static final float TINY_SIZE = 0.5f; + + public enum FlowerVariant { + + FLAT("Flat"), + TINY("Tiny"), + HERB("Herb"); + + private final String name; + + private FlowerVariant(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + } + + public static class Flower { + + private final String name; + + /** + * 1 disables spawning, 0 spawns everywhere + */ + private final float rarity; + + private final FlowerVariant[] requestedVariants; + private final Map tiles = new HashMap<>(); + + public Flower(String name, float rarity, FlowerVariant... variants) { + Objects.requireNonNull(name, "name"); + Objects.requireNonNull(variants, "variants"); + + this.name = name; + this.rarity = rarity; + this.requestedVariants = variants; + } + + public String getName() { + return name; + } + + public float getRarity() { + return rarity; + } + + public TileData getTile(FlowerVariant variant) { + return tiles.get(variant); + } + + public Collection getTiles() { + return tiles.values(); + } + + private void register() { + for (FlowerVariant variant : requestedVariants) { + + String fullName = "Flower" + name + variant.getName(); + String id = "Test:" + fullName; + + TileData tileData = new TileData(id); + tiles.put(variant, tileData); + TileDataRegistry.getInstance().register(tileData); + + Texture texture = TileRenderRegistry.getTileTexture(fullName); + + TileLogicRegistry logic = TileLogicRegistry.getInstance(); + TileRenderRegistry render = TileRenderRegistry.getInstance(); + + switch (variant) { + case HERB: + logic.register(new HangingTileLogic(id)); + render.register(new TileRenderHerb(id, texture, HERB_MAX_COUNT)); + break; + case TINY: + logic.register(new HangingTileLogic(id)); + render.register(new TileRenderTinyFlower(id, texture, TINY_MAX_COUNT, TINY_SIZE)); + break; + case FLAT: + default: + logic.register(new TestTileLogicGrass(id)); + render.register(new TileRenderTransparentSurface(id, texture)); + break; + } + + } + } + + } + + private final Map flowersByName = Collections.synchronizedMap(new HashMap<>()); + + public Flower create(String name, float rarity, FlowerVariant... variants) { + Flower flower = new Flower(name, rarity, variants); + flowersByName.put(name, flower); + return flower; + } + + public void registerAllFlowers() { + getFlowers().forEach(Flower::register); + } + + public Collection getFlowers() { + return flowersByName.values(); + } + +} diff --git a/src/main/java/ru/windcorp/progressia/test/TestContent.java b/src/main/java/ru/windcorp/progressia/test/TestContent.java index 5e9ea98..e027cef 100644 --- a/src/main/java/ru/windcorp/progressia/test/TestContent.java +++ b/src/main/java/ru/windcorp/progressia/test/TestContent.java @@ -62,6 +62,7 @@ import ru.windcorp.progressia.server.world.context.ServerTileStackContext; import ru.windcorp.progressia.server.world.entity.*; import ru.windcorp.progressia.server.world.generation.planet.PlanetGravityModel; import ru.windcorp.progressia.server.world.tile.*; +import ru.windcorp.progressia.test.Flowers.FlowerVariant; import ru.windcorp.progressia.test.Rocks.RockType; import ru.windcorp.progressia.test.gen.TestGravityModel; @@ -75,6 +76,7 @@ public class TestContent { public static final List PLACEABLE_TILES = new ArrayList<>(); public static final Rocks ROCKS = new Rocks(); + public static final Flowers FLOWERS = new Flowers(); public static void registerContent() { registerWorldContent(); @@ -183,15 +185,8 @@ public class TestContent { ); register(new TestTileLogicGrass(id)); }); - - Arrays.asList( - "Yellow", - "White", - "Purple", - "Blue" - ).forEach(color -> { - registerSimplestTransparentTile(color + "Flowers"); - }); + + registerFlowers(); registerSimplestTransparentTile("Stones"); @@ -216,21 +211,12 @@ public class TestContent { registerSimplestOpaqueTile("TilesLarge"); registerSimplestOpaqueTile("TilesSmall"); - registerHerb("LowGrass", 6); - registerHerb("MediumGrass", 6); - registerHerb("TallGrass", 6); - - Arrays.asList( - "Dandelion", - "Lavander" - ).forEach(variant -> { - String fullName = "Tiny" + variant + "Flowers"; - String id = "Test:" + fullName; - - register(new TileData(id)); - register(new TileRenderTinyFlower(id, getTileTexture(fullName), 8, 0.5f)); - register(new HangingTileLogic(id)); - }); + registerHerb("GrassMeadow0", 6); + registerHerb("GrassMeadow1", 6); + registerHerb("GrassMeadow2", 6); + registerHerb("GrassBluegrass0", 6); + registerHerb("GrassBluegrass1", 6); + registerHerb("GrassBluegrass2", 6); registerHerb("Bush", 1); registerHerb("Fern", 3); @@ -240,6 +226,21 @@ public class TestContent { PLACEABLE_TILES.sort(Comparator.comparing(TileData::getId)); } + private static void registerFlowers() { + + final float common = 0.8f; + + FLOWERS.create("Clover", common, FlowerVariant.HERB, FlowerVariant.TINY, FlowerVariant.FLAT); + FLOWERS.create("Dandelion", common, FlowerVariant.TINY, FlowerVariant.FLAT); + FLOWERS.create("Geranium", common, FlowerVariant.TINY, FlowerVariant.FLAT); + FLOWERS.create("Knapweed", common, FlowerVariant.TINY, FlowerVariant.FLAT); + FLOWERS.create("YellowPea", common, FlowerVariant.TINY, FlowerVariant.FLAT); + FLOWERS.create("Daisy", common, FlowerVariant.TINY, FlowerVariant.FLAT); + FLOWERS.create("Lavander", common, FlowerVariant.TINY, FlowerVariant.FLAT); + + FLOWERS.registerAllFlowers(); + } + private static void registerSimplestBlock(String name) { String id = "Test:" + name; register(new BlockData(id)); diff --git a/src/main/java/ru/windcorp/progressia/test/gen/Fields.java b/src/main/java/ru/windcorp/progressia/test/gen/Fields.java index 26ccdca..36abefb 100644 --- a/src/main/java/ru/windcorp/progressia/test/gen/Fields.java +++ b/src/main/java/ru/windcorp/progressia/test/gen/Fields.java @@ -218,6 +218,10 @@ public class Fields { public static Field anti(Field f) { return tweak(f, 1, -1, 1); } + + public static Field rarify(Field f, float rarity) { + return (x, y) -> Math.max((f.compute(x, y) - rarity) / (1 - rarity), 0); + } public static Field octaves(Field f, double scaleFactor, double amplitudeFactor, int octaves) { return (x, y) -> { diff --git a/src/main/java/ru/windcorp/progressia/test/gen/TestGenerationConfig.java b/src/main/java/ru/windcorp/progressia/test/gen/TestGenerationConfig.java index 1fe8334..1896db4 100644 --- a/src/main/java/ru/windcorp/progressia/test/gen/TestGenerationConfig.java +++ b/src/main/java/ru/windcorp/progressia/test/gen/TestGenerationConfig.java @@ -26,6 +26,7 @@ import java.util.function.Function; import ru.windcorp.progressia.common.Units; import ru.windcorp.progressia.common.util.noise.discrete.WorleyProceduralNoise; import ru.windcorp.progressia.common.world.Coordinates; +import ru.windcorp.progressia.common.world.rels.AbsFace; import ru.windcorp.progressia.server.Server; import ru.windcorp.progressia.server.world.generation.WorldGenerator; import ru.windcorp.progressia.server.world.generation.planet.Planet; @@ -125,19 +126,16 @@ public class TestGenerationConfig { ) ); - Function floweriness = flowerName -> fields.register( - "Test:Flower" + flowerName, - f -> multiply( - selectPositive(squash(scale(octaves(fields.primitive(), 2, 3), 100), 2), 1, 0.5), - tweak(fields.get("Test:Forest", f), 1, -1, 1.1), - anti(squash(fields.get("Test:Cliff", f), 10)) - ) + Function floweriness = f -> multiply( + amplify(withMin(squash(scale(octaves(fields.primitive(), 2, 3), 100), 5), 0), 2), + tweak(fields.get("Test:Forest", f), 1, -1, 1.1), + anti(squash(fields.get("Test:Cliff", f), 10)) ); features.add(new TestBushFeature("Test:BushFeature", forestiness)); features.add(new TestTreeFeature("Test:TreeFeature", forestiness)); features.add(new TestGrassFeature("Test:GrassFeature", grassiness)); - features.add(new TestFlowerFeature("Test:FlowerFeature", floweriness)); + features.add(new TestFlowerFeature("Test:FlowerFeature", TestContent.FLOWERS, floweriness, fields)); } } diff --git a/src/main/java/ru/windcorp/progressia/test/gen/feature/TestFlowerFeature.java b/src/main/java/ru/windcorp/progressia/test/gen/feature/TestFlowerFeature.java index 19a97aa..03fd251 100644 --- a/src/main/java/ru/windcorp/progressia/test/gen/feature/TestFlowerFeature.java +++ b/src/main/java/ru/windcorp/progressia/test/gen/feature/TestFlowerFeature.java @@ -17,35 +17,73 @@ */ package ru.windcorp.progressia.test.gen.feature; +import java.util.ArrayList; +import java.util.List; import java.util.Set; import java.util.function.Function; import com.google.common.collect.ImmutableSet; +import ru.windcorp.progressia.common.world.rels.AbsFace; import ru.windcorp.progressia.common.world.rels.RelFace; import ru.windcorp.progressia.common.world.tile.TileData; -import ru.windcorp.progressia.common.world.tile.TileDataRegistry; import ru.windcorp.progressia.server.world.generation.surface.SurfaceFloatField; import ru.windcorp.progressia.server.world.generation.surface.SurfaceTopLayerFeature; import ru.windcorp.progressia.server.world.generation.surface.context.SurfaceBlockContext; +import ru.windcorp.progressia.test.Flowers; +import ru.windcorp.progressia.test.Flowers.Flower; +import ru.windcorp.progressia.test.Flowers.FlowerVariant; import ru.windcorp.progressia.test.TestContent; +import ru.windcorp.progressia.test.gen.Fields; +import ru.windcorp.progressia.test.gen.Fields.Field; public class TestFlowerFeature extends SurfaceTopLayerFeature { private static class FlowerGenerator { - private final TileData tile; + + private final TileData[] variants; private final SurfaceFloatField floweriness; - public FlowerGenerator(TileData tile, Function flowerinessGenerator) { - this.tile = tile; - this.floweriness = flowerinessGenerator.apply(tile.getName()); + public FlowerGenerator(Flower flower, Function flowerinessGenerator, Fields fields) { + this.floweriness = fields.register( + "Test:Flower" + flower.getName(), + f -> Fields.rarify(flowerinessGenerator.apply(f), flower.getRarity()) + ); + + List tiles = new ArrayList<>(); + for (FlowerVariant variant : FlowerVariant.values()) { + TileData tile = flower.getTile(variant); + if (tile == null) { + continue; + } + + tiles.add(tile); + } + + this.variants = tiles.toArray(new TileData[tiles.size()]); } public void generate(SurfaceBlockContext context) { - if (context.getRandom().nextDouble() < floweriness.get(context)) { - context.addTile(RelFace.UP, tile); + float floweriness = this.floweriness.get(context); + + if (floweriness <= 0) { + return; } + + float random = context.getRandom().nextFloat(); + + int variant = (int) Math.floor((random + floweriness - 1) * variants.length); + + if (variant < 0) { + return; + } else if (variant >= variants.length) { + // Screw doing float math properly, just clamp it + variant = variants.length - 1; + } + + context.addTile(RelFace.UP, variants[variant]); } + } private final Set soilWhitelist; @@ -58,12 +96,11 @@ public class TestFlowerFeature extends SurfaceTopLayerFeature { private final FlowerGenerator[] flowers; - public TestFlowerFeature(String id, Function flowerinessGenerator) { + public TestFlowerFeature(String id, Flowers flowers, Function flowerinessGenerator, Fields fields) { super(id); - this.flowers = TileDataRegistry.getInstance().values().stream() - .filter(tile -> tile.getName().endsWith("Flowers")) - .map(tile -> new FlowerGenerator(tile, flowerinessGenerator)) + this.flowers = flowers.getFlowers().stream() + .map(flower -> new FlowerGenerator(flower, flowerinessGenerator, fields)) .toArray(FlowerGenerator[]::new); } diff --git a/src/main/java/ru/windcorp/progressia/test/gen/feature/TestGrassFeature.java b/src/main/java/ru/windcorp/progressia/test/gen/feature/TestGrassFeature.java index d854bf4..d7b4bae 100644 --- a/src/main/java/ru/windcorp/progressia/test/gen/feature/TestGrassFeature.java +++ b/src/main/java/ru/windcorp/progressia/test/gen/feature/TestGrassFeature.java @@ -19,6 +19,7 @@ package ru.windcorp.progressia.test.gen.feature; import java.util.List; import java.util.Set; +import java.util.function.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -57,12 +58,26 @@ public class TestGrassFeature extends SurfaceTopLayerFeature { flatGrasses.put(0.1f, 0.2f, TileDataRegistry.getInstance().get("Test:GrassWeb")); flatGrasses.put(0.05f, 0.1f, TileDataRegistry.getInstance().get("Test:GrassThreads")); } + + private static final Function randomPicker(String commonId, String rareId) { + TileData common = TileDataRegistry.getInstance().get(commonId); + TileData rare = TileDataRegistry.getInstance().get(rareId); + final float rareChance = 0.2f; + + return context -> { + if (context.getRandom().nextFloat() < rareChance) { + return rare; + } else { + return common; + } + }; + } - private final FloatRangeMap herbGrasses = new ArrayFloatRangeMap<>(); + private final FloatRangeMap> herbGrasses = new ArrayFloatRangeMap<>(); { - herbGrasses.put(0.6f, 1, TileDataRegistry.getInstance().get("Test:TallGrass")); - herbGrasses.put(0.4f, 0.6f, TileDataRegistry.getInstance().get("Test:MediumGrass")); - herbGrasses.put(0.1f, 0.4f, TileDataRegistry.getInstance().get("Test:LowGrass")); + herbGrasses.put(0.6f, 1, randomPicker("Test:GrassMeadow2", "Test:GrassBluegrass2")); + herbGrasses.put(0.4f, 0.6f, randomPicker("Test:GrassMeadow1", "Test:GrassBluegrass1")); + herbGrasses.put(0.1f, 0.4f, randomPicker("Test:GrassMeadow0", "Test:GrassBluegrass0")); } private final List scatter = ImmutableList.of( @@ -134,9 +149,9 @@ public class TestGrassFeature extends SurfaceTopLayerFeature { } if (context.getRandom().nextDouble() < grassiness) { - TileData herbGrass = herbGrasses.get((float) grassiness); + Function herbGrass = herbGrasses.get((float) grassiness); if (herbGrass != null) { - context.addTile(RelFace.UP, herbGrass); + context.addTile(RelFace.UP, herbGrass.apply(context)); } } } diff --git a/src/main/resources/assets/textures/tiles/BlueFlowers.png b/src/main/resources/assets/textures/tiles/BlueFlowers.png deleted file mode 100644 index 82c50471282d17f2b0ec2cd9325fd08c18a3b727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkEbHUgGKN%Knr?RD{?1P(pwOP)M@GHKN2hKQ}iuuY|$5C^fMpHASI3 zvm`^o-P1Q9ypd0wfq~J})5S5wYVFCHdwSB7M9J@IV+AuseVO$)V6`#CD=KB<%uzmM)n9^lt z#7@e$%1{kfkt@HnF`55qj^|3#WfOhe{Y4XmzfGTYyTY|?=c09SN>PvU&h6Qb`9v_7m2R7&zQv==+1c`#`k!$sfyF4pnI z@@3&CTsFP`wPao@M`Phs=OzXQm-Rfq)h>OP@!TAw7pVM4SpW8hKaouZA{VY}2sC$; zFDjpKM8vaKLSa(P@e}JapFYVKW7*8mHGl12R%!L4 Vkr{i8+JGU?;OXk;vd$@?2>|EyyqW+2 diff --git a/src/main/resources/assets/textures/tiles/Bush.png b/src/main/resources/assets/textures/tiles/Bush.png index 0922df3d30e45d70d47fbd758e127dc49663d326..27163187a0163121b9c7be7a16fceecfe3dcf13d 100644 GIT binary patch literal 15810 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 z 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 diff --git a/src/main/resources/assets/textures/tiles/FlowerCloverFlat.png b/src/main/resources/assets/textures/tiles/FlowerCloverFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d54c7d3c04654628c5bd36d178abd8ecbbbee0 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI=Q%po$w9!wo2q+|3;u=xnoS&PUnpeW$T$GwvlA5AW zo>`Ki;O^-g5Z=fq4pcPN)5S5w<9Kp{1nZIp|7gAc|F=B-RG;-K*-8Az?|;&VU*B{6 zzfrR3Y{T`v-T(gA{_m~0o?tvjtjg`60Bd~Oy8r&y|1_G)KVbSFzdv!oOjZ!}b|>y!~9&3FtruPgg&ebxsLQ0KlMg!2kdN literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerCloverHerb.png b/src/main/resources/assets/textures/tiles/FlowerCloverHerb.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6c505365725387ea8e708b8dc07ca50f6793ec GIT binary patch literal 977 zcmV;?11|iDP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00TKmL_t(Y$L*6{Oq*30$A9nJ zz7$rVv;`Utwv>h*{EyoLE6IT= zq?Peq{8UP((*X4J^!%rx^8~3Q?+O6FMv~laH|hs{;<{?2w8F&up&=t zs*1zmV85kV02m%~<@J+qFX%kaN>5z*j!Y(l$KzrDXdjmK3Emn%BPoi)@5-FGzG*=i z3N@TXI2}6YeoxYG+ zIV?ImI|&2=e6~~1+vX6*hK>q=G0N zcrUifI<$(GYFicW?P+J^#xKHLZDz3lD@&dLB8&|H*V7J>jHgr@3M}mCv`Uxo~@b(@OT3O3VLdChoMRX=g_uVh> z^T;LcZ+rlk(?xx4JstdjqppFPZ8d!S?QzlC(u%XrMU}Cdd+*xKxo^&Ku=N=!?;muW zd{z7wnj>~C#vP5@0BE|inWe-c6SEW4TCB*j%-OHcqE$3#v>HrRCd$goNUf$2>jFim zu+wH|J{Co<)8|AIz|);iiQZR^OWxi?qSj*N!ti+jGU+S;n@Wl(HWpK3t)WbBe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00F>BL_t(2&t=a~Xp(Up$MN^~ zaW?nI2^m-z*aWu-f_h{K3p{t|65V25>J(w9)Iu0kP=P|RtEa9dU6SbBRj@ITrQ}>b zEGgQErcck~^wD3Jrcj^r`vu>x@OPO^29L*sWm#miSpW{+Y$)-#nY(gcjyg%F(>z>W zQOX(eY@;9m{eGXPi%Y6|>< zx0~l%ZzV9Su~KL^I1QX~?IF$jf1 z41#^-%=Z*PEEdByZ7!U+D8F8n)uT%{RHxG!15MMo8oeg%{WjCyDGbBFJowG(oKMl( zL^(q&%Nm2r-gBy0EHb?}D*!u#Z8htgAGQH)dnbiLVGJg|eIgo-A|eF3r^M>m zSRI>yc~Y`ptI}}l>dyM@(NEfw?M+#XN0hGX#N%-QUM$^X*JY@xxup(2_a)Sumj^HJ zD*&xtud`cjN$>QbDwRr1xLw?OzlLqvEKHphfJUQ%x8)N6P1kiQl?vs;N2!@r<@5)m mdxOCskw}DmK96A-0Q><>@xLVBe9MUd0000 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerDaisyTiny.png b/src/main/resources/assets/textures/tiles/FlowerDaisyTiny.png new file mode 100644 index 0000000000000000000000000000000000000000..5fca23e30d95d2aa66a2320c158bda8f298222b8 GIT binary patch literal 8447 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerDandelionFlat.png b/src/main/resources/assets/textures/tiles/FlowerDandelionFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..c72e70dd0627fccab67ee1451aba3a3d0fbad1d9 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI=Q%r=#@Xn$ZL!gjkiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8f0GPZ!4!kK=DApUytyAaNvp@kXy=P1cVAi@KLyvHMrEUhY=5 zgN~@Y;IA9gwzQk+YFuTR8&}=AB*mPiFoFMc`H#2f%#}S3Ezyw(+t=_RwCL5&|DWEx zU3mCP!_P%6>Z%3LO@p1Kid43pJzcNwclOv%)dTX;vt5<4yRQ6bI_KDPc9O-rGcDg# z>-VlV_@W%q&dIMj^Jfj)a-Uh9wHLQA=Iz$odc@?5YI0bB{cMi6_7##IexaPRi*nXw z98B)Mx~g|^n?BdYCow@Km$QrROgCZMVW+quM*PYm{;O#}YFv{WG`b4yf8P5jl6zTS YZ_^5yE`wPHKtD5hy85}Sb4q9e07mSY>Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerDandelionTiny.png b/src/main/resources/assets/textures/tiles/FlowerDandelionTiny.png new file mode 100644 index 0000000000000000000000000000000000000000..3477cd4a0b32bd0c6a846a6fb14ca8787a0e9899 GIT binary patch literal 458 zcmV;*0X6=KP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00A;dL_t(2&yA6>OF{t<#(($p zSwj#GEkP0m+0xK|(%4|WMOuUi#L|#3eS|m#K|(}2I2h6560{lg2S`rg*rKC@KGfGW zgvQGTzwz$(arfQ9AH`xZ=29dQnF}@mEXzVfa9!8a%w#e%20wslnmCR_xm*Td*vqTB zZFKyCZ6h-iT-T*qtxk)s^GNHxff%dv!1_X*XNM_3rxZeI$=G#Pbt7n<5~ft z(Wr+NfMUI%AN964j)TwVBe=V)q3{~bT1zUG3IO?s3q9Y@{^U_rlBI+uO9{0s3xM?9 zsRE>KPc&D{s;d582|x@X5HQ)^+tT<_TsC($IKDbkF@*7G>|JT1%O_hG76S~2BZ4bI zx}RP8y*`D*qNpk&;x$YkR!*zm^z)@k?!fji-}MT5HA3$YUjP6A07*qoM6N<$f-TXy AJ^%m! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerGeraniumFlat.png b/src/main/resources/assets/textures/tiles/FlowerGeraniumFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..16ff34c3b58c3c5a56c6c6e2c6d4d9102d7d73b4 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI=Q%qP#aQ{7-Yd|5%64!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aiF5do-U3d9>SNV){ z=GA|(_bhbay0_=Sga3(h`1{uF{y2Y`7)R8bWQ!fYxN>z4iWk04lUrc1_+d};)yv=h zi5uG<-cb24@s_CQ>*w!}z5)uCC5qnP{N_ykp0A9m73VJ*|NlNO=db;rPmB!8dn;ll TFS!v1^e%&^tDnm{r-UW|<+Y^- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerGeraniumTiny.png b/src/main/resources/assets/textures/tiles/FlowerGeraniumTiny.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa25210da324a9cd69d99534a9e4227c8179ef0 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7lw8a%vC;94HV%l@Q5sC zV9-+rVaAH3_GLgp_7YEDSN5lzVmt;$Z?;_70u+)gag8W(&d<$F%`0JWE=o--Nlj5G z&n(GMaQE~L2yf&Q2P(Sg>EaloalSXumb)oH#CBWA?9S@s>KhkyzNr6lJ@?++f>T#l zX@?}Qmq+u%8yD2l{`MaML?-_OH?3Mn=Q^vWqlGT=@jPt20oA1@Y ztEy(Vr{0nNs`|vW?dGSBJtwTvWDkD++pz4_j``PS^epEs*W4h}t#e$7!J_8didR8; z)ny(MO$A2{ZicU{3Vq=6huiOC@O*{?yDL~2E}AOMJg{W`uOphz4u!O6YxpH`gikOu zpB10bzHQCHsTG?RvdC}n*wOT_l40hT*O%gR&Qw~l_G$YAJ;&hb>gTe~DWM4fUs8#_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerKnapweedFlat.png b/src/main/resources/assets/textures/tiles/FlowerKnapweedFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..dd888ea67b4590e8fda41d170f37a71e814b6e09 GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI=Q%r=JbyN5=XP}T|iEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI0FNtfTxRNh{y4_A*a0#2ME|sb`d+n7h5vy<8HR@I zp=WNjIu<#7H%WNE?)>j`li2V%@FWSK9$ zVp!T=!_=}h>tKxG!?K!bagEnQW1==2)OBwxzA$0uG7WwCKIUt7uJMXj8on%erMwOp OfDE3lelF{r5}E*=NvqQU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerKnapweedTiny.png b/src/main/resources/assets/textures/tiles/FlowerKnapweedTiny.png new file mode 100644 index 0000000000000000000000000000000000000000..226d59edeaeab3460dcafb8eebda3e64d571809e GIT binary patch literal 465 zcmV;?0WSWDP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00B8kL_t(2&)tyEE5mUd#$WGQ z&HPHXHb183va+()N_L!x8=?3Q++5w<9Mldjl;q&-;_N@*Lb5ToB{W0G>ihldCvPV^ z$Y0>OJR}G z07)e?TDU8)X>IU+S&~MhL2MzScFATvlBD`pLt2D-sg7r?2Zyu6$@JEQJfFYHz^GpX zfdFN@!sE${%qM4M<#?Gw_7VM31}1w&ex{?*D4|e@a<`>#sSh#6;2G}LcDqZ`=`{I# z9smJIBof4yM%3NmCVQ5{+|)$+zf_)_GBg#?s;RNFx+ee*m&?V__@K77w_=qn?CYw~ z_o;22Zj3S1Ds@zUofi&=iO1tj9}EVWUzt$=pU;Qi?{BhigX@4F<~t{o00000NkvXX Hu0mjfLH^9d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/FlowerLavanderFlat.png b/src/main/resources/assets/textures/tiles/FlowerLavanderFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..52be47898d2b990d67c174dfe311f1c25500ebd8 GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI=Q%roN+P^3I;PP5koK|Ns9l*P1uK>XE(C z{3^C|ncw}sGOHi$d$INZ$&D#NcglEbBOW(&_s?$xf<(V-f|G(A-Z}BREmE?qon@@d z%*=dv{rdZyQdZ{G@^$V3Lhm+T{wB!dwaVqgsXLqhXJ#D)nlCB#e9jMlV{WnZxrbgd zA5#nsnUHhv(wbn2d$VU3c9=+SXuW;sit`79xwCdnei37Ig;Pn@h+*{7@=y4S(0 pD`Hx)SpKP5^EUnd|3O=eVgB=<=1uoB4*^4g!PC{xWt~$(698*AqiFyD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/TinyLavanderFlowers.png b/src/main/resources/assets/textures/tiles/FlowerLavanderTiny.png similarity index 100% rename from src/main/resources/assets/textures/tiles/TinyLavanderFlowers.png rename to src/main/resources/assets/textures/tiles/FlowerLavanderTiny.png diff --git a/src/main/resources/assets/textures/tiles/FlowerYellowPeaFlat.png b/src/main/resources/assets/textures/tiles/FlowerYellowPeaFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..e254421e7eb8361e603afb203182f85b906cf770 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI=Q%qRbyyV1+ETE8NiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8f0dPZ!4!kK@UI{{OdU)@2lC?q%#^T_0x=eAl|CS*zn+Y_Z~9 z)Bpeft8?Ao|Lo)Z39}|2e`9z>AeT|`&*RD8ffE0X-`wxb;{5yg!M#}XSGPLe%!bKx9v~;J^7PzWMVj|JHvyz`NQlt)#KinD^i2 z4F(1ouimGt+-l>D{#|hE086rt^`{Q3vqsz^LYdEByjac*)z4ggTe~DWM4f$M%F) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/GrassBluegrass0.png b/src/main/resources/assets/textures/tiles/GrassBluegrass0.png new file mode 100644 index 0000000000000000000000000000000000000000..6d61e41215508faa449a419120a6ccd79166bd5c GIT binary patch literal 1261 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 KMNUMnLSTa7hT$>* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/GrassMeadow0.png b/src/main/resources/assets/textures/tiles/GrassMeadow0.png new file mode 100644 index 0000000000000000000000000000000000000000..221fb88b0269b0d0608acc34ff6f6f687d0062e2 GIT binary patch literal 7353 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 L2lE2c9g+V66={@@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/GrassMeadow1.png b/src/main/resources/assets/textures/tiles/GrassMeadow1.png new file mode 100644 index 0000000000000000000000000000000000000000..7aff0be0a500176809e342dae3ca6f13fda9258c GIT binary patch literal 9044 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 A0{{R3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/textures/tiles/LowGrass.png b/src/main/resources/assets/textures/tiles/LowGrass.png deleted file mode 100644 index 2f3726f711014b8e6b6cd4b663bc78788ba2f1bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)rHBor*Q#hU;C02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00AgTL_t(Y$L-ItOF~f;$MNq~ zB1@~MkP#^jCQS`yxHPm`e}HS$9}sPU&=52Q{Q*HW1cFmEX@h}-Bu-Hc)lm9WBBGR6 zsDoPXwppP=OWXZS_Z;pyKMp90q9}^;Uy|1e`PaXepT$w`pfk9CzSnu5mdXPSG$Lm=c5#L>3}lS9}2nJZfUQsGt@A0000rH8Ww|ozsdjr02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00J6GL_t(Y$L*0_OOs(7#(&Qq zpS@^vFKs^7Hj4&Hu%H*PgU$k@FW`}xeThI6j5-SX070dwD-Dbw%aDv95!VJ1+j@~` z%*}y0XK8!O>7Kg-aUdE>C!Oqfbo1xpy11?zs#K{`rOJO|Jp57|RIA%hFgiIZ0LEv> zE2cF@nSTlx2t25m+@HQD0NPsHq-TMrV)1vfqFc^p0JuGTb4Qb&;jaCg4Tbszz{H0M z0WcOA6MexxF%lXQw?=x!b}+z1}+ z)`Fd)EsxviqI~tJ`31aoFBy?$DU-%#vm?tgwMHYFrqOYsQ~K*f7L$!wJjTje zhPl`r!N?3PCoVFdO5!LwSS+MSW)diM3i)3J&U(+_ln!GpTQL+&yUceqc=P$SNV7x( zD(l4!HgYALjs{Yx6wRJy!k@zE4GKP=k4Q9vPA?NHennMP3`PSAdh*30CcU2amTMK? YKjn_o4iOM9H2?qr07*qoM6N<$f}58l2mk;8 diff --git a/src/main/resources/assets/textures/tiles/PurpleFlowers.png b/src/main/resources/assets/textures/tiles/PurpleFlowers.png deleted file mode 100644 index e118fdd8758a9431ba97926565e0c1b3517a2c77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)oN6DoX>PZae zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00D1FL_t(Y$K_SQPQp+SoWDdP zAfzM}NJ`@8croh12vQOy9zAKI2ctj%krp8qL|$xOIe=j4dQ&lNp%9J6J-uW$yV;r9 zx4@iXDlvRpm<dJJ$M$+C3IJu z7uOdPniYiix7KRX!G=lzz;DCLyQo`^f%TXp*3w#dyb0l-N4FgG#C_?Im)gGV`B{e} zuN~sm`NYbKnq!eYK_O;5Q#RQohvE^82V?Nka*jwRJQ!ft!Jij+II(C~DAH0z1g*;eG5;0)}GO-~B=tl#lZgzT_@_P~aE zF?|Iyk~bTUBFdspBkPsqFL!|5O>>@;8q{NKF~=Py+w?1`eFIBm(DO4478?Kn002ov JPDHLkV1i7;(&YdE diff --git a/src/main/resources/assets/textures/tiles/TallGrass.png b/src/main/resources/assets/textures/tiles/TallGrass.png deleted file mode 100644 index ce41bcf0ba8f10dac05529d4c65d57a0396393bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8990 zcmV+(BjMbMP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3;uk|e2;t^c!%UV<^hau`M44tn|h9WalK$jYpi z`=l!>V{mgf2UPV83U1ba|G#bii~q`Fg9$O0R8xBRFVs+7|L#xwg!BFW@wsMy zK5o7)I3Du+^!LxS-sd+SkH21!!~1yu`MAmBy-#^>^j`Sf(CeKYzr4>Y?~S~>kK6Ze zQ{UIM@NGKpzdhW!9Q(cW``;n67&CG|?~GgC`iJjD@8b2(`o_<~cjukEk2W8D;(PG! z&ueGCe*JCnzJB{{?Vk2N?tdJ)f`2S7C~Sh)tr|`5MMn>sak=gPpe7 zZP)oZ>|lt&EtmP}+#m*etoZDz8!W$N;rX)LWncX?M929-)Vw0{H5Pl`x1RSKB<*~r z<(bZMGplI+{$>93;Q!Cp*Nyg8>RS7hueD-aPFce+6ghq8Sp>xHcTMA2-}7a@<<0Xg zu$~CUv&@AFwx{1)^k{$OmOpX!JTE@MJhwD#p6?A zy4oh!w%=jLop#=3*WJFN_D1z*)a-AO`}e5XH)@JlIM2(!qQ=8He{Nv~Cs8pYVlG%B zo)rNS+9_sFu^~7`PBD9`qbQ;yYBnl3(<)*_Ff8lhwqLRP6}f+nn~C8+iktge4%_!A&iq1N>A8(`x}%@zI!j~y#mnW8O&b%il~S*bO^rNzBg z%PXYvP#dMKkT=U&``Wv%Xwu%)avq)coN28x^LDHGl(r9pDGuPR7lnEN>ucq?TI3y^ zzIpDeQ8Z_Y2Gi}1X~vej<*j)jl+h|cx~cIxR@i-aN^cGQOC#D?b_=VqK08hy2tU|u zgR^PZV8_aiD|7YaN?7Zub0_B8%hDaXk}R??lc#N)yw+KMk+lyXVmNoMDeL?M|!a-CNz{W6U;=sVKDBVrVfj&UAN1lXVA1XWgVkL-6S-)Kj&2C$gMKWG11c%{i`z^k=2)N{pUW z%ux2Xd5_ko?L+K!G{w2H`ih_$u+(Z`RC4)gBY>c+66w?oLs)uhT&&ss&4YS2`Mvs7n(jrBP`G{#3L{e;U1=4`B~bT$ z!(r0-86{8ePgaX{QPo=ri&9DuX$L=^hw^>uUL=;@a0A!#{6>mZa~70h*vp4pn81=y zx{+j&s2T7)-UaXu5ldluYDSm=sZRLp)e@0HjHGu<1JbBYSDH*#?Fg^fTMj? z1QEV9!Jj_#8C{-n0c>q9a1Qd0$TMLVEJ4;!7B)7L2b~oG7D6?c;)b9yue1wD;?d$X zg=hL~Sia%;i#mwIl5SP&uq${v&(iPb{A>@^LJ}cTdYz8@fXKul`&5C0YCPi3cA!Q| zB|ktTk5V2P1i8ujkj3rfJxMiBQk}9|f|gO8(>HG{W$X#SO|y8?EZ&X7@}0GJE-^uVj6=c0nQ1RXU&4T49u=YvP~gGcejqt>x9 zk%8;qi~DDFN&sjNPSj-+OLro)QGE=zP{hGh5fLB*B}3{GO;OB98bFedziGft!kAY0 zAKM52*W-F)6_gsq8#qhBC60ugGR_MQSfxiYp+sbdikTJ0d_-bt#kccdDCTWJ@9zSe z+UpWGZbfY5&WQUuHytp4>;ho0O{CcoIJxawbU$KQg-ur2JQH}tOgFhlexFEy0^+am zbYKsR_&iQIp^qL-YXO2GE;6%EQ1~fpu4%B2M^8N~j6(e2=W_G$!_W?V?WYiAn=*f^ z4(6!?6i>{Iv~-iuRyMCzEsV~%hg@(;bFkV_KQf4tJyb0>(=Js&X235DM&tmwl6o~n zE|K`~Hj)V5!DxlcD?vbtYI=EPkz#+p%3`k(p&elABv<%E(cR>8@pFfNyUwzkOFL!% zd);Fkf1<{B(D39!HAGLV8Clmdg=);2R9`?Ual&^J`>+F3n`DOw9fUXq6Tb?E(rd=W zUJzI))(%&qhyYc}B(#QcB$J`ld@4{70-)J`3gyXxw~X^l6eSc4LY+b7BVW)H2&W() zmU4yH|HK@r{c$PGf3OxOlZ6U#A?T6So@!}%WKw^b4YIX?t*-LIWW4kJ@hr~(R8Hy$ z^GKXC35lPB2B?rtlJ^Xyop0QTY#{Nhzl@)1KhX2?{R=$Ln>|MgT^*z%Yyxn5M3DJX zL4kMJFlxqhFj%lMTPhzVE!K{Uay^SqMgM8`=G*j7A&&)Vm4K0e6(msCXk&Ki?8~%L z+C-sCt+#G3*u`ul_eMMOM(?LP*x1$2CxwL}Yd`91F1&N_L{WNR$L$hg2^RnIA}W5Qo({n6E^uCy6E3 zZsG0&;urIi^iwxtY{q)%1emwzIMn>#l+k*kTIDtHFj*dOxR zFaO;2=|Sr=9<7foG!l*+0O^9wGvoAFQqsht)bSlKvqwjCGgkqIl#p@S;c<)&2%bqG zF1eMsJV*^}D!j%L5L}3oWNst2K^a+?A~{Bs-45`y;z`Y_9x~H9Ot;g?;}JkUEDZ}w z!bWNA@Sxv8@^DImq(arICJ0J^7MW)00n@qU&#UfmW#O7%;yFh=CTW&rhbmE>=#W;- z7(-gHK8Pd>I&{lTp~U}9hcxeC`e-ZOj;t@{Xj~>Wr;;^`7_nmE*OV$Mh|zQRyfmfx zHKpvHmvo-ouk#^GPxKdba{SAqj6 zm8yPrp%`}{-HF+@5LZFBAemg%Vl$<)EOlT6D)OK2t3c@4$7O*qW-S0Kfd$IeYGrvv zeiA;1I&)8k$)`!UVHv?*Agpq}N`(x4QEe@mg?Qt(k(P`kVX%s?5C)>?9s8kj|}1sS@8u0g3`8?uRUJ0#3F zP3!tp;A>`1yn%*MD^=Mk0t6lFr^Ab~YzB zaHU{pRsf6A1!Ip-?!!;4lT{DQQm4p6*av2};c@;*fne7<9x<4HGngz;24no!F-yu| zoRU*gk~e(w>e`$o9|31PNJM+4%)Jxmi(7mkvki)fFt9K5PVT%t0$H6G>Uvg7nQjX zxB%}O{8p2zlO!s!s~0E7{HR0P7P%cjJuFICte{6W1M0gQU}w#m@HfB$v`ydy=jD}? zR&uiDMTGDPWE^jN1&kw}6WW?)o~+&iVtGwqINgqtdW~92a2U)4R9TtI2oXmE zT{oymEeo^?eH3fp5B`@zEB)l){K`RPAmSTHq2x3lK?Zf;hufSvQ-WEOA#ZL zPMi1jmF6PGS&eeK5$R{si^A_@;oq(ugN)uou*dXos!=9%F133}zh|q7J(3znE#V0; zwuoHvY;+P*oePsR;snq=y$#eh*@gF@-oE5{LCcL~{qt$Gf?u=Sk>nI`S;7 z*R%GMC+IY(eDz4=Sjl5DRXb5T21XUnIA@fk1|rdkZcT?`Thb1tGp$jWWPkA5P#XWB z$bU7ch(`o)0BQ04Jv~-JIH!PDhnA?$1i03Gi|(W=(Y$MTTKWnMLvj2;#f7kIhK>?k zr#=~~Jv5Y_tA6bVNsF8oPEa}b0u16HJZg|I<))T)=L+enWTpBoz6{bu5cdh7VFVsc z9xf)T;dJ*XE40Rdg1p(TM^hVREkHq&+#!f3B(2f z6juzd>rYsiu+|7En#DZYGkDa_)i_YkP;^l5C+C#ZssUOY2;AQ;ZEQc<)x_&wGk>@^ z9cU<6R7bMksY1f?O?M4|P@qai@9+Ji^!?(`Yfa5EiK4boHx|3SK7HBjagZM~6UNUq zL1cq>f4`d4KRa{`xJBbS&ccQ9SmYARKFQ<>D=)9!-02;&63q3K4v9l_F(e!7k4*xq z9Egl25ci|*nYx^6_Wu#|cg*ESOc?Etsawm>DOmDQVb3J3WF+88ZBa6_=pP}#c#g<3 zT0tf7CKji?0|;v3r-@RvnKqGIJ2##$Oee1vZlTSm+xd_LF(R38>OqPqGN5OTlRkEt zq2Q*hy$8niNyUB^_R~fU@a`H&1D=GMZ3%tAIA?cQGs^qv&KqAuUad+|Ua79~TfU7K}5J>K8N=XuU1~*EXezNQ( zP1eRhSl#xd_I`%MYo?~P(YXrDHnpEQ(17u7C$%HatCh-CA0I7NeUm9>YED0x;vAOCWZ{2h#8FPe`Hwl(w3`R&6WP5-w{=1cS)h+dIyMB}(X{MIKK_z9wi(4Fl9) zK5Ma^W&k3C4}|?MSK<-g)kxaTPlp|WLuwwJwlc_qkd>0!CZe)RjJh`2&!}TkA3l2M z3@L83vzhC8hj8{&63mJ}C%P7qHTKjN9!Oqf43^rKK<4dMoZ63T5rC|HSbf< zU*)Tg-mirG;}bLrg$btotta-I{pn`>n>sr3rYg6?Z4{z_Kl_3tp4`Z1XVCoG8npgN z386y0OGiosw(<5J$}tys8Goe&D`;`aX_A5wd`;2R(=PTMDQ&6migfSVrYzJ=RrakK z27=*~E+`buen|jsvS`js1>cCM;1#R^^KC1f+HFr=Wj<@T)l0I0nhI zMeT!%wvYuPY*?ihkPtlx&_59}P*;TPh}Ms+J!iCFx+Cf5jd?yKQ4pj9<5zF*;_PDf zQ*-IoyZhUfppM2N@9w|I+gN$lKGi1G62`&!U_V%xpc7$@_uRy5+ir^H@iM0j-0g7R z$}-F*&nSwXRo%6ly z5<9i%LWff0<0(i4c3?ypEX28Xb(0R%1e94C-6HUvB(oP1W!@&YQO}!~n_Cb%jGO0B zb`e3YYTBwBqdYx5 zj|D$4GW*%6JY1DWGB%Bkc-j`GM8gHeSNo@MqF#ZAIHiEtKl}v9YeM^rP0UXRRXqyWKaYhO`9%jODI#?h=FWPDh6D10)1i)?AfbKB& zpit}ThX6ADSoWCh1uzDx{#BcR6Sr(kIcaMo4Uh9cnQ4ny8@kmD?VAJ?)ln+vghf+u z(8;-kQ~BrMW|qR$hL=bvp3@`i`cKlKE`TO-`JRMLTXsVO zbiQe_D;E_OuNeyyZY=XyYaA_r?E4jaA|IHWT^r3hi8)IL<2AGdF?Bj=Vo}Cwbaza+ zNg}WxyOrvu)sVHPQ&Dl*4UM=KZSGJsjm1oWX@DT{H(ur!$!}ntOE24fDYOwfivoXg4aHZ6s50LZORTQzb9!s1aUS+R zNz#!0&pB?Ss(trl`j0)C4)P!rTPeRc|nBb|`0H*tdL(%Ho zIx?oIs{q(6R;D5a%>goKld??`cMuG2x)d?po~LeZ01io~Ay@ldBOqRQ#@q(+2ugb<`WV zo%6fOprrkQn*J8wGIk0R#q@q-}RN1w{C@ZH1DN@(U%Wn%z zlw(G`wg+o1q$CWf><@M2~HrwVE0(vH?e>_o!Y&SVhEW^irA-K5+iU;h=iWd=z*_Uj5;*bR!4zq zx)>=A|ICVXYy{b};xt401r z=QAi)bU^n#x+^h1u5og9-L^f)Sy}O}GJ{N!%P*!ay5Bi|miuRY=mAz2aL=&ziN>_W79+wA6|k zIy$vS9lH(m!gjDXs=DfESvUB>$NM63sXz=U^~u&s0#XtlR6Q>z+-|DdNhxas^BTaZ z?PSW`EcLi_vLHxjosJ7Lo!V^rr?DWh&QV`VM<-D~C5)7d<}_4UHz=*E_tDS_%TbDn7tpYl~}u9Q)@6 zNf*_@`)T8EayPIU*@lyWj=?%8TD_C04$6-D00GM)+n}v@V7~08&0jqBMewBkU?q)t zcRIq7+V{-5N)Z{_zxu~RlJ)W;c8ODC1SB1s~K+~3om+8_Qp z3H)aUCetz2dzkPR#Hw#W97~J&Q7>^nsJ*2mwL-P^0z4`@A+RJMqE4~P_8QL=qISsw zGf;3=IvGtdN?!G{$PKTC zi4xK-`@I{8#X35q_5eHeor4sa9Z|A(aa>K4*XL6xjxoPDlMJJ(LPN^ z_l_igXt9MjXIM%{N~C&E=;3k^n{F+9*CF?5-g8@&+7P#SCZOJ|ui^c0N)PgU=K}`M zn>X6+1{QevzC8|Gy8*q_5|x?P3;=|#H%7I9H_IzKQ4+VojjPgL400>#a4-NdQo#~Z z+1UtMzCz-(p>vs`>~u5u4GU-tgxzDTPC_93{D6je&Spw_&-m1T^x06>61x9#eW-7P zsXvxzJr()u8RmV8P9;z6 z<@&e6hdbwH+X01@&gnnvJ$E?Fp!!-E2${Kx2MUJNa$lVeyt?&=G|=^{>C*wkQ=bk( z;#QPa(GHo9K73_-gMT*5qJH+fQ>x7xkCL$Z+!#!uHIX#8c z=+_*Y60AN(RVgxz{5hG;sxx}vj@rr;8EY5f0z`p~rtZl(6~LQfNFBzTS1xC?pWbad z8oqD$@xV32uI%6sBPrDI1GH!PO@qyz z{)v?gkJZJ!nh5dpR5i*ds;-Y$G<|*qzPQD9@XDcc6Z##hxXs;rBvj{z^sxc(*|ZJz zW|0G2C-ju&tfE)y65U_OL7uK7H6m~_uwM`FYGJamC!I%c)A+uIKGVP&r+Q=L0z5nx=?{Cr0HUPGnOam*>pbM4lbyk|ek*6Lw zEtF2bAEgWaen5&aO>;^o&94o<*W7^~Cwaa!dXUP)IYp_G0t+utrRzA$QQyJH>Fl%b zjphRuQ6MF*XQl7J3k_J9Q{^C8w$-UX4zeE5jSgXD)<~-6cA)F|m=_<094C~k1Lc>-DH1z6THPTZ zi`C&u6qiM@b#UZRAmI6abm&pa<+E+NgZf(By%L%K0qqWX<>Cz)n*aa+24YJ`L;&Id z;sD}LHK zL_t(Y$F)_@Q(ILO{_aciUdWG^XE7nA8IZ!rO#R8ig_1C%n^HGjSjw)pn|48A)BYuG zvw)4TP@tt%bhI#I)g(CTptOv&Ob08K3Dg8AAwOR762fu8-0OP~m~OnQ``&%;eBb%b zcg|%*g#U9%e3MKiF%}!Opndh*mjnRAQ=imikxV6#OeJ3o007qhS+g8IUw^(E=0W*Ndk2{LIh)A> z06zQvQvv{8*K5}xpUY!ta*zNZIuWHS=dLmU_~z%Y2>^njU`-jDTAKg>dO^qe?h9;c z?k?T_X@WR=0nq)|#H2u8;jPJROzL$KsK7Nfnss|svdxq`H zAk+|os;K~gO1ZL+X?4450rC307?~cXwP$OHPDDvoWQ%;wZO!{_n$P6{06RN7qR<@F zC>cd)*)+^z~e3eP{aE=K7`x7`=6a4(x;3*;xcbL2!BA^uNVMriaB3 zW@nl0?DDu?tkD3VkSkzhdYDvA#e>v+;!e4E`Vuor2F`|iSx@I##)I1IHp~Be4Iu#l zZ;<#xj5=GxLd&-sI+)^A1aq&?YpF$iDMoIOTLe=z6`d_%X0D?I0GUh%JJnt7r{?aG zRH9HqsjiGzQ@J`vCyqwg}_1$?Nl? zujewe04zUQ1^_5dMFeiGYhzD}f0DV09GuCp8@9>;erN`%1C0K&&3qJb*q3gQbf zGG97&yBz?~@@mV$88~DI_FgC+)dNYAz!*b5o8QMUpUp#7WMng0*lae0TOzC`K)5Z! z_|)XtsG16`UV}q+An{k+G9{1rkBF;M1lv=CWGab&0an%4goUf<2mk;807*qoM6N<$ Ef(NEM*Z=?k diff --git a/src/main/resources/assets/textures/tiles/TinyDandelionFlowers.png b/src/main/resources/assets/textures/tiles/TinyDandelionFlowers.png deleted file mode 100644 index 35f651c32d37762df94046375ee0face811ec567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4380 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 W7`x7?IKtlm0000oN5GGye zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00FW|L_t(Y$Hi4^OXE-wJ^#`b ze1QdZcd-f)f0!sJYO&U$3(IP)Rx!0yOInjQ-lVmTQhNNb1fzMh#)|VTcbIeUIcH`9 z3>i)_g)a-|dJeAbqO>~}$Z0tl9;kLY4o3t(*X%&f)>G(7hyJsbU4e1;dO_RJ842Df z=GcGiL)#92QMXwmNt)+*#~eI1^0X zR|=uvzc*hQtz-u4tqRl0jJ8f@Ki4S>YY)->oTXry*8i^g6VE~mW4U-Ba78e`-ij?= z%?d1A5avUtQHeDl>8;`V+4G@!_4f@RNjkR|Oe9~oWyBV$i>c(^v<;mkV=t(dtEeAO z4hB=D$*OqyJu$+&lugVeY#9PJwm-*MW3fqnmL6Y^t zUXbCaG)+9s9#j8!zuSkl|G}HjS*Y&fV}g5`{iW*DD4_W}A#hk|d7 Y7d)&d7qy-G;{X5v07*qoM6N<$f+jHjWB>pF diff --git a/src/main/resources/assets/textures/tiles/YellowFlowers.png b/src/main/resources/assets/textures/tiles/YellowFlowers.png deleted file mode 100644 index 3f7b8bc71bb04850106c5568e0eba3a22a2bef1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9945 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 XJ**CxP$kOe00000NkvXXu0mjfAyzIm