package com.example.examplemod;

import de.ellpeck.rockbottom.api.GameContent;
import de.ellpeck.rockbottom.api.IApiHandler;
import de.ellpeck.rockbottom.api.IGameInstance;
import de.ellpeck.rockbottom.api.RockBottomAPI;
import de.ellpeck.rockbottom.api.assets.IAssetManager;
import de.ellpeck.rockbottom.api.construction.BasicRecipe;
import de.ellpeck.rockbottom.api.construction.resource.ItemUseInfo;
import de.ellpeck.rockbottom.api.construction.resource.ResInfo;
import de.ellpeck.rockbottom.api.construction.resource.ResUseInfo;
import de.ellpeck.rockbottom.api.construction.resource.ResourceRegistry;
import de.ellpeck.rockbottom.api.event.IEventHandler;
import de.ellpeck.rockbottom.api.item.ItemInstance;
import de.ellpeck.rockbottom.api.mod.IMod;
import org.newdawn.slick.util.Log;

public class ExampleMod implements IMod{

    @Override
    public String getDisplayName(){
        return "ExampleMod";
    }

    @Override
    public String getId(){
        return "examplemod";
    }

    @Override
    public String getVersion(){
        return "@VERSION@";
    }

    @Override
    public String getResourceLocation(){
        return "/assets/examplemod";
    }

    @Override
    public String getDescription(){
        return "This is the example mod for RockBottom";
    }

    @Override
    public void init(IGameInstance game, IApiHandler apiHandler, IEventHandler eventHandler){
        Log.info("Starting ExampleMod for RockBottom");

        //Etc
    }

    @Override
    public void initAssets(IGameInstance game, IAssetManager assetManager, IApiHandler apiHandler){
        Log.info("Localized text: "+assetManager.localize(RockBottomAPI.createRes(this, "test")));
    }
}

@@ -30,54 +30,8 @@
 d;%0A%0A
-import de.ellpeck.rockbottom.api.GameContent;%0A
 impo
@@ -260,32 +260,27 @@
 api.
-construction.BasicRecipe
+event.IEventHandler
 ;%0Aim
@@ -314,41 +314,16 @@
 api.
-construction.resource.ItemUseInfo
+mod.IMod
 ;%0Aim
@@ -357,404 +357,434 @@
 api.
-construction.resource.ResInfo;%0Aimport de.ellpeck.rockbottom.api.construction.resource.ResUseInfo;%0Aimport de.ellpeck.rockbottom.api.construction.resource.ResourceRegistry;%0Aimport de.ellpeck.rockbottom.api.event.IEventHandler;%0Aimport de.ellpeck.rockbottom.api.item.ItemInstance;%0Aimport de.ellpeck.rockbottom.api.mod.IMod;%0Aimport org.newdawn.slick.util.Log;%0A%0Apublic class ExampleMod implements IMod%7B
+util.reg.IResourceName;%0A%0Aimport java.util.logging.Logger;%0A%0Apublic class ExampleMod implements IMod%7B%0A%0A    public static ExampleMod instance;%0A%0A    private Logger modLogger;%0A%0A    public ExampleMod()%7B%0A        instance = this;%0A    %7D%0A%0A    public static Logger getLogger()%7B%0A        return instance.modLogger;%0A    %7D%0A%0A    public static IResourceName createRes(String name)%7B%0A        return RockBottomAPI.createRes(instance, name);%0A    %7D
 %0A%0A  
@@ -1268,17 +1268,214 @@
 ic void 
-i
+prePreInit(IGameInstance game, IApiHandler apiHandler, IEventHandler eventHandler)%7B%0A        this.modLogger = apiHandler.createLogger(this.getDisplayName());%0A    %7D%0A%0A    @Override%0A    public void preI
 nit(IGam
@@ -1547,27 +1547,38 @@
 r)%7B%0A        
-Log
+this.modLogger
 .info(%22Start
@@ -1610,16 +1610,130 @@
 ttom%22);%0A
+    %7D%0A%0A    @Override%0A    public void init(IGameInstance game, IApiHandler apiHandler, IEventHandler eventHandler)%7B
 %0A       
@@ -1868,19 +1868,30 @@
         
-Log
+this.modLogger
 .info(%22L

update the example mod a bit