aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/australia/GTplusplus_Australia.java
blob: 16b54138e26ae30a68044ede499e17a6915a5d4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
package gtPlusPlus.australia;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.australia.biome.type.Biome_AustralianDesert_Ex;
import gtPlusPlus.australia.biome.type.Biome_AustralianForest;
import gtPlusPlus.australia.biome.type.Biome_AustralianOcean;
import gtPlusPlus.australia.biome.type.Biome_AustralianOutback;
import gtPlusPlus.australia.biome.type.Biome_AustralianPlains;
import gtPlusPlus.australia.block.AustraliaContentLoader;
import gtPlusPlus.australia.dimension.Dimension_Australia;
import gtPlusPlus.australia.gen.gt.WorldGen_Australia_Ores;
import gtPlusPlus.australia.gen.gt.WorldGen_GT_Australia_Base;
import gtPlusPlus.australia.gen.map.structure.StructureManager;
import gtPlusPlus.australia.world.AustraliaWorldGenerator;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.CORE.Australia;
import gtPlusPlus.preloader.CORE_Preloader;
import gtPlusPlus.xmod.gregtech.api.util.GTPP_Config;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.config.Configuration;

@MCVersion(value = "1.7.10")
@Mod(
        modid = Australia.MODID,
        name = Australia.NAME,
        version = Australia.VERSION,
        dependencies =
                "required-after:Forge; after:dreamcraft; after:IC2; after:ihl; required-after:gregtech; required-after:miscutils;")
public class GTplusplus_Australia implements ActionListener {

    // Mod Instance
    @Mod.Instance(Australia.MODID)
    public static GTplusplus_Australia instance;

    public static GTPP_Config sCustomWorldgenFile = null;

    // Dark World Handler
    // protected static volatile Biome_AustralianDesert Australian_Desert_Biome_1;
    // protected static volatile Biome_AustralianDesert2 Australian_Desert_Biome_2;

    public static volatile Biome_AustralianDesert_Ex Australian_Desert_Biome_3;
    public static volatile Biome_AustralianForest Australian_Forest_Biome;
    public static volatile Biome_AustralianOcean Australian_Ocean_Biome;
    public static volatile Biome_AustralianOutback Australian_Outback_Biome;
    public static volatile Biome_AustralianPlains Australian_Plains_Biome;

    public static volatile Dimension_Australia Australia_Dimension;
    public static AustraliaWorldGenerator Australia_World_Generator;
    public static int globalAustraliaPortalSpawnTimer = 0;

    // Pre-Init
    @Mod.EventHandler
    public void preInit(final FMLPreInitializationEvent event) {
        Logger.INFO("Loading " + Australia.MODID + " V" + Australia.VERSION);

        // Setup
        setVars(event);

        Australia_Dimension = new Dimension_Australia();
        Australia_Dimension.instance = instance;

        // Australian_Desert_Biome_1 = (new Biome_AustralianDesert());
        // Australian_Desert_Biome_2 = (new Biome_AustralianDesert2());
        // Australian_Desert_Biome_1.instance = instance;
        // Australian_Desert_Biome_2.instance = instance;
        // Australian_Desert_Biome_1.preInit(event);
        // Australian_Desert_Biome_2.preInit(event);

        Australian_Desert_Biome_3 = (Biome_AustralianDesert_Ex.biome);
        Australian_Forest_Biome = (Biome_AustralianForest.biome);
        Australian_Ocean_Biome = (Biome_AustralianOcean.biome);
        Australian_Outback_Biome = (Biome_AustralianOutback.biome);
        Australian_Plains_Biome = Biome_AustralianPlains.biome;

        // Load Villages
        StructureManager.registerVillageComponents();

        setupWorldGenerator();

        // Load/Set Custom Ore Gen
        sCustomWorldgenFile = new GTPP_Config(new Configuration(
                new File(new File(event.getModConfigurationDirectory(), "GTplusplus"), "Australia.cfg")));
    }

    @EventHandler
    public void load(final FMLInitializationEvent e) {
        Logger.INFO("Begin resource allocation for " + Australia.MODID + " V" + Australia.VERSION);

        // Load World and Biome
        GameRegistry.registerWorldGenerator(new WorldGen_GT_Australia_Base(), Short.MAX_VALUE);

        // Australian_Desert_Biome_1.load();
        // Australian_Desert_Biome_2.load();
        Australian_Desert_Biome_3.load();
        Australian_Forest_Biome.load();
        Australian_Ocean_Biome.load();
        Australian_Outback_Biome.load();
        Australian_Plains_Biome.load();

        Australia_Dimension.load();
    }

    public static synchronized void GenerateOreMaterials() {}

    protected synchronized void setVars(FMLPreInitializationEvent event) {

        sCustomWorldgenFile = new GTPP_Config(new Configuration(
                new File(new File(event.getModConfigurationDirectory(), "GTplusplus"), "Australia.cfg")));

        if (DimensionManager.isDimensionRegistered(Dimension_Australia.DIMID)) {
            Dimension_Australia.DIMID = DimensionManager.getNextFreeDimId();
        }

        /*
         * Set World Generation Values
         */
        WorldGen_Australia_Ores.generateValidOreVeins();
        WorldGen_GT_Australia_Base.oreveinPercentage = 16;
        WorldGen_GT_Australia_Base.oreveinAttempts = 16;
        WorldGen_GT_Australia_Base.oreveinMaxPlacementAttempts = 2;
        if (CORE_Preloader.DEBUG_MODE || CORE.DEVENV) {
            WorldGen_GT_Australia_Base.debugWorldGen = true;
        }
        AustraliaContentLoader.run();
    }

    @EventHandler
    public void serverLoad(FMLServerStartingEvent event) {
        Australia_World_Generator.initiate();
    }

    @EventHandler
    public static void postInit(final FMLPostInitializationEvent e) {
        Logger.INFO("Finished loading Australia plugin for GT++.");
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }

    private void setupWorldGenerator() {
        Logger.INFO("Registering World Generator for Australia.");
        Australia_World_Generator = new AustraliaWorldGenerator();
        GameRegistry.registerWorldGenerator(Australia_World_Generator, 0);
    }
}