Skip to content

Commit

Permalink
New changes (#12)
Browse files Browse the repository at this point in the history
* Shutdown fast

* Change to order of releases

* Revert "Shutdown fast"

This reverts commit be2ea22.

* Remove all shutdown hook, we do not care about generator worlds

* Update README.md

* Fix typo

* Add OS-specific commands

* More code improvements

* Fix compilation

* Add job timeout

* Revert "Remove all shutdown hook, we do not care about generator worlds"

This reverts commit 4411779.

* More aggressive server stopping
  • Loading branch information
AlexProgrammerDE authored Dec 31, 2023
1 parent 09fe9f6 commit 0f1c6bd
Show file tree
Hide file tree
Showing 117 changed files with 421 additions and 457 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,19 @@ on:
branches:
- main
pull_request:
branches:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
version: ["1.7", "1.8.9", "1.9.4", "1.10.2", "1.11.2", "1.12.2", "1.13", "1.14", "1.15", "1.16", "1.17", "1.18", "1.19", "1.19.2", "22w19a", "1.20"]
version: ["1.7", "1.8.9", "1.9.4", "1.10.2", "1.11.2", "1.12.2", "1.13", "1.14", "1.15", "1.16", "1.17", "1.18", "22w19a", "1.19", "1.19.2", "1.20"]

name: Build ${{ matrix.version }}
timeout-minutes: 10

runs-on: ubuntu-latest

steps:
- name: Checkout repository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import dev.u9g.minecraftdatagenerator.util.EmptyBlockView;
import net.minecraft.util.math.BlockPos;
Expand All @@ -7,8 +7,8 @@
import java.util.Iterator;

public class BiomeColors {
private static final ColorProvider GRASS_COLOR = (biome, pos) -> biome.getGrassColor(pos);
private static final ColorProvider FOLIAGE_COLOR = (biome, pos) -> biome.getFoliageColor(pos);
private static final ColorProvider GRASS_COLOR = Biome::getGrassColor;
private static final ColorProvider FOLIAGE_COLOR = Biome::getFoliageColor;
private static final ColorProvider WATER_COLOR = (biome, pos) -> biome.getWaterColor();

private static int getColor(EmptyBlockView view, BlockPos pos, ColorProvider provider) {
Expand All @@ -17,7 +17,7 @@ private static int getColor(EmptyBlockView view, BlockPos pos, ColorProvider pro
int k = 0;

int l;
for (Iterator iterator = BlockPos.mutableIterate(pos.add(-1, 0, -1), pos.add(1, 0, 1)).iterator(); iterator.hasNext(); k += l & 255) {
for (Iterator<BlockPos.Mutable> iterator = BlockPos.mutableIterate(pos.add(-1, 0, -1), pos.add(1, 0, 1)).iterator(); iterator.hasNext(); k += l & 255) {
BlockPos.Mutable mutable = (BlockPos.Mutable) iterator.next();
l = provider.getColorAtPos(view.getBiome(mutable), mutable);
i += (l & 16711680) >> 16;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import dev.u9g.minecraftdatagenerator.util.EmptyBlockView;
import net.minecraft.block.BlockState;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import dev.u9g.minecraftdatagenerator.util.EmptyBlockView;
import net.minecraft.block.*;
Expand All @@ -19,7 +19,7 @@ public BlockColors() {
public static BlockColors create() {
final BlockColors blockColors = new BlockColors();
blockColors.method_12158((blockState, blockView, blockPos, i) -> {
DoublePlantBlock.DoublePlantType doublePlantType = (DoublePlantBlock.DoublePlantType) blockState.get(DoublePlantBlock.VARIANT);
DoublePlantBlock.DoublePlantType doublePlantType = blockState.get(DoublePlantBlock.VARIANT);
return blockView == null || blockPos == null || doublePlantType != DoublePlantBlock.DoublePlantType.GRASS && doublePlantType != DoublePlantBlock.DoublePlantType.FERN ? -1 : BiomeColors.getGrassColor(blockView, blockPos);
}, Blocks.DOUBLE_PLANT);
blockColors.method_12158((blockState, blockView, blockPos, i) -> {
Expand All @@ -38,7 +38,7 @@ public static BlockColors create() {
}, Blocks.FLOWER_POT);
blockColors.method_12158((blockState, blockView, blockPos, i) -> blockView != null && blockPos != null ? BiomeColors.getGrassColor(blockView, blockPos) : GrassColors.getColor(0.5D, 1.0D), Blocks.GRASS);
blockColors.method_12158((blockState, blockView, blockPos, i) -> {
PlanksBlock.WoodType woodType = (PlanksBlock.WoodType) blockState.get(Leaves1Block.VARIANT);
PlanksBlock.WoodType woodType = blockState.get(Leaves1Block.VARIANT);
if (woodType == PlanksBlock.WoodType.SPRUCE) {
return FoliageColors.getSpruceColor();
} else if (woodType == PlanksBlock.WoodType.BIRCH) {
Expand All @@ -49,10 +49,10 @@ public static BlockColors create() {
}, Blocks.LEAVES);
blockColors.method_12158((blockState, blockView, blockPos, i) -> blockView != null && blockPos != null ? BiomeColors.getFoliageColor(blockView, blockPos) : FoliageColors.getDefaultColor(), Blocks.LEAVES2);
blockColors.method_12158((blockState, blockView, blockPos, i) -> blockView != null && blockPos != null ? BiomeColors.getWaterColor(blockView, blockPos) : -1, Blocks.WATER, Blocks.FLOWING_WATER);
blockColors.method_12158((blockState, blockView, blockPos, i) -> RedstoneWireBlock.method_8877((Integer) blockState.get(RedstoneWireBlock.POWER)), Blocks.REDSTONE_WIRE);
blockColors.method_12158((blockState, blockView, blockPos, i) -> RedstoneWireBlock.method_8877(blockState.get(RedstoneWireBlock.POWER)), Blocks.REDSTONE_WIRE);
blockColors.method_12158((blockState, blockView, blockPos, i) -> blockView != null && blockPos != null ? BiomeColors.getGrassColor(blockView, blockPos) : -1, Blocks.SUGARCANE);
blockColors.method_12158((blockState, blockView, blockPos, i) -> {
int j = (Integer) blockState.get(AttachedStemBlock.AGE);
int j = blockState.get(AttachedStemBlock.AGE);
int k = j * 32;
int l = 255 - j * 8;
int m = j * 4;
Expand All @@ -71,25 +71,24 @@ public static BlockColors create() {
}

public int method_13410(BlockState blockState) {
BlockColorable blockColorable = (BlockColorable) this.BlockColor2Id.fromId(Block.getIdByBlock(blockState.getBlock()));
BlockColorable blockColorable = this.BlockColor2Id.fromId(Block.getIdByBlock(blockState.getBlock()));
if (blockColorable != null) {
return blockColorable.method_12155(blockState, (EmptyBlockView) null, (BlockPos) null, 0);
return blockColorable.method_12155(blockState, null, null, 0);
} else {
MaterialColor materialColor = blockState.getMaterialColor();
return materialColor != null ? materialColor.color : -1;
}
}

public int method_12157(BlockState blockState, @Nullable EmptyBlockView blockView, @Nullable BlockPos blockPos, int i) {
BlockColorable blockColorable = (BlockColorable) this.BlockColor2Id.fromId(Block.getIdByBlock(blockState.getBlock()));
BlockColorable blockColorable = this.BlockColor2Id.fromId(Block.getIdByBlock(blockState.getBlock()));
return blockColorable == null ? -1 : blockColorable.method_12155(blockState, blockView, blockPos, i);
}

public void method_12158(BlockColorable blockColorable, Block... blocks) {
int i = blocks.length;

for (int j = 0; j < i; ++j) {
Block block = blocks[j];
for (Block block : blocks) {
this.BlockColor2Id.set(blockColorable, Block.getIdByBlock(block));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import net.minecraft.util.math.MathHelper;
import net.minecraft.world.biome.Biome;
Expand Down Expand Up @@ -30,8 +30,8 @@ public static int getDefaultColor() {
}

public static int getFoliageColor(Biome biome) {
double d = (double) MathHelper.clamp(biome.getTemperature(), 0.0F, 1.0F);
double e = (double) MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
double d = MathHelper.clamp(biome.getTemperature(), 0.0F, 1.0F);
double e = MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
return FoliageColors.getColor(d, e);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import net.minecraft.util.math.MathHelper;
import net.minecraft.world.biome.Biome;
Expand All @@ -19,8 +19,8 @@ public static int getColor(double temperature, double humidity) {
}

public static int getGrassColor(Biome biome) {
double d = (double) MathHelper.clamp(biome.getTemperature(), 0.0F, 1.0F);
double e = (double) MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
double d = MathHelper.clamp(biome.getTemperature(), 0.0F, 1.0F);
double e = MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
return GrassColors.getColor(d, e);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import net.minecraft.util.math.MathHelper;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,31 +96,22 @@ public JsonObject toJSON() {
return shapes;
}

private static class Shapes {
final List<Box> boxes;

public Shapes(List<Box> boxes) {
this.boxes = boxes;
}
private record Shapes(List<Box> boxes) {

public JsonArray toJSON() {
JsonArray arr = new JsonArray();
boxes.forEach(box -> arr.add(jsonOf(box)));
return arr;
}
JsonArray arr = new JsonArray();
boxes.forEach(box -> arr.add(jsonOf(box)));
return arr;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Shapes shapes = (Shapes) o;
return Objects.equals(boxes, shapes.boxes);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Shapes shapes = (Shapes) o;
return Objects.equals(boxes, shapes.boxes);
}

@Override
public int hashCode() {
return boxes != null ? boxes.hashCode() : 0;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ public static boolean runDataGenerators(Path outputDirectory) {
try {
Files.createDirectories(outputDirectory);
} catch (IOException exception) {
logger.log(Level.INFO, "Failed to create data generator output directory at " + outputDirectory);
logger.info("Failed to create data generator output directory at " + outputDirectory);
exception.printStackTrace();
return false;
}

int generatorsFailed = 0;
logger.log(Level.INFO, MessageFormat.format("Running minecraft data generators, output at {0}", outputDirectory));
logger.info(MessageFormat.format("Running minecraft data generators, output at {0}", outputDirectory));

for (IDataGenerator dataGenerator : GENERATORS) {
logger.log(Level.INFO, MessageFormat.format("Running generator {0}", dataGenerator.getDataName()));
logger.info(MessageFormat.format("Running generator {0}", dataGenerator.getDataName()));
try {
String outputFileName = String.format("%s.json", dataGenerator.getDataName());
JsonElement outputElement = dataGenerator.generateDataJson();
Expand All @@ -65,16 +65,16 @@ public static boolean runDataGenerators(Path outputDirectory) {
jsonWriter.setIndent(" ");
Streams.write(outputElement, jsonWriter);
}
logger.log(Level.INFO, MessageFormat.format("Generator: {0} -> {1}", dataGenerator.getDataName(), outputFileName));
logger.info(MessageFormat.format("Generator: {0} -> {1}", dataGenerator.getDataName(), outputFileName));

} catch (Throwable exception) {
logger.log(Level.INFO, MessageFormat.format("Failed to run data generator {0}", dataGenerator.getDataName()));
logger.info(MessageFormat.format("Failed to run data generator {0}", dataGenerator.getDataName()));
exception.printStackTrace();
generatorsFailed++;
}
}

logger.log(Level.INFO, "Finishing running data generators");
logger.info("Finishing running data generators");
return generatorsFailed == 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ private static Entity makeEntity(Class<? extends Entity> type) {
private static String getCategoryFrom(@NotNull Class<?> entityClass) {
if (entityClass == PlayerEntity.class) return "other"; // fail early for player entities
String packageName = entityClass.getPackage().getName();
String category = switch (packageName) {
return switch (packageName) {
case "net.minecraft.entity.decoration", "net.minecraft.entity.decoration.painting" -> "Immobile";
case "net.minecraft.entity.boss", "net.minecraft.entity.mob", "net.minecraft.entity.boss.dragon" ->
"Hostile mobs";
Expand All @@ -65,7 +65,6 @@ private static String getCategoryFrom(@NotNull Class<?> entityClass) {
case "net.minecraft.entity" -> "other";
default -> throw new Error("Unexpected entity type: " + packageName);
};
return category;
}

//Honestly, both "type" and "category" fields in the schema and examples do not contain any useful information
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import dev.u9g.minecraftdatagenerator.ClientSideAnnoyances.BlockColors;
import dev.u9g.minecraftdatagenerator.ClientSideAnnoyances.FoliageColors;
import dev.u9g.minecraftdatagenerator.ClientSideAnnoyances.GrassColors;
import dev.u9g.minecraftdatagenerator.ClientSideAnnoyances.ServerSideRedstoneWireBlock;
import dev.u9g.minecraftdatagenerator.clientsideannoyances.BlockColors;
import dev.u9g.minecraftdatagenerator.clientsideannoyances.FoliageColors;
import dev.u9g.minecraftdatagenerator.clientsideannoyances.GrassColors;
import dev.u9g.minecraftdatagenerator.clientsideannoyances.ServerSideRedstoneWireBlock;
import dev.u9g.minecraftdatagenerator.mixin.BiomeAccessor;
import dev.u9g.minecraftdatagenerator.util.EmptyBlockView;
import dev.u9g.minecraftdatagenerator.util.Registries;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
public class ReadyMixin {
@Inject(method = "setupServer()Z", at = @At("TAIL"))
private void init(CallbackInfoReturnable<Boolean> cir) {
Main.LOGGER.log(Level.INFO, "Starting data generation!");
Main.LOGGER.info("Starting data generation!");
String versionName = DGU.getCurrentlyRunningServer().getVersion();
Path serverRootDirectory = DGU.getCurrentlyRunningServer().getRunDirectory().toPath().toAbsolutePath();
Path dataDumpDirectory = serverRootDirectory.resolve("minecraft-data").resolve(versionName);
DataGenerators.runDataGenerators(dataDumpDirectory);
Main.LOGGER.log(Level.INFO, "Done data generation!");
System.exit(0);
Main.LOGGER.info("Done data generation!");
Runtime.getRuntime().halt(0);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import dev.u9g.minecraftdatagenerator.util.EmptyBlockView;
import net.minecraft.util.math.BlockPos;
Expand All @@ -9,13 +9,13 @@

public class BiomeColors {
private static final ColorProvider GRASS_COLOR = (biome, pos) -> {
double d = (double) MathHelper.clamp(biome.getTemperature(pos), 0.0F, 1.0F);
double e = (double) MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
double d = MathHelper.clamp(biome.getTemperature(pos), 0.0F, 1.0F);
double e = MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
return GrassColors.getColor(d, e);
};
private static final ColorProvider FOLIAGE_COLOR = (biome, pos) -> {
double d = (double) MathHelper.clamp(biome.getTemperature(pos), 0.0F, 1.0F);
double e = (double) MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
double d = MathHelper.clamp(biome.getTemperature(pos), 0.0F, 1.0F);
double e = MathHelper.clamp(biome.getRainfall(), 0.0F, 1.0F);
return FoliageColors.getColor(d, e);
};
private static final ColorProvider WATER_COLOR = (biome, pos) -> biome.getWaterColor();
Expand All @@ -26,7 +26,7 @@ private static int getColor(EmptyBlockView view, BlockPos pos, ColorProvider pro
int k = 0;

int l;
for (Iterator var6 = BlockPos.mutableIterate(pos.add(-1, 0, -1), pos.add(1, 0, 1)).iterator(); var6.hasNext(); k += l & 255) {
for (Iterator<BlockPos.Mutable> var6 = BlockPos.mutableIterate(pos.add(-1, 0, -1), pos.add(1, 0, 1)).iterator(); var6.hasNext(); k += l & 255) {
BlockPos.Mutable mutable = (BlockPos.Mutable) var6.next();
l = provider.getColorAtPos(view.getBiome(mutable), mutable);
i += (l & 16711680) >> 16;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.u9g.minecraftdatagenerator.ClientSideAnnoyances;
package dev.u9g.minecraftdatagenerator.clientsideannoyances;

import dev.u9g.minecraftdatagenerator.util.EmptyBlockView;
import net.minecraft.block.BlockState;
Expand Down
Loading

0 comments on commit 0f1c6bd

Please sign in to comment.