package com.ygames.ysoccer;

import com.ygames.ysoccer.framework.GLGame;
import com.ygames.ysoccer.framework.Settings;
import com.ygames.ysoccer.screens.Intro;
import com.ygames.ysoccer.screens.Main;
import com.ygames.ysoccer.screens.OnlineMatchConnect;

public class YSoccer extends GLGame {

    @Override
    public void create() {
        super.create();

        if (Boolean.getBoolean("ysoccer.autoConnect")) {
            applyOnlineSettingsFromSystemProperties();
            menuMusic.setMode(settings.musicMode);
            this.setScreen(new OnlineMatchConnect(this, true));
        } else if (settings.showIntro) {
            this.setScreen(new Intro(this));
        } else {
            menuMusic.setMode(settings.musicMode);
            this.setScreen(new Main(this));
        }
    }

    private void applyOnlineSettingsFromSystemProperties() {
        String serverAddress = System.getProperty("ysoccer.serverAddress");
        if (serverAddress != null && serverAddress.trim().length() > 0) {
            Settings.serverAddress = serverAddress.trim();
        }

        Settings.tcpPort = intProperty("ysoccer.tcpPort", Settings.tcpPort);
        Settings.udpPort = intProperty("ysoccer.udpPort", Settings.udpPort);
    }

    private int intProperty(String key, int defaultValue) {
        String value = System.getProperty(key);
        if (value == null) {
            return defaultValue;
        }
        try {
            return Integer.parseInt(value);
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }
}
