Highly incomplete code. First work on porting to 1.12. Still need to rework a LOT of things.

This commit is contained in:
Gunther De Wachter
2017-07-06 01:57:19 +02:00
parent d67f97cd16
commit fbcf8c4705
127 changed files with 850 additions and 425 deletions
+5
View File
@@ -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()
{
+18 -2
View File
@@ -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()
{
+3 -2
View File
@@ -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" );
+148 -31
View File
@@ -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 );
}
}
}