Highly incomplete code. First work on porting to 1.12. Still need to rework a LOT of things.
This commit is contained in:
@@ -55,6 +55,11 @@ public final class Api implements IAppEngApi
|
||||
this.definitions = new ApiDefinitions( (PartModels) this.registryContainer.partModels() );
|
||||
}
|
||||
|
||||
public PartModels getPartModels()
|
||||
{
|
||||
return (PartModels) this.registryContainer.partModels();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IRegistryContainer registries()
|
||||
{
|
||||
|
||||
@@ -26,6 +26,11 @@ import appeng.core.api.definitions.ApiItems;
|
||||
import appeng.core.api.definitions.ApiMaterials;
|
||||
import appeng.core.api.definitions.ApiParts;
|
||||
import appeng.core.features.registries.PartModels;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
|
||||
|
||||
/**
|
||||
@@ -33,8 +38,9 @@ import appeng.core.features.registries.PartModels;
|
||||
*/
|
||||
public final class ApiDefinitions implements IDefinitions
|
||||
{
|
||||
private final ApiBlocks blocks;
|
||||
private final ApiItems items;
|
||||
// TODO : Check if this can be final again after the Register part.
|
||||
private ApiBlocks blocks;
|
||||
private ApiItems items;
|
||||
private final ApiMaterials materials;
|
||||
private final ApiParts parts;
|
||||
|
||||
@@ -47,6 +53,16 @@ public final class ApiDefinitions implements IDefinitions
|
||||
this.materials = new ApiMaterials( registry );
|
||||
this.parts = new ApiParts( registry, partModels );
|
||||
}
|
||||
//
|
||||
// public void addBlocks( final PartModels partModels )
|
||||
// {
|
||||
// this.blocks = new ApiBlocks( registry, partModels );
|
||||
// }
|
||||
//
|
||||
// public void addItems()
|
||||
// {
|
||||
// this.items = new ApiItems( registry );
|
||||
// }
|
||||
|
||||
public FeatureFactory getRegistry()
|
||||
{
|
||||
|
||||
@@ -28,6 +28,7 @@ import javax.annotation.Nonnull;
|
||||
import com.google.common.base.Stopwatch;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.config.Configuration;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import net.minecraftforge.fml.common.Loader;
|
||||
@@ -64,8 +65,7 @@ import appeng.services.export.ForgeExportConfig;
|
||||
import appeng.services.version.VersionCheckerConfig;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
@Mod( modid = AppEng.MOD_ID, acceptedMinecraftVersions = "[1.11]", name = AppEng.MOD_NAME, version = AEConfig.VERSION, dependencies = AppEng.MOD_DEPENDENCIES, guiFactory = "appeng.client.gui.config.AEConfigGuiFactory" )
|
||||
@Mod( modid = AppEng.MOD_ID, acceptedMinecraftVersions = "[1.12]", name = AppEng.MOD_NAME, version = AEConfig.VERSION, dependencies = AppEng.MOD_DEPENDENCIES, guiFactory = "appeng.client.gui.config.AEConfigGuiFactory" )
|
||||
public final class AppEng
|
||||
{
|
||||
@SidedProxy( clientSide = "appeng.client.ClientHelper", serverSide = "appeng.server.ServerHelper", modId = AppEng.MOD_ID )
|
||||
@@ -135,6 +135,7 @@ public final class AppEng
|
||||
{
|
||||
AppEng.proxy.missingCoreMod();
|
||||
}
|
||||
MinecraftForge.EVENT_BUS.register( registration );
|
||||
|
||||
final Stopwatch watch = Stopwatch.createStarted();
|
||||
this.configDirectory = new File( event.getModConfigurationDirectory().getPath(), "AppliedEnergistics2" );
|
||||
|
||||
@@ -20,19 +20,36 @@ package appeng.core;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import appeng.api.definitions.IBlockDefinition;
|
||||
import appeng.api.definitions.IItemDefinition;
|
||||
import appeng.api.definitions.ITileDefinition;
|
||||
import appeng.api.util.AEColoredItemDefinition;
|
||||
import appeng.core.api.definitions.ApiBlocks;
|
||||
import com.google.common.base.Preconditions;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.world.DimensionType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraftforge.common.BiomeManager;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.common.API;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.oredict.RecipeSorter;
|
||||
import net.minecraftforge.oredict.RecipeSorter.Category;
|
||||
@@ -103,14 +120,22 @@ import appeng.tile.AEBaseTile;
|
||||
import appeng.util.Platform;
|
||||
import appeng.worldgen.MeteoriteWorldGen;
|
||||
import appeng.worldgen.QuartzWorldGen;
|
||||
import net.minecraftforge.registries.ForgeRegistry;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
|
||||
|
||||
@Mod.EventBusSubscriber(modid = AppEng.MOD_ID)
|
||||
public final class Registration
|
||||
{
|
||||
private final RecipeHandler recipeHandler;
|
||||
private DimensionType storageDimensionType;
|
||||
private Biome storageBiome;
|
||||
|
||||
// TODO : 1.12 Improve
|
||||
private static List<Block> blocksToRegister = new ArrayList<Block>();
|
||||
private static List<Item> itemsToRegister = new ArrayList<Item>();
|
||||
private static List<IRecipe> recipesToRegister = new ArrayList<IRecipe>();
|
||||
|
||||
|
||||
Registration()
|
||||
{
|
||||
this.recipeHandler = new RecipeHandler();
|
||||
@@ -121,6 +146,30 @@ public final class Registration
|
||||
return this.storageBiome;
|
||||
}
|
||||
|
||||
public static void addBlockToRegister( Block b )
|
||||
{
|
||||
if( blocksToRegister == null )
|
||||
throw new IllegalStateException( "Past the registration phase already!" );
|
||||
System.out.println("Adding block : " + b +" -> " + b.getRegistryName());
|
||||
blocksToRegister.add( b );
|
||||
}
|
||||
|
||||
public static void addRecipeToRegister( IRecipe r )
|
||||
{
|
||||
if( recipesToRegister == null )
|
||||
throw new IllegalStateException( "Past the registration phase already!" );
|
||||
System.out.println("Adding " + r);
|
||||
recipesToRegister.add( r );
|
||||
}
|
||||
|
||||
public static void addItemToRegister( Item i )
|
||||
{
|
||||
if( itemsToRegister == null )
|
||||
throw new IllegalStateException( "Past the registration phase already!" );
|
||||
System.out.println("Adding item : " + i + " -> " + i.getRegistryName());
|
||||
itemsToRegister.add( i );
|
||||
}
|
||||
|
||||
public DimensionType getStorageDimensionType()
|
||||
{
|
||||
return storageDimensionType;
|
||||
@@ -128,7 +177,7 @@ public final class Registration
|
||||
|
||||
void preInitialize( final FMLPreInitializationEvent event )
|
||||
{
|
||||
this.registerSpatial( false );
|
||||
// this.registerSpatial( false );
|
||||
|
||||
Capabilities.register();
|
||||
|
||||
@@ -148,7 +197,7 @@ public final class Registration
|
||||
definitions.getRegistry().getBootstrapComponents().forEach( b -> b.preInitialize( event.getSide() ) );
|
||||
}
|
||||
|
||||
private void registerSpatial( final boolean force )
|
||||
private void registerSpatial( final boolean force, IForgeRegistry<Biome> registry )
|
||||
{
|
||||
if( !AEConfig.instance().isFeatureEnabled( AEFeature.SPATIAL_IO ) )
|
||||
{
|
||||
@@ -159,24 +208,28 @@ public final class Registration
|
||||
|
||||
if( this.storageBiome == null )
|
||||
{
|
||||
if( force && config.getStorageBiomeID() == -1 )
|
||||
{
|
||||
config.setStorageBiomeID( Platform.findEmpty( Biome.REGISTRY, 0, 256 ) );
|
||||
if( config.getStorageBiomeID() == -1 )
|
||||
{
|
||||
throw new IllegalStateException( "Biome Array is full, please free up some Biome ID's or disable spatial." );
|
||||
}
|
||||
// if( force && config.getStorageBiomeID() == -1 )
|
||||
// {
|
||||
// config.setStorageBiomeID( Platform.findEmpty( Biome.REGISTRY, 0, 256 ) );
|
||||
// if( config.getStorageBiomeID() == -1 )
|
||||
// {
|
||||
// throw new IllegalStateException( "Biome Array is full, please free up some Biome ID's or disable spatial." );
|
||||
// }
|
||||
//
|
||||
// this.storageBiome = new BiomeGenStorage();
|
||||
// Biome.registerBiome( config.getStorageBiomeID(), "appliedenergistics2:storage_biome", this.storageBiome );
|
||||
// config.save();
|
||||
// }
|
||||
//
|
||||
// if( !force && config.getStorageBiomeID() != -1 )
|
||||
// {
|
||||
// this.storageBiome = new BiomeGenStorage();
|
||||
// Biome.registerBiome( config.getStorageBiomeID(), "appliedenergistics2:storage_biome", this.storageBiome );
|
||||
// }
|
||||
|
||||
this.storageBiome = new BiomeGenStorage();
|
||||
Biome.registerBiome( config.getStorageBiomeID(), "appliedenergistics2:storage_biome", this.storageBiome );
|
||||
config.save();
|
||||
}
|
||||
|
||||
if( !force && config.getStorageBiomeID() != -1 )
|
||||
{
|
||||
this.storageBiome = new BiomeGenStorage();
|
||||
Biome.registerBiome( config.getStorageBiomeID(), "appliedenergistics2:storage_biome", this.storageBiome );
|
||||
}
|
||||
// TODO: 1.12, are modders allowed to even touch the ID's any more?
|
||||
this.storageBiome = new BiomeGenStorage();
|
||||
registry.register( this.storageBiome.setRegistryName("appliedenergistics2:storage_biome") );
|
||||
|
||||
}
|
||||
|
||||
@@ -297,24 +350,88 @@ public final class Registration
|
||||
registration.registerAchievementHandlers();
|
||||
registration.registerAchievements();
|
||||
|
||||
if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_DISASSEMBLY_CRAFTING ) )
|
||||
{
|
||||
GameRegistry.addRecipe( new DisassembleRecipe() );
|
||||
RecipeSorter.register( "appliedenergistics2:disassemble", DisassembleRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless" );
|
||||
}
|
||||
// if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_DISASSEMBLY_CRAFTING ) )
|
||||
// {
|
||||
// // TODO : 1.12 Improve
|
||||
// addRecipeToRegister( new DisassembleRecipe() );
|
||||
// RecipeSorter.register( "appliedenergistics2:disassemble", DisassembleRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless" );
|
||||
// }
|
||||
//
|
||||
// if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_FACADE_CRAFTING ) )
|
||||
// {
|
||||
// definitions.items().facade().maybeItem().ifPresent( facadeItem -> {
|
||||
// // TODO : 1.12 Improve
|
||||
// addRecipeToRegister( new FacadeRecipe( (ItemFacade) facadeItem ) );
|
||||
// RecipeSorter.register( "appliedenergistics2:facade", FacadeRecipe.class, Category.SHAPED, "after:minecraft:shaped" );
|
||||
// } );
|
||||
// }
|
||||
}
|
||||
|
||||
if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_FACADE_CRAFTING ) )
|
||||
@SubscribeEvent
|
||||
void registerBiomes ( RegistryEvent.Register<Biome> event )
|
||||
{
|
||||
IForgeRegistry<Biome> registry = event.getRegistry();
|
||||
this.registerSpatial( false, registry );
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
void registerBlocks(RegistryEvent.Register<Block> event)
|
||||
{
|
||||
IForgeRegistry<Block> registry = event.getRegistry();
|
||||
|
||||
// try {
|
||||
// for ( Field f : Api.INSTANCE.definitions().blocks().getClass().getDeclaredFields() )
|
||||
// {
|
||||
// f.setAccessible(true);
|
||||
// if( f.getType() == IBlockDefinition.class || f.getType() == ITileDefinition.class ) {
|
||||
// IBlockDefinition block = (IBlockDefinition) f.get(Api.INSTANCE.definitions().blocks());
|
||||
// Block b = block.maybeBlock().get();
|
||||
// System.out.println(b +" -> " + b.getRegistryName());
|
||||
// registry.register(b);
|
||||
// }
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
|
||||
// TODO : 1.12 Improve
|
||||
for (Block b : blocksToRegister)
|
||||
{
|
||||
definitions.items().facade().maybeItem().ifPresent( facadeItem -> {
|
||||
GameRegistry.addRecipe( new FacadeRecipe( (ItemFacade) facadeItem ) );
|
||||
RecipeSorter.register( "appliedenergistics2:facade", FacadeRecipe.class, Category.SHAPED, "after:minecraft:shaped" );
|
||||
} );
|
||||
System.out.println("Registering block : " + b + " -> " + b.getRegistryName());
|
||||
registry.register( b );
|
||||
}
|
||||
blocksToRegister = null;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
void registerItems(RegistryEvent.Register<Item> event) {
|
||||
|
||||
IForgeRegistry<Item> registry = event.getRegistry();
|
||||
// TODO : 1.12 Improve
|
||||
for( Item i : itemsToRegister )
|
||||
{
|
||||
System.out.println("Registering item : " + i + " -> " + i.getRegistryName());
|
||||
registry.register( i );
|
||||
}
|
||||
itemsToRegister = null;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
||||
{
|
||||
IForgeRegistry<IRecipe> registry = event.getRegistry();
|
||||
// TODO : 1.12 Improve
|
||||
for( IRecipe r : recipesToRegister )
|
||||
{
|
||||
registry.register( r );
|
||||
}
|
||||
recipesToRegister = null;
|
||||
|
||||
}
|
||||
|
||||
void postInit( final FMLPostInitializationEvent event )
|
||||
{
|
||||
this.registerSpatial( true );
|
||||
// TODO : 1.12 Improve
|
||||
|
||||
final Api api = Api.INSTANCE;
|
||||
final IRegistryContainer registries = api.registries();
|
||||
|
||||
@@ -32,30 +32,30 @@ public class AchievementHierarchy
|
||||
*/
|
||||
void registerAchievementHierarchy()
|
||||
{
|
||||
Achievements.Presses.setParent( Achievements.Compass );
|
||||
|
||||
Achievements.Fluix.setParent( Achievements.ChargedQuartz );
|
||||
|
||||
Achievements.Charger.setParent( Achievements.Fluix );
|
||||
|
||||
Achievements.CrystalGrowthAccelerator.setParent( Achievements.Charger );
|
||||
|
||||
Achievements.GlassCable.setParent( Achievements.Charger );
|
||||
|
||||
Achievements.SpatialIOExplorer.setParent( Achievements.SpatialIO );
|
||||
|
||||
Achievements.IOPort.setParent( Achievements.StorageCell );
|
||||
|
||||
Achievements.PatternTerminal.setParent( Achievements.CraftingTerminal );
|
||||
|
||||
Achievements.Controller.setParent( Achievements.Networking1 );
|
||||
|
||||
Achievements.Networking2.setParent( Achievements.Controller );
|
||||
|
||||
Achievements.Networking3.setParent( Achievements.Networking2 );
|
||||
|
||||
Achievements.P2P.setParent( Achievements.Controller );
|
||||
|
||||
Achievements.Recursive.setParent( Achievements.Controller );
|
||||
// Achievements.Presses.setParent( Achievements.Compass );
|
||||
//
|
||||
// Achievements.Fluix.setParent( Achievements.ChargedQuartz );
|
||||
//
|
||||
// Achievements.Charger.setParent( Achievements.Fluix );
|
||||
//
|
||||
// Achievements.CrystalGrowthAccelerator.setParent( Achievements.Charger );
|
||||
//
|
||||
// Achievements.GlassCable.setParent( Achievements.Charger );
|
||||
//
|
||||
// Achievements.SpatialIOExplorer.setParent( Achievements.SpatialIO );
|
||||
//
|
||||
// Achievements.IOPort.setParent( Achievements.StorageCell );
|
||||
//
|
||||
// Achievements.PatternTerminal.setParent( Achievements.CraftingTerminal );
|
||||
//
|
||||
// Achievements.Controller.setParent( Achievements.Networking1 );
|
||||
//
|
||||
// Achievements.Networking2.setParent( Achievements.Controller );
|
||||
//
|
||||
// Achievements.Networking3.setParent( Achievements.Networking2 );
|
||||
//
|
||||
// Achievements.P2P.setParent( Achievements.Controller );
|
||||
//
|
||||
// Achievements.Recursive.setParent( Achievements.Controller );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
package appeng.core.stats;
|
||||
|
||||
|
||||
import net.minecraft.advancements.Advancement;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.stats.Achievement;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.definitions.IItemDefinition;
|
||||
@@ -111,8 +111,8 @@ public enum Achievements
|
||||
private final int x;
|
||||
private final int y;
|
||||
|
||||
private Achievement parent;
|
||||
private Achievement stat;
|
||||
private Advancement parent;
|
||||
private Advancement stat;
|
||||
|
||||
Achievements( final int x, final int y, final AEColoredItemDefinition which, final AchievementType type )
|
||||
{
|
||||
@@ -143,20 +143,20 @@ public enum Achievements
|
||||
this.parent = parent.getAchievement();
|
||||
}
|
||||
|
||||
public Achievement getAchievement()
|
||||
public Advancement getAchievement()
|
||||
{
|
||||
if( this.stat == null && !this.getStack().isEmpty() )
|
||||
{
|
||||
this.stat = new Achievement( "achievement.ae2." + this.name(), "ae2." + this.name(), this.x, this.y, this.getStack(), this.parent );
|
||||
this.stat.registerStat();
|
||||
}
|
||||
// if( this.stat == null && !this.getStack().isEmpty() )
|
||||
// {
|
||||
// this.stat = new Advancement( "achievement.ae2." + this.name(), "ae2." + this.name(), this.x, this.y, this.getStack(), this.parent );
|
||||
// this.stat.registerStat();
|
||||
// }
|
||||
|
||||
return this.stat;
|
||||
}
|
||||
|
||||
public void addToPlayer( final EntityPlayer player )
|
||||
{
|
||||
player.addStat( this.getAchievement(), 1 );
|
||||
// player.addStat( this.getAchievement(), 1 );
|
||||
}
|
||||
|
||||
AchievementType getType()
|
||||
|
||||
@@ -19,10 +19,7 @@
|
||||
package appeng.core.stats;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import net.minecraft.stats.Achievement;
|
||||
import net.minecraftforge.common.AchievementPage;
|
||||
import net.minecraft.advancements.Advancement;
|
||||
import net.minecraftforge.fml.common.eventhandler.EventBus;
|
||||
|
||||
import appeng.core.AEConfig;
|
||||
@@ -83,7 +80,7 @@ public class PlayerStatsRegistration
|
||||
|
||||
/**
|
||||
* Registers the {@link appeng.core.stats.AchievementHierarchy} and adds all {@link appeng.core.stats.Achievements}
|
||||
* to a new {@link net.minecraftforge.common.AchievementPage}.
|
||||
* to a new {@link net.minecraft.advancements.Advancement}.
|
||||
*/
|
||||
public void registerAchievements()
|
||||
{
|
||||
@@ -100,19 +97,19 @@ public class PlayerStatsRegistration
|
||||
/**
|
||||
* register
|
||||
*/
|
||||
final ArrayList<Achievement> list = new ArrayList<Achievement>();
|
||||
|
||||
for( final Achievements a : Achievements.values() )
|
||||
{
|
||||
final Achievement ach = a.getAchievement();
|
||||
if( ach != null )
|
||||
{
|
||||
list.add( ach );
|
||||
}
|
||||
}
|
||||
|
||||
final AchievementPage ae2AchievementPage = new AchievementPage( "Applied Energistics 2", list.toArray( new Achievement[list.size()] ) );
|
||||
AchievementPage.registerAchievementPage( ae2AchievementPage );
|
||||
// final ArrayList<Achievement> list = new ArrayList<Achievement>();
|
||||
//
|
||||
// for( final Achievements a : Achievements.values() )
|
||||
// {
|
||||
// final Achievement ach = a.getAchievement();
|
||||
// if( ach != null )
|
||||
// {
|
||||
// list.add( ach );
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// final AchievementPage ae2AchievementPage = new AchievementPage( "Applied Energistics 2", list.toArray( new Achievement[list.size()] ) );
|
||||
// AchievementPage.registerAchievementPage( ae2AchievementPage );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user