Faster, smaller server / Bundle check cleanup
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -28,6 +28,7 @@ logs/
|
|||||||
/ios/src/io/anuke/mindustry/gen/
|
/ios/src/io/anuke/mindustry/gen/
|
||||||
/core/src/io/anuke/mindustry/gen/
|
/core/src/io/anuke/mindustry/gen/
|
||||||
ios/robovm.properties
|
ios/robovm.properties
|
||||||
|
packr-out/
|
||||||
config/
|
config/
|
||||||
*.gif
|
*.gif
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ public class Zones implements ContentList{
|
|||||||
public void load(){
|
public void load(){
|
||||||
|
|
||||||
groundZero = new Zone("groundZero", new MapGenerator("groundZero", 1)){{
|
groundZero = new Zone("groundZero", new MapGenerator("groundZero", 1)){{
|
||||||
baseLaunchCost = ItemStack.with(Items.copper, -50);
|
baseLaunchCost = ItemStack.with(Items.copper, -100);
|
||||||
startingItems = ItemStack.list(Items.copper, 50);
|
startingItems = ItemStack.list(Items.copper, 100);
|
||||||
alwaysUnlocked = true;
|
alwaysUnlocked = true;
|
||||||
conditionWave = 5;
|
conditionWave = 5;
|
||||||
launchPeriod = 5;
|
launchPeriod = 5;
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ public class BundleLoader{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void loadBundle(){
|
private static void loadBundle(){
|
||||||
|
if(headless) return;
|
||||||
|
|
||||||
try{
|
try{
|
||||||
//try loading external bundle
|
//try loading external bundle
|
||||||
FileHandle handle = Core.files.local("bundle");
|
FileHandle handle = Core.files.local("bundle");
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import io.anuke.arc.collection.Array;
|
|||||||
import io.anuke.arc.graphics.Color;
|
import io.anuke.arc.graphics.Color;
|
||||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||||
import io.anuke.arc.scene.ui.layout.Table;
|
import io.anuke.arc.scene.ui.layout.Table;
|
||||||
import io.anuke.arc.util.Log;
|
|
||||||
import io.anuke.arc.util.Strings;
|
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.game.UnlockableContent;
|
import io.anuke.mindustry.game.UnlockableContent;
|
||||||
import io.anuke.mindustry.graphics.Pal;
|
import io.anuke.mindustry.graphics.Pal;
|
||||||
@@ -42,11 +40,6 @@ public class Item extends UnlockableContent implements Comparable<Item>{
|
|||||||
super(name);
|
super(name);
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.description = Core.bundle.getOrNull("item." + this.name + ".description");
|
this.description = Core.bundle.getOrNull("item." + this.name + ".description");
|
||||||
|
|
||||||
if(!Core.bundle.has("item." + this.name + ".name")){
|
|
||||||
Log.err("Warning: item '" + name + "' is missing a localized name. Add the following to bundle.properties:");
|
|
||||||
Log.err("item." + this.name + ".name = " + Strings.capitalize(name.replace('-', '_')));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load(){
|
public void load(){
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import io.anuke.arc.collection.ObjectSet;
|
|||||||
import io.anuke.arc.function.Supplier;
|
import io.anuke.arc.function.Supplier;
|
||||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||||
import io.anuke.arc.scene.ui.layout.Table;
|
import io.anuke.arc.scene.ui.layout.Table;
|
||||||
import io.anuke.arc.util.Log;
|
|
||||||
import io.anuke.arc.util.Strings;
|
|
||||||
import io.anuke.mindustry.content.Items;
|
import io.anuke.mindustry.content.Items;
|
||||||
import io.anuke.mindustry.entities.traits.TypeTrait;
|
import io.anuke.mindustry.entities.traits.TypeTrait;
|
||||||
import io.anuke.mindustry.entities.type.BaseUnit;
|
import io.anuke.mindustry.entities.type.BaseUnit;
|
||||||
@@ -46,11 +44,6 @@ public class UnitType extends UnlockableContent{
|
|||||||
this.description = Core.bundle.getOrNull("unit." + name + ".description");
|
this.description = Core.bundle.getOrNull("unit." + name + ".description");
|
||||||
|
|
||||||
TypeTrait.registerType(type, mainConstructor);
|
TypeTrait.registerType(type, mainConstructor);
|
||||||
|
|
||||||
if(!Core.bundle.has("unit." + this.name + ".name")){
|
|
||||||
Log.err("Warning: unit '" + name + "' is missing a localized name. Add the follow to bundle.properties:");
|
|
||||||
Log.err("unit." + this.name + ".name=" + Strings.capitalize(name.replace('-', '_')));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,20 +1,14 @@
|
|||||||
package io.anuke.mindustry.world.meta;
|
package io.anuke.mindustry.world.meta;
|
||||||
|
|
||||||
import io.anuke.arc.Core;
|
|
||||||
import io.anuke.arc.collection.ObjectMap.Entry;
|
import io.anuke.arc.collection.ObjectMap.Entry;
|
||||||
import io.anuke.arc.collection.OrderedMap;
|
import io.anuke.arc.collection.OrderedMap;
|
||||||
import io.anuke.arc.util.Log;
|
|
||||||
import io.anuke.mindustry.type.Item;
|
import io.anuke.mindustry.type.Item;
|
||||||
import io.anuke.mindustry.type.ItemStack;
|
import io.anuke.mindustry.type.ItemStack;
|
||||||
import io.anuke.mindustry.type.Liquid;
|
import io.anuke.mindustry.type.Liquid;
|
||||||
import io.anuke.mindustry.world.meta.values.*;
|
import io.anuke.mindustry.world.meta.values.*;
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**Hold and organizes a list of block stats.*/
|
/**Hold and organizes a list of block stats.*/
|
||||||
public class BlockStats{
|
public class BlockStats{
|
||||||
private static final boolean errorWhenMissing = false;
|
|
||||||
|
|
||||||
private final OrderedMap<StatCategory, OrderedMap<BlockStat, StatValue>> map = new OrderedMap<>();
|
private final OrderedMap<StatCategory, OrderedMap<BlockStat, StatValue>> map = new OrderedMap<>();
|
||||||
private boolean dirty;
|
private boolean dirty;
|
||||||
|
|
||||||
@@ -50,22 +44,6 @@ public class BlockStats{
|
|||||||
|
|
||||||
/**Adds a stat value.*/
|
/**Adds a stat value.*/
|
||||||
public void add(BlockStat stat, StatValue value){
|
public void add(BlockStat stat, StatValue value){
|
||||||
if(!Core.bundle.has("blocks." + stat.name().toLowerCase(Locale.ROOT))){
|
|
||||||
if(!errorWhenMissing){
|
|
||||||
Log.err("Warning: No bundle entry for stat type \"" + stat + "\"!");
|
|
||||||
}else{
|
|
||||||
throw new RuntimeException("No bundle entry for stat type \"" + stat + "\"!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!Core.bundle.has("category." + stat.category.name().toLowerCase(Locale.ROOT))){
|
|
||||||
if(!errorWhenMissing){
|
|
||||||
Log.err("Warning: No bundle entry for stat category \"" + stat.category + "\"!");
|
|
||||||
}else{
|
|
||||||
throw new RuntimeException("No bundle entry for stat category \"" + stat.category + "\"!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(map.containsKey(stat.category) && map.get(stat.category).containsKey(stat)){
|
if(map.containsKey(stat.category) && map.get(stat.category).containsKey(stat)){
|
||||||
throw new RuntimeException("Duplicate stat entry: \"" + stat + "\" in block.");
|
throw new RuntimeException("Duplicate stat entry: \"" + stat + "\" in block.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,10 +16,6 @@ public class NumberValue implements StatValue{
|
|||||||
public NumberValue(float value, StatUnit unit){
|
public NumberValue(float value, StatUnit unit){
|
||||||
this.unit = unit;
|
this.unit = unit;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
|
|
||||||
if(unit != StatUnit.none && unit.localized().contains("???")){
|
|
||||||
throw new RuntimeException("No bundle definition found for unit: '" + unit + "'");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,25 +6,24 @@ sourceSets.main.java.srcDirs = ["src/"]
|
|||||||
project.ext.mainClassName = "io.anuke.mindustry.desktop.DesktopLauncher"
|
project.ext.mainClassName = "io.anuke.mindustry.desktop.DesktopLauncher"
|
||||||
project.ext.assetsDir = new File("../core/assets")
|
project.ext.assetsDir = new File("../core/assets")
|
||||||
|
|
||||||
def PACKR_DIR = "$System.env.PACKR_DIR"
|
import com.badlogicgames.packr.PackrConfig
|
||||||
|
import com.badlogicgames.packr.Packr
|
||||||
|
|
||||||
|
def JDK_DIR = "$System.env.PACKR_DIR"
|
||||||
def ICON_DIR = new File("core/assets/sprites/icon.icns")
|
def ICON_DIR = new File("core/assets/sprites/icon.icns")
|
||||||
|
|
||||||
ext.getPlatform = {
|
ext.getPlatform = {
|
||||||
if(project.hasProperty("platform")){
|
def lc = project.hasProperty("platform") ? platform.toLowerCase() : ""
|
||||||
def lc = platform.toLowerCase()
|
if(lc == "windows64"){
|
||||||
if(lc == "windows64"){
|
return PackrConfig.Platform.Windows64
|
||||||
return "windows64"
|
}else if(lc == "windows32"){
|
||||||
}else if(lc == "windows32"){
|
return PackrConfig.Platform.Windows32
|
||||||
return "windows32"
|
}else if(lc == "linux"){
|
||||||
}else if(lc == "linux"){
|
return PackrConfig.Platform.Linux64
|
||||||
return "linux64"
|
}else if(lc == "mac"){
|
||||||
}else if(lc == "mac"){
|
return PackrConfig.Platform.MacOS
|
||||||
return "mac"
|
|
||||||
}else{
|
|
||||||
throw new InvalidUserDataException("Invalid platform. Set platform with -Pplatform=windows/linux/mac")
|
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
throw new InvalidUserDataException("No platform defined. Set platform with -Pplatform=windows/linux/mac")
|
throw new InvalidUserDataException("Invalid platform. Set platform with -Pplatform=windows64/windows32/linux/mac")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,27 +79,26 @@ task clearOut(type: Delete){
|
|||||||
task packrCmd(){
|
task packrCmd(){
|
||||||
|
|
||||||
doLast{
|
doLast{
|
||||||
|
def config = new PackrConfig()
|
||||||
|
config.with{
|
||||||
|
config.executable = appName
|
||||||
|
verbose = true
|
||||||
|
platform = getPlatform()
|
||||||
|
bundleIdentifier = getPackage() + ".mac"
|
||||||
|
iconResource = ICON_DIR
|
||||||
|
outDir = file("packr-out/")
|
||||||
|
mainClass = project.ext.mainClassName
|
||||||
|
classpath = ["desktop/build/libs/desktop-release.jar"]
|
||||||
|
vmArgs = ["Djava.net.preferIPv4Stack=true"]
|
||||||
|
minimizeJre = "desktop/packr_minimize.json"
|
||||||
|
jdk = JDK_DIR + "jdk-${getPlatform().toString().toLowerCase()}.zip"
|
||||||
|
|
||||||
copy{
|
if(getPlatform() == PackrConfig.Platform.MacOS){
|
||||||
into PACKR_DIR
|
vmArgs += "XstartOnFirstThread"
|
||||||
from "build/libs/desktop-release.jar"
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exec{
|
new Packr().pack(config)
|
||||||
|
|
||||||
commandLine("java", "-jar", PACKR_DIR + "packr.jar",
|
|
||||||
"--verbose",
|
|
||||||
"--bundle", getPackage() + ".mac",
|
|
||||||
"--platform", getPlatform(),
|
|
||||||
"--executable", appName,
|
|
||||||
"--output", "packr-out/",
|
|
||||||
"--mainclass", project.ext.mainClassName,
|
|
||||||
"--jdk", PACKR_DIR + "jdk-" + getPlatform() + ".zip",
|
|
||||||
"--icon", ICON_DIR.getAbsolutePath(),
|
|
||||||
"--vmargs", (getPlatform() == "mac" ? "XstartOnFirstThread" : "Xms256m"),
|
|
||||||
"Djava.net.preferIPv4Stack=true",
|
|
||||||
"--classpath", "--", PACKR_DIR + "config.json")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,13 +119,13 @@ task fixWindows32(type: Copy){
|
|||||||
dependsOn "packrCmd"
|
dependsOn "packrCmd"
|
||||||
|
|
||||||
into "packr-out/jre/bin/"
|
into "packr-out/jre/bin/"
|
||||||
from PACKR_DIR + "zip.dll"
|
from JDK_DIR + "zip.dll"
|
||||||
rename("zip.dll", "ojdkbuild_zlib.dll")
|
rename("zip.dll", "ojdkbuild_zlib.dll")
|
||||||
|
|
||||||
doLast{
|
doLast{
|
||||||
copy{
|
copy{
|
||||||
into "packr-out/jre/bin/"
|
into "packr-out/jre/bin/"
|
||||||
from PACKR_DIR + "zip.dll"
|
from JDK_DIR + "zip.dll"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
82
desktop/packr_minimize.json
Normal file
82
desktop/packr_minimize.json
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"reduce": [
|
||||||
|
{
|
||||||
|
"archive": "jre/lib/rt.jar",
|
||||||
|
"paths": [
|
||||||
|
|
||||||
|
"javax/transaction",
|
||||||
|
"javax/tools",
|
||||||
|
"javax/swing",
|
||||||
|
"javax/sql",
|
||||||
|
"javax/smartcardio",
|
||||||
|
"javax/rmi",
|
||||||
|
"javax/print",
|
||||||
|
"javax/naming",
|
||||||
|
"javax/management",
|
||||||
|
"javax/lang",
|
||||||
|
"javax/jws",
|
||||||
|
"javax/swing",
|
||||||
|
"javax/imageio",
|
||||||
|
"javax/annotation",
|
||||||
|
"javax/activity",
|
||||||
|
"javax/activation",
|
||||||
|
"javax/accessibility",
|
||||||
|
"com/sun/corba",
|
||||||
|
"com/sun/jmx",
|
||||||
|
"com/sun/jndi",
|
||||||
|
"com/sun/xml",
|
||||||
|
"com/sun/script",
|
||||||
|
"com/sun/media",
|
||||||
|
"com/sun/naming",
|
||||||
|
"java/awt",
|
||||||
|
|
||||||
|
"com/sun/org/apache/xpath",
|
||||||
|
|
||||||
|
"com/sun/rowset",
|
||||||
|
"com/sun/script",
|
||||||
|
"sun/applet",
|
||||||
|
"sun/corba",
|
||||||
|
"sun/management"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"archive": "jre/lib/charsets.jar",
|
||||||
|
"paths": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"archive": "jre/lib/jsse.jar",
|
||||||
|
"paths": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"archive": "jre/lib/resources.jar",
|
||||||
|
"paths": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remove": [
|
||||||
|
{
|
||||||
|
"platform": "*",
|
||||||
|
"paths": [
|
||||||
|
"jre/lib/rhino.jar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"platform": "linux",
|
||||||
|
"paths": [
|
||||||
|
"jre/lib/amd64/libawt.so",
|
||||||
|
"jre/lib/amd64/libawt_xawt.so",
|
||||||
|
"jre/lib/amd64/libjawt.so"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"platform": "windows",
|
||||||
|
"paths": [
|
||||||
|
"jre/bin/*.exe",
|
||||||
|
"jre/bin/client",
|
||||||
|
"jre/bin/awt.dll"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -31,6 +31,10 @@ task dist(type: Jar) {
|
|||||||
from files(sourceSets.main.output.resourcesDir)
|
from files(sourceSets.main.output.resourcesDir)
|
||||||
from {configurations.compile.collect {zipTree(it)}}
|
from {configurations.compile.collect {zipTree(it)}}
|
||||||
from files(project.assetsDir)
|
from files(project.assetsDir)
|
||||||
|
exclude("sprites/**")
|
||||||
|
exclude("fonts/**")
|
||||||
|
exclude("com/badlogic/gdx/**")
|
||||||
|
exclude("bundles/**")
|
||||||
|
|
||||||
writeVersion()
|
writeVersion()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user