Added completely new build version system

This commit is contained in:
Anuken
2018-02-08 23:41:07 -05:00
parent 36afd9f140
commit 1f4a72d459
21 changed files with 210 additions and 128 deletions

View File

@@ -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

View File

@@ -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(){

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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) {}
};
}
}

View 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);
}
}
}

View File

@@ -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);

View File

@@ -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();
}
}

View File

@@ -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());