From 9bb0722495e3fe972f577db50007d0eed361625a Mon Sep 17 00:00:00 2001 From: Cisien Date: Sat, 18 Oct 2014 20:29:02 -0700 Subject: [PATCH] Fixed certus worldgen --- src/api/java/appeng/api | 2 +- src/main/java/appeng/core/Registration.java | 15 +++++++--- .../features/registries/WorldGenRegistry.java | 28 ++++++++++++++++--- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/api/java/appeng/api b/src/api/java/appeng/api index 41ffe3a5c..bbe2ad8e7 160000 --- a/src/api/java/appeng/api +++ b/src/api/java/appeng/api @@ -1 +1 @@ -Subproject commit 41ffe3a5caf12e8d80b7f629b788fe3c98e0279f +Subproject commit bbe2ad8e709a366faf34e6efac9aef37cb3d8013 diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 8a0b00799..777a0ee38 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -724,10 +724,17 @@ public class Registration { AEApi.instance().registries().worldgen().disableWorldGenForProviderID( type, StorageWorldProvider.class ); - for(int dimension : AEConfig.instance.meteoriteDimensionWhitelist) - { - AEApi.instance().registries().worldgen().enableWorldGenForDimension( type, dimension ); - } + //nether + AEApi.instance().registries().worldgen().disableWorldGenForDimension( type, -1 ); + + //end + AEApi.instance().registries().worldgen().disableWorldGenForDimension( type, 1 ); + } + + //whitelist from config + for(int dimension : AEConfig.instance.meteoriteDimensionWhitelist) + { + AEApi.instance().registries().worldgen().enableWorldGenForDimension( WorldGenType.Meteorites, dimension ); } /** diff --git a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java index af5402f3d..2b91e023d 100644 --- a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java +++ b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java @@ -13,6 +13,7 @@ public class WorldGenRegistry implements IWorldGen { final HashSet> badProviders = new HashSet>(); + final HashSet badDimensions = new HashSet(); final HashSet enabledDimensions = new HashSet(); } @@ -41,13 +42,21 @@ public class WorldGenRegistry implements IWorldGen if ( w == null ) throw new IllegalArgumentException( "Bad Provider Passed" ); - if ( !types[type.ordinal()].badProviders.contains( w.provider.getClass() ) - && types[type.ordinal()].enabledDimensions.contains( w.provider.dimensionId ) ) + boolean isBadProvider = types[type.ordinal()].badProviders.contains( w.provider.getClass() ); + boolean isBadDimension = types[type.ordinal()].badDimensions.contains( w.provider.dimensionId ); + boolean isGoodDimension = types[type.ordinal()].enabledDimensions.contains( w.provider.dimensionId ); + + if ( isBadProvider || isBadDimension ) { - return true; + return false; } - return false; + if ( !isGoodDimension && type == WorldGenType.Meteorites) + { + return false; + } + + return true; } @Override @@ -62,6 +71,17 @@ public class WorldGenRegistry implements IWorldGen types[type.ordinal()].badProviders.add( provider ); } + @Override + public void disableWorldGenForDimension(WorldGenType type, int dimensionID) + { + if ( type == null ) + { + throw new IllegalArgumentException( "Bad Type Passed" ); + } + + types[type.ordinal()].badDimensions.add( dimensionID ); + } + @Override public void enableWorldGenForDimension(WorldGenType type, int dimensionID) {