Compare commits

...

1 Commits

Author SHA1 Message Date
minjaesong
f30e7fd45b bad type on operand stack 2019-04-19 13:53:13 +09:00
5 changed files with 65 additions and 75 deletions

View File

@@ -1,12 +1,11 @@
package net.torvald.terrarum; package net.torvald.terrarum;
import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Files;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen; import com.badlogic.gdx.Screen;
import com.badlogic.gdx.audio.AudioDevice; import com.badlogic.gdx.audio.AudioDevice;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.controllers.Controllers; import com.badlogic.gdx.controllers.Controllers;
import com.badlogic.gdx.graphics.*; import com.badlogic.gdx.graphics.*;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
@@ -18,7 +17,6 @@ import com.github.strikerx3.jxinput.XInputDevice;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive; import com.google.gson.JsonPrimitive;
import net.torvald.util.ArrayListMap;
import net.torvald.getcpuname.GetCpuName; import net.torvald.getcpuname.GetCpuName;
import net.torvald.terrarum.blockstats.MinimapComposer; import net.torvald.terrarum.blockstats.MinimapComposer;
import net.torvald.terrarum.controller.GdxControllerAdapter; import net.torvald.terrarum.controller.GdxControllerAdapter;
@@ -34,6 +32,7 @@ import net.torvald.terrarum.worlddrawer.BlocksDrawer;
import net.torvald.terrarum.worlddrawer.LightmapRenderer; import net.torvald.terrarum.worlddrawer.LightmapRenderer;
import net.torvald.terrarumsansbitmap.gdx.GameFontBase; import net.torvald.terrarumsansbitmap.gdx.GameFontBase;
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack; import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack;
import net.torvald.util.ArrayListMap;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -86,9 +85,11 @@ public class AppLoader implements ApplicationListener {
* @param appConfig LWJGL(2) Application Configuration * @param appConfig LWJGL(2) Application Configuration
* @param injectScreen GDX Screen you want to run * @param injectScreen GDX Screen you want to run
*/ */
public AppLoader(LwjglApplicationConfiguration appConfig, Screen injectScreen) { public AppLoader(Lwjgl3ApplicationConfiguration appConfig, Screen injectScreen, int width, int height) {
AppLoader.injectScreen = injectScreen; AppLoader.injectScreen = injectScreen;
AppLoader.appConfig = appConfig; AppLoader.appConfig = appConfig;
setWindowWidth = width;
setWindowHeight = height;
} }
/** /**
@@ -96,7 +97,7 @@ public class AppLoader implements ApplicationListener {
* *
* @param appConfig LWJGL(2) Application Configuration * @param appConfig LWJGL(2) Application Configuration
*/ */
public AppLoader(LwjglApplicationConfiguration appConfig) { public AppLoader(Lwjgl3ApplicationConfiguration appConfig) {
AppLoader.appConfig = appConfig; AppLoader.appConfig = appConfig;
} }
@@ -175,7 +176,7 @@ public class AppLoader implements ApplicationListener {
private static boolean resizeRequested = false; private static boolean resizeRequested = false;
private static Point2i resizeReqSize; private static Point2i resizeReqSize;
public static LwjglApplicationConfiguration appConfig; public static Lwjgl3ApplicationConfiguration appConfig;
public static GameFontBase fontGame; public static GameFontBase fontGame;
public static TinyAlphNum fontSmallNumbers; public static TinyAlphNum fontSmallNumbers;
@@ -197,6 +198,9 @@ public class AppLoader implements ApplicationListener {
public static final int minimumW = 1080; public static final int minimumW = 1080;
public static final int minimumH = 720; public static final int minimumH = 720;
public static int setWindowWidth;
public static int setWindowHeight;
public static void main(String[] args) { public static void main(String[] args) {
// load configs // load configs
getDefaultDirectory(); getDefaultDirectory();
@@ -212,27 +216,30 @@ public class AppLoader implements ApplicationListener {
ShaderProgram.pedantic = false; ShaderProgram.pedantic = false;
LwjglApplicationConfiguration appConfig = new LwjglApplicationConfiguration(); Lwjgl3ApplicationConfiguration appConfig = new Lwjgl3ApplicationConfiguration();
appConfig.useGL30 = true; // utilising some GL trickeries, need this to be TRUE appConfig.useOpenGL3(true, 3, 0);// utilising some GL trickeries, need this to be TRUE
appConfig.vSyncEnabled = getConfigBoolean("usevsync"); appConfig.setResizable(false);
appConfig.resizable = false;//true; appConfig.useVsync(getConfigBoolean("usevsync"));
//appConfig.width = 1110; // photographic ratio (1.5:1) //setWindowWidth = 1110; // photographic ratio (1.5:1)
//appConfig.height = 740; // photographic ratio (1.5:1) //setWindowHeight = 740; // photographic ratio (1.5:1)
appConfig.width = getConfigInt("screenwidth"); setWindowWidth = getConfigInt("screenwidth");
appConfig.height = getConfigInt("screenheight"); setWindowHeight = getConfigInt("screenheight");
appConfig.backgroundFPS = getConfigInt("displayfps"); appConfig.setWindowedMode(setWindowWidth, setWindowHeight);
appConfig.foregroundFPS = getConfigInt("displayfps"); appConfig.setIdleFPS(getConfigInt("displayfps"));
appConfig.title = GAME_NAME; appConfig.setTitle(GAME_NAME);
appConfig.forceExit = false; //appConfig.forceExit = false;
if (IS_DEVELOPMENT_BUILD) {
appConfig.enableGLDebugOutput(true, System.err);
}
// load app icon // load app icon
int[] appIconSizes = new int[]{256,128,64,32,16}; appConfig.setWindowIcon(
for (int size : appIconSizes) { "assets/appicon256.png",
String name = "assets/appicon" + size + ".png"; "assets/appicon128.png",
if (new File("./" + name).exists()) { "assets/appicon64.png",
appConfig.addIcon(name, Files.FileType.Internal); "assets/appicon32.png",
} "assets/appicon16.png"
} );
if (args.length == 1 && args[0].equals("isdev=true")) { if (args.length == 1 && args[0].equals("isdev=true")) {
IS_DEVELOPMENT_BUILD = true; IS_DEVELOPMENT_BUILD = true;
@@ -240,7 +247,7 @@ public class AppLoader implements ApplicationListener {
//KeyToggler.INSTANCE.forceSet(Input.Keys.F11, true); //KeyToggler.INSTANCE.forceSet(Input.Keys.F11, true);
} }
new LwjglApplication(new AppLoader(appConfig), appConfig); new Lwjgl3Application(new AppLoader(appConfig), appConfig);
} }
@@ -292,9 +299,10 @@ public class AppLoader implements ApplicationListener {
// set basis of draw // set basis of draw
logoBatch = new SpriteBatch(); logoBatch = new SpriteBatch();
camera = new OrthographicCamera(((float) appConfig.width), ((float) appConfig.height));
initViewPort(appConfig.width, appConfig.height); camera = new OrthographicCamera(((float) setWindowWidth), ((float) setWindowHeight));
initViewPort(setWindowWidth, setWindowHeight);
// logo here :p // logo here :p
logo = new TextureRegion(new Texture(Gdx.files.internal("assets/graphics/logo_placeholder.tga"))); logo = new TextureRegion(new Texture(Gdx.files.internal("assets/graphics/logo_placeholder.tga")));
@@ -312,7 +320,7 @@ public class AppLoader implements ApplicationListener {
VertexAttribute.ColorUnpacked(), VertexAttribute.ColorUnpacked(),
VertexAttribute.TexCoords(0) VertexAttribute.TexCoords(0)
); );
updateFullscreenQuad(appConfig.width, appConfig.height); updateFullscreenQuad(setWindowWidth, setWindowHeight);
// set up renderer info variables // set up renderer info variables
@@ -415,8 +423,8 @@ public class AppLoader implements ApplicationListener {
setCameraPosition(0f, 0f); setCameraPosition(0f, 0f);
logoBatch.draw(logo, (appConfig.width - logo.getRegionWidth()) / 2f, logoBatch.draw(logo, (setWindowWidth - logo.getRegionWidth()) / 2f,
(appConfig.height - logo.getRegionHeight()) / 2f (setWindowHeight - logo.getRegionHeight()) / 2f
); );
logoBatch.end(); logoBatch.end();
@@ -454,7 +462,7 @@ public class AppLoader implements ApplicationListener {
screenshotRequested = false; screenshotRequested = false;
try { try {
Pixmap p = ScreenUtils.getFrameBufferPixmap(0, 0, appConfig.width, appConfig.height); Pixmap p = ScreenUtils.getFrameBufferPixmap(0, 0, setWindowWidth, setWindowHeight);
PixmapIO2.writeTGA(Gdx.files.absolute(defaultDir + "/Screenshot.tga"), p, true); PixmapIO2.writeTGA(Gdx.files.absolute(defaultDir + "/Screenshot.tga"), p, true);
p.dispose(); p.dispose();
} }
@@ -497,8 +505,8 @@ public class AppLoader implements ApplicationListener {
); );
} }
appConfig.width = screenW; setWindowWidth = screenW;
appConfig.height = screenH; setWindowHeight = screenH;
updateFullscreenQuad(screenW, screenH); updateFullscreenQuad(screenW, screenH);
@@ -622,7 +630,7 @@ public class AppLoader implements ApplicationListener {
private void setCameraPosition(float newX, float newY) { private void setCameraPosition(float newX, float newY) {
camera.position.set((-newX + appConfig.width / 2), (-newY + appConfig.height / 2), 0f); camera.position.set((-newX + setWindowWidth / 2), (-newY + setWindowHeight / 2), 0f);
camera.update(); camera.update();
logoBatch.setProjectionMatrix(camera.combined); logoBatch.setProjectionMatrix(camera.combined);
} }

View File

@@ -61,7 +61,7 @@ object PostProcessor {
batch.projectionMatrix = camera.combined batch.projectionMatrix = camera.combined
shapeRenderer = ShapeRenderer() shapeRenderer = ShapeRenderer()
Gdx.gl20.glViewport(0, 0, AppLoader.appConfig.width, AppLoader.appConfig.height) Gdx.gl20.glViewport(0, 0, AppLoader.setWindowWidth, AppLoader.setWindowHeight)
} }

View File

@@ -4,8 +4,8 @@ import com.badlogic.gdx.Gdx
import com.badlogic.gdx.Input import com.badlogic.gdx.Input
import com.badlogic.gdx.InputAdapter import com.badlogic.gdx.InputAdapter
import com.badlogic.gdx.ScreenAdapter import com.badlogic.gdx.ScreenAdapter
import com.badlogic.gdx.backends.lwjgl.LwjglApplication import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Pixmap
@@ -15,22 +15,16 @@ import com.badlogic.gdx.graphics.glutils.ShaderProgram
import com.sudoplay.joise.Joise import com.sudoplay.joise.Joise
import com.sudoplay.joise.module.ModuleBasisFunction import com.sudoplay.joise.module.ModuleBasisFunction
import com.sudoplay.joise.module.ModuleFractal import com.sudoplay.joise.module.ModuleFractal
import com.sudoplay.joise.module.ModuleScaleDomain
import com.sudoplay.joise.module.ModuleScaleOffset import com.sudoplay.joise.module.ModuleScaleOffset
import net.torvald.random.HQRNG import net.torvald.random.HQRNG
import net.torvald.terrarum.AppLoader import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.Terrarum import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.concurrent.BlockingThreadPool import net.torvald.terrarum.concurrent.BlockingThreadPool
import net.torvald.terrarum.concurrent.RunnableFun
import net.torvald.terrarum.concurrent.ParallelUtils.sliceEvenly import net.torvald.terrarum.concurrent.ParallelUtils.sliceEvenly
import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.inUse import net.torvald.terrarum.inUse
import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.roundInt import net.torvald.terrarum.roundInt
import kotlin.math.absoluteValue import kotlin.math.absoluteValue
import kotlin.system.measureNanoTime
import kotlin.system.measureTimeMillis
/** /**
* Created by minjaesong on 2018-12-14. * Created by minjaesong on 2018-12-14.
@@ -50,11 +44,11 @@ class NoiseGenerator : ScreenAdapter() {
Gdx.input.inputProcessor = NoiseGeneratorController(this) Gdx.input.inputProcessor = NoiseGeneratorController(this)
batch = SpriteBatch() batch = SpriteBatch()
camera = OrthographicCamera(AppLoader.appConfig.width.toFloat(), AppLoader.appConfig.height.toFloat()) camera = OrthographicCamera(AppLoader.setWindowWidth.toFloat(), AppLoader.setWindowHeight.toFloat())
camera.setToOrtho(true, AppLoader.appConfig.width.toFloat(), AppLoader.appConfig.height.toFloat()) camera.setToOrtho(true, AppLoader.setWindowWidth.toFloat(), AppLoader.setWindowHeight.toFloat())
camera.update() camera.update()
Gdx.gl20.glViewport(0, 0, AppLoader.appConfig.width, AppLoader.appConfig.height) Gdx.gl20.glViewport(0, 0, AppLoader.setWindowWidth, AppLoader.setWindowHeight)
pixmap = Pixmap(IMAGE_SIZE, IMAGE_SIZE, Pixmap.Format.RGBA8888) pixmap = Pixmap(IMAGE_SIZE, IMAGE_SIZE, Pixmap.Format.RGBA8888)
texture = Texture(1, 1, Pixmap.Format.RGBA8888) texture = Texture(1, 1, Pixmap.Format.RGBA8888)
@@ -255,14 +249,10 @@ class NoiseGeneratorController(val host: NoiseGenerator) : InputAdapter() {
fun main(args: Array<String>) { fun main(args: Array<String>) {
ShaderProgram.pedantic = false ShaderProgram.pedantic = false
val appConfig = LwjglApplicationConfiguration() val appConfig = Lwjgl3ApplicationConfiguration()
appConfig.vSyncEnabled = false appConfig.useVsync(false)
appConfig.resizable = false//true; appConfig.setResizable(false)
appConfig.width = 1024 appConfig.setWindowedMode(1024, 1024)
appConfig.height = 1024
appConfig.backgroundFPS = 9999
appConfig.foregroundFPS = 9999
appConfig.forceExit = false
LwjglApplication(AppLoader(appConfig, NoiseGenerator()), appConfig) Lwjgl3Application(AppLoader(appConfig, NoiseGenerator(), 1024, 1024), appConfig)
} }

View File

@@ -3,8 +3,8 @@ package net.torvald.terrarum.tests
import com.badlogic.gdx.Gdx import com.badlogic.gdx.Gdx
import com.badlogic.gdx.InputAdapter import com.badlogic.gdx.InputAdapter
import com.badlogic.gdx.ScreenAdapter import com.badlogic.gdx.ScreenAdapter
import com.badlogic.gdx.backends.lwjgl.LwjglApplication import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
@@ -67,13 +67,13 @@ class UITestPad1 : ScreenAdapter() {
Yaml(treeStr) Yaml(treeStr)
) )
batch = SpriteBatch() batch = SpriteBatch()
camera = OrthographicCamera(AppLoader.appConfig.width.toFloat(), AppLoader.appConfig.height.toFloat()) camera = OrthographicCamera(AppLoader.setWindowWidth.toFloat(), AppLoader.setWindowHeight.toFloat())
camera.setToOrtho(true, AppLoader.appConfig.width.toFloat(), AppLoader.appConfig.height.toFloat()) camera.setToOrtho(true, AppLoader.setWindowWidth.toFloat(), AppLoader.setWindowHeight.toFloat())
camera.update() camera.update()
Gdx.gl20.glViewport(0, 0, AppLoader.appConfig.width, AppLoader.appConfig.height) Gdx.gl20.glViewport(0, 0, AppLoader.setWindowWidth, AppLoader.setWindowHeight)
resize(AppLoader.appConfig.width, AppLoader.appConfig.height) resize(AppLoader.setWindowWidth, AppLoader.setWindowHeight)
nsMenu.setPosition(0, 0) nsMenu.setPosition(0, 0)
nsMenu.setAsAlwaysVisible() nsMenu.setAsAlwaysVisible()
@@ -148,16 +148,8 @@ class UITestPad1Controller(val host: UITestPad1) : InputAdapter() {
fun main(args: Array<String>) { fun main(args: Array<String>) {
ShaderProgram.pedantic = false ShaderProgram.pedantic = false
val appConfig = LwjglApplicationConfiguration() val appConfig = Lwjgl3ApplicationConfiguration()
appConfig.vSyncEnabled = false appConfig.setWindowedMode(1110, 740)
appConfig.resizable = false//true;
//appConfig.width = 1072; // IMAX ratio
//appConfig.height = 742; // IMAX ratio
appConfig.width = 1110 // photographic ratio (1.5:1)
appConfig.height = 740 // photographic ratio (1.5:1)
appConfig.backgroundFPS = 9999
appConfig.foregroundFPS = 9999
appConfig.forceExit = false
LwjglApplication(AppLoader(appConfig, UITestPad1()), appConfig) Lwjgl3Application(AppLoader(appConfig, UITestPad1(), 1110, 740), appConfig)
} }

View File

@@ -142,7 +142,7 @@ abstract class UICanvas(
uiItems.add(uiItem) uiItems.add(uiItem)
} }
fun mouseInScreen(x: Int, y: Int) = x in 0 until AppLoader.appConfig.width && y in 0 until AppLoader.appConfig.height fun mouseInScreen(x: Int, y: Int) = x in 0 until AppLoader.setWindowWidth && y in 0 until AppLoader.setWindowHeight
open fun mouseMoved(screenX: Int, screenY: Int): Boolean { open fun mouseMoved(screenX: Int, screenY: Int): Boolean {
if (this.isVisible) { if (this.isVisible) {