Skip to content

Commit

Permalink
Register Surface builders to Forge registry as well
Browse files Browse the repository at this point in the history
  • Loading branch information
GirafiStudios committed Oct 27, 2020
1 parent 1505e35 commit bb30f75
Showing 1 changed file with 22 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,17 @@
import net.minecraft.world.gen.surfacebuilders.ISurfaceBuilderConfig;
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;

import java.util.ArrayList;
import java.util.List;

@Mod.EventBusSubscriber(modid = Atum.MOD_ID)
public class AtumSurfaceBuilders {
//Surface Builders
private static final List<SurfaceBuilder<?>> SURFACE_BUILDERS = new ArrayList<>();
public static final SurfaceBuilder<SurfaceBuilderConfig> OASIS_SURFACE_BUILDER = registerBuilder("oasis", new OasisSurfaceBuilder(SurfaceBuilderConfig.field_237203_a_));

//States
Expand All @@ -31,17 +37,27 @@ public class AtumSurfaceBuilders {
public static final SurfaceBuilderConfig OASIS_CONFIG = new SurfaceBuilderConfig(FERTILE_SOIL, SAND, FERTILE_SOIL);

//Configured Surface Builders
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> SANDY = register("sandy", SurfaceBuilder.DEFAULT.func_242929_a(SANDY_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> SANDY_LIMESTONE = register("sandy_limestone", SurfaceBuilder.DEFAULT.func_242929_a(SANDY_LIMESTONE_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> GRAVEL_CRACKED = register("gravel_cracked", SurfaceBuilder.DEFAULT.func_242929_a(GRAVEL_CRACKED_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> OASIS = register("oasis", OASIS_SURFACE_BUILDER.func_242929_a(OASIS_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> SANDY = registerConfig("sandy", SurfaceBuilder.DEFAULT.func_242929_a(SANDY_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> SANDY_LIMESTONE = registerConfig("sandy_limestone", SurfaceBuilder.DEFAULT.func_242929_a(SANDY_LIMESTONE_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> GRAVEL_CRACKED = registerConfig("gravel_cracked", SurfaceBuilder.DEFAULT.func_242929_a(GRAVEL_CRACKED_CONFIG));
public static final ConfiguredSurfaceBuilder<SurfaceBuilderConfig> OASIS = registerConfig("oasis", OASIS_SURFACE_BUILDER.func_242929_a(OASIS_CONFIG));

private static <C extends ISurfaceBuilderConfig, F extends SurfaceBuilder<C>> F registerBuilder(String name, F builder) {
ResourceLocation id = new ResourceLocation(Atum.MOD_ID, name);
return Registry.register(Registry.SURFACE_BUILDER, id, builder);
builder.setRegistryName(id);
SURFACE_BUILDERS.add(builder);
Registry.register(Registry.SURFACE_BUILDER, id, builder);
return builder;
}

private static <SC extends ISurfaceBuilderConfig> ConfiguredSurfaceBuilder<SC> register(String name, ConfiguredSurfaceBuilder<SC> csb) {
private static <SC extends ISurfaceBuilderConfig> ConfiguredSurfaceBuilder<SC> registerConfig(String name, ConfiguredSurfaceBuilder<SC> csb) {
return WorldGenRegistries.register(WorldGenRegistries.CONFIGURED_SURFACE_BUILDER, name, csb);
}

@SubscribeEvent
public static void registerSurfaceBuilders(RegistryEvent.Register<SurfaceBuilder<?>> event) {
for (SurfaceBuilder<?> surfaceBuilder : SURFACE_BUILDERS) {
event.getRegistry().register(surfaceBuilder);
}
}
}

0 comments on commit bb30f75

Please sign in to comment.