Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import net.minestom.codegen.color.DyeColorGenerator;
import net.minestom.codegen.feature.FeatureFlagGenerator;
import net.minestom.codegen.fluid.FluidGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -43,10 +42,7 @@ public static void main(String[] args) {
generator.generate(resource("villager_professions.json"), "net.minestom.server.entity.villager", "VillagerProfession", "VillagerProfessionImpl", "VillagerProfessions");
generator.generate(resource("villager_types.json"), "net.minestom.server.entity.villager", "VillagerType", "VillagerTypeImpl", "VillagerTypes");
generator.generate(resource("attributes.json"), "net.minestom.server.attribute", "Attribute", "AttributeImpl", "Attributes");


// Generate fluids
new FluidGenerator(resource("fluids.json"), outputFolder).generate();
generator.generate(resource("fluids.json"), "net.minestom.server.fluid", "Fluid", "FluidImpl", "Fluids");

LOGGER.info("Finished generating code");
}
Expand Down

This file was deleted.

62 changes: 0 additions & 62 deletions src/autogenerated/java/net/minestom/server/fluid/Fluid.java

This file was deleted.

17 changes: 17 additions & 0 deletions src/autogenerated/java/net/minestom/server/fluid/Fluids.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package net.minestom.server.fluid;

/**
* Code autogenerated, do not edit!
*/
@SuppressWarnings("unused")
interface Fluids {
Fluid EMPTY = FluidImpl.get("minecraft:empty");

Fluid FLOWING_WATER = FluidImpl.get("minecraft:flowing_water");

Fluid WATER = FluidImpl.get("minecraft:water");

Fluid FLOWING_LAVA = FluidImpl.get("minecraft:flowing_lava");

Fluid LAVA = FluidImpl.get("minecraft:lava");
}

This file was deleted.

37 changes: 37 additions & 0 deletions src/main/java/net/minestom/server/fluid/Fluid.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package net.minestom.server.fluid;

import net.minestom.server.registry.Registry;
import net.minestom.server.registry.StaticProtocolObject;
import net.minestom.server.utils.NamespaceID;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collection;

public sealed interface Fluid extends StaticProtocolObject, Fluids permits FluidImpl {
/**
* Returns the entity registry.
*
* @return the entity registry or null if it was created with a builder
*/
@Contract(pure = true)
@Nullable
Registry.FluidEntry registry();

@Override
@NotNull
NamespaceID namespace();

static @NotNull Collection<@NotNull Fluid> values() {
return FluidImpl.values();
}

static @Nullable Fluid fromNamespaceId(@NotNull String namespaceID) {
return FluidImpl.getSafe(namespaceID);
}

static @Nullable Fluid fromNamespaceId(@NotNull NamespaceID namespaceID) {
return fromNamespaceId(namespaceID.asString());
}
}
34 changes: 34 additions & 0 deletions src/main/java/net/minestom/server/fluid/FluidImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package net.minestom.server.fluid;

import net.minestom.server.registry.Registry;
import net.minestom.server.utils.NamespaceID;
import org.jetbrains.annotations.NotNull;

import java.util.Collection;
import java.util.concurrent.atomic.AtomicInteger;

public record FluidImpl(Registry.FluidEntry registry, NamespaceID namespace, int id) implements Fluid {

private static final Registry.DynamicContainer<Fluid> CONTAINER = Registry.createDynamicContainer(Registry.Resource.FLUIDS, FluidImpl::createImpl);
private static final AtomicInteger INDEX = new AtomicInteger();

private static FluidImpl createImpl(String namespace, Registry.Properties properties) {
return new FluidImpl(Registry.fluidEntry(namespace, properties));
}

private FluidImpl(Registry.FluidEntry registry) {
this(registry, registry.namespace(), INDEX.getAndIncrement());
}

static Collection<Fluid> values() {
return CONTAINER.values();
}

public static Fluid get(@NotNull String namespace) {
return CONTAINER.get(namespace);
}

static Fluid getSafe(@NotNull String namespace) {
return CONTAINER.getSafe(namespace);
}
}
6 changes: 3 additions & 3 deletions src/main/java/net/minestom/server/gamedata/tags/Tag.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package net.minestom.server.gamedata.tags;

import net.minestom.server.entity.EntityType;
import net.minestom.server.fluid.Fluid;
import net.minestom.server.instance.block.Block;
import net.minestom.server.item.Material;
import net.minestom.server.registry.Registries;
import net.minestom.server.registry.Registry;
import net.minestom.server.utils.NamespaceID;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -71,11 +71,11 @@ public enum BasicType {
ITEMS("minecraft:item", Registry.Resource.ITEM_TAGS,
name -> Objects.requireNonNull(Material.fromNamespaceId(name)).id()),
FLUIDS("minecraft:fluid", Registry.Resource.FLUID_TAGS,
name -> Registries.getFluid(name).ordinal()),
name -> Fluid.fromNamespaceId(name).id()),
ENTITY_TYPES("minecraft:entity_type", Registry.Resource.ENTITY_TYPE_TAGS,
name -> Objects.requireNonNull(EntityType.fromNamespaceId(name)).id()),
GAME_EVENTS("minecraft:game_event", Registry.Resource.GAMEPLAY_TAGS,
name -> Registries.getFluid(name).ordinal());
name ->Fluid.fromNamespaceId(name).id());

private final static BasicType[] VALUES = values();
private final String identifier;
Expand Down
Loading