mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
no more context fuckups on apploader
This commit is contained in:
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -38,7 +38,7 @@
|
||||
<property name="caretWidth" class="java.lang.Integer" />
|
||||
</properties>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8.0_212" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
Binary file not shown.
@@ -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
|
||||
}
|
||||
@@ -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)
|
||||
* <p>
|
||||
* Version numbering that follows Semantic Versioning 2.0.0 (https://semver.org/)
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* 0xAA_BB_XXXX, where:
|
||||
* </p>
|
||||
* <li>AA: Major version</li>
|
||||
* <li>BB: Minor version</li>
|
||||
* <li>XXXX: Patch version</li>
|
||||
* <p>
|
||||
* e.g. 0x02010034 will be translated as 2.1.52
|
||||
* </p>
|
||||
*/
|
||||
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<File> 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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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!!)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
61
src/net/torvald/terrarum/MusicComposerApp.java
Normal file
61
src/net/torvald/terrarum/MusicComposerApp.java
Normal file
@@ -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();
|
||||
}
|
||||
}
|
||||
7
src/net/torvald/terrarum/MusicComposerStandalone.kt
Normal file
7
src/net/torvald/terrarum/MusicComposerStandalone.kt
Normal file
@@ -0,0 +1,7 @@
|
||||
package net.torvald.terrarum
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2019-06-27.
|
||||
*/
|
||||
class MusicComposerStandalone {
|
||||
}
|
||||
@@ -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<Int>(64)
|
||||
private val nativeHeapCircularArray = CircularArray<Int>(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")
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -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())
|
||||
|
||||
@@ -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<Runnable>(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()
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import net.torvald.terrarum.langpack.Lang
|
||||
internal object Version : ConsoleCommand {
|
||||
override fun execute(args: Array<String>) {
|
||||
|
||||
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}")
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<Any>) {
|
||||
Terrarum.setScreen(TitleScreen(Terrarum.batch))
|
||||
AppLoader.setScreen(TitleScreen(Terrarum.batch))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -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<String>) {
|
||||
if (args.size < 2) {
|
||||
jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as Ingame).actorNowPlaying))
|
||||
jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as TerrarumIngame).actorNowPlaying))
|
||||
}
|
||||
else {
|
||||
try {
|
||||
|
||||
@@ -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<String>) {
|
||||
jPanelInstances.add(ActorsLister(
|
||||
(Terrarum.ingame!! as Ingame).actorContainerActive,
|
||||
(Terrarum.ingame!! as Ingame).actorContainerInactive)
|
||||
(Terrarum.ingame!! as TerrarumIngame).actorContainerActive,
|
||||
(Terrarum.ingame!! as TerrarumIngame).actorContainerInactive)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String>) {
|
||||
(Terrarum.ingame as? Ingame)?.uiCheatMotherfuckerNootNoot?.setAsOpen()
|
||||
(Terrarum.ingame as? TerrarumIngame)?.uiCheatMotherfuckerNootNoot?.setAsOpen()
|
||||
}
|
||||
|
||||
override fun printUsage() {
|
||||
|
||||
@@ -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<String>) {
|
||||
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(
|
||||
|
||||
@@ -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<String>) {
|
||||
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
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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<String>) {
|
||||
if (args.size == 1) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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<String>) {
|
||||
//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")
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String>) {
|
||||
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
|
||||
|
||||
|
||||
|
||||
@@ -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<String>) {
|
||||
val world = (Terrarum.ingame!! as Ingame).gameworld
|
||||
val world = (Terrarum.ingame!! as TerrarumIngame).gameworld
|
||||
|
||||
|
||||
if (args.size == 2) {
|
||||
|
||||
@@ -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<String>) {
|
||||
val world = (Terrarum.ingame!! as Ingame).gameworld
|
||||
val world = (Terrarum.ingame!! as TerrarumIngame).gameworld
|
||||
|
||||
|
||||
if (args.size == 2) {
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<String>) {
|
||||
val player = (Terrarum.ingame!! as Ingame).actorNowPlaying
|
||||
val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying
|
||||
if (player == null) return
|
||||
|
||||
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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()
|
||||
)
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<String>) : UICanvas() {
|
||||
val remoConWidth = 304
|
||||
fun getRemoConHeight(menu: ArrayList<String>) = DEFAULT_LINE_HEIGHT * menu.size.plus(1)
|
||||
fun getRemoConHeight(menu: Array<String>) = 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()
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ package net.torvald.terrarum.modulebasegame.ui
|
||||
val remoConWidth = 240
|
||||
fun getRemoConHeight(menu: ArrayList<String>) = 36 * menu.size.plus(1)
|
||||
fun getRemoConHeight(menu: Array<String>) = 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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<TaggedJoise>) {
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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"])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<UIItem>, screenX: Int, screenY: Int): Boolean {
|
||||
|
||||
@@ -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()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<Point2i>((LIGHTMAP_WIDTH + LIGHTMAP_HEIGHT) * 2)
|
||||
private val noopMask = HashSet<Point2i>((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<Array<Cvec>>, 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<ActorWithBody>?) {
|
||||
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) { }
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user