+
\ No newline at end of file
diff --git a/assets/graphics/fonts/7x13_Tamzen7x14b.tga b/assets/graphics/fonts/7x13_Tamzen7x14b.tga
index 33d3b9c5b..c1010945d 100644
--- a/assets/graphics/fonts/7x13_Tamzen7x14b.tga
+++ b/assets/graphics/fonts/7x13_Tamzen7x14b.tga
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:27ced0df21293f95493c98f1342a8924e8440471264bb4478395ce31a87c5b46
+oid sha256:04fc4f4d12b18e3412f70c03640679521782ee3a090ecc027758e118f083e4ce
size 93228
diff --git a/src/net/torvald/UnsafePtr.kt b/src/net/torvald/UnsafePtr.kt
index 998f0c2e9..0c6e426da 100644
--- a/src/net/torvald/UnsafePtr.kt
+++ b/src/net/torvald/UnsafePtr.kt
@@ -22,15 +22,36 @@ object UnsafeHelper {
val ptr = unsafe.allocateMemory(size)
return UnsafePtr(ptr, size)
}
+
+ fun memcpy(src: UnsafePtr, fromIndex: Long, dest: UnsafePtr, toIndex: Long, copyLength: Long) {
+ // unsafe.copyMemory(srcAddress, destAddress, bytes); in case no src for the sun.misc.Unsafe is available :D
+ unsafe.copyMemory(src.ptr + fromIndex, dest.ptr + toIndex, copyLength)
+ }
+
+ fun memcpy(srcAddress: Long, destAddress: Long, copyLength: Long) = unsafe.copyMemory(srcAddress, destAddress, copyLength)
}
/**
* To allocate a memory, use UnsafeHelper.allocate(long)
+ *
+ * All the getFloat/Int/whatever methods will follow the endianness of your system,
+ * e.g. it'll be Little Endian on x86, Big Endian on PPC, User-defined on ARM; therefore these functions should not be
+ * used when the portability matters (e.g. Savefile). In such situations, do byte-wise operations will be needed.
*/
-class UnsafePtr(val ptr: Long, val allocSize: Long) {
+class UnsafePtr(pointer: Long, allocSize: Long) {
var destroyed = false
private set
+ var ptr: Long = pointer
+ private set
+
+ var size: Long = allocSize
+ private set
+
+ fun realloc(newSize: Long) {
+ ptr = UnsafeHelper.unsafe.reallocateMemory(ptr, newSize)
+ }
+
fun destroy() {
if (!destroyed) {
UnsafeHelper.unsafe.freeMemory(ptr)
@@ -42,7 +63,7 @@ class UnsafePtr(val ptr: Long, val allocSize: Long) {
}
}
- private inline fun checkNullPtr(index: Long) {
+ private inline fun checkNullPtr(index: Long) { // ignore what IDEA says and do inline this
if (destroyed) throw NullPointerException("The pointer is already destroyed ($this)")
// OOB Check: debugging purposes only -- comment out for the production
@@ -59,6 +80,11 @@ class UnsafePtr(val ptr: Long, val allocSize: Long) {
return UnsafeHelper.unsafe.getFloat(ptr + index)
}
+ fun getInt(index: Long): Int {
+ checkNullPtr(index)
+ return UnsafeHelper.unsafe.getInt(ptr + index)
+ }
+
operator fun set(index: Long, value: Byte) {
checkNullPtr(index)
UnsafeHelper.unsafe.putByte(ptr + index, value)
@@ -69,10 +95,15 @@ class UnsafePtr(val ptr: Long, val allocSize: Long) {
UnsafeHelper.unsafe.putFloat(ptr + index, value)
}
- fun fillWith(byte: Byte) {
- UnsafeHelper.unsafe.setMemory(ptr, allocSize, byte)
+ fun setInt(index: Long, value: Int) {
+ checkNullPtr(index)
+ UnsafeHelper.unsafe.putInt(ptr + index, value)
}
- override fun toString() = "0x${ptr.toString(16)} with size $allocSize"
+ fun fillWith(byte: Byte) {
+ UnsafeHelper.unsafe.setMemory(ptr, size, byte)
+ }
+
+ override fun toString() = "0x${ptr.toString(16)} with size $size"
override fun equals(other: Any?) = this.ptr == (other as UnsafePtr).ptr
}
\ No newline at end of file
diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java
index 0cc5f9d37..ea52912d0 100644
--- a/src/net/torvald/terrarum/AppLoader.java
+++ b/src/net/torvald/terrarum/AppLoader.java
@@ -1,9 +1,6 @@
package net.torvald.terrarum;
-import com.badlogic.gdx.ApplicationListener;
-import com.badlogic.gdx.Files;
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Screen;
+import com.badlogic.gdx.*;
import com.badlogic.gdx.audio.AudioDevice;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
@@ -13,7 +10,9 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.glutils.FrameBuffer;
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
+import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.utils.Disposable;
+import com.badlogic.gdx.utils.GdxRuntimeException;
import com.badlogic.gdx.utils.ScreenUtils;
import com.github.strikerx3.jxinput.XInputDevice;
import com.google.gson.JsonArray;
@@ -21,14 +20,15 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import net.torvald.gdx.graphics.PixmapIO2;
import net.torvald.getcpuname.GetCpuName;
+import net.torvald.terrarum.concurrent.ThreadParallel;
import net.torvald.terrarum.controller.GdxControllerAdapter;
import net.torvald.terrarum.controller.TerrarumController;
import net.torvald.terrarum.controller.XinputControllerAdapter;
import net.torvald.terrarum.gamecontroller.KeyToggler;
import net.torvald.terrarum.gameworld.GameWorld;
import net.torvald.terrarum.imagefont.TinyAlphNum;
-import net.torvald.terrarum.modulebasegame.Ingame;
import net.torvald.terrarum.modulebasegame.IngameRenderer;
+import net.torvald.terrarum.modulebasegame.TerrarumIngame;
import net.torvald.terrarum.utils.JsonFetcher;
import net.torvald.terrarum.utils.JsonWriter;
import net.torvald.terrarumsansbitmap.gdx.GameFontBase;
@@ -51,13 +51,23 @@ import static net.torvald.terrarum.TerrarumKt.gdxClearAndSetBlend;
*/
public class AppLoader implements ApplicationListener {
+ public static final String GAME_NAME = "Terrarum";
+ public static final String COPYRIGHT_DATE_NAME = "Copyright 2013-2019 Torvald (minjaesong)";
+
/**
- * 0xAA_BB_XXXX
- * AA: Major version
- * BB: Minor version
- * XXXX: Revision (Repository commits, or something arbitrary)
+ *
+ * Version numbering that follows Semantic Versioning 2.0.0 (https://semver.org/)
+ *
+ *
+ *
+ * 0xAA_BB_XXXX, where:
+ *
+ * AA: Major version
+ * BB: Minor version
+ * XXXX: Patch version
*
* e.g. 0x02010034 will be translated as 2.1.52
+ *
*/
public static final int VERSION_RAW = 0x00_02_0590;
@@ -110,6 +120,9 @@ public class AppLoader implements ApplicationListener {
/**
* Singleton pattern implementation in Java.
*
+ * This function exists because the limitation in the Java language and the design of the GDX itself, where
+ * not everything (more like not every method) can be static.
+ *
* @return
*/
public static AppLoader getINSTANCE() {
@@ -119,8 +132,6 @@ public class AppLoader implements ApplicationListener {
return INSTANCE;
}
- public static final String GAME_NAME = "Terrarum";
- public static final String COPYRIGHT_DATE_NAME = "Copyright 2013-2019 Torvald (minjaesong)";
public static String GAME_LOCALE = System.getProperty("user.language") + System.getProperty("user.country");
public static final String systemArch = System.getProperty("os.arch");
@@ -129,8 +140,13 @@ public class AppLoader implements ApplicationListener {
public static String renderer = "(a super-fancy virtual photoradiator)";
public static String rendererVendor = "(radiosity)";
+ public static int THREADS = ThreadParallel.INSTANCE.getThreadCount();
+ public static boolean MULTITHREAD;
+
public static final boolean is32BitJVM = !System.getProperty("sun.arch.data.model").contains("64");
+ public static int GL_VERSION;
+ public static final int MINIMAL_GL_VERSION = 320;
public static final float TV_SAFE_GRAPHICS = 0.05f; // as per EBU recommendation (https://tech.ebu.ch/docs/r/r095.pdf)
public static final float TV_SAFE_ACTION = 0.035f; // as per EBU recommendation (https://tech.ebu.ch/docs/r/r095.pdf)
@@ -206,15 +222,18 @@ public class AppLoader implements ApplicationListener {
public static ShaderProgram shaderColLUT;
public static Mesh fullscreenQuad;
- private OrthographicCamera camera;
- private SpriteBatch logoBatch;
+ private static OrthographicCamera camera;
+ private static SpriteBatch logoBatch;
public static TextureRegion logo;
public static AudioDevice audioDevice;
- private com.badlogic.gdx.graphics.Color gradWhiteTop = new com.badlogic.gdx.graphics.Color(0xf8f8f8ff);
- private com.badlogic.gdx.graphics.Color gradWhiteBottom = new com.badlogic.gdx.graphics.Color(0xd8d8d8ff);
+ public static SpriteBatch batch;
+ public static ShapeRenderer shapeRender;
- public Screen screen;
+ private static com.badlogic.gdx.graphics.Color gradWhiteTop = new com.badlogic.gdx.graphics.Color(0xf8f8f8ff);
+ private static com.badlogic.gdx.graphics.Color gradWhiteBottom = new com.badlogic.gdx.graphics.Color(0xd8d8d8ff);
+
+ private static Screen currenScreen;
public static int screenW = 0;
public static int screenH = 0;
@@ -234,10 +253,10 @@ public class AppLoader implements ApplicationListener {
public static final double UPDATE_RATE = 1.0 / 60.0; // TODO set it like 1/100, because apparent framerate is limited by update rate
- private float loadTimer = 0f;
- private final float showupTime = 100f / 1000f;
+ private static float loadTimer = 0f;
+ private static final float showupTime = 100f / 1000f;
- private FrameBuffer renderFBO;
+ private static FrameBuffer renderFBO;
public static CommonResourcePool resourcePool;
public static HashSet tempFilePool = new HashSet();
@@ -294,6 +313,7 @@ public class AppLoader implements ApplicationListener {
appConfig.foregroundFPS = getConfigInt("displayfps");
appConfig.title = GAME_NAME;
appConfig.forceExit = false;
+ appConfig.samples = 4; // force the AA on, if the graphics driver didn't do already
// load app icon
int[] appIconSizes = new int[]{256,128,64,32,16};
@@ -310,11 +330,36 @@ public class AppLoader implements ApplicationListener {
//KeyToggler.INSTANCE.forceSet(Input.Keys.F11, true);
}
+ // set some more configuration vars
+ MULTITHREAD = ThreadParallel.INSTANCE.getThreadCount() >= 3 && getConfigBoolean("multithread");
+
new LwjglApplication(new AppLoader(appConfig), appConfig);
}
@Override
public void create() {
+ Gdx.graphics.setContinuousRendering(true);
+
+ GAME_LOCALE = getConfigString("language");
+ printdbg(this, "locale = " + GAME_LOCALE);
+
+ String glInfo = Gdx.graphics.getGLVersion().getDebugVersionString();
+
+ GL_VERSION = Gdx.graphics.getGLVersion().getMajorVersion() * 100 +
+ Gdx.graphics.getGLVersion().getMinorVersion() * 10 +
+ Gdx.graphics.getGLVersion().getReleaseVersion();
+
+ System.out.println("GL_VERSION = " + GL_VERSION);
+ System.out.println("GL info:\n" + glInfo); // debug info
+
+
+ if (GL_VERSION < MINIMAL_GL_VERSION) {
+ // TODO notify properly
+ throw new GdxRuntimeException("Graphics device not capable -- device's GL_VERSION: " + GL_VERSION +
+ ", required: " + MINIMAL_GL_VERSION);
+ }
+
+
resourcePool = CommonResourcePool.INSTANCE;
resourcePool.addToLoadingList("blockmarkings_common", () -> new TextureRegionPack(Gdx.files.internal("assets/graphics/blocks/block_markings_common.tga"), 16, 16, 0, 0, 0, 0, false));
@@ -325,6 +370,9 @@ public class AppLoader implements ApplicationListener {
logoBatch = new SpriteBatch();
camera = new OrthographicCamera(((float) appConfig.width), ((float) appConfig.height));
+ batch = new SpriteBatch();
+ shapeRender = new ShapeRenderer();
+
initViewPort(appConfig.width, appConfig.height);
// logo here :p
@@ -416,6 +464,10 @@ public class AppLoader implements ApplicationListener {
postInit();
}
+ AppLoader.setDebugTime("GDX.rawDelta", (long) (Gdx.graphics.getRawDeltaTime() * 1000_000_000f));
+ AppLoader.setDebugTime("GDX.smtDelta", (long) (Gdx.graphics.getDeltaTime() * 1000_000_000f));
+
+
FrameBufferManager.begin(renderFBO);
gdxClearAndSetBlend(.094f, .094f, .094f, 0f);
setCameraPosition(0, 0);
@@ -423,7 +475,7 @@ public class AppLoader implements ApplicationListener {
// draw splash screen when predefined screen is null
// because in normal operation, the only time screen == null is when the app is cold-launched
// you can't have a text drawn here :v
- if (screen == null) {
+ if (currenScreen == null) {
shaderBayerSkyboxFill.begin();
shaderBayerSkyboxFill.setUniformMatrix("u_projTrans", camera.combined);
shaderBayerSkyboxFill.setUniformf("parallax_size", 0f);
@@ -450,15 +502,20 @@ public class AppLoader implements ApplicationListener {
if (loadTimer >= showupTime) {
// hand over the scene control to this single class; Terrarum must call
// 'AppLoader.getINSTANCE().screen.render(delta)', this is not redundant at all!
- setScreen(Terrarum.INSTANCE);
+
+ printdbg(this, "!! Force set current screen and ingame instance to TitleScreen !!");
+
+ IngameInstance title = new TitleScreen(batch);
+ Terrarum.INSTANCE.setCurrentIngameInstance(title);
+ setScreen(title);
}
}
// draw the screen
else {
- screen.render((float) UPDATE_RATE);
+ currenScreen.render((float) UPDATE_RATE);
}
- KeyToggler.INSTANCE.update(screen instanceof Ingame);
+ KeyToggler.INSTANCE.update(currenScreen instanceof TerrarumIngame);
// nested FBOs are just not a thing in GL!
net.torvald.terrarum.FrameBufferManager.end();
@@ -489,6 +546,7 @@ public class AppLoader implements ApplicationListener {
splashDisplayed = true;
GLOBAL_RENDER_TIMER += 1;
+
}
@Override
@@ -506,7 +564,7 @@ public class AppLoader implements ApplicationListener {
if (screenW % 2 == 1) screenW -= 1;
if (screenH % 2 == 1) screenH -= 1;
- if (screen != null) screen.resize(screenW, screenH);
+ if (currenScreen != null) currenScreen.resize(screenW, screenH);
if (renderFBO == null ||
@@ -539,9 +597,9 @@ public class AppLoader implements ApplicationListener {
System.out.println("Goodbye !");
- if (screen != null) {
- screen.hide();
- screen.dispose();
+ if (currenScreen != null) {
+ currenScreen.hide();
+ currenScreen.dispose();
}
//IngameRenderer.INSTANCE.dispose();
@@ -549,7 +607,6 @@ public class AppLoader implements ApplicationListener {
//MinimapComposer.INSTANCE.dispose();
//FloatDrawer.INSTANCE.dispose();
- //Terrarum.INSTANCE.dispose();
shaderBayerSkyboxFill.dispose();
shaderHicolour.dispose();
@@ -573,43 +630,55 @@ public class AppLoader implements ApplicationListener {
GameWorld.Companion.makeNullWorld().dispose();
+ Terrarum.INSTANCE.dispose();
+
deleteTempfiles();
}
@Override
public void pause() {
- if (screen != null) screen.pause();
+ if (currenScreen != null) currenScreen.pause();
}
@Override
public void resume() {
- if (screen != null) screen.resume();
+ if (currenScreen != null) currenScreen.resume();
}
- public void setScreen(Screen screen) {
- printdbg(this, "Changing screen to " + screen.getClass().getCanonicalName());
+ public static void setScreen(Screen screen) {
+ printdbg("[AppLoader-Static]", "Changing screen to " + screen.getClass().getCanonicalName());
// this whole thing is directtly copied from com.badlogic.gdx.Game
- if (this.screen != null) {
- this.screen.hide();
- this.screen.dispose();
+ if (currenScreen != null) {
+ printdbg("[AppLoader-Static]", "Screen before change: " + currenScreen.getClass().getCanonicalName());
+
+ currenScreen.hide();
+ currenScreen.dispose();
}
- this.screen = screen;
- if (this.screen != null) {
- this.screen.show();
- this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+ else {
+ printdbg("[AppLoader-Static]", "Screen before change: null");
}
+
+ currenScreen = screen;
+
+ currenScreen.show();
+ currenScreen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+
+
System.gc();
- printdbg(this, "Screen transisiton complete: " + this.screen.getClass().getCanonicalName());
+ printdbg("[AppLoader-Static]", "Screen transition complete: " + currenScreen.getClass().getCanonicalName());
}
-
+
/**
* Init stuffs which needs GL context
*/
private void postInit() {
+ Terrarum.initialise();
+
+
textureWhiteSquare = new Texture(Gdx.files.internal("assets/graphics/ortho_line_tex_2px.tga"));
textureWhiteSquare.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest);
diff --git a/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused b/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused
index 46bd739fa..c54aa9b46 100644
--- a/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused
+++ b/src/net/torvald/terrarum/FuckingWorldRenderer.kt.unused
@@ -925,7 +925,7 @@ class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
actorContainer.forEachIndexed { i, actor ->
if (actor is ActorWithBody) {
batch.color = Color.WHITE
- Terrarum.fontSmallNumbers.draw(batch,
+ AppLoader.fontSmallNumbers.draw(batch,
actor.referenceID.toString(),
actor.hitbox.startX.toFloat(),
actor.hitbox.canonicalY.toFloat() + 4
@@ -950,12 +950,12 @@ class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
// velocity
batch.color = Color.CHARTREUSE//GameFontBase.codeToCol["g"]
- Terrarum.fontSmallNumbers.draw(batch,
+ AppLoader.fontSmallNumbers.draw(batch,
"${0x7F.toChar()}X ${actor.externalForce.x}",
actor.hitbox.startX.toFloat(),
actor.hitbox.canonicalY.toFloat() + 4 + 8
)
- Terrarum.fontSmallNumbers.draw(batch,
+ AppLoader.fontSmallNumbers.draw(batch,
"${0x7F.toChar()}Y ${actor.externalForce.y}",
actor.hitbox.startX.toFloat(),
actor.hitbox.canonicalY.toFloat() + 4 + 8 * 2
diff --git a/src/net/torvald/terrarum/GlslTilingTest.kt b/src/net/torvald/terrarum/GlslTilingTest.kt
index 018202bfd..09bce12c3 100644
--- a/src/net/torvald/terrarum/GlslTilingTest.kt
+++ b/src/net/torvald/terrarum/GlslTilingTest.kt
@@ -60,7 +60,7 @@ object GlslTilingTest : ApplicationAdapter() {
//ErrorDisp.title = "Error in shader ${shader.vertexShaderSource}"
//ErrorDisp.text = shader.log.split('\n')
- //AppLoader.getINSTANCE().setScreen(ErrorDisp)
+ //AppLoader.setScreen(ErrorDisp)
System.exit(1)
}
diff --git a/src/net/torvald/terrarum/LoadScreen.kt b/src/net/torvald/terrarum/LoadScreen.kt
index d8d703bbf..a5f04aacf 100644
--- a/src/net/torvald/terrarum/LoadScreen.kt
+++ b/src/net/torvald/terrarum/LoadScreen.kt
@@ -8,8 +8,8 @@ import com.badlogic.gdx.graphics.Pixmap
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.jme3.math.FastMath
-import net.torvald.util.HistoryArray
import net.torvald.terrarum.langpack.Lang
+import net.torvald.util.HistoryArray
/**
* Created by minjaesong on 2017-07-13.
@@ -97,10 +97,10 @@ object LoadScreen : ScreenAdapter() {
textFbo = FrameBuffer(
Pixmap.Format.RGBA4444,
maxOf(
- Terrarum.fontGame.getWidth(Lang["MENU_IO_LOADING"]),
- Terrarum.fontGame.getWidth(Lang["ERROR_GENERIC_TEXT"])
+ AppLoader.fontGame.getWidth(Lang["MENU_IO_LOADING"]),
+ AppLoader.fontGame.getWidth(Lang["ERROR_GENERIC_TEXT"])
),
- Terrarum.fontGame.lineHeight.toInt(),
+ AppLoader.fontGame.lineHeight.toInt(),
true
)
@@ -122,7 +122,7 @@ object LoadScreen : ScreenAdapter() {
override fun render(delta: Float) {
val delta = Gdx.graphics.rawDeltaTime
- glideDispY = Terrarum.HEIGHT - 100f - Terrarum.fontGame.lineHeight
+ glideDispY = Terrarum.HEIGHT - 100f - AppLoader.fontGame.lineHeight
arrowObjGlideSize = arrowObjTex.width + 2f * Terrarum.WIDTH
@@ -155,7 +155,7 @@ object LoadScreen : ScreenAdapter() {
val textToPrint = if (errorTrapped) Lang["ERROR_GENERIC_TEXT"] else Lang["MENU_IO_LOADING"]
- val textWidth = Terrarum.fontGame.getWidth(textToPrint).toFloat()
+ val textWidth = AppLoader.fontGame.getWidth(textToPrint).toFloat()
if (!doContextChange) {
// draw text to FBO
@@ -164,20 +164,20 @@ object LoadScreen : ScreenAdapter() {
blendNormal(Terrarum.batch)
- Terrarum.fontGame
+ AppLoader.fontGame
it.color = Color.WHITE
- Terrarum.fontGame.draw(it, textToPrint, ((textFbo.width - textWidth) / 2).toInt().toFloat(), 0f)
+ AppLoader.fontGame.draw(it, textToPrint, ((textFbo.width - textWidth) / 2).toInt().toFloat(), 0f)
blendMul(Terrarum.batch)
// draw colour overlay, flipped
it.draw(textOverlayTex,
(textFbo.width - textWidth) / 2f,
- Terrarum.fontGame.lineHeight,
+ AppLoader.fontGame.lineHeight,
textWidth,
- -Terrarum.fontGame.lineHeight
+ -AppLoader.fontGame.lineHeight
)
}
}
@@ -234,15 +234,15 @@ object LoadScreen : ScreenAdapter() {
// message backgrounds
it.color = messageBackgroundColour
- it.fillRect(0f, 60f, Terrarum.WIDTH.toFloat(), 40f + (messages.size) * Terrarum.fontGame.lineHeight)
+ it.fillRect(0f, 60f, Terrarum.WIDTH.toFloat(), 40f + (messages.size) * AppLoader.fontGame.lineHeight)
// log messages
it.color = messageForegroundColour
for (i in 0 until messages.elemCount) {
- Terrarum.fontGame.draw(it,
+ AppLoader.fontGame.draw(it,
messages[i] ?: "",
AppLoader.getTvSafeGraphicsWidth() + 16f,
- 80f + (messages.size - i - 1) * Terrarum.fontGame.lineHeight
+ 80f + (messages.size - i - 1) * AppLoader.fontGame.lineHeight
)
}
}
@@ -259,15 +259,15 @@ object LoadScreen : ScreenAdapter() {
// message backgrounds
it.color = messageBackgroundColour
- it.fillRect(0f, 60f, Terrarum.WIDTH.toFloat(), 40f + (messages.size) * Terrarum.fontGame.lineHeight)
+ it.fillRect(0f, 60f, Terrarum.WIDTH.toFloat(), 40f + (messages.size) * AppLoader.fontGame.lineHeight)
// log messages
it.color = messageForegroundColour
for (i in 0 until messages.elemCount) {
- Terrarum.fontGame.draw(it,
+ AppLoader.fontGame.draw(it,
messages[i] ?: "",
AppLoader.getTvSafeGraphicsWidth() + 16f,
- 80f + (messages.size - i - 1) * Terrarum.fontGame.lineHeight
+ 80f + (messages.size - i - 1) * AppLoader.fontGame.lineHeight
)
}
}
@@ -276,7 +276,7 @@ object LoadScreen : ScreenAdapter() {
Thread.sleep(80)
- Terrarum.setScreen(screenToLoad!!)
+ AppLoader.setScreen(screenToLoad!!)
}
}
diff --git a/src/net/torvald/terrarum/MusicComposerApp.java b/src/net/torvald/terrarum/MusicComposerApp.java
new file mode 100644
index 000000000..718e1d57d
--- /dev/null
+++ b/src/net/torvald/terrarum/MusicComposerApp.java
@@ -0,0 +1,61 @@
+package net.torvald.terrarum;
+
+import com.badlogic.gdx.ApplicationAdapter;
+import com.badlogic.gdx.Files;
+import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
+import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
+import com.badlogic.gdx.graphics.Texture;
+import net.torvald.terrarumsansbitmap.gdx.GameFontBase;
+
+import java.io.File;
+
+/**
+ * Created by minjaesong on 2019-06-27.
+ */
+public class MusicComposerApp extends ApplicationAdapter {
+
+ public static LwjglApplicationConfiguration appConfig;
+ public static GameFontBase fontGame;
+
+ public MusicComposerApp(LwjglApplicationConfiguration appConfig) {
+ this.appConfig = appConfig;
+ }
+
+ public void main(String[] args) {
+
+ LwjglApplicationConfiguration appConfig = new LwjglApplicationConfiguration();
+ appConfig.useGL30 = true; // utilising some GL trickeries, need this to be TRUE
+ appConfig.resizable = false;//true;
+ //appConfig.width = 1110; // photographic ratio (1.5:1)
+ //appConfig.height = 740; // photographic ratio (1.5:1)
+ appConfig.width = 1000;;;
+ appConfig.height = 666;
+ appConfig.backgroundFPS = 9999;
+ appConfig.foregroundFPS = 9999;
+ appConfig.title = "Speelklok";
+ appConfig.forceExit = false;
+
+ // load app icon
+ int[] appIconSizes = new int[]{256,128,64,32,16};
+ for (int size : appIconSizes) {
+ String name = "assets/appicon" + size + ".png";
+ if (new File("./" + name).exists()) {
+ appConfig.addIcon(name, Files.FileType.Internal);
+ }
+ }
+
+ new LwjglApplication(new MusicComposerApp(appConfig), appConfig);
+ }
+
+ @Override
+ public void create() {
+ fontGame = new GameFontBase("assets/graphics/fonts/terrarum-sans-bitmap", false, true,
+ Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest, false, 256, false
+ );
+ }
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ }
+}
diff --git a/src/net/torvald/terrarum/MusicComposerStandalone.kt b/src/net/torvald/terrarum/MusicComposerStandalone.kt
new file mode 100644
index 000000000..60410906a
--- /dev/null
+++ b/src/net/torvald/terrarum/MusicComposerStandalone.kt
@@ -0,0 +1,7 @@
+package net.torvald.terrarum
+
+/**
+ * Created by minjaesong on 2019-06-27.
+ */
+class MusicComposerStandalone {
+}
\ No newline at end of file
diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt
index 070d28e5b..31bbd78dc 100644
--- a/src/net/torvald/terrarum/Terrarum.kt
+++ b/src/net/torvald/terrarum/Terrarum.kt
@@ -10,21 +10,17 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShapeRenderer
import com.badlogic.gdx.utils.Disposable
-import com.badlogic.gdx.utils.GdxRuntimeException
import com.jme3.math.FastMath
import net.torvald.random.HQRNG
import net.torvald.terrarum.AppLoader.*
-import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ActorID
-import net.torvald.terrarum.imagefont.TinyAlphNum
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import net.torvald.terrarum.worlddrawer.WorldCamera
import net.torvald.terrarumsansbitmap.gdx.GameFontBase
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.util.CircularArray
-import org.lwjgl.BufferUtils
import java.io.File
import kotlin.math.absoluteValue
@@ -38,15 +34,15 @@ typealias RGBA8888 = Int
*
* LibGDX Version Created by minjaesong on 2017-06-15.
*/
-object Terrarum : Screen, Disposable {
+object Terrarum : Disposable {
/**
* All singleplayer "Player" must have this exact reference ID.
*/
const val PLAYER_REF_ID: Int = 0x91A7E2
- lateinit var batch: SpriteBatch
- lateinit var shapeRender: ShapeRenderer // DO NOT USE!! for very limited applications e.g. WeatherMixer
+ var batch: SpriteBatch = AppLoader.batch
+ var shapeRender: ShapeRenderer = AppLoader.shapeRender // DO NOT USE!! for very limited applications e.g. WeatherMixer
inline fun inShapeRenderer(shapeRendererType: ShapeRenderer.ShapeType = ShapeRenderer.ShapeType.Filled, action: (ShapeRenderer) -> Unit) {
shapeRender.begin(shapeRendererType)
action(shapeRender)
@@ -85,6 +81,7 @@ object Terrarum : Screen, Disposable {
/** Current ingame instance the game is holding */
var ingame: IngameInstance? = null
+ private set
private val javaHeapCircularArray = CircularArray(64)
private val nativeHeapCircularArray = CircularArray(64)
@@ -118,11 +115,6 @@ object Terrarum : Screen, Disposable {
}
-
-
- val fontGame: GameFontBase = AppLoader.fontGame
- val fontSmallNumbers: TinyAlphNum = AppLoader.fontSmallNumbers
-
// 0x0 - 0xF: Game-related
// 0x10 - 0x1F: Config
// 0x100 and onward: unit tests for dev
@@ -144,20 +136,6 @@ object Terrarum : Screen, Disposable {
val STATE_ID_TOOL_NOISEGEN = 0x200
val STATE_ID_TOOL_RUMBLE_DIAGNOSIS = 0x201
- /** Available CPU threads */
- val THREADS = ThreadParallel.threadCount //Runtime.getRuntime().availableProcessors() + 1
-
- /**
- * If the game is multithreading.
- * True if:
- *
- * THREADS >= 2 and config "multithread" is true
- */
- val MULTITHREAD: Boolean
- get() = THREADS >= 3 && getConfigBoolean("multithread")
-
- const val NAME = AppLoader.GAME_NAME
-
lateinit var testTexture: Texture
@@ -170,7 +148,7 @@ object Terrarum : Screen, Disposable {
println("[Terrarum] init called by:")
Thread.currentThread().stackTrace.forEach { println("... $it") }
- println("[Terrarum] $NAME version ${AppLoader.getVERSION_STRING()}")
+ println("[Terrarum] ${AppLoader.GAME_NAME} version ${AppLoader.getVERSION_STRING()}")
println("[Terrarum] LibGDX version ${com.badlogic.gdx.Version.VERSION}")
@@ -193,6 +171,11 @@ object Terrarum : Screen, Disposable {
}
+ @JvmStatic fun initialise() {
+ // dummy init method
+ }
+
+
val RENDER_FPS = getConfigInt("displayfps")
val USE_VSYNC = getConfigBoolean("usevsync")
var VSYNC = USE_VSYNC
@@ -202,7 +185,7 @@ object Terrarum : Screen, Disposable {
Gdx.graphics.glVersion.minorVersion * 10 +
Gdx.graphics.glVersion.releaseVersion
val MINIMAL_GL_VERSION = 210
- val GL_MAX_TEXTURE_SIZE: Int
+ /*val GL_MAX_TEXTURE_SIZE: Int
get() {
val intBuffer = BufferUtils.createIntBuffer(16) // size must be at least 16, or else LWJGL complains
Gdx.gl.glGetIntegerv(GL20.GL_MAX_TEXTURE_SIZE, intBuffer)
@@ -211,33 +194,28 @@ object Terrarum : Screen, Disposable {
return intBuffer.get()
}
- val MINIMAL_GL_MAX_TEXTURE_SIZE = 4096
+ val MINIMAL_GL_MAX_TEXTURE_SIZE = 4096*/
- override fun show() {
+ fun setCurrentIngameInstance(ingame: IngameInstance) {
+ this.ingame = ingame
+
+ printdbg(this, "Accepting new ingame instance '${ingame.javaClass.canonicalName}', called by:")
+ Thread.currentThread().stackTrace.forEach { printdbg(this, it) }
+ }
+
+ private fun showxxx() {
testTexture = Texture(Gdx.files.internal("./assets/test_texture.tga"))
- val glInfo = Gdx.graphics.glVersion.debugVersionString
-
- println("GL_VERSION = $GL_VERSION")
- println("GL_MAX_TEXTURE_SIZE = $GL_MAX_TEXTURE_SIZE")
- println("GL info:\n$glInfo") // debug info
-
-
- if (GL_VERSION < MINIMAL_GL_VERSION || GL_MAX_TEXTURE_SIZE < MINIMAL_GL_MAX_TEXTURE_SIZE) {
- // TODO notify properly
- throw GdxRuntimeException("Graphics device not capable -- device's GL_VERSION: $GL_VERSION, required: $MINIMAL_GL_VERSION; GL_MAX_TEXTURE_SIZE: $GL_MAX_TEXTURE_SIZE, required: $MINIMAL_GL_MAX_TEXTURE_SIZE")
- }
-
// resize fullscreen quad?
TextureRegionPack.globalFlipY = true // !! TO MAKE LEGACY CODE RENDER ON ITS POSITION !!
Gdx.graphics.isContinuousRendering = true
- batch = SpriteBatch()
- shapeRender = ShapeRenderer()
+ //batch = SpriteBatch()
+ //shapeRender = ShapeRenderer()
AppLoader.GAME_LOCALE = getConfigString("language")
@@ -257,25 +235,7 @@ object Terrarum : Screen, Disposable {
// title screen
- AppLoader.getINSTANCE().setScreen(TitleScreen(batch))
- }
-
- fun setScreen(screen: Screen) {
- AppLoader.getINSTANCE().setScreen(screen)
- }
-
- override fun render(delta: Float) {
- AppLoader.setDebugTime("GDX.rawDelta", Gdx.graphics.rawDeltaTime.times(1000_000_000f).toLong())
- AppLoader.setDebugTime("GDX.smtDelta", Gdx.graphics.deltaTime.times(1000_000_000f).toLong())
- AppLoader.getINSTANCE().screen.render(delta)
- }
-
- override fun pause() {
- AppLoader.getINSTANCE().screen.pause()
- }
-
- override fun resume() {
- AppLoader.getINSTANCE().screen.resume()
+ AppLoader.setScreen(TitleScreen(batch))
}
/** Don't call this! Call AppLoader.dispose() */
@@ -284,16 +244,13 @@ object Terrarum : Screen, Disposable {
ingame?.dispose()
}
- override fun hide() {
- AppLoader.getINSTANCE().screen.hide()
- }
/** For the actual resize, call AppLoader.resize() */
- override fun resize(width: Int, height: Int) {
+ /*fun resize(width: Int, height: Int) {
ingame?.resize(width, height)
printdbg(this, "newsize: ${Gdx.graphics.width}x${Gdx.graphics.height} | internal: ${width}x$height")
- }
+ }*/
diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt
index 7fbcc55da..c0e63387c 100644
--- a/src/net/torvald/terrarum/TitleScreen.kt
+++ b/src/net/torvald/terrarum/TitleScreen.kt
@@ -2,7 +2,6 @@ package net.torvald.terrarum
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.InputAdapter
-import com.badlogic.gdx.Screen
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.Pixmap
@@ -20,8 +19,8 @@ import net.torvald.terrarum.gameactors.ai.ActorAI
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.fmod
import net.torvald.terrarum.langpack.Lang
-import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.modulebasegame.IngameRenderer
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.HumanoidNPC
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
import net.torvald.terrarum.modulebasegame.gameworld.WorldTime
@@ -35,7 +34,9 @@ import net.torvald.terrarum.worlddrawer.WorldCamera
/**
* Created by minjaesong on 2017-09-02.
*/
-class TitleScreen(val batch: SpriteBatch) : Screen {
+class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) {
+
+ // todo register titlescreen as the ingame, similar in a way that the buildingmaker did
var camera = OrthographicCamera(Terrarum.WIDTH.toFloat(), Terrarum.HEIGHT.toFloat())
@@ -229,7 +230,7 @@ class TitleScreen(val batch: SpriteBatch) : Screen {
}
fun renderScreen() {
- Gdx.graphics.setTitle(Ingame.getCanonicalTitle())
+ Gdx.graphics.setTitle(TerrarumIngame.getCanonicalTitle())
//camera.setToOrtho(true, Terrarum.WIDTH.toFloat(), Terrarum.HEIGHT.toFloat())
@@ -267,16 +268,16 @@ class TitleScreen(val batch: SpriteBatch) : Screen {
)
COPYTING.forEachIndexed { index, s ->
- val textWidth = Terrarum.fontGame.getWidth(s)
- Terrarum.fontGame.draw(batch, s,
+ val textWidth = AppLoader.fontGame.getWidth(s)
+ AppLoader.fontGame.draw(batch, s,
(Terrarum.WIDTH - textWidth - 1f).toInt().toFloat(),
- (Terrarum.HEIGHT - Terrarum.fontGame.lineHeight * (COPYTING.size - index) - 1f).toInt().toFloat()
+ (Terrarum.HEIGHT - AppLoader.fontGame.lineHeight * (COPYTING.size - index) - 1f).toInt().toFloat()
)
}
- Terrarum.fontGame.draw(batch, "${AppLoader.GAME_NAME} ${AppLoader.getVERSION_STRING()}",
+ AppLoader.fontGame.draw(batch, "${AppLoader.GAME_NAME} ${AppLoader.getVERSION_STRING()}",
1f.toInt().toFloat(),
- (Terrarum.HEIGHT - Terrarum.fontGame.lineHeight - 1f).toInt().toFloat()
+ (Terrarum.HEIGHT - AppLoader.fontGame.lineHeight - 1f).toInt().toFloat()
)
}
@@ -317,7 +318,7 @@ class TitleScreen(val batch: SpriteBatch) : Screen {
fun setCameraPosition(newX: Float, newY: Float) {
- Ingame.setCameraPosition(batch, camera, newX, newY)
+ TerrarumIngame.setCameraPosition(batch, camera, newX, newY)
}
@@ -415,4 +416,5 @@ class TitleScreen(val batch: SpriteBatch) : Screen {
TODO("not implemented")
}
}
+
}
\ No newline at end of file
diff --git a/src/net/torvald/terrarum/UIItemInventoryElem.kt b/src/net/torvald/terrarum/UIItemInventoryElem.kt
index f56b5fff5..3325e85b5 100644
--- a/src/net/torvald/terrarum/UIItemInventoryElem.kt
+++ b/src/net/torvald/terrarum/UIItemInventoryElem.kt
@@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
@@ -104,7 +104,7 @@ class UIItemInventoryElem(
batch.color = item!!.nameColour mul if (mouseUp) mouseOverTextCol else inactiveTextCol
// draw name of the item
if (AppLoader.IS_DEVELOPMENT_BUILD) {
- Terrarum.fontGame.draw(batch,
+ AppLoader.fontGame.draw(batch,
// print static id, dynamic id, and count
"${item!!.originalID}/${item!!.dynamicID}" + (if (amount > 0 && item!!.stackable) "$fwsp($amountString)" else if (amount != 1) "$fwsp!!$amountString!!" else ""),
posX + textOffsetX,
@@ -112,7 +112,7 @@ class UIItemInventoryElem(
)
}
else {
- Terrarum.fontGame.draw(batch,
+ AppLoader.fontGame.draw(batch,
// print name and amount in parens
item!!.name + (if (amount > 0 && item!!.stackable) "$fwsp($amountString)" else if (amount != 1) "$fwsp!!$amountString!!" else "") +
// TEMPORARY print eqipped slot info as well
@@ -143,8 +143,8 @@ class UIItemInventoryElem(
if (quickslot != null) {
val label = quickslot!!.plus(0xE010).toChar()
- val labelW = Terrarum.fontGame.getWidth("$label")
- Terrarum.fontGame.draw(batch, "$label", barOffset + barFullLen - labelW, posY + textOffsetY)
+ val labelW = AppLoader.fontGame.getWidth("$label")
+ AppLoader.fontGame.draw(batch, "$label", barOffset + barFullLen - labelW, posY + textOffsetY)
}
}
@@ -156,7 +156,7 @@ class UIItemInventoryElem(
override fun keyDown(keycode: Int): Boolean {
if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_0..Input.Keys.NUM_9) {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return false
@@ -194,7 +194,7 @@ class UIItemInventoryElem(
TODO("Equip position is NULL, does this mean it's single-consume items like a potion? (from item: \"$item\" with itemID: ${item?.originalID}/${item?.dynamicID})")
}
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return false
diff --git a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt
index e704b8ae9..3543af14f 100644
--- a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt
+++ b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt
@@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
@@ -116,10 +116,10 @@ class UIItemInventoryElemSimple(
}
- Terrarum.fontSmallNumbers.draw(batch,
+ AppLoader.fontSmallNumbers.draw(batch,
amountString,
- posX + (width - Terrarum.fontSmallNumbers.getWidth(amountString)).toFloat(),
- posY + (height - Terrarum.fontSmallNumbers.H).toFloat()
+ posX + (width - AppLoader.fontSmallNumbers.getWidth(amountString)).toFloat(),
+ posY + (height - AppLoader.fontSmallNumbers.H).toFloat()
)
}
@@ -133,7 +133,7 @@ class UIItemInventoryElemSimple(
override fun keyDown(keycode: Int): Boolean {
if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_0..Input.Keys.NUM_9) {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return false
val inventory = player.inventory
@@ -168,7 +168,7 @@ class UIItemInventoryElemSimple(
// equip da shit
val itemEquipSlot = item!!.equipPosition
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return false
if (item != ItemCodex[player.inventory.itemEquipped.get(itemEquipSlot)]) { // if this item is unequipped, equip it
diff --git a/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt b/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt
index acdfaf214..6f0fbaa7e 100644
--- a/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt
+++ b/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt
@@ -15,7 +15,7 @@ import net.torvald.terrarum.worlddrawer.LightmapRenderer
*/
object BlockPropUtil {
var flickerFuncX: Second = 0f // saves current status (time) of func
- val flickerFuncDomain: Second = 0.1f // time between two noise sample
+ val flickerFuncDomain: Second = 0.08f // time between two noise sample
val flickerFuncRange = 0.012f // intensity [0, 1]
var breathFuncX = 0f
@@ -30,31 +30,27 @@ object BlockPropUtil {
var flickerP0 = getNewRandom()
var flickerP1 = getNewRandom()
- var flickerP2 = getNewRandom()
- var flickerP3 = getNewRandom()
init {
}
private fun getTorchFlicker(baseLum: Cvec): Cvec {
- val funcY = FastMath.interpolateCatmullRom(0.0f, flickerFuncX / flickerFuncDomain,
- flickerP0, flickerP1, flickerP2, flickerP3
- )
+ val funcY = FastMath.interpolateLinear(flickerFuncX / flickerFuncDomain, flickerP0, flickerP1)
- return LightmapRenderer.alterBrightnessUniform(baseLum, funcY)
+ return alterBrightnessUniform(baseLum, funcY)
}
private fun getSlowBreath(baseLum: Cvec): Cvec {
val funcY = FastMath.sin(FastMath.PI * breathFuncX / breathCycleDuration) * breathRange
- return LightmapRenderer.alterBrightnessUniform(baseLum, funcY)
+ return alterBrightnessUniform(baseLum, funcY)
}
private fun getPulsate(baseLum: Cvec): Cvec {
val funcY = FastMath.sin(FastMath.PI * pulsateFuncX / pulsateCycleDuration) * pulsateRange
- return LightmapRenderer.alterBrightnessUniform(baseLum, funcY)
+ return alterBrightnessUniform(baseLum, funcY)
}
/**
@@ -63,21 +59,17 @@ object BlockPropUtil {
internal fun dynamicLumFuncTickClock() {
// FPS-time compensation
if (Gdx.graphics.framesPerSecond > 0) {
- flickerFuncX += Gdx.graphics.rawDeltaTime * 1000f
- breathFuncX += Gdx.graphics.rawDeltaTime * 1000f
- pulsateFuncX += Gdx.graphics.rawDeltaTime * 1000f
+ flickerFuncX += Gdx.graphics.rawDeltaTime
+ breathFuncX += Gdx.graphics.rawDeltaTime
+ pulsateFuncX += Gdx.graphics.rawDeltaTime
}
// flicker-related vars
if (flickerFuncX > flickerFuncDomain) {
flickerFuncX -= flickerFuncDomain
- //flickerPatternThis = flickerPatternNext
- //flickerPatternNext = getNewRandom()
flickerP0 = flickerP1
- flickerP1 = flickerP2
- flickerP2 = flickerP3
- flickerP3 = getNewRandom()
+ flickerP1 = getNewRandom()
}
// breath-related vars
@@ -101,4 +93,20 @@ object BlockPropUtil {
else -> baseLum
}
}
+
+ /**
+ * Darken or brighten colour by 'brighten' argument
+ *
+ * @param data Raw channel value (0-255) per channel
+ * @param brighten (-1.0 - 1.0) negative means darkening
+ * @return processed colour
+ */
+ private fun alterBrightnessUniform(data: Cvec, brighten: Float): Cvec {
+ return Cvec(
+ data.r + brighten,
+ data.g + brighten,
+ data.b + brighten,
+ data.a + brighten
+ )
+ }
}
\ No newline at end of file
diff --git a/src/net/torvald/terrarum/blockstats/BlockStats.kt b/src/net/torvald/terrarum/blockstats/BlockStats.kt
index 4823f431a..8d281c0ac 100644
--- a/src/net/torvald/terrarum/blockstats/BlockStats.kt
+++ b/src/net/torvald/terrarum/blockstats/BlockStats.kt
@@ -3,7 +3,7 @@ package net.torvald.terrarum.blockstats
import com.jme3.math.FastMath
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameworld.GameWorld
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.worlddrawer.BlocksDrawer
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import java.util.*
@@ -26,7 +26,7 @@ object BlockStats {
// Get stats on no-zoomed screen area. In other words, will behave as if screen zoom were 1.0
// no matter how the screen is zoomed.
val map = (Terrarum.ingame!!.world)
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return
val renderWidth = FastMath.ceil(Terrarum.WIDTH.toFloat())
diff --git a/src/net/torvald/terrarum/blockstats/MinimapComposer.kt b/src/net/torvald/terrarum/blockstats/MinimapComposer.kt
index edf11fb54..95d5778d0 100644
--- a/src/net/torvald/terrarum/blockstats/MinimapComposer.kt
+++ b/src/net/torvald/terrarum/blockstats/MinimapComposer.kt
@@ -7,7 +7,6 @@ import com.badlogic.gdx.utils.GdxRuntimeException
import com.badlogic.gdx.utils.Queue
import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.AppLoader.printdbg
-import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.worlddrawer.BlocksDrawer
@@ -60,7 +59,7 @@ object MinimapComposer : Disposable {
private val liveTilesMeta = Array(TILES_IN_X * TILES_IN_Y) { LiveTileMeta(revalidate = true) }
private val updaterQueue = Queue(TILES_IN_X * TILES_IN_Y * 2)
- private var currentThreads = Array(maxOf(1, Terrarum.THREADS.times(2).div(3))) {
+ private var currentThreads = Array(maxOf(1, AppLoader.THREADS.times(2).div(3))) {
Thread()
}
diff --git a/src/net/torvald/terrarum/console/Version.kt b/src/net/torvald/terrarum/console/Version.kt
index fd919c964..b9af9b391 100644
--- a/src/net/torvald/terrarum/console/Version.kt
+++ b/src/net/torvald/terrarum/console/Version.kt
@@ -11,7 +11,7 @@ import net.torvald.terrarum.langpack.Lang
internal object Version : ConsoleCommand {
override fun execute(args: Array) {
- Echo("${Terrarum.NAME} ${AppLoader.getVERSION_STRING()}")
+ Echo("${AppLoader.GAME_NAME} ${AppLoader.getVERSION_STRING()}")
Echo("Polyglot language pack version ${Lang.POLYGLOT_VERSION}")
Echo("GL_VERSION: ${Terrarum.GL_VERSION}")
Echo("Renderer: ${Gdx.graphics.glVersion.rendererString}, ${Gdx.graphics.glVersion.vendorString}")
diff --git a/src/net/torvald/terrarum/gamecontroller/IngameController.kt b/src/net/torvald/terrarum/gamecontroller/IngameController.kt
index 907c7ae63..5594a11ca 100644
--- a/src/net/torvald/terrarum/gamecontroller/IngameController.kt
+++ b/src/net/torvald/terrarum/gamecontroller/IngameController.kt
@@ -10,14 +10,14 @@ import net.torvald.terrarum.controller.TerrarumController
import net.torvald.terrarum.floorInt
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameworld.fmod
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import net.torvald.terrarum.worlddrawer.WorldCamera
/**
* Created by minjaesong on 2015-12-31.
*/
-class IngameController(val ingame: Ingame) : InputAdapter() {
+class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() {
val hasGamepad: Boolean
@@ -29,10 +29,10 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise) */
val mouseX: Float
- get() = WorldCamera.x + Gdx.input.x / (ingame.screenZoom)
+ get() = WorldCamera.x + Gdx.input.x / (terrarumIngame.screenZoom)
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise)*/
val mouseY: Float
- get() = WorldCamera.y + Gdx.input.y / (ingame.screenZoom)
+ get() = WorldCamera.y + Gdx.input.y / (terrarumIngame.screenZoom)
/** currently pointing tile coordinate */
val mouseTileX: Int
get() = (mouseX / CreateTileAtlas.TILE_SIZE).floorInt()
@@ -54,14 +54,14 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
// Use item: assuming the player has only one effective grip (EquipPosition.HAND_GRIP)
// don't separate Player from this! Physics will break, esp. airborne manoeuvre
- if (ingame.canPlayerControl) {
+ if (terrarumIngame.canPlayerControl) {
// fire world click events; the event is defined as Ingame's (or any others') WorldClick event
- if (ingame.uiContainer.map { if ((it.isOpening || it.isOpened) && it.mouseUp) 1 else 0 }.sum() == 0) { // no UI on the mouse, right?
+ if (terrarumIngame.uiContainer.map { if ((it.isOpening || it.isOpened) && it.mouseUp) 1 else 0 }.sum() == 0) { // no UI on the mouse, right?
if (
Gdx.input.isButtonPressed(AppLoader.getConfigInt("mouseprimary")) ||
Gdx.input.isButtonPressed(AppLoader.getConfigInt("mousesecondary"))) {
- ingame.worldPrimaryClickStart(AppLoader.UPDATE_RATE.toFloat())
+ terrarumIngame.worldPrimaryClickStart(AppLoader.UPDATE_RATE.toFloat())
}
/*if Gdx.input.isButtonPressed(AppLoader.getConfigInt("mousesecondary")) {
ingame.worldSecondaryClickStart(AppLoader.UPDATE_RATE.toFloat())
@@ -79,35 +79,35 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
override fun keyDown(keycode: Int): Boolean {
- if (ingame.canPlayerControl) {
- ingame.actorNowPlaying?.keyDown(keycode)
+ if (terrarumIngame.canPlayerControl) {
+ terrarumIngame.actorNowPlaying?.keyDown(keycode)
// quickslot by number keys
val quickslotKeys = AppLoader.getConfigIntArray("keyquickslots")
if (keycode in quickslotKeys) {
- ingame.actorNowPlaying?.actorValue?.set(AVKey.__PLAYER_QUICKSLOTSEL, quickslotKeys.indexOf(keycode))
+ terrarumIngame.actorNowPlaying?.actorValue?.set(AVKey.__PLAYER_QUICKSLOTSEL, quickslotKeys.indexOf(keycode))
}
// pie menu
if (AppLoader.getConfigIntArray("keyquickselalt").contains(keycode)
|| keycode == AppLoader.getConfigInt("keyquicksel")) {
- ingame.uiPieMenu.setAsOpen()
- ingame.uiQuickBar.setAsClose()
+ terrarumIngame.uiPieMenu.setAsOpen()
+ terrarumIngame.uiQuickBar.setAsClose()
}
}
- ingame.uiContainer.forEach { it.keyDown(keycode) } // for KeyboardControlled UIcanvases
+ terrarumIngame.uiContainer.forEach { it.keyDown(keycode) } // for KeyboardControlled UIcanvases
// Debug UIs
if (keycode == Input.Keys.GRAVE) {
- ingame.consoleHandler.toggleOpening()
+ terrarumIngame.consoleHandler.toggleOpening()
}
// screenshot key
if (keycode == Input.Keys.F12 && !f12Down) {
AppLoader.requestScreenshot()
- ingame.sendNotification("Screenshot taken")
+ terrarumIngame.sendNotification("Screenshot taken")
f12Down = true
println("Screenshot taken.")
}
@@ -118,11 +118,11 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
override fun keyUp(keycode: Int): Boolean {
if (AppLoader.getConfigIntArray("keyquickselalt").contains(keycode)
|| keycode == AppLoader.getConfigInt("keyquicksel")) {
- ingame.uiPieMenu.setAsClose()
- ingame.uiQuickBar.setAsOpen()
+ terrarumIngame.uiPieMenu.setAsClose()
+ terrarumIngame.uiQuickBar.setAsOpen()
}
- ingame.uiContainer.forEach { it.keyUp(keycode) } // for KeyboardControlled UIcanvases
+ terrarumIngame.uiContainer.forEach { it.keyUp(keycode) } // for KeyboardControlled UIcanvases
// screenshot key
@@ -133,25 +133,25 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
}
override fun keyTyped(character: Char): Boolean {
- ingame.uiContainer.forEach { if (it.isVisible) it.keyTyped(character) }
+ terrarumIngame.uiContainer.forEach { if (it.isVisible) it.keyTyped(character) }
return true
}
override fun mouseMoved(screenX: Int, screenY: Int): Boolean {
- ingame.uiContainer.forEach { it.mouseMoved(screenX, screenY) }
+ terrarumIngame.uiContainer.forEach { it.mouseMoved(screenX, screenY) }
return true
}
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
// don't separate Player from this! Physics will break, esp. airborne manoeuvre
- if (ingame.canPlayerControl) {
+ if (terrarumIngame.canPlayerControl) {
// fire world click events; the event is defined as Ingame's (or any others') WorldClick event
- if (ingame.uiContainer.map { if ((it.isOpening || it.isOpened) && it.mouseUp) 1 else 0 }.sum() == 0) { // no UI on the mouse, right?
+ if (terrarumIngame.uiContainer.map { if ((it.isOpening || it.isOpened) && it.mouseUp) 1 else 0 }.sum() == 0) { // no UI on the mouse, right?
if (
button == AppLoader.getConfigInt("mouseprimary") ||
button == AppLoader.getConfigInt("mousesecondary")) {
- ingame.worldPrimaryClickEnd(AppLoader.UPDATE_RATE.toFloat())
+ terrarumIngame.worldPrimaryClickEnd(AppLoader.UPDATE_RATE.toFloat())
}
/*if (button == AppLoader.getConfigInt("mousesecondary")) {
ingame.worldSecondaryClickEnd(AppLoader.UPDATE_RATE.toFloat())
@@ -160,33 +160,33 @@ class IngameController(val ingame: Ingame) : InputAdapter() {
}
- ingame.uiContainer.forEach { it.touchUp(screenX, screenY, pointer, button) } // for MouseControlled UIcanvases
+ terrarumIngame.uiContainer.forEach { it.touchUp(screenX, screenY, pointer, button) } // for MouseControlled UIcanvases
return true
}
override fun scrolled(amount: Int): Boolean {
- if (ingame.canPlayerControl) {
+ if (terrarumIngame.canPlayerControl) {
// quickslot by wheel
- if (ingame.actorNowPlaying != null) {
- ingame.actorNowPlaying!!.actorValue.set(
+ if (terrarumIngame.actorNowPlaying != null) {
+ terrarumIngame.actorNowPlaying!!.actorValue.set(
AVKey.__PLAYER_QUICKSLOTSEL,
- (ingame.actorNowPlaying!!.actorValue.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL)!! - amount) fmod ingame.actorNowPlaying!!.inventory.quickSlot.size
+ (terrarumIngame.actorNowPlaying!!.actorValue.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL)!! - amount) fmod terrarumIngame.actorNowPlaying!!.inventory.quickSlot.size
)
}
}
- ingame.uiContainer.forEach { it.scrolled(amount) }
+ terrarumIngame.uiContainer.forEach { it.scrolled(amount) }
return true
}
override fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
- ingame.uiContainer.forEach { it.touchDragged(screenX, screenY, pointer) }
+ terrarumIngame.uiContainer.forEach { it.touchDragged(screenX, screenY, pointer) }
return true
}
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
- ingame.uiContainer.forEach { it.touchDown(screenX, screenY, pointer, button) }
+ terrarumIngame.uiContainer.forEach { it.touchDown(screenX, screenY, pointer, button) }
return true
}
diff --git a/src/net/torvald/terrarum/gameworld/BlockLayer.kt b/src/net/torvald/terrarum/gameworld/BlockLayer.kt
index ac9a844cc..32b195e46 100644
--- a/src/net/torvald/terrarum/gameworld/BlockLayer.kt
+++ b/src/net/torvald/terrarum/gameworld/BlockLayer.kt
@@ -140,7 +140,7 @@ open class BlockLayer(val width: Int, val height: Int) : Disposable {
override fun dispose() {
ptr.destroy()
//directByteBuffer.clear()
- printdbg(this, "BlockLayer successfully freed")
+ printdbg(this, "BlockLayer with ptr ($ptr) successfully freed")
}
companion object {
diff --git a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt
index e69322cba..151e41236 100644
--- a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt
+++ b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt
@@ -8,7 +8,7 @@ import net.torvald.terrarum.blockproperties.Fluid
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.gameitem.ItemID
import net.torvald.terrarum.gameworld.GameWorld
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
import net.torvald.terrarum.worlddrawer.BlocksDrawer
import java.util.*
@@ -195,7 +195,7 @@ object ItemCodex {
}
override fun startPrimaryUse(delta: Float): Boolean {
- val ingame = Terrarum.ingame!! as Ingame // must be in here
+ val ingame = Terrarum.ingame!! as TerrarumIngame // must be in here
ingame.world.setFluid(Terrarum.mouseTileX, Terrarum.mouseTileY, Fluid.WATER, 4f)
return true
}
@@ -222,7 +222,7 @@ object ItemCodex {
}
override fun startPrimaryUse(delta: Float): Boolean {
- val ingame = Terrarum.ingame!! as Ingame // must be in here
+ val ingame = Terrarum.ingame!! as TerrarumIngame // must be in here
ingame.world.setFluid(Terrarum.mouseTileX, Terrarum.mouseTileY, Fluid.LAVA, 4f)
return true
}
@@ -257,7 +257,7 @@ object ItemCodex {
return dynamicItemDescription[code]!!
}
else {
- val a = (Terrarum.ingame!! as Ingame).getActorByID(code) // actor item
+ val a = (Terrarum.ingame!! as TerrarumIngame).getActorByID(code) // actor item
if (a is CanBeAnItem) return a.itemData
return null
diff --git a/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt b/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt
index 80c27149e..e38f64b5b 100644
--- a/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt
+++ b/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt
@@ -2,7 +2,6 @@ package net.torvald.terrarum.itemproperties
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.ai.toLua
-import net.torvald.terrarum.modulebasegame.Ingame
import org.luaj.vm2.Globals
import org.luaj.vm2.LuaTable
import org.luaj.vm2.LuaValue
diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt
index 3b798d671..e2c79f8d6 100644
--- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt
+++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt
@@ -318,7 +318,7 @@ class BuildingMaker(batch: SpriteBatch) : IngameInstance(batch) {
private var updateAkku = 0.0
override fun render(delta: Float) {
- Gdx.graphics.setTitle(Ingame.getCanonicalTitle())
+ Gdx.graphics.setTitle(TerrarumIngame.getCanonicalTitle())
// ASYNCHRONOUS UPDATE AND RENDER //
@@ -590,7 +590,7 @@ class MovableWorldCamera(val parent: BuildingMaker) : ActorHumanoid(0, usePhysic
class YamlCommandExit : YamlInvokable {
override fun invoke(args: Array) {
- Terrarum.setScreen(TitleScreen(Terrarum.batch))
+ AppLoader.setScreen(TitleScreen(Terrarum.batch))
}
}
diff --git a/src/net/torvald/terrarum/modulebasegame/Ingame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt
similarity index 98%
rename from src/net/torvald/terrarum/modulebasegame/Ingame.kt
rename to src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt
index dac1e5ad7..e8a7c29bc 100644
--- a/src/net/torvald/terrarum/modulebasegame/Ingame.kt
+++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt
@@ -39,10 +39,12 @@ import java.util.concurrent.locks.ReentrantLock
/**
+ * Ingame instance for the game Terrarum.
+ *
* Created by minjaesong on 2017-06-16.
*/
-open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
+open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) {
private val ACTOR_UPDATE_RANGE = 4096
@@ -240,7 +242,7 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
printdbg(this, "loaded successfully.")
}
else {
- LoadScreen.addMessage("${Terrarum.NAME} version ${AppLoader.getVERSION_STRING()}")
+ LoadScreen.addMessage("${AppLoader.GAME_NAME} version ${AppLoader.getVERSION_STRING()}")
LoadScreen.addMessage("Creating new world")
@@ -416,7 +418,7 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
///////////////
// prod code //
///////////////
- private class ThreadIngameUpdate(val ingame: Ingame): Runnable {
+ private class ThreadIngameUpdate(val terrarumIngame: TerrarumIngame): Runnable {
override fun run() {
TODO()
}
@@ -425,6 +427,8 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
private var updateAkku = 0.0
override fun render(delta: Float) {
+ println("Vitun Perkeleen TerrarumIngame")
+
// Q&D solution for LoadScreen and Ingame, where while LoadScreen is working, Ingame now no longer has GL Context
// there's still things to load which needs GL context to be present
if (!gameFullyLoaded) {
@@ -660,12 +664,12 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
if (false) { // don't multithread this for now, it's SLOWER //if (Terrarum.MULTITHREAD && actorContainerActive.size > Terrarum.THREADS) {
val actors = actorContainerActive.size.toFloat()
// set up indices
- for (i in 0..Terrarum.THREADS - 1) {
+ for (i in 0..AppLoader.THREADS - 1) {
ThreadParallel.map(
i, "ActorUpdate",
ThreadActorUpdate(
- actors.div(Terrarum.THREADS).times(i).roundInt(),
- actors.div(Terrarum.THREADS).times(i + 1).roundInt() - 1
+ actors.div(AppLoader.THREADS).times(i).roundInt(),
+ actors.div(AppLoader.THREADS).times(i + 1).roundInt() - 1
)
)
}
diff --git a/src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt b/src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt
index 41ebe9182..7fb93cb57 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt
@@ -4,7 +4,7 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.debuggerapp.ActorValueTracker
import java.util.*
@@ -16,7 +16,7 @@ internal object AVTracker : ConsoleCommand {
override fun execute(args: Array) {
if (args.size < 2) {
- jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as Ingame).actorNowPlaying))
+ jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as TerrarumIngame).actorNowPlaying))
}
else {
try {
diff --git a/src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt b/src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt
index afb68ec97..a00c4c01a 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt
@@ -4,7 +4,7 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.debuggerapp.ActorsLister
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import java.util.*
/**
@@ -15,8 +15,8 @@ internal object ActorsList : ConsoleCommand {
override fun execute(args: Array) {
jPanelInstances.add(ActorsLister(
- (Terrarum.ingame!! as Ingame).actorContainerActive,
- (Terrarum.ingame!! as Ingame).actorContainerInactive)
+ (Terrarum.ingame!! as TerrarumIngame).actorContainerActive,
+ (Terrarum.ingame!! as TerrarumIngame).actorContainerInactive)
)
}
diff --git a/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt b/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt
index deb611823..97d216753 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt
@@ -2,12 +2,12 @@ package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
object CheatWarnTest : ConsoleCommand {
override fun execute(args: Array) {
- (Terrarum.ingame as? Ingame)?.uiCheatMotherfuckerNootNoot?.setAsOpen()
+ (Terrarum.ingame as? TerrarumIngame)?.uiCheatMotherfuckerNootNoot?.setAsOpen()
}
override fun printUsage() {
diff --git a/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt
index 75ca928a7..49d2adde6 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt
@@ -5,7 +5,7 @@ import net.torvald.terrarum.utils.JsonWriter
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import java.io.IOException
@@ -16,7 +16,7 @@ internal object ExportAV : ConsoleCommand {
override fun execute(args: Array) {
if (args.size == 2) {
try {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return
JsonWriter.writeToFile(
diff --git a/src/net/torvald/terrarum/modulebasegame/console/GetAV.kt b/src/net/torvald/terrarum/modulebasegame/console/GetAV.kt
index 70aae284c..b08e2f168 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/GetAV.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/GetAV.kt
@@ -5,7 +5,7 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-01-19.
@@ -14,8 +14,8 @@ internal object GetAV : ConsoleCommand {
override fun execute(args: Array) {
try {
- val ingame = Terrarum.ingame!! as Ingame
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val ingame = Terrarum.ingame!! as TerrarumIngame
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return
diff --git a/src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt b/src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt
index 4725fcbfe..04c1c10e9 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt
@@ -4,7 +4,7 @@ import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.utils.JsonWriter
import java.io.BufferedWriter
import java.io.FileWriter
@@ -20,7 +20,7 @@ internal object GsonTest : ConsoleCommand {
val jsonBuilder = JsonWriter.getJsonBuilder()
- val jsonString = jsonBuilder.toJson((Terrarum.ingame!! as Ingame).actorNowPlaying)
+ val jsonString = jsonBuilder.toJson((Terrarum.ingame!! as TerrarumIngame).actorNowPlaying)
//val avelem = Gson().toJson((Terrarum.ingame!! as Ingame).actorNowPlaying)
//val jsonString = avelem.toString()
diff --git a/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt
index d41c521b3..8a38ffec8 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt
@@ -5,7 +5,7 @@ import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.Pocketed
/**
@@ -13,7 +13,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.Pocketed
*/
internal object Inventory : ConsoleCommand {
- private var target: Pocketed? = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ private var target: Pocketed? = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
override fun execute(args: Array) {
if (args.size == 1) {
diff --git a/src/net/torvald/terrarum/modulebasegame/console/Seed.kt b/src/net/torvald/terrarum/modulebasegame/console/Seed.kt
index f00be304b..9ad46cd40 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/Seed.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/Seed.kt
@@ -4,7 +4,6 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
/**
* Created by minjaesong on 2016-06-16.
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt b/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt
index 8543c271d..fbd403e5c 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt
@@ -5,7 +5,7 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-01-15.
@@ -63,7 +63,7 @@ internal object SetAV : ConsoleCommand {
return
}
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) {
EchoError("Player does not exist")
println("[SetAV] Player does not exist")
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt b/src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt
index f541469d9..ca8412413 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt
@@ -2,7 +2,7 @@ package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-01-23.
@@ -11,7 +11,7 @@ internal object SetBulletin : ConsoleCommand {
override fun execute(args: Array) {
//send(Lang["ERROR_SAVE_CORRUPTED"], Lang["MENU_LABEL_CONTINUE_QUESTION"])
- (Terrarum.ingame!! as Ingame).sendNotification(args.sliceArray(1..args.lastIndex))
+ (Terrarum.ingame!! as TerrarumIngame).sendNotification(args.sliceArray(1..args.lastIndex))
println("sent notifinator")
}
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt b/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt
index a39ca92ec..9657f9f17 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt
@@ -4,7 +4,7 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.gameactors.ActorWBMovable
/**
@@ -14,7 +14,7 @@ internal object SetScale : ConsoleCommand {
override fun execute(args: Array) {
if (args.size == 2 || args.size == 3) {
try {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetTime.kt b/src/net/torvald/terrarum/modulebasegame/console/SetTime.kt
index 5f0503550..f0894a864 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SetTime.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SetTime.kt
@@ -4,14 +4,14 @@ import net.torvald.terrarum.modulebasegame.gameworld.WorldTime
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-03-20.
*/
internal object SetTime : ConsoleCommand {
override fun execute(args: Array) {
- val world = (Terrarum.ingame!! as Ingame).gameworld
+ val world = (Terrarum.ingame!! as TerrarumIngame).gameworld
if (args.size == 2) {
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt b/src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt
index 1c67d12b4..b6bf8c369 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt
@@ -3,7 +3,7 @@ package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-03-20.
@@ -13,7 +13,7 @@ internal object SetTimeDelta : ConsoleCommand {
val HARD_LIMIT = 60
override fun execute(args: Array) {
- val world = (Terrarum.ingame!! as Ingame).gameworld
+ val world = (Terrarum.ingame!! as TerrarumIngame).gameworld
if (args.size == 2) {
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt
index 8afdcf4a4..8184b0b8e 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt
@@ -4,7 +4,6 @@ import net.torvald.terrarum.modulebasegame.gameactors.PhysTestBall
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
import org.dyn4j.geometry.Vector2
/**
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt
index 4fd25706f..6c1faf2ab 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt
@@ -3,7 +3,6 @@ package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.modulebasegame.gameactors.PhysTestLuarLander
/**
diff --git a/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt
index 6de978926..e647bacfb 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt
@@ -3,7 +3,6 @@ package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
/**
diff --git a/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt b/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt
index 1c55f0442..01171350c 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt
@@ -5,7 +5,7 @@ import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.EchoError
import net.torvald.terrarum.gameactors.ActorWBMovable
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
/**
@@ -27,7 +27,7 @@ internal object Teleport : ConsoleCommand {
return
}
- (Terrarum.ingame!! as Ingame).actorNowPlaying?.setPosition(x.toDouble(), y.toDouble())
+ (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying?.setPosition(x.toDouble(), y.toDouble())
}
else if (args.size == 4) {
if (args[2].toLowerCase() != "to") {
@@ -39,7 +39,7 @@ internal object Teleport : ConsoleCommand {
try {
val fromActorID = args[1].toInt()
val targetActorID = if (args[3].toLowerCase() == "player") {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) {
EchoError("Player does not exist")
return
diff --git a/src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt b/src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt
index 13cb0782b..8157fc787 100644
--- a/src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt
+++ b/src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt
@@ -3,14 +3,14 @@ package net.torvald.terrarum.modulebasegame.console
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-01-19.
*/
internal object ToggleNoClip : ConsoleCommand {
override fun execute(args: Array) {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return
diff --git a/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt b/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt
index 0dcf1b722..fbae6ed0f 100644
--- a/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt
+++ b/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt
@@ -8,7 +8,7 @@ import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ActorValue
import net.torvald.terrarum.gameactors.ActorWBMovable
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.console.SetAV
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import java.awt.BorderLayout
@@ -86,7 +86,7 @@ class ActorValueTracker constructor() : JFrame() {
buttonChangeActor.addMouseListener(object : MouseAdapter() {
override fun mousePressed(e: MouseEvent?) {
if (actorIDField.text.toLowerCase() == "player") {
- actor = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ actor = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
actorValue = actor!!.actorValue
}
else if (actorIDField.text.isNotBlank()) {
diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt
index 8c3fa607a..631db1170 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt
@@ -11,7 +11,7 @@ import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.itemproperties.Material
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
import net.torvald.terrarum.realestate.LandUtil
import net.torvald.terrarum.worlddrawer.LightmapRenderer
@@ -588,8 +588,8 @@ open class ActorHumanoid(
// force update inventory UI, but when the pie menu is not open (pie menu constantly writes to the actorvalue, which will rebuildList()
try {
- if (!(Terrarum.ingame!! as Ingame).uiPieMenu.isVisible) {
- ((Terrarum.ingame!! as Ingame).uiInventoryPlayer as UIInventoryFull).rebuildList()
+ if (!(Terrarum.ingame!! as TerrarumIngame).uiPieMenu.isVisible) {
+ ((Terrarum.ingame!! as TerrarumIngame).uiInventoryPlayer as UIInventoryFull).rebuildList()
}
}
catch (LateInitMyArse: kotlin.UninitializedPropertyAccessException) {
diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt
index 8accd1670..4c5dcb502 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt
@@ -11,7 +11,7 @@ import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_DYNAMIC
import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_WALLS
import net.torvald.terrarum.gameitem.ItemID
import net.torvald.terrarum.lock
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar
import java.util.*
import java.util.concurrent.locks.ReentrantLock
@@ -67,8 +67,8 @@ class ActorInventory(@Transient val actor: Pocketed, var maxCapacity: Int, var c
"These commands are NOT INTERCHANGEABLE; they handle things differently according to the context.")
if (item.originalID == Terrarum.PLAYER_REF_ID || item.originalID == 0x51621D) // do not delete this magic
throw IllegalArgumentException("Attempted to put human player into the inventory.")
- if (((Terrarum.ingame as? Ingame)?.gameFullyLoaded ?: false) &&
- (item.originalID == (Terrarum.ingame as? Ingame)?.actorNowPlaying?.referenceID))
+ if (((Terrarum.ingame as? TerrarumIngame)?.gameFullyLoaded ?: false) &&
+ (item.originalID == (Terrarum.ingame as? TerrarumIngame)?.actorNowPlaying?.referenceID))
throw IllegalArgumentException("Attempted to put active player into the inventory.")
if ((!item.stackable || item.dynamicID in ITEM_DYNAMIC) && count > 1)
throw IllegalArgumentException("Attempting to adding stack of item but the item is not stackable; item: $item, count: $count")
diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt
index 127570ee1..7d33214e6 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt
@@ -3,7 +3,7 @@ package net.torvald.terrarum.modulebasegame.gameactors
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.Actor
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Created by minjaesong on 2016-02-03.
@@ -11,7 +11,7 @@ import net.torvald.terrarum.modulebasegame.Ingame
object PlayerBuilder {
operator fun invoke(): Actor {
- val world = (Terrarum.ingame!! as Ingame).gameworld
+ val world = (Terrarum.ingame!! as TerrarumIngame).gameworld
val p: Actor = IngamePlayer("lol", "lol_glow", world.worldTime.TIME_T)
InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json")
diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt
index 6b6598032..970e503a4 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt
@@ -5,7 +5,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.HumanoidNPC
import net.torvald.terrarum.Second
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ai.ActorAI
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* Slime's stupid AI but can adjust his jump power to smack you as fast as possible
@@ -35,7 +35,7 @@ class SmarterSlimes : ActorAI {
// TEST: just target player
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return
val playerXPos = player.centrePosPoint.x
diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt
index d50ae133e..c1e4c795e 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt
@@ -1,7 +1,7 @@
package net.torvald.terrarum.modulebasegame.gameactors.physicssolver
import net.torvald.terrarum.Terrarum
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.gameactors.ActorWBMovable
import java.util.*
@@ -39,7 +39,7 @@ object CollisionSolver {
collCandidateY.clear()
// mark list x
- (Terrarum.ingame!! as Ingame).actorContainerActive.forEach { it ->
+ (Terrarum.ingame!! as TerrarumIngame).actorContainerActive.forEach { it ->
if (it is ActorWBMovable) {
collListX.add(CollisionMarkings(it.hitbox.hitboxStart.x, STARTPOINT, it))
collListX.add(CollisionMarkings(it.hitbox.hitboxEnd.x, ENDPOINT, it))
@@ -72,7 +72,7 @@ object CollisionSolver {
collCandidateStack.clear()
// mark list y
- (Terrarum.ingame!! as Ingame).actorContainerActive.forEach { it ->
+ (Terrarum.ingame!! as TerrarumIngame).actorContainerActive.forEach { it ->
if (it is ActorWBMovable) {
collListY.add(CollisionMarkings(it.hitbox.hitboxStart.y, STARTPOINT, it))
collListY.add(CollisionMarkings(it.hitbox.hitboxEnd.y, ENDPOINT, it))
diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt
index d6c124111..8a9760883 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt
@@ -7,7 +7,7 @@ import net.torvald.terrarum.gameactors.ActorWBMovable
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.IngameRenderer
import net.torvald.terrarum.realestate.LandUtil
@@ -21,7 +21,7 @@ object BlockBase {
* for wire items, otherwise you want it to be true.
*/
fun blockStartPrimaryUse(gameItem: GameItem, itemID: Int, delta: Float): Boolean {
- val ingame = Terrarum.ingame!! as Ingame
+ val ingame = Terrarum.ingame!! as TerrarumIngame
val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble())
val mouseTile = Point2i(Terrarum.mouseTileX, Terrarum.mouseTileY)
@@ -74,7 +74,7 @@ object BlockBase {
}
fun wireStartPrimaryUse(gameItem: GameItem, wireTypeBit: Int, delta: Float): Boolean {
- val ingame = Terrarum.ingame!! as Ingame
+ val ingame = Terrarum.ingame!! as TerrarumIngame
val mouseTile = Point2i(Terrarum.mouseTileX, Terrarum.mouseTileY)
// return false if the tile is already there
diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt
index df5b76b87..4c3c29e1a 100644
--- a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt
+++ b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt
@@ -11,7 +11,7 @@ import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.gameitem.ItemID
import net.torvald.terrarum.itemproperties.Calculate
import net.torvald.terrarum.itemproperties.MaterialCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore.BASE_MASS_AND_SIZE
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore.TOOL_DURABILITY_BASE
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
@@ -22,7 +22,7 @@ import kotlin.math.roundToInt
*/
object PickaxeCore {
fun startPrimaryUse(delta: Float, item: GameItem): Boolean {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return false
val mouseTileX = Terrarum.mouseTileX
@@ -58,7 +58,7 @@ object PickaxeCore {
}
fun endPrimaryUse(delta: Float, item: GameItem): Boolean {
- val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
+ val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
if (player == null) return false
item.using = false
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt b/src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt
index 37b4edfc5..672c1fa26 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt
@@ -12,7 +12,7 @@ package net.torvald.terrarum.modulebasegame.ui
override var height: Int = 0
private var fontCol: Color = if (!isBlackVariant) Color.BLACK else Color.WHITE
- private val GLYPH_HEIGHT = Terrarum.fontGame.lineHeight
+ private val GLYPH_HEIGHT = AppLoader.fontGame.lineHeight
override var openCloseTime: Second = OPEN_CLOSE_TIME
@@ -29,7 +29,7 @@ package net.torvald.terrarum.modulebasegame.ui
override fun renderUI(batch: SpriteBatch, camera: Camera) {
blendNormal(batch)
- val textWidth = messagesList.map { Terrarum.fontGame.getWidth(it) }.sorted()[1]
+ val textWidth = messagesList.map { AppLoader.fontGame.getWidth(it) }.sorted()[1]
batch.color = Color.WHITE
@@ -38,7 +38,7 @@ package net.torvald.terrarum.modulebasegame.ui
batch.draw(segment.get(2, 0), 2 * LRmargin + textWidth, 0f)
messagesList.forEachIndexed { index, s ->
- Terrarum.fontGame.draw(batch, s, segment.tileW + LRmargin, (segment.tileH - Terrarum.fontGame.lineHeight) / 2f)
+ AppLoader.fontGame.draw(batch, s, segment.tileW + LRmargin, (segment.tileH - AppLoader.fontGame.lineHeight) / 2f)
}
AppLoader.printdbg(this, "render")
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt
index 799c290b3..1c45ec4b7 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt
@@ -56,15 +56,15 @@ class Notification : UICanvas() {
fontCol.a = handler.opacity
val realTextWidth = 12 + if (message.size == 1)
- Terrarum.fontGame.getWidth(message[0])
+ AppLoader.fontGame.getWidth(message[0])
else
- message.map { Terrarum.fontGame.getWidth(it) }.sorted().last()
+ message.map { AppLoader.fontGame.getWidth(it) }.sorted().last()
val displayedTextWidth = maxOf(240, realTextWidth)
// force the UI to the centre of the screen
this.posX = (Terrarum.WIDTH - displayedTextWidth) / 2
- val textHeight = message.size * Terrarum.fontGame.lineHeight
+ val textHeight = message.size * AppLoader.fontGame.lineHeight
batch.color = drawColor
@@ -73,8 +73,8 @@ class Notification : UICanvas() {
batch.color = fontCol
message.forEachIndexed { index, s ->
val xoff = 6 + (displayedTextWidth - realTextWidth) / 2
- val y = -textHeight + Terrarum.fontGame.lineHeight * index
- Terrarum.fontGame.draw(batch, s, LRmargin + xoff, y)
+ val y = -textHeight + AppLoader.fontGame.lineHeight * index
+ AppLoader.fontGame.draw(batch, s, LRmargin + xoff, y)
}
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIBasicInfo.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIBasicInfo.kt
index ec8b29f21..6486f2c58 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIBasicInfo.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIBasicInfo.kt
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.*
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegSmall
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
@@ -52,7 +52,7 @@ class UIBasicInfo(private val player: ActorHumanoid?) : UICanvas() {
get() {
if (player != null) {
val playerTilePos = player.hIntTilewiseHitbox
- val tempCelsius = -273f + ((Terrarum.ingame as? Ingame)?.world?.getTemperature(playerTilePos.centeredX.toInt(), playerTilePos.centeredY.toInt()) ?: 288f)
+ val tempCelsius = -273f + ((Terrarum.ingame as? TerrarumIngame)?.world?.getTemperature(playerTilePos.centeredX.toInt(), playerTilePos.centeredY.toInt()) ?: 288f)
return if (tempCelsius < -10)
0
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt b/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt
index c30cfe83b..815700108 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt
@@ -3,9 +3,10 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
+import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.fillRect
-import net.torvald.terrarum.Second
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.ui.UICanvas
@@ -37,10 +38,10 @@ class UICheatDetected : UICanvas() {
batch.color = Color.WHITE
val txt = Lang["ERROR_GENERIC_CHEATING"]
- val txtW = Terrarum.fontGame.getWidth(txt)
- val txtH = Terrarum.fontGame.lineHeight.toInt()
+ val txtW = AppLoader.fontGame.getWidth(txt)
+ val txtH = AppLoader.fontGame.lineHeight.toInt()
- Terrarum.fontGame.draw(batch, txt, width.minus(txtW).ushr(1).toFloat(), height.minus(txtH).ushr(1).toFloat())
+ AppLoader.fontGame.draw(batch, txt, width.minus(txtW).ushr(1).toFloat(), height.minus(txtH).ushr(1).toFloat())
}
override fun updateUI(delta: Float) {
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt
index 7ba7cbcc6..916c46179 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt
@@ -47,7 +47,7 @@ package net.torvald.terrarum.modulebasegame.ui
val itemStripGutterH = 8
val itemInterColGutter = 8
- val controlHelpHeight = Terrarum.fontGame.lineHeight.toInt()
+ val controlHelpHeight = AppLoader.fontGame.lineHeight.toInt()
val pageButtonExtraGap = 32
@@ -239,16 +239,16 @@ package net.torvald.terrarum.modulebasegame.ui
blendNormal()
batch.color = defaultTextColour
// W - close
- Terrarum.fontGame.draw(batch, listControlClose, 4f, height - controlHelpHeight.toFloat())
+ AppLoader.fontGame.draw(batch, listControlClose, 4f, height - controlHelpHeight.toFloat())
// MouseL - Use ; 1.9 - Register ; T - Drop
- Terrarum.fontGame.draw(batch, listControlHelp, catButtons.width + 4f, height - controlHelpHeight.toFloat())
+ AppLoader.fontGame.draw(batch, listControlHelp, catButtons.width + 4f, height - controlHelpHeight.toFloat())
// encumbrance
if (inventory != null) {
val encumbranceText = Lang["GAME_INVENTORY_ENCUMBRANCE"]
- Terrarum.fontGame.draw(batch,
+ AppLoader.fontGame.draw(batch,
encumbranceText,
- width - 9 - Terrarum.fontGame.getWidth(encumbranceText) - weightBarWidth,
+ width - 9 - AppLoader.fontGame.getWidth(encumbranceText) - weightBarWidth,
height - controlHelpHeight.toFloat()
)
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt
index 80d03cebb..8438e3e7b 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt
@@ -6,22 +6,12 @@ import com.badlogic.gdx.graphics.*
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShapeRenderer
-import com.badlogic.gdx.graphics.Color
import net.torvald.terrarum.*
-import net.torvald.terrarum.AppLoader.IS_DEVELOPMENT_BUILD
-import net.torvald.terrarum.AppLoader.printdbg
-import net.torvald.terrarum.AppLoader.gamepadLabelEast
-import net.torvald.terrarum.AppLoader.gamepadLabelLStick
-import net.torvald.terrarum.AppLoader.gamepadLabelLT
-import net.torvald.terrarum.AppLoader.gamepadLabelNorth
-import net.torvald.terrarum.AppLoader.gamepadLabelRStick
-import net.torvald.terrarum.AppLoader.gamepadLabelRT
-import net.torvald.terrarum.AppLoader.gamepadLabelStart
-import net.torvald.terrarum.AppLoader.gamepadLabelWest
+import net.torvald.terrarum.AppLoader.*
import net.torvald.terrarum.blockstats.MinimapComposer
import net.torvald.terrarum.gameactors.ActorWBMovable
import net.torvald.terrarum.langpack.Lang
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory.Companion.CAPACITY_MODE_NO_ENCUMBER
import net.torvald.terrarum.modulebasegame.gameactors.Pocketed
import net.torvald.terrarum.ui.UICanvas
@@ -87,7 +77,7 @@ class UIInventoryFull(
else
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
"$gamepadLabelLT ${Lang["GAME_INVENTORY"]}"
- val controlHelpHeight = Terrarum.fontGame.lineHeight
+ val controlHelpHeight = AppLoader.fontGame.lineHeight
private var encumbrancePerc = 0f
private var isEncumbered = false
@@ -194,7 +184,7 @@ class UIInventoryFull(
// make gameMenuButtons work
gameMenuButtons.selectionChangeListener = { old, new ->
if (new == 0) {
- Terrarum.setScreen(TitleScreen(Terrarum.batch))
+ AppLoader.setScreen(TitleScreen(Terrarum.batch))
}
else if (new == 1) {
Gdx.app.exit()
@@ -441,7 +431,7 @@ class UIInventoryFull(
batch.begin()
- Terrarum.fontSmallNumbers.draw(batch, "$minimapPanX, $minimapPanY; x$minimapZoom", minimapScrOffX + (Terrarum.WIDTH - MINIMAP_WIDTH) / 2, -10f + itemList.posY)
+ AppLoader.fontSmallNumbers.draw(batch, "$minimapPanX, $minimapPanY; x$minimapZoom", minimapScrOffX + (Terrarum.WIDTH - MINIMAP_WIDTH) / 2, -10f + itemList.posY)
batch.projectionMatrix = camera.combined
@@ -451,7 +441,7 @@ class UIInventoryFull(
// control hints
batch.color = Color.WHITE
- Terrarum.fontGame.draw(batch, minimapControlHelp, offsetX + minimapScrOffX, yEnd - 20)
+ AppLoader.fontGame.draw(batch, minimapControlHelp, offsetX + minimapScrOffX, yEnd - 20)
// the minimap
batch.draw(minimapFBO.colorBufferTexture, minimapScrOffX + (Terrarum.WIDTH - MINIMAP_WIDTH) / 2, itemList.posY.toFloat())
@@ -461,7 +451,7 @@ class UIInventoryFull(
// control hints
blendNormal(batch)
batch.color = Color.WHITE
- Terrarum.fontGame.draw(batch, gameMenuControlHelp, offsetX + menuScrOffX, yEnd - 20)
+ AppLoader.fontGame.draw(batch, gameMenuControlHelp, offsetX + menuScrOffX, yEnd - 20)
// text buttons
gameMenuButtons.render(batch, camera)
@@ -475,15 +465,15 @@ class UIInventoryFull(
// control hints
blendNormal(batch)
batch.color = Color.WHITE
- Terrarum.fontGame.draw(batch, listControlHelp, offsetX + inventoryScrOffX, yEnd - 20)
+ AppLoader.fontGame.draw(batch, listControlHelp, offsetX + inventoryScrOffX, yEnd - 20)
// encumbrance meter
val encumbranceText = Lang["GAME_INVENTORY_ENCUMBRANCE"]
- Terrarum.fontGame.draw(batch,
+ AppLoader.fontGame.draw(batch,
encumbranceText,
- xEnd - 6 - Terrarum.fontGame.getWidth(encumbranceText) - weightBarWidth + inventoryScrOffX,
+ xEnd - 6 - AppLoader.fontGame.getWidth(encumbranceText) - weightBarWidth + inventoryScrOffX,
yEnd-20
)
@@ -514,7 +504,7 @@ class UIInventoryFull(
if (IS_DEVELOPMENT_BUILD) {
AppLoader.fontSmallNumbers.draw(batch,
"${actor.inventory.capacity}/${actor.inventory.maxCapacity}",
- xEnd - 6 - Terrarum.fontGame.getWidth(encumbranceText) - weightBarWidth + inventoryScrOffX,
+ xEnd - 6 - AppLoader.fontGame.getWidth(encumbranceText) - weightBarWidth + inventoryScrOffX,
yEnd-20 + 3f + controlHelpHeight - 4f
)
}
@@ -554,18 +544,18 @@ class UIInventoryFull(
override fun doOpening(delta: Float) {
- (Terrarum.ingame as? Ingame)?.setTooltipMessage(null)
+ (Terrarum.ingame as? TerrarumIngame)?.setTooltipMessage(null)
}
override fun doClosing(delta: Float) {
- (Terrarum.ingame as? Ingame)?.setTooltipMessage(null)
+ (Terrarum.ingame as? TerrarumIngame)?.setTooltipMessage(null)
}
override fun endOpening(delta: Float) {
}
override fun endClosing(delta: Float) {
- (Terrarum.ingame as? Ingame)?.setTooltipMessage(null) // required!
+ (Terrarum.ingame as? TerrarumIngame)?.setTooltipMessage(null) // required!
MinimapComposer.revalidateAll()
}
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt
index 0252e5b69..29c706aeb 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt
@@ -7,7 +7,7 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.gameworld.fmod
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK
@@ -287,7 +287,7 @@ class UIItemInventoryDynamicList(
// set tooltip accordingly
if (isCompactMode && it.mouseUp && !tooltipSet) {
- (Terrarum.ingame as? Ingame)?.setTooltipMessage(
+ (Terrarum.ingame as? TerrarumIngame)?.setTooltipMessage(
if (AppLoader.IS_DEVELOPMENT_BUILD) {
it.item?.name + "/Mat: ${it.item?.material?.identifier}"
}
@@ -300,7 +300,7 @@ class UIItemInventoryDynamicList(
}
if (!tooltipSet) {
- (Terrarum.ingame as? Ingame)?.setTooltipMessage(null)
+ (Terrarum.ingame as? TerrarumIngame)?.setTooltipMessage(null)
}
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemPlayerInfoCell.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemPlayerInfoCell.kt
index 255a65b97..b628bbccf 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemPlayerInfoCell.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemPlayerInfoCell.kt
@@ -2,10 +2,7 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
-import net.torvald.terrarum.Terrarum
-import net.torvald.terrarum.blendNormal
-import net.torvald.terrarum.blendScreen
-import net.torvald.terrarum.fillRect
+import net.torvald.terrarum.*
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
import net.torvald.terrarum.serialise.ReadWorldInfo
@@ -45,7 +42,7 @@ class UIItemPlayerInfoCell(
private val backColInactive = ItemSlotImageFactory.CELLCOLOUR_BLACK
private val backColActive = ItemSlotImageFactory.CELLCOLOUR_BLACK_ACTIVE
- private val textRow1 = (((height / 2) - Terrarum.fontGame.lineHeight) / 2).toFloat()
+ private val textRow1 = (((height / 2) - AppLoader.fontGame.lineHeight) / 2).toFloat()
private val textRow2 = textRow1 + (height / 2)
private val creationTimeStr: String
@@ -69,7 +66,7 @@ class UIItemPlayerInfoCell(
worldCountStr = Lang["CONTEXT_WORLD_COUNT"] + saveInfo.worldCount
- worldCountStrWidth = Terrarum.fontGame.getWidth(worldCountStr)
+ worldCountStrWidth = AppLoader.fontGame.getWidth(worldCountStr)
}
override fun render(batch: SpriteBatch, camera: Camera) {
@@ -109,15 +106,15 @@ class UIItemPlayerInfoCell(
// name
batch.color = Color.WHITE
- Terrarum.fontGame.draw(batch, saveInfo.playerName, spriteAreaWidth + spriteToNameAreaGap.toFloat(), textRow1)
+ AppLoader.fontGame.draw(batch, saveInfo.playerName, spriteAreaWidth + spriteToNameAreaGap.toFloat(), textRow1)
// creation and modification time
- Terrarum.fontGame.draw(batch, "$creationTimeStr/$modificationTimeStr", spriteAreaWidth + spriteToNameAreaGap.toFloat(), textRow2)
+ AppLoader.fontGame.draw(batch, "$creationTimeStr/$modificationTimeStr", spriteAreaWidth + spriteToNameAreaGap.toFloat(), textRow2)
// world count
- Terrarum.fontGame.draw(batch, worldCountStr, width - (edgeGap + worldCountStrWidth).toFloat(), textRow1)
+ AppLoader.fontGame.draw(batch, worldCountStr, width - (edgeGap + worldCountStrWidth).toFloat(), textRow1)
// wallet
val walletStr = "ยค " + (ingamePlayer?.inventory?.wallet ?: saveInfo.playerWallet)
- val walletStrWidth = Terrarum.fontGame.getWidth(walletStr)
- Terrarum.fontGame.draw(batch, walletStr, width - (edgeGap + walletStrWidth).toFloat(), textRow2)
+ val walletStrWidth = AppLoader.fontGame.getWidth(walletStr)
+ AppLoader.fontGame.draw(batch, walletStr, width - (edgeGap + walletStrWidth).toFloat(), textRow2)
*/
}
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemSavegameInfoCell.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemSavegameInfoCell.kt
index 59b256408..442b7f6e7 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemSavegameInfoCell.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemSavegameInfoCell.kt
@@ -2,6 +2,7 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarum.ui.UIItem
@@ -24,7 +25,7 @@ class UIItemSavegameInfoCell(
override var oldPosX = posX
override var oldPosY = posY
- override val height: Int = Terrarum.fontGame.lineHeight.toInt() * 2
+ override val height: Int = AppLoader.fontGame.lineHeight.toInt() * 2
override fun render(batch: SpriteBatch, camera: Camera) {
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt
index 84dbbb716..e5d5d9d69 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.Pixmap
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.SpriteBatch
-import net.torvald.terrarum.Terrarum
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.blendNormal
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.fillRect
@@ -26,7 +26,7 @@ class UIPaletteSelector(val parent: BuildingMaker) : UICanvas() {
val LINE_HEIGHT = 24
val TEXT_OFFSETX = 3f
- val TEXT_OFFSETY = (LINE_HEIGHT - Terrarum.fontGame.lineHeight) / 2f
+ val TEXT_OFFSETY = (LINE_HEIGHT - AppLoader.fontGame.lineHeight) / 2f
fun mouseOnTitleBar() =
relativeMouseX in 0 until width && relativeMouseY in 0 until LINE_HEIGHT
@@ -78,7 +78,7 @@ class UIPaletteSelector(val parent: BuildingMaker) : UICanvas() {
// draw "Pal."
batch.color = UINSMenu.DEFAULT_TITLETEXTCOL
- Terrarum.fontGame.draw(batch, titleText, TEXT_OFFSETX, TEXT_OFFSETY)
+ AppLoader.fontGame.draw(batch, titleText, TEXT_OFFSETX, TEXT_OFFSETY)
// draw background
batch.color = CELLCOLOUR_BLACK
@@ -89,7 +89,7 @@ class UIPaletteSelector(val parent: BuildingMaker) : UICanvas() {
// TODO carve the overlap
batch.draw(ItemCodex.getItemImage(back), 14f, 41f)
batch.draw(ItemCodex.getItemImage(fore), 6f, 33f)
- Terrarum.fontSmallNumbers.draw(batch, fore.toString(), 3f, 61f)
+ AppLoader.fontSmallNumbers.draw(batch, fore.toString(), 3f, 61f)
// draw swap icon
batch.color = Color.WHITE
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt
index c6f5d07a4..7c377f483 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt
@@ -2,12 +2,11 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
-import net.torvald.random.HQRNG
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.LoadScreen
import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.modulebasegame.BuildingMaker
-import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.ui.UICanvas
/**
@@ -35,9 +34,9 @@ class UIProxyNewBuildingMaker : UICanvas() {
override fun endOpening(delta: Float) {
val ingame = BuildingMaker(Terrarum.batch)
- Terrarum.ingame = ingame
+ Terrarum.setCurrentIngameInstance(ingame)
LoadScreen.screenToLoad = ingame
- Terrarum.setScreen(LoadScreen)
+ AppLoader.setScreen(LoadScreen)
}
override fun endClosing(delta: Float) {
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt
index c32edf3c4..b0821b5d4 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt
@@ -3,10 +3,12 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.random.HQRNG
+import net.torvald.terrarum.AppLoader
+import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.LoadScreen
import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.ui.UICanvas
/**
@@ -32,14 +34,17 @@ class UIProxyNewRandomGame : UICanvas() {
}
override fun endOpening(delta: Float) {
- val ingame = Ingame(Terrarum.batch)
- ingame.gameLoadInfoPayload = Ingame.NewWorldParameters(2400, 800, HQRNG().nextLong())
- //ingame.gameLoadInfoPayload = Ingame.NewWorldParameters(8192, 2048, 0x51621DL)
- ingame.gameLoadMode = Ingame.GameLoadMode.CREATE_NEW
+ printdbg(this, "endOpening")
- Terrarum.ingame = ingame
+
+ val ingame = TerrarumIngame(AppLoader.batch)
+ ingame.gameLoadInfoPayload = TerrarumIngame.NewWorldParameters(2400, 800, HQRNG().nextLong())
+ //ingame.gameLoadInfoPayload = Ingame.NewWorldParameters(8192, 2048, 0x51621DL)
+ ingame.gameLoadMode = TerrarumIngame.GameLoadMode.CREATE_NEW
+
+ Terrarum.setCurrentIngameInstance(ingame)
LoadScreen.screenToLoad = ingame
- Terrarum.setScreen(LoadScreen)
+ AppLoader.setScreen(LoadScreen)
}
override fun endClosing(delta: Float) {
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotBar.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotBar.kt
index e6fca1868..cdef3ec0c 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotBar.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIQuickslotBar.kt
@@ -3,12 +3,13 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameworld.fmod
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.ui.UICanvas
/**
@@ -21,15 +22,15 @@ class UIQuickslotBar : UICanvas() {
private val gutter = 10 - 6 // do -6 to get a gutter size of not-enlarged cells
override var width: Int = cellSize * SLOT_COUNT + gutter * (SLOT_COUNT - 1) // 452
- override var height: Int = ItemSlotImageFactory.slotImage.tileH + 4 + Terrarum.fontGame.lineHeight.toInt()
+ override var height: Int = ItemSlotImageFactory.slotImage.tileH + 4 + AppLoader.fontGame.lineHeight.toInt()
/**
* In milliseconds
*/
override var openCloseTime: Second = COMMON_OPEN_CLOSE
private var selection: Int
- get() = (Terrarum.ingame!! as Ingame).actorNowPlaying?.actorValue?.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL) ?: 0
- set(value) { (Terrarum.ingame!! as Ingame).actorNowPlaying?.actorValue?.set(AVKey.__PLAYER_QUICKSLOTSEL, value.fmod(SLOT_COUNT)) }
+ get() = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying?.actorValue?.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL) ?: 0
+ set(value) { (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying?.actorValue?.set(AVKey.__PLAYER_QUICKSLOTSEL, value.fmod(SLOT_COUNT)) }
companion object {
@@ -47,7 +48,7 @@ class UIQuickslotBar : UICanvas() {
override fun renderUI(batch: SpriteBatch, camera: Camera) {
for (i in 0..SLOT_COUNT - 1) {
- val item = ItemCodex[(Terrarum.ingame!! as Ingame).actorNowPlaying?.inventory?.getQuickslot(i)?.item]
+ val item = ItemCodex[(Terrarum.ingame!! as TerrarumIngame).actorNowPlaying?.inventory?.getQuickslot(i)?.item]
val image = if (i == selection)
ItemSlotImageFactory.produceLarge(false, (i + 1) % SLOT_COUNT, item)
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt
index f8dc767bd..ebced6c23 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt
@@ -5,6 +5,7 @@ import com.badlogic.gdx.Input
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.AppLoader.printdbgerr
import net.torvald.terrarum.QNDTreeNode
import net.torvald.terrarum.Terrarum
@@ -299,6 +300,6 @@ open class UIRemoCon(treeRepresentation: QNDTreeNode) : UICanvas() {
val remoConWidth = 304
fun getRemoConHeight(menu: ArrayList) = DEFAULT_LINE_HEIGHT * menu.size.plus(1)
fun getRemoConHeight(menu: Array) = DEFAULT_LINE_HEIGHT * menu.size.plus(1)
- val menubarOffY: Int; get() = Terrarum.HEIGHT / 2 - (Terrarum.fontGame.lineHeight * 1.5).toInt()
+ val menubarOffY: Int; get() = Terrarum.HEIGHT / 2 - (AppLoader.fontGame.lineHeight * 1.5).toInt()
}
}
\ No newline at end of file
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt
index fae5b3478..458f3f355 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt
@@ -6,7 +6,7 @@ package net.torvald.terrarum.modulebasegame.ui
val remoConWidth = 240
fun getRemoConHeight(menu: ArrayList) = 36 * menu.size.plus(1)
fun getRemoConHeight(menu: Array) = 36 * menu.size.plus(1)
- val menubarOffY: Int; get() = Terrarum.HEIGHT / 2 - (Terrarum.fontGame.lineHeight * 1.5).toInt()
+ val menubarOffY: Int; get() = Terrarum.HEIGHT / 2 - (AppLoader.fontGame.lineHeight * 1.5).toInt()
}
@@ -83,7 +83,7 @@ package net.torvald.terrarum.modulebasegame.ui
(Terrarum.ingame!! as Ingame).gameLoadInfoPayload = Ingame.NewWorldParameters(2400, 800, HQRNG().nextLong())
(Terrarum.ingame!! as Ingame).gameLoadMode = Ingame.GameLoadMode.CREATE_NEW
LoadScreen.screenToLoad = (Terrarum.ingame!! as Ingame)
- Terrarum.setScreen(LoadScreen)
+ AppLoader.setScreen(LoadScreen)
}
@@ -114,7 +114,7 @@ package net.torvald.terrarum.modulebasegame.ui
val maker = BuildingMaker(Terrarum.batch)
Terrarum.ingame = maker
- Terrarum.setScreen(maker)
+ AppLoader.setScreen(maker)
}
}
}
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt
index 24cc21d86..0d7086805 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt
@@ -3,6 +3,7 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.ui.UICanvas
@@ -20,7 +21,7 @@ class UITooltip : UICanvas() {
msgWidth = font.getWidth(value)
}
- private val font = Terrarum.fontGame
+ private val font = AppLoader.fontGame
private var msgWidth = 0
val textMarginX = 4
diff --git a/src/net/torvald/terrarum/modulebasegame/ui/uiQuickslotPie.kt b/src/net/torvald/terrarum/modulebasegame/ui/uiQuickslotPie.kt
index c7ba8ec1a..504b4f317 100644
--- a/src/net/torvald/terrarum/modulebasegame/ui/uiQuickslotPie.kt
+++ b/src/net/torvald/terrarum/modulebasegame/ui/uiQuickslotPie.kt
@@ -8,7 +8,7 @@ import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.itemproperties.ItemCodex
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar.Companion.COMMON_OPEN_CLOSE
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar.Companion.SLOT_COUNT
import net.torvald.terrarum.ui.UICanvas
@@ -40,8 +40,8 @@ class uiQuickslotPie : UICanvas() {
var selection: Int = -1
override fun updateUI(delta: Float) {
- if (selection >= 0 && (Terrarum.ingame!! as Ingame).actorNowPlaying != null)
- (Terrarum.ingame!! as Ingame).actorNowPlaying!!.actorValue[AVKey.__PLAYER_QUICKSLOTSEL] =
+ if (selection >= 0 && (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying != null)
+ (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying!!.actorValue[AVKey.__PLAYER_QUICKSLOTSEL] =
selection % slotCount
@@ -63,7 +63,7 @@ class uiQuickslotPie : UICanvas() {
override fun renderUI(batch: SpriteBatch, camera: Camera) {
// draw radial thingies
for (i in 0..slotCount - 1) {
- val item = ItemCodex[(Terrarum.ingame!! as Ingame).actorNowPlaying?.inventory?.getQuickslot(i)?.item]
+ val item = ItemCodex[(Terrarum.ingame!! as TerrarumIngame).actorNowPlaying?.inventory?.getQuickslot(i)?.item]
// set position
val angle = Math.PI * 2.0 * (i.toDouble() / slotCount) + Math.PI // 180 deg monitor-wise
diff --git a/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt b/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt
index 18216e90b..a406d11f9 100644
--- a/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt
+++ b/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt
@@ -12,7 +12,7 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gamecontroller.KeyToggler
import net.torvald.terrarum.gameworld.GameWorld
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.IngameRenderer
import net.torvald.terrarum.modulebasegame.RNGConsumer
import net.torvald.terrarum.modulebasegame.gameactors.ParticleMegaRain
@@ -96,7 +96,7 @@ internal object WeatherMixer : RNGConsumer {
// test rain toggled by F2
- if (KeyToggler.isOn(Input.Keys.F2) && Terrarum.ingame is Ingame) {
+ if (KeyToggler.isOn(Input.Keys.F2) && Terrarum.ingame is TerrarumIngame) {
val playerPosX = player.hitbox.centeredX
val playerPosY = player.hitbox.centeredY
kotlin.repeat(7) {
@@ -104,7 +104,7 @@ internal object WeatherMixer : RNGConsumer {
playerPosX + HQRNG().nextInt(Terrarum.WIDTH) - Terrarum.HALFW,
playerPosY - Terrarum.HEIGHT
)
- (Terrarum.ingame!! as Ingame).addParticle(rainParticle)
+ (Terrarum.ingame!! as TerrarumIngame).addParticle(rainParticle)
}
//globalLightNow.set(getGlobalLightOfTime((Terrarum.ingame!!.world).time.todaySeconds).mul(0.3f, 0.3f, 0.3f, 0.58f))
}
diff --git a/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt
index ae5db8e87..0909023fe 100644
--- a/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt
+++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt
@@ -4,9 +4,9 @@ import com.jme3.math.FastMath
import com.sudoplay.joise.Joise
import com.sudoplay.joise.module.*
import net.torvald.random.HQRNG
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.LoadScreen
-import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.terrarum.concurrent.ThreadParallel
@@ -774,14 +774,14 @@ object WorldGenerator {
}
private fun processNoiseLayers(noiseRecords: Array) {
- if (Terrarum.MULTITHREAD) {
+ if (AppLoader.MULTITHREAD) {
// set up indices
- for (i in 0 until Terrarum.THREADS) {
+ for (i in 0 until AppLoader.THREADS) {
ThreadParallel.map(
i, "SampleJoiseMap",
ThreadProcessNoiseLayers(
- HEIGHT.toFloat().div(Terrarum.THREADS).times(i).roundInt(),
- HEIGHT.toFloat().div(Terrarum.THREADS).times(i.plus(1)).roundInt() - 1,
+ HEIGHT.toFloat().div(AppLoader.THREADS).times(i).roundInt(),
+ HEIGHT.toFloat().div(AppLoader.THREADS).times(i.plus(1)).roundInt() - 1,
noiseRecords
)
)
diff --git a/src/net/torvald/terrarum/swingapp/IMStringReader.kt b/src/net/torvald/terrarum/swingapp/IMStringReader.kt
index 5648649ac..26bdd828f 100644
--- a/src/net/torvald/terrarum/swingapp/IMStringReader.kt
+++ b/src/net/torvald/terrarum/swingapp/IMStringReader.kt
@@ -1,10 +1,13 @@
package net.torvald.terrarum.swingapp
-import net.torvald.terrarum.Terrarum
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.langpack.Lang
import java.awt.BorderLayout
import java.awt.FlowLayout
-import java.awt.event.*
+import java.awt.event.KeyEvent
+import java.awt.event.KeyListener
+import java.awt.event.MouseEvent
+import java.awt.event.MouseListener
import javax.swing.*
@@ -42,7 +45,7 @@ class IMStringReader(feedInput: (String) -> Unit, message: String? = null) : JFr
this.title = labelTitle
defaultCloseOperation = JFrame.DISPOSE_ON_CLOSE
- Terrarum.pause()
+ AppLoader.getINSTANCE().pause()
buttonOkay.addMouseListener(object : MouseListener {
override fun mouseEntered(e: MouseEvent?) { }
@@ -52,7 +55,7 @@ class IMStringReader(feedInput: (String) -> Unit, message: String? = null) : JFr
override fun mousePressed(e: MouseEvent?) {
userInput = inputArea.text
isVisible = false
- Terrarum.resume()
+ AppLoader.getINSTANCE().resume()
feedInput(userInput)
@@ -68,7 +71,7 @@ class IMStringReader(feedInput: (String) -> Unit, message: String? = null) : JFr
override fun mousePressed(e: MouseEvent?) {
userInput = ""//null
isVisible = false
- Terrarum.resume()
+ AppLoader.getINSTANCE().resume()
dispose()
}
@@ -80,7 +83,7 @@ class IMStringReader(feedInput: (String) -> Unit, message: String? = null) : JFr
override fun keyPressed(e: KeyEvent?) {
userInput = inputArea.text
isVisible = false
- Terrarum.resume()
+ AppLoader.getINSTANCE().resume()
feedInput(userInput)
diff --git a/src/net/torvald/terrarum/tests/NoiseGenerator.kt b/src/net/torvald/terrarum/tests/NoiseGenerator.kt
index 6eee0a34f..abaf7a97e 100644
--- a/src/net/torvald/terrarum/tests/NoiseGenerator.kt
+++ b/src/net/torvald/terrarum/tests/NoiseGenerator.kt
@@ -22,7 +22,7 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.concurrent.BlockingThreadPool
import net.torvald.terrarum.concurrent.sliceEvenly
import net.torvald.terrarum.inUse
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.roundInt
import kotlin.math.absoluteValue
@@ -100,7 +100,7 @@ class NoiseGenerator : ScreenAdapter() {
private var timerFired = false
override fun render(delta: Float) {
- Gdx.graphics.setTitle(Ingame.getCanonicalTitle())
+ Gdx.graphics.setTitle(TerrarumIngame.getCanonicalTitle())
updateTestGovernor(delta)
@@ -138,7 +138,7 @@ class NoiseGenerator : ScreenAdapter() {
batch.draw(texture, 0f, 0f)
batch.color = Color.CYAN
- Terrarum.fontGame.draw(batch, "Tests: $totalTestsDone / ${testSets.size * samplingCount}", 10f, 10f)
+ AppLoader.fontGame.draw(batch, "Tests: $totalTestsDone / ${testSets.size * samplingCount}", 10f, 10f)
}
}
diff --git a/src/net/torvald/terrarum/tests/UITestPad1.kt b/src/net/torvald/terrarum/tests/UITestPad1.kt
index fcedbe9c6..ae6c38a1a 100644
--- a/src/net/torvald/terrarum/tests/UITestPad1.kt
+++ b/src/net/torvald/terrarum/tests/UITestPad1.kt
@@ -10,7 +10,7 @@ import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import net.torvald.terrarum.*
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.ui.UINSMenu
/**
@@ -85,7 +85,7 @@ class UITestPad1 : ScreenAdapter() {
var _dct = 0f
override fun render(delta: Float) {
- Gdx.graphics.setTitle(Ingame.getCanonicalTitle())
+ Gdx.graphics.setTitle(TerrarumIngame.getCanonicalTitle())
// UPDATE
diff --git a/src/net/torvald/terrarum/tests/UnsafeTest.kt b/src/net/torvald/terrarum/tests/UnsafeTest.kt
index 449953baa..7f237439f 100644
--- a/src/net/torvald/terrarum/tests/UnsafeTest.kt
+++ b/src/net/torvald/terrarum/tests/UnsafeTest.kt
@@ -1,5 +1,6 @@
package net.torvald.terrarum.tests
+import net.torvald.UnsafeHelper
import net.torvald.terrarum.gameworld.toUint
import sun.misc.Unsafe
@@ -15,20 +16,32 @@ class UnsafeTest {
unsafe = unsafeConstructor.newInstance()
}
- private val memsize = 2048L // must be big enough value so that your OS won't always return zero-filled pieces
+ private val memsize = 512L // must be big enough value so that your OS won't always return zero-filled pieces
fun main() {
- val ptr = unsafe.allocateMemory(memsize)
+ var ptr = unsafe.allocateMemory(memsize)
printDump(ptr)
unsafe.setMemory(ptr, memsize, 0x00.toByte())
printDump(ptr)
- for (k in 0 until memsize step 4) {
- unsafe.putInt(ptr + k, 0xcafebabe.toInt())
+ for (k in 0 until 13) {
+ unsafe.putByte(ptr + k, (-1 - k).toByte())
}
printDump(ptr)
+ // test shingled memory copy -- how would it work out?
+ UnsafeHelper.memcpy(ptr, ptr + 3L, 13L)
+
+ printDump(ptr)
+
+
+ println(ptr)
+ ptr = unsafe.reallocateMemory(ptr, 256L)
+ println(ptr)
+
+
+ // that's all for today!
unsafe.freeMemory(ptr)
}
diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt
index eda960880..8e1416951 100644
--- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt
+++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt
@@ -10,8 +10,8 @@ import net.torvald.terrarum.Terrarum.mouseTileY
import net.torvald.terrarum.controller.TerrarumController
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.imagefont.TinyAlphNum
-import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarum.modulebasegame.IngameRenderer
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
@@ -40,7 +40,7 @@ class BasicDebugInfoWindow : UICanvas() {
private val world: GameWorld?
get() = Terrarum.ingame?.world
private val world2: GameWorldExtension?
- get() = Terrarum.ingame?.world as GameWorldExtension?
+ get() = Terrarum.ingame?.world as? GameWorldExtension?
override fun updateUI(delta: Float) {
@@ -179,8 +179,8 @@ class BasicDebugInfoWindow : UICanvas() {
//printLineColumn(batch, 2, 2, "Env colour temp $ccG" + FeaturesDrawer.colTemp)
if (world != null) {
- printLineColumn(batch, 2, 5, "Time $ccG${world2!!.worldTime.todaySeconds.toString().padStart(5, '0')}" +
- " (${world2!!.worldTime.getFormattedTime()})")
+ printLineColumn(batch, 2, 5, "Time $ccG${world2?.worldTime?.todaySeconds.toString().padStart(5, '0')}" +
+ " (${world2?.worldTime?.getFormattedTime()})")
}
if (player != null) {
@@ -189,14 +189,14 @@ class BasicDebugInfoWindow : UICanvas() {
printLineColumn(batch, 2, 7, "noClip $ccG${player.isNoClip}")
}
- drawHistogram(batch, LightmapRenderer.histogram,
+ /*drawHistogram(batch, LightmapRenderer.histogram,
Terrarum.WIDTH - histogramW - TinyAlphNum.W * 2,
Terrarum.HEIGHT - histogramH - TinyAlphNum.H * 4
- )
+ )*/ // histogram building is currently bugged
batch.color = Color.WHITE
- val gamepad = (Terrarum.ingame as? Ingame)?.ingameController?.gamepad
+ val gamepad = (Terrarum.ingame as? TerrarumIngame)?.ingameController?.gamepad
if (gamepad != null) {
drawGamepadAxis(gamepad, batch,
gamepad.getAxis(AppLoader.getConfigInt("gamepadaxislx")),
@@ -211,20 +211,20 @@ class BasicDebugInfoWindow : UICanvas() {
*/
// memory pressure
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}MEM ", (Terrarum.WIDTH - 23 * TinyAlphNum.W - 2).toFloat(), line(1))
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}MEM ", (Terrarum.WIDTH - 23 * TinyAlphNum.W - 2).toFloat(), line(1))
// thread count
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}CPUs${if (Terrarum.MULTITHREAD) ccG else ccR}${Terrarum.THREADS.toString().padStart(2, ' ')}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}CPUs${if (AppLoader.MULTITHREAD) ccG else ccR}${AppLoader.THREADS.toString().padStart(2, ' ')}",
(Terrarum.WIDTH - 2 - 8 * TinyAlphNum.W).toFloat(), line(2))
// memory texts
- Terrarum.fontSmallNumbers.draw(batch, "${Terrarum.memJavaHeap}M",
+ AppLoader.fontSmallNumbers.draw(batch, "${Terrarum.memJavaHeap}M",
(Terrarum.WIDTH - 19 * TinyAlphNum.W - 2).toFloat(), line(1))
- Terrarum.fontSmallNumbers.draw(batch, "/${Terrarum.memNativeHeap}M/",
+ AppLoader.fontSmallNumbers.draw(batch, "/${Terrarum.memNativeHeap}M/",
(Terrarum.WIDTH - 14 * TinyAlphNum.W - 2).toFloat(), line(1))
- Terrarum.fontSmallNumbers.draw(batch, "${Terrarum.memXmx}M",
+ AppLoader.fontSmallNumbers.draw(batch, "${Terrarum.memXmx}M",
(Terrarum.WIDTH - 7 * TinyAlphNum.W - 2).toFloat(), line(1))
// FPS count
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}FPS${ccG}${Gdx.graphics.framesPerSecond.toString().padStart(3, ' ')}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}FPS${ccG}${Gdx.graphics.framesPerSecond.toString().padStart(3, ' ')}",
(Terrarum.WIDTH - 3 - 15 * TinyAlphNum.W).toFloat(), line(2))
/**
@@ -232,21 +232,21 @@ class BasicDebugInfoWindow : UICanvas() {
*/
if (ingame != null) {
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}Actors total $ccG${ingame!!.actorContainerActive.size + ingame!!.actorContainerInactive.size}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}Actors total $ccG${ingame!!.actorContainerActive.size + ingame!!.actorContainerInactive.size}",
TinyAlphNum.W * 2f, Terrarum.HEIGHT - TinyAlphNum.H * 2f)
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}Active $ccG${ingame!!.actorContainerActive.size}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}Active $ccG${ingame!!.actorContainerActive.size}",
(TinyAlphNum.W * 2 + 17 * 8).toFloat(), Terrarum.HEIGHT - TinyAlphNum.H * 2f)
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}Dormant $ccG${ingame!!.actorContainerInactive.size}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}Dormant $ccG${ingame!!.actorContainerInactive.size}",
(TinyAlphNum.W * 2 + 28 * 8).toFloat(), Terrarum.HEIGHT - TinyAlphNum.H * 2f)
- if (ingame is Ingame) {
- Terrarum.fontSmallNumbers.draw(batch, "${ccM}Particles $ccG${(ingame as Ingame).particlesActive}",
+ if (ingame is TerrarumIngame) {
+ AppLoader.fontSmallNumbers.draw(batch, "${ccM}Particles $ccG${(ingame as TerrarumIngame).particlesActive}",
(TinyAlphNum.W * 2 + 41 * 8).toFloat(), Terrarum.HEIGHT - TinyAlphNum.H * 2f)
}
}
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}Actors rendering $ccG${IngameRenderer.renderingActorsCount}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}Actors rendering $ccG${IngameRenderer.renderingActorsCount}",
TinyAlphNum.W * 2f, Terrarum.HEIGHT - TinyAlphNum.H * 3f)
- Terrarum.fontSmallNumbers.draw(batch, "${ccY}UIs rendering $ccG${IngameRenderer.renderingUIsCount}",
+ AppLoader.fontSmallNumbers.draw(batch, "${ccY}UIs rendering $ccG${IngameRenderer.renderingUIsCount}",
TinyAlphNum.W * 2f + (21 * 8), Terrarum.HEIGHT - TinyAlphNum.H * 3f)
/**
@@ -254,7 +254,7 @@ class BasicDebugInfoWindow : UICanvas() {
*/
// processor and renderer
- Terrarum.fontSmallNumbers.draw(batch, "$ccY$totalHardwareName",
+ AppLoader.fontSmallNumbers.draw(batch, "$ccY$totalHardwareName",
(Terrarum.WIDTH - (totalHardwareName.length + 2) * TinyAlphNum.W).toFloat(), Terrarum.HEIGHT - TinyAlphNum.H * 2f)
}
@@ -263,13 +263,13 @@ class BasicDebugInfoWindow : UICanvas() {
private val totalHardwareName = "$processorName $rendererName"
private fun printLine(batch: SpriteBatch, l: Int, s: String) {
- Terrarum.fontSmallNumbers.draw(batch,
+ AppLoader.fontSmallNumbers.draw(batch,
s, TinyAlphNum.W * 2f, line(l)
)
}
private fun printLineColumn(batch: SpriteBatch, col: Int, row: Int, s: String) {
- Terrarum.fontSmallNumbers.draw(batch,
+ AppLoader.fontSmallNumbers.draw(batch,
s, (TinyAlphNum.W * 2f + column(col)), line(row)
)
}
@@ -293,9 +293,9 @@ class BasicDebugInfoWindow : UICanvas() {
batch.color = uiColour
batch.fillRect(x.toFloat(), y.toFloat(), w.plus(1), h)
batch.color = Color.GRAY
- Terrarum.fontSmallNumbers.draw(batch, "0", x.toFloat(), y.toFloat() + h + 2)
- Terrarum.fontSmallNumbers.draw(batch, "255", x.toFloat() + w + 1 - 8 * 3, y.toFloat() + h + 2)
- Terrarum.fontSmallNumbers.draw(batch, "Histogramme", x + w / 2 - 5.5f * 8, y.toFloat() + h + 2)
+ AppLoader.fontSmallNumbers.draw(batch, "0", x.toFloat(), y.toFloat() + h + 2)
+ AppLoader.fontSmallNumbers.draw(batch, "255", x.toFloat() + w + 1 - 8 * 3, y.toFloat() + h + 2)
+ AppLoader.fontSmallNumbers.draw(batch, "Histogramme", x + w / 2 - 5.5f * 8, y.toFloat() + h + 2)
blendScreen(batch)
for (c in 0..3) {
@@ -342,7 +342,7 @@ class BasicDebugInfoWindow : UICanvas() {
}
batch.begin()
- Terrarum.fontSmallNumbers.draw(batch, gamepad.getName(), Terrarum.WIDTH - (gamepad.getName().length + 2f) * TinyAlphNum.W, uiY.toFloat() + h + 2)
+ AppLoader.fontSmallNumbers.draw(batch, gamepad.getName(), Terrarum.WIDTH - (gamepad.getName().length + 2f) * TinyAlphNum.W, uiY.toFloat() + h + 2)
}
diff --git a/src/net/torvald/terrarum/ui/ConsoleWindow.kt b/src/net/torvald/terrarum/ui/ConsoleWindow.kt
index a61bf4b45..03008dc28 100644
--- a/src/net/torvald/terrarum/ui/ConsoleWindow.kt
+++ b/src/net/torvald/terrarum/ui/ConsoleWindow.kt
@@ -4,13 +4,13 @@ import com.badlogic.gdx.Input
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
-import net.torvald.util.HistoryArray
-import net.torvald.terrarum.langpack.Lang
-import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.AppLoader
+import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.Authenticator
import net.torvald.terrarum.console.CommandInterpreter
import net.torvald.terrarum.fillRect
+import net.torvald.terrarum.langpack.Lang
+import net.torvald.util.HistoryArray
/**
@@ -58,12 +58,12 @@ class ConsoleWindow : UICanvas() {
batch.fillRect(drawOffX, drawOffY, width.toFloat(), LINE_HEIGHT.toFloat())
val input = commandInputPool!!.toString()
- val inputDrawWidth = Terrarum.fontGame.getWidth(input)
- val inputDrawHeight = Terrarum.fontGame.lineHeight
+ val inputDrawWidth = AppLoader.fontGame.getWidth(input)
+ val inputDrawHeight = AppLoader.fontGame.lineHeight
// text and cursor
batch.color = Color.WHITE
- Terrarum.fontGame.draw(batch, input, 1f + drawOffX, drawOffY)
+ AppLoader.fontGame.draw(batch, input, 1f + drawOffX, drawOffY)
batch.color = Color(0x7f7f7f_ff)
batch.fillRect(inputDrawWidth.toFloat() + drawOffX + 1, drawOffY, 2f, inputDrawHeight)
@@ -74,7 +74,7 @@ class ConsoleWindow : UICanvas() {
// messages
for (i in 0..MESSAGES_DISPLAY_COUNT - 1) {
val message = messages[messageDisplayPos + i]
- Terrarum.fontGame.draw(batch, message, 1f + drawOffX, (LINE_HEIGHT * (i + 1)).toFloat() + drawOffY)
+ AppLoader.fontGame.draw(batch, message, 1f + drawOffX, (LINE_HEIGHT * (i + 1)).toFloat() + drawOffY)
}
}
@@ -181,7 +181,7 @@ class ConsoleWindow : UICanvas() {
commandInputPool = StringBuilder()
if (Authenticator.b()) {
- sendMessage("${Terrarum.NAME} ${AppLoader.getVERSION_STRING()}")
+ sendMessage("${AppLoader.GAME_NAME} ${AppLoader.getVERSION_STRING()}")
sendMessage(Lang["DEV_MESSAGE_CONSOLE_CODEX"])
}
}
diff --git a/src/net/torvald/terrarum/ui/UIHandler.kt b/src/net/torvald/terrarum/ui/UIHandler.kt
index 08c43c312..8d5cd6ef8 100644
--- a/src/net/torvald/terrarum/ui/UIHandler.kt
+++ b/src/net/torvald/terrarum/ui/UIHandler.kt
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.utils.Disposable
import net.torvald.terrarum.gamecontroller.KeyToggler
-import net.torvald.terrarum.modulebasegame.Ingame
+import net.torvald.terrarum.modulebasegame.TerrarumIngame
/**
* UIHandler is a handler for UICanvas. It opens/closes the attached UI, moves the "window" (or "canvas")
@@ -279,7 +279,7 @@ class UIHandler(//var UI: UICanvas,
}
fun setCameraPosition(batch: SpriteBatch, camera: Camera, newX: Float, newY: Float) {
- Ingame.setCameraPosition(batch, camera, newX, newY)
+ TerrarumIngame.setCameraPosition(batch, camera, newX, newY)
}
fun mouseMoved(uiItems: List, screenX: Int, screenY: Int): Boolean {
diff --git a/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt b/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt
index bb5916fab..b6b2695aa 100644
--- a/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt
+++ b/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt
@@ -3,8 +3,8 @@ package net.torvald.terrarum.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.ModMgr
-import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blendNormal
import net.torvald.terrarum.floor
@@ -20,9 +20,9 @@ class UIItemModuleInfoCell(
override var oldPosX = posX
override var oldPosY = posY
- override val height: Int = Terrarum.fontGame.lineHeight.toInt() * 2
+ override val height: Int = AppLoader.fontGame.lineHeight.toInt() * 2
- private val numberAreaWidth = Terrarum.fontSmallNumbers.W * 3 + 4
+ private val numberAreaWidth = AppLoader.fontSmallNumbers.W * 3 + 4
override fun render(batch: SpriteBatch, camera: Camera) {
blendNormal(batch)
@@ -32,53 +32,53 @@ class UIItemModuleInfoCell(
// print load order index
batch.color = Color(0xccccccff.toInt())
- var strlen = Terrarum.fontSmallNumbers.getWidth(modInfo.order.toString())
- Terrarum.fontSmallNumbers.draw(batch,
+ var strlen = AppLoader.fontSmallNumbers.getWidth(modInfo.order.toString())
+ AppLoader.fontSmallNumbers.draw(batch,
modInfo.order.toString(),
posX + (numberAreaWidth - strlen).div(2f).floor(),
- posY + (height - Terrarum.fontSmallNumbers.H).div(2f).floor()
+ posY + (height - AppLoader.fontSmallNumbers.H).div(2f).floor()
)
// print module name
batch.color = Color.WHITE
- Terrarum.fontGame.draw(batch,
+ AppLoader.fontGame.draw(batch,
"${modInfo.properName} (${modInfo.version})",
posX + numberAreaWidth.toFloat(),
posY.toFloat()
)
// print author name
- strlen = Terrarum.fontGame.getWidth(modInfo.author)
- Terrarum.fontGame.draw(batch,
+ strlen = AppLoader.fontGame.getWidth(modInfo.author)
+ AppLoader.fontGame.draw(batch,
modInfo.author,
posX + width - strlen.toFloat(),
posY.toFloat()
)
// print description
- Terrarum.fontGame.draw(batch,
+ AppLoader.fontGame.draw(batch,
modInfo.description,
posX + numberAreaWidth.toFloat(),
- posY + Terrarum.fontGame.lineHeight
+ posY + AppLoader.fontGame.lineHeight
)
// print releasedate
- strlen = Terrarum.fontGame.getWidth(modInfo.releaseDate)
- Terrarum.fontGame.draw(batch,
+ strlen = AppLoader.fontGame.getWidth(modInfo.releaseDate)
+ AppLoader.fontGame.draw(batch,
modInfo.releaseDate,
posX + width - strlen.toFloat(),
- posY + Terrarum.fontGame.lineHeight
+ posY + AppLoader.fontGame.lineHeight
)
}
else {
batch.color = Color(0xff8080_ff.toInt())
val str = "InternalError: no such module: '$moduleName'"
- val strlen = Terrarum.fontSmallNumbers.getWidth(str)
- Terrarum.fontSmallNumbers.draw(batch,
+ val strlen = AppLoader.fontSmallNumbers.getWidth(str)
+ AppLoader.fontSmallNumbers.draw(batch,
str,
posX + (width - numberAreaWidth - strlen).div(2f).floor() + numberAreaWidth,
- posY + (height - Terrarum.fontSmallNumbers.H).div(2f).floor()
+ posY + (height - AppLoader.fontSmallNumbers.H).div(2f).floor()
)
}
}
diff --git a/src/net/torvald/terrarum/ui/UIItemTextArea.kt b/src/net/torvald/terrarum/ui/UIItemTextArea.kt
index 19c878ea4..985dbe855 100644
--- a/src/net/torvald/terrarum/ui/UIItemTextArea.kt
+++ b/src/net/torvald/terrarum/ui/UIItemTextArea.kt
@@ -2,7 +2,7 @@ package net.torvald.terrarum.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
-import net.torvald.terrarum.Terrarum
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.floor
import net.torvald.terrarum.ui.UIItemTextButton.Companion.Alignment
@@ -13,7 +13,7 @@ class UIItemTextArea(
override val width: Int,
override val height: Int,
val lineGap: Int = 0,
- val lineCount: Int = ((height + lineGap) / Terrarum.fontGame.lineHeight).toInt(),
+ val lineCount: Int = ((height + lineGap) / AppLoader.fontGame.lineHeight).toInt(),
val align: Alignment = Alignment.LEFT
) : UIItem(parentUI) {
@@ -40,12 +40,12 @@ class UIItemTextArea(
for (i in scrollPos until minOf(lineCount + scrollPos, entireText.size)) {
val yPtr = i - scrollPos
- val textWidth = Terrarum.fontGame.getWidth(entireText[i])
+ val textWidth = AppLoader.fontGame.getWidth(entireText[i])
when (align) {
- Alignment.LEFT -> Terrarum.fontGame.draw(batch, entireText[i], posX.toFloat(), posY + yPtr * (Terrarum.fontGame.lineHeight + lineGap))
- Alignment.CENTRE -> Terrarum.fontGame.draw(batch, entireText[i], posX + ((width - textWidth) / 2f).floor(), posY + yPtr * (Terrarum.fontGame.lineHeight + lineGap))
- Alignment.RIGHT -> Terrarum.fontGame.draw(batch, entireText[i], posX + width - textWidth.toFloat(), posY + yPtr * (Terrarum.fontGame.lineHeight + lineGap))
+ Alignment.LEFT -> AppLoader.fontGame.draw(batch, entireText[i], posX.toFloat(), posY + yPtr * (AppLoader.fontGame.lineHeight + lineGap))
+ Alignment.CENTRE -> AppLoader.fontGame.draw(batch, entireText[i], posX + ((width - textWidth) / 2f).floor(), posY + yPtr * (AppLoader.fontGame.lineHeight + lineGap))
+ Alignment.RIGHT -> AppLoader.fontGame.draw(batch, entireText[i], posX + width - textWidth.toFloat(), posY + yPtr * (AppLoader.fontGame.lineHeight + lineGap))
}
}
}
diff --git a/src/net/torvald/terrarum/ui/UIItemTextButton.kt b/src/net/torvald/terrarum/ui/UIItemTextButton.kt
index 18d00264c..c49d3ced0 100644
--- a/src/net/torvald/terrarum/ui/UIItemTextButton.kt
+++ b/src/net/torvald/terrarum/ui/UIItemTextButton.kt
@@ -3,8 +3,8 @@ package net.torvald.terrarum.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
+import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.BlendMode
-import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blendNormal
import net.torvald.terrarum.fillRect
import net.torvald.terrarum.langpack.Lang
@@ -53,7 +53,7 @@ open class UIItemTextButton(
override var oldPosY = posY
companion object {
- val font = Terrarum.fontGame
+ val font = AppLoader.fontGame
val height = font.lineHeight.toInt()
val defaultInactiveCol = Color.WHITE
val defaultHighlightCol = Color(0x00f8ff_ff)
diff --git a/src/net/torvald/terrarum/ui/UINSMenu.kt b/src/net/torvald/terrarum/ui/UINSMenu.kt
index abb731255..374d44bc5 100644
--- a/src/net/torvald/terrarum/ui/UINSMenu.kt
+++ b/src/net/torvald/terrarum/ui/UINSMenu.kt
@@ -31,14 +31,14 @@ class UINSMenu(
override var openCloseTime: Second = 0f
val LINE_HEIGHT = 24
val TEXT_OFFSETX = 3f
- val TEXT_OFFSETY = (LINE_HEIGHT - Terrarum.fontGame.lineHeight) / 2f
+ val TEXT_OFFSETY = (LINE_HEIGHT - AppLoader.fontGame.lineHeight) / 2f
val CHILD_ARROW = "${0x2023.toChar()}"
val tree = treeRepresentation.parseAsYamlInvokable()
override var width = 0
override var height = 0
- //override var width = maxOf(minimumWidth, tree.getLevelData(1).map { Terrarum.fontGame.getWidth(it ?: "") }.max() ?: 0)
+ //override var width = maxOf(minimumWidth, tree.getLevelData(1).map { AppLoader.fontGame.getWidth(it ?: "") }.max() ?: 0)
//override var height = LINE_HEIGHT * (tree.children.size + 1)
@@ -91,8 +91,8 @@ class UINSMenu(
}
val listWidth = maxOf(
- Terrarum.fontGame.getWidth(menuTitle), minimumWidth,
- stringsFromTree.map { Terrarum.fontGame.getWidth(it) }.max() ?: 0
+ AppLoader.fontGame.getWidth(menuTitle), minimumWidth,
+ stringsFromTree.map { AppLoader.fontGame.getWidth(it) }.max() ?: 0
)
val uiWidth = listWidth + (2 * TEXT_OFFSETX.toInt())
val listHeight = stringsFromTree.size * LINE_HEIGHT
@@ -176,7 +176,7 @@ class UINSMenu(
batch.color = titleTextCol
blendNormal(batch)
- Terrarum.fontGame.draw(batch, it.title, TEXT_OFFSETX + it.ui.posX, TEXT_OFFSETY + it.ui.posY - LINE_HEIGHT)
+ AppLoader.fontGame.draw(batch, it.title, TEXT_OFFSETX + it.ui.posX, TEXT_OFFSETY + it.ui.posY - LINE_HEIGHT)
// draw the list
batch.color = Color.WHITE
diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt
index f49f0ff69..920be5aae 100644
--- a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt
+++ b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt
@@ -74,8 +74,8 @@ object LightmapRenderer {
}
}
- val overscan_open: Int = 40
- val overscan_opaque: Int = 10
+ private const val overscan_open: Int = 40
+ private const val overscan_opaque: Int = 10
// TODO resize(int, int) -aware
@@ -83,7 +83,7 @@ object LightmapRenderer {
var LIGHTMAP_WIDTH = (Terrarum.ingame?.ZOOM_MINIMUM ?: 1f).inv().times(Terrarum.WIDTH).div(TILE_SIZE).ceil() + overscan_open * 2 + 3
var LIGHTMAP_HEIGHT = (Terrarum.ingame?.ZOOM_MINIMUM ?: 1f).inv().times(Terrarum.HEIGHT).div(TILE_SIZE).ceil() + overscan_open * 2 + 3
- val noopMask = HashSet((LIGHTMAP_WIDTH + LIGHTMAP_HEIGHT) * 2)
+ private val noopMask = HashSet((LIGHTMAP_WIDTH + LIGHTMAP_HEIGHT) * 2)
/**
* Float value, 1.0 for 1023
@@ -99,9 +99,9 @@ object LightmapRenderer {
printdbg(this, "Overscan open: $overscan_open; opaque: $overscan_opaque")
}
- private val AIR = Block.AIR
+ private const val AIR = Block.AIR
- val DRAW_TILE_SIZE: Float = CreateTileAtlas.TILE_SIZE / IngameRenderer.lightmapDownsample
+ const val DRAW_TILE_SIZE: Float = CreateTileAtlas.TILE_SIZE / IngameRenderer.lightmapDownsample
// color model related constants
const val MUL = 1024 // modify this to 1024 to implement 30-bit RGB
@@ -120,9 +120,17 @@ object LightmapRenderer {
internal var for_x = 0
internal var for_y = 0
-
- //inline fun getLightRawPos(x: Int, y: Int) = lightmap[y][x]
-
+ /**
+ * @param x world coord
+ * @param y world coord
+ */
+ private fun inBounds(x: Int, y: Int) =
+ (y - for_y_start + overscan_open in 0 until LIGHTMAP_HEIGHT &&
+ x - for_x_start + overscan_open in 0 until LIGHTMAP_WIDTH)
+ /** World coord to array coord */
+ private inline fun Int.convX() = this - for_x_start + overscan_open
+ /** World coord to array coord */
+ private inline fun Int.convY() = this - for_y_start + overscan_open
/**
* Conventional level (multiplied by four)
@@ -147,66 +155,6 @@ object LightmapRenderer {
}
}
- /**
- * @param x world coord
- * @param y world coord
- */
- private fun inBounds(x: Int, y: Int) =
- (y - for_y_start + overscan_open in 0 until LIGHTMAP_HEIGHT &&
- x - for_x_start + overscan_open in 0 until LIGHTMAP_WIDTH)
- /** World coord to array coord */
- private inline fun Int.convX() = this - for_x_start + overscan_open
- /** World coord to array coord */
- private inline fun Int.convY() = this - for_y_start + overscan_open
-
- /**
- * Internal level (0..1)
- *
- * @param x world tile coord
- * @param y world tile coord
- */
- // TODO in regard of "colour math against integers", return Int?
- /*private fun getLightInternal(x: Int, y: Int): Cvec? {
- if (y - for_y_start + overscan_open in 0 until LIGHTMAP_HEIGHT &&
- x - for_x_start + overscan_open in 0 until LIGHTMAP_WIDTH) {
-
- val ypos = y - for_y_start + overscan_open
- val xpos = x - for_x_start + overscan_open
-
- // TODO as you can see above, we're already doing a boundary check; try using unsafe here?
- return lightmap[ypos][xpos]
- //return lightmap[ypos * LIGHTMAP_WIDTH + xpos]
- }
-
- return null
- }*/
-
-
- /**
- * Converts world coord (x,y) into the lightmap index, and stores the input colour into the given list
- * with given applyFun applied.
- *
- * Default 'applyFun' is simply storing given colour into the array.
- *
- * @param list The lightmap
- * @param x World X coordinate
- * @param y World Y coordinate
- * @param colour Cvec to write
- * @param applyFun A function ```foo(old_colour, given_colour)```
- */
- /*private fun setLightOf(list: Array>, x: Int, y: Int, colour: Cvec, applyFun: (Cvec, Cvec) -> Cvec = { _, c -> c }) {
- if (y - for_y_start + overscan_open in 0 until LIGHTMAP_HEIGHT &&
- x - for_x_start + overscan_open in 0 until LIGHTMAP_WIDTH) {
-
- val ypos = y - for_y_start + overscan_open
- val xpos = x - for_x_start + overscan_open
-
- // TODO as you can see above, we're already doing a boundary check; try using unsafe here?
- lightmap[ypos][xpos] = applyFun.invoke(list[ypos][xpos], colour)
- //list[ypos * LIGHTMAP_WIDTH + xpos] = applyFun.invoke(list[ypos * LIGHTMAP_WIDTH + xpos], colour)
- }
- }*/
-
internal fun fireRecalculateEvent(vararg actorContainers: List?) {
try {
world.getTileFromTerrain(0, 0) // test inquiry
@@ -395,7 +343,7 @@ object LightmapRenderer {
}
}
- updateMessages = lightTaskArr.toTypedArray().sliceEvenly(Terrarum.THREADS)
+ updateMessages = lightTaskArr.toTypedArray().sliceEvenly(AppLoader.THREADS)
}
internal data class ThreadedLightmapUpdateMessage(val x: Int, val y: Int)
@@ -650,7 +598,7 @@ object LightmapRenderer {
private val colourNull = Cvec(0)
private val gdxColorNull = Color(0)
- private val epsilon = 1f/1024f
+ private const val epsilon = 1f/1024f
private var _lightBufferAsTex: Texture = Texture(1, 1, Pixmap.Format.RGBA8888)
@@ -719,10 +667,12 @@ object LightmapRenderer {
}
fun dispose() {
-
+ _lightBufferAsTex.dispose()
+ lightBuffer.dispose()
+ lightmap.destroy()
}
- val lightScalingMagic = 8f
+ private const val lightScalingMagic = 8f
/**
* Subtract each channel's RGB value.
@@ -732,7 +682,7 @@ object LightmapRenderer {
* @param darken (0-255) per channel
* @return darkened data (0-255) per channel
*/
- fun darkenColoured(x: Int, y: Int, darken: Cvec): Cvec {
+ private fun darkenColoured(x: Int, y: Int, darken: Cvec): Cvec {
// use equation with magic number 8.0
// this function, when done recursively (A_x = darken(A_x-1, C)), draws exponential curve. (R^2 = 1)
@@ -753,24 +703,8 @@ object LightmapRenderer {
}
- /**
- * Darken or brighten colour by 'brighten' argument
- *
- * @param data Raw channel value (0-255) per channel
- * @param brighten (-1.0 - 1.0) negative means darkening
- * @return processed colour
- */
- fun alterBrightnessUniform(data: Cvec, brighten: Float): Cvec {
- return Cvec(
- data.r + brighten,
- data.g + brighten,
- data.b + brighten,
- data.a + brighten
- )
- }
-
/** infix is removed to clarify the association direction */
- fun Cvec.maxAndAssign(other: Cvec): Cvec {
+ private fun Cvec.maxAndAssign(other: Cvec): Cvec {
// TODO investigate: if I use assignment instead of set(), it blackens like the vector branch. --Torvald, 2019-06-07
// that was because you forgot 'this.r/g/b/a = ' part, bitch. --Torvald, 2019-06-07
this.r = if (this.r > other.r) this.r else other.r
@@ -793,7 +727,7 @@ object LightmapRenderer {
// TODO: float LUT lookup using linear interpolation
// input: 0..1 for int 0..1023
- fun hdr(intensity: Float): Float {
+ private fun hdr(intensity: Float): Float {
val intervalStart = (intensity * CHANNEL_MAX).floorInt()
val intervalEnd = minOf(rgbHDRLookupTable.lastIndex, (intensity * CHANNEL_MAX).floorInt() + 1)
@@ -839,7 +773,7 @@ object LightmapRenderer {
}
- val rgbHDRLookupTable = floatArrayOf( // polynomial of 6.0 please refer to work_files/HDRcurveBezierLinIntp.kts
+ private val rgbHDRLookupTable = floatArrayOf( // polynomial of 6.0 please refer to work_files/HDRcurveBezierLinIntp.kts
0.0000f,0.0004f,0.0020f,0.0060f,0.0100f,0.0139f,0.0179f,0.0219f,0.0259f,0.0299f,0.0338f,0.0378f,0.0418f,0.0458f,0.0497f,0.0537f,
0.0577f,0.0617f,0.0656f,0.0696f,0.0736f,0.0776f,0.0816f,0.0855f,0.0895f,0.0935f,0.0975f,0.1014f,0.1054f,0.1094f,0.1134f,0.1173f,
0.1213f,0.1253f,0.1293f,0.1332f,0.1372f,0.1412f,0.1451f,0.1491f,0.1531f,0.1571f,0.1610f,0.1650f,0.1690f,0.1730f,0.1769f,0.1809f,
@@ -906,7 +840,7 @@ object LightmapRenderer {
1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f,1.0000f // isn't it beautiful?
)
/** To eliminated visible edge on the gradient when 255/1023 is exceeded */
- internal fun Color.normaliseToHDR() = Color(
+ fun Color.normaliseToHDR() = Color(
hdr(this.r.coerceIn(0f, 1f)),
hdr(this.g.coerceIn(0f, 1f)),
hdr(this.b.coerceIn(0f, 1f)),
@@ -927,14 +861,7 @@ object LightmapRenderer {
for (y in overscan_open..render_height + overscan_open + 1) {
for (x in overscan_open..render_width + overscan_open + 1) {
try {
- //val colour = lightmap[y][x]
- //val colour = lightmap[y * LIGHTMAP_WIDTH + x]
- val x = x.convX()
- val y = y.convY()
- //reds[minOf(CHANNEL_MAX, lightmap.getR(x, y).times(MUL).floorInt())] += 1
- //greens[minOf(CHANNEL_MAX, lightmap.getG(x, y).times(MUL).floorInt())] += 1
- //blues[minOf(CHANNEL_MAX, lightmap.getB(x, y).floorInt())] += 1
- //uvs[minOf(CHANNEL_MAX, lightmap.getA(x, y).floorInt())] += 1
+ // TODO
}
catch (e: ArrayIndexOutOfBoundsException) { }
}
diff --git a/work_files/graphics/gui/composer/mockup.psd b/work_files/graphics/gui/composer/mockup.psd
index bac54e0ea..1cc152d9f 100644
--- a/work_files/graphics/gui/composer/mockup.psd
+++ b/work_files/graphics/gui/composer/mockup.psd
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5f3a4e3071c2697c1afa74f18db2636a704f8d9307917e7cdacd2284fc6e50cd
-size 479748
+oid sha256:cbbe7f9e30b765a604c6c5e230e5c4fe579abbbf53fa0eebba7f34b93756bae0
+size 861534