Files
sheepit-shadow-nabber/src/com/sheepit/client/standalone/GuiText.java

118 lines
2.9 KiB
Java
Raw Normal View History

/*
* Copyright (C) 2010-2014 Laurent CLOUET
* Author Laurent CLOUET <laurent.clouet@nopnop.net>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; version 2
* of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package com.sheepit.client.standalone;
2015-01-15 23:20:17 +01:00
import com.sheepit.client.Client;
import com.sheepit.client.Gui;
import com.sheepit.client.Log;
import sun.misc.Signal;
import sun.misc.SignalHandler;
public class GuiText implements Gui {
public static final String type = "text";
private int framesRendered;
private int sigIntCount = 0;
private Log log;
private Client client;
public GuiText() {
this.framesRendered = 0;
this.log = Log.getInstance(null);
}
@Override
public void start() {
if (client != null) {
Signal.handle(new Signal("INT"), new SignalHandler() {
@Override
public void handle(Signal signal) {
sigIntCount++;
if (sigIntCount == 4) {
// This is only for ugly issues that might occur
System.out.println("WARNING: Hitting Ctrl-C again will force close the application.");
}
else if (sigIntCount == 5) {
Signal.raise(new Signal("INT"));
Runtime.getRuntime().halt(0);
}
else if (client.isRunning() && client.isSuspended() == false) {
client.askForStop();
System.out.println("Will exit after current frame... Press Ctrl+C again to exit now.");
}
else {
client.stop();
GuiText.this.stop();
}
}
});
client.run();
client.stop();
}
}
@Override
public void stop() {
Runtime.getRuntime().halt(0);
}
@Override
public void status(String msg_) {
System.out.println(msg_);
log.debug("GUI " + msg_);
}
@Override
public void error(String err_) {
System.out.println("Error " + err_);
log.error("Error " + err_);
}
@Override
public void AddFrameRendered() {
this.framesRendered += 1;
2016-01-27 13:44:20 +01:00
System.out.println("Frames rendered: " + this.framesRendered);
String creditsEarned = this.client.getServer().getCreditEarnedOnCurrentSession();
System.out.println("Credits earned: " + (creditsEarned != null ? creditsEarned : "unknown"));
}
@Override
public void framesRemaining(int n_) {
2016-01-27 13:44:20 +01:00
System.out.println("Frames remaining: " + n_);
}
2015-01-15 23:20:17 +01:00
@Override
public void setClient(Client cli) {
client = cli;
2015-01-15 23:20:17 +01:00
}
@Override
public Client getClient() {
return client;
2015-01-15 23:20:17 +01:00
}
}