package org.sinrel.engine;
import org.sinrel.engine.actions.AuthBehavior;
import org.sinrel.engine.actions.Checker;
import org.sinrel.engine.actions.Config;
import org.sinrel.engine.actions.DefaultAuthBehavior;
import org.sinrel.engine.actions.DefaultChecker;
import org.sinrel.engine.actions.DefaultConfig;
import org.sinrel.engine.actions.DefaultDownloader;
import org.sinrel.engine.actions.Downloader;
import org.sinrel.engine.actions.Intent;
import org.sinrel.engine.actions.MinecraftAppletStarter;
import org.sinrel.engine.actions.MinecraftStarter;
import org.sinrel.engine.exception.FatalError;
public class Engine {
private EngineSettings settings;
private Intent intent;
private Config config;
private Downloader downloader;
private Checker checker;
private AuthBehavior auth;
private MinecraftStarter starter;
private boolean debug = false;
public Engine( EngineSettings settings ) {
try {
intent = new Intent(this);
setSettings(settings);
config = new DefaultConfig(this);
downloader = new DefaultDownloader();
checker = new DefaultChecker();
auth = new DefaultAuthBehavior();
starter = new MinecraftAppletStarter();
}catch( Exception e ) {
FatalError.showErrorWindow(e);
}
}
public EngineSettings getSettings() {
return settings;
}
public Downloader getDownloader() {
return downloader;
}
public Checker getChecker() {
return checker;
}
public AuthBehavior getAuth() {
return auth;
}
public Intent getIntent(){
return intent;
}
public Config getConfig() {
return config;
}
public MinecraftStarter getStarter(){
return starter;
}
public void setSettings(EngineSettings settings){
if( settings == null ) throw new NullPointerException();
this.settings = settings;
}
public void setDownloader(Downloader downloader) {
if( downloader == null ) throw new NullPointerException();
this.downloader = downloader;
}
public void setChecker( Checker checker ) {
if( checker == null ) throw new NullPointerException();
this.checker = checker;
}
public void setAuth(AuthBehavior auth) {
if( auth == null ) throw new NullPointerException();
this.auth = auth;
}
public void setConfig( Config config ) {
if( config == null ) throw new NullPointerException();
this.config = config;
}
public void setMinecraftStarter( MinecraftStarter starter ){
if( starter == null ) throw new NullPointerException();
this.starter = starter;
}
public void useDebug( boolean debug ) {
this.debug = debug;
}
public boolean isDebug(){
return debug;
}
}