Added completely new build version system
This commit is contained in:
@@ -22,11 +22,6 @@ import io.anuke.ucore.scene.ui.layout.Unit;
|
||||
import java.util.Locale;
|
||||
|
||||
public class Vars{
|
||||
public static final String versionName = "Mindustry";
|
||||
public static final String versionType = "Beta";
|
||||
public static final byte versionBuild = 20;
|
||||
public static final byte versionMajor = 3;
|
||||
public static final byte versionMinor = 3;
|
||||
|
||||
public static final boolean testAndroid = false;
|
||||
//shorthand for whether or not this is running on android
|
||||
|
||||
@@ -304,12 +304,12 @@ public class NetClient extends Module {
|
||||
}
|
||||
|
||||
private void finishConnecting(){
|
||||
Net.send(new ConnectConfirmPacket(), SendMode.tcp);
|
||||
state.set(State.playing);
|
||||
connecting = false;
|
||||
ui.loadfrag.hide();
|
||||
ui.join.hide();
|
||||
Net.setClientLoaded(true);
|
||||
Timers.runTask(1f, () -> Net.send(new ConnectConfirmPacket(), SendMode.tcp));
|
||||
}
|
||||
|
||||
public void beginConnecting(){
|
||||
|
||||
@@ -9,6 +9,7 @@ import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.entities.SyncEntity;
|
||||
import io.anuke.mindustry.game.EventType.GameOverEvent;
|
||||
import io.anuke.mindustry.io.Platform;
|
||||
import io.anuke.mindustry.io.Version;
|
||||
import io.anuke.mindustry.net.Net;
|
||||
import io.anuke.mindustry.net.Net.SendMode;
|
||||
import io.anuke.mindustry.net.NetworkIO;
|
||||
@@ -47,8 +48,8 @@ public class NetServer extends Module{
|
||||
|
||||
Net.handleServer(ConnectPacket.class, (id, packet) -> {
|
||||
|
||||
if(packet.version != versionBuild){
|
||||
Net.kickConnection(id, packet.version > versionBuild ? KickReason.serverOutdated : KickReason.clientOutdated);
|
||||
if(packet.version != Version.build && packet.version != -1){ //ignore 'custom builds'
|
||||
Net.kickConnection(id, packet.version > Version.build ? KickReason.serverOutdated : KickReason.clientOutdated);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ public class ThreadHandler {
|
||||
|
||||
synchronized (updateLock) {
|
||||
rendered = true;
|
||||
updateLock.notify();
|
||||
impl.notify(updateLock);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ public class ThreadHandler {
|
||||
|
||||
synchronized(updateLock) {
|
||||
while(!rendered) {
|
||||
updateLock.wait();
|
||||
impl.wait(updateLock);
|
||||
}
|
||||
rendered = false;
|
||||
}
|
||||
@@ -105,5 +105,7 @@ public class ThreadHandler {
|
||||
void sleep(long ms) throws InterruptedException;
|
||||
void start(Runnable run);
|
||||
void stop();
|
||||
void wait(Object object) throws InterruptedException;
|
||||
void notify(Object object);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,8 +168,8 @@ public class Maps implements Disposable{
|
||||
}
|
||||
return true;
|
||||
}catch(Exception e){
|
||||
if(!android) Log.err(e);
|
||||
Gdx.app.error("Mindustry-Maps", "Failed loading map file: " + file);
|
||||
Log.err(e);
|
||||
Log.err("Failed loading map file: {0}", file);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,25 +30,12 @@ public abstract class Platform {
|
||||
public boolean isDebug(){return false;}
|
||||
public ThreadProvider getThreadProvider(){
|
||||
return new ThreadProvider() {
|
||||
@Override
|
||||
public boolean isOnThread() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sleep(long ms) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(Runnable run) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
}
|
||||
@Override public boolean isOnThread() {return true;}
|
||||
@Override public void sleep(long ms) {}
|
||||
@Override public void start(Runnable run) {}
|
||||
@Override public void stop() {}
|
||||
@Override public void notify(Object object) {}
|
||||
@Override public void wait(Object object) {}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
35
core/src/io/anuke/mindustry/io/Version.java
Normal file
35
core/src/io/anuke/mindustry/io/Version.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package io.anuke.mindustry.io;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import com.badlogic.gdx.utils.PropertiesUtils;
|
||||
import io.anuke.ucore.util.Strings;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class Version {
|
||||
public static final String name;
|
||||
public static final String type;
|
||||
public static final String code;
|
||||
public static final int build;
|
||||
public static final String buildName;
|
||||
|
||||
static{
|
||||
try {
|
||||
FileHandle file = Gdx.files.internal("version.properties");
|
||||
|
||||
ObjectMap<String, String> map = new ObjectMap<>();
|
||||
PropertiesUtils.load(map, file.reader());
|
||||
|
||||
name = map.get("name");
|
||||
type = map.get("version");
|
||||
code = map.get("code");
|
||||
build = Strings.canParseInt(map.get("build")) ? Integer.parseInt(map.get("build")) : -1;
|
||||
buildName = build == -1 ? map.get("build") : "build " + build;
|
||||
|
||||
}catch (IOException e){
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.badlogic.gdx.utils.reflect.ClassReflection;
|
||||
import com.badlogic.gdx.utils.reflect.ReflectionException;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.entities.SyncEntity;
|
||||
import io.anuke.mindustry.io.Version;
|
||||
import io.anuke.mindustry.net.Packet.ImportantPacket;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.ucore.entities.Entities;
|
||||
@@ -11,8 +12,6 @@ import io.anuke.ucore.entities.EntityGroup;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
import static io.anuke.mindustry.Vars.versionBuild;
|
||||
|
||||
/**Class for storing all packets.*/
|
||||
public class Packets {
|
||||
|
||||
@@ -58,7 +57,7 @@ public class Packets {
|
||||
|
||||
@Override
|
||||
public void write(ByteBuffer buffer) {
|
||||
buffer.putInt(versionBuild);
|
||||
buffer.putInt(Version.build);
|
||||
buffer.put((byte)name.getBytes().length);
|
||||
buffer.put(name.getBytes());
|
||||
buffer.put(android ? (byte)1 : 0);
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.mindustry.io.Platform;
|
||||
import io.anuke.mindustry.io.Version;
|
||||
import io.anuke.mindustry.ui.MenuButton;
|
||||
import io.anuke.mindustry.ui.PressGroup;
|
||||
import io.anuke.ucore.scene.builders.imagebutton;
|
||||
@@ -99,7 +100,7 @@ public class MenuFragment implements Fragment{
|
||||
new table(){{
|
||||
visible(() -> state.is(State.menu));
|
||||
abottom().aleft();
|
||||
new label(versionName + " " + versionMajor + "." + versionMinor + " " + versionType + " / build " + versionBuild);
|
||||
new label("Mindustry " + Version.code + " " + Version.type + " / " + Version.buildName);
|
||||
}}.end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ public class TunnelConveyor extends Block{
|
||||
public void handleItem(Item item, Tile tile, Tile source){
|
||||
TunnelEntity entity = tile.entity();
|
||||
|
||||
if(entity.index >= entity.buffer.length) return;
|
||||
|
||||
Tile tunnel = getDestTunnel(tile, item);
|
||||
if(tunnel == null) return;
|
||||
Tile to = tunnel.getNearby(tunnel.getRotation());
|
||||
|
||||
Reference in New Issue
Block a user