Skip to content

Commit

Permalink
使注册时传入的identifier可自定义
Browse files Browse the repository at this point in the history
  • Loading branch information
QiuShui1012 committed Sep 3, 2024
1 parent ab0af62 commit 6e9c17d
Showing 1 changed file with 23 additions and 14 deletions.
37 changes: 23 additions & 14 deletions src/main/java/zh/qiushui/mod/core/registry/PackagedRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,49 @@
import net.minecraft.item.ItemGroup;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier;
import zh.qiushui.mod.core.QSCoreUtil;
import zh.qiushui.mod.core.object.StoredFlowableFluid;

import java.util.function.Function;

public class PackagedRegistry {
public static Block block(String path, Block block) {
return Registry.register(Registries.BLOCK, QSCoreUtil.idCore(path), block);
private final Function<String, Identifier> function;

public PackagedRegistry(Function<String, Identifier> function) {
this.function = function;
}

public Block block(String path, Block block) {
return Registry.register(Registries.BLOCK, this.function.apply(path), block);
}

public static Item item(String path, Item item) {
return Registry.register(Registries.ITEM, QSCoreUtil.idCore(path), item);
public Item item(String path, Item item) {
return Registry.register(Registries.ITEM, this.function.apply(path), item);
}

public static ItemGroup itemGroup(String path, ItemGroup itemGroup) {
return Registry.register(Registries.ITEM_GROUP, QSCoreUtil.idCore(path), itemGroup);
public ItemGroup itemGroup(String path, ItemGroup itemGroup) {
return Registry.register(Registries.ITEM_GROUP, this.function.apply(path), itemGroup);
}

public static Fluid fluid(String path, Fluid fluid) {
return Registry.register(Registries.FLUID, QSCoreUtil.idCore(path), fluid);
public Fluid fluid(String path, Fluid fluid) {
return Registry.register(Registries.FLUID, this.function.apply(path), fluid);
}
public static <S extends Fluid, F extends Fluid> StoredFlowableFluid<S, F> flowableFluid(String pathFluid, S fluidStill, F fluidFlowing) {
public <S extends Fluid, F extends Fluid> StoredFlowableFluid<S, F> flowableFluid(String pathFluid, S fluidStill, F fluidFlowing) {
return flowableFluid(pathFluid, "flowing_" + pathFluid, fluidStill, fluidFlowing);
}

public static <S extends Fluid, F extends Fluid> StoredFlowableFluid<S, F> flowableFluid(String pathStill, String pathFlowing, S fluidStill, F fluidFlowing) {
public <S extends Fluid, F extends Fluid> StoredFlowableFluid<S, F> flowableFluid(String pathStill, String pathFlowing, S fluidStill, F fluidFlowing) {
S still = flowableFluidStill(pathStill, fluidStill);
F flowing = flowableFluidFlowing(pathFlowing, fluidFlowing);
return new StoredFlowableFluid<>(still, flowing);
}

public static <S extends Fluid> S flowableFluidStill(String path, S fluidStill) {
return Registry.register(Registries.FLUID, QSCoreUtil.idCore(path), fluidStill);
public <S extends Fluid> S flowableFluidStill(String path, S fluidStill) {
return Registry.register(Registries.FLUID, this.function.apply(path), fluidStill);
}

public static <F extends Fluid> F flowableFluidFlowing(String path, F fluidFlowing) {
return Registry.register(Registries.FLUID, QSCoreUtil.idCore(path), fluidFlowing);
public <F extends Fluid> F flowableFluidFlowing(String path, F fluidFlowing) {
return Registry.register(Registries.FLUID, this.function.apply(path), fluidFlowing);
}
}

0 comments on commit 6e9c17d

Please sign in to comment.