From 31a57fade770b8a15382c06be594f66f5f25578e Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Wed, 16 Jun 2021 14:01:48 +0530 Subject: [PATCH] Fix some pathedinterior bugs and aesthetic gui shit --- src/Main.hx | 2 +- src/MarbleWorld.hx | 12 ++++++++++-- src/PathedInterior.hx | 3 +++ src/gui/PlayGui.hx | 17 ++++++++++++++++- src/shapes/PowerUp.hx | 4 ++++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/Main.hx b/src/Main.hx index 4aaf9ac3..b4943bfb 100644 --- a/src/Main.hx +++ b/src/Main.hx @@ -52,7 +52,7 @@ class Main extends hxd.App { override function init() { super.init(); - var ltr = File.getContent("data/missions/advanced/acrobat.mis"); + var ltr = File.getContent("data/missions/advanced/survival.mis"); var mfp = new MisParser(ltr); var mis = mfp.parse(); diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index a6628ac2..8f1a40fb 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -198,6 +198,12 @@ class MarbleWorld extends Scheduler { this.bonusTime = 0; this.outOfBounds = false; this.finishTime = null; + this.helpTextTimeState = Math.NEGATIVE_INFINITY; + this.alertTextTimeState = Math.NEGATIVE_INFINITY; + if (this.totalGems > 0) { + this.gemCount = 0; + this.playGui.formatGemCounter(this.gemCount, this.totalGems); + } var startquat = this.getStartPositionAndOrientation(); @@ -215,7 +221,7 @@ class MarbleWorld extends Scheduler { var missionInfo:MissionElementScriptObject = cast this.mission.root.elements.filter((element) -> element._type == MissionElementType.ScriptObject && element._name == "MissionInfo")[0]; - if (missionInfo.starthelptext != "") + if (missionInfo.starthelptext != null) displayHelp(missionInfo.starthelptext); // Show the start help text for (shape in dtsObjects) @@ -285,8 +291,10 @@ class MarbleWorld extends Scheduler { // if (pathedInterior.hasCollision) // this.physics.addInterior(pathedInterior); - for (trigger in pathedInterior.triggers) + for (trigger in pathedInterior.triggers) { this.triggers.push(trigger); + this.collisionWorld.addEntity(trigger.collider); + } return; } diff --git a/src/PathedInterior.hx b/src/PathedInterior.hx index e9f2c033..69230ef1 100644 --- a/src/PathedInterior.hx +++ b/src/PathedInterior.hx @@ -108,7 +108,10 @@ class PathedInterior extends InteriorObject { marker.msToNext = MisParser.parseNumber(x.mstonext) / 1000; marker.smoothingType = x.smoothingtype; marker.position = MisParser.parseVector3(x.position); + marker.position.x = -marker.position.x; marker.rotation = MisParser.parseRotation(x.rotation); + marker.rotation.x = -marker.rotation.x; + marker.rotation.w = -marker.rotation.w; return marker; }); diff --git a/src/gui/PlayGui.hx b/src/gui/PlayGui.hx index bc5d5feb..eb5f18cc 100644 --- a/src/gui/PlayGui.hx +++ b/src/gui/PlayGui.hx @@ -32,6 +32,7 @@ class PlayGui { var gemImageScene:h3d.scene.Scene; var gemImageSceneTarget:Texture; var gemImageObject:DtsObject; + var gemImageSceneTargetBitmap:Bitmap; var powerupBox:Bitmap; var powerupImageScene:h3d.scene.Scene; @@ -144,7 +145,7 @@ class PlayGui { gemImageSceneTarget = new Texture(60, 60, [Target]); gemImageSceneTarget.depthBuffer = new DepthBuffer(60, 60); - var gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d); + gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d); gemImageSceneTargetBitmap.x = -8; gemImageSceneTargetBitmap.y = -8; @@ -278,6 +279,20 @@ class PlayGui { } public function formatGemCounter(collected:Int, total:Int) { + if (total == 0) { + for (number in gemCountNumbers) { + number.visible = false; + } + gemCountSlash.visible = false; + gemImageSceneTargetBitmap.visible = false; + } else { + for (number in gemCountNumbers) { + number.visible = true; + } + gemCountSlash.visible = true; + gemImageSceneTargetBitmap.visible = true; + } + var totalTenths = Math.floor(total / 10); var totalOnes = total % 10; diff --git a/src/shapes/PowerUp.hx b/src/shapes/PowerUp.hx index 5e84dc8c..9a237975 100644 --- a/src/shapes/PowerUp.hx +++ b/src/shapes/PowerUp.hx @@ -67,4 +67,8 @@ abstract class PowerUp extends DtsObject { public abstract function pickUp():Bool; public abstract function use(timeState:TimeState):Void; + + public override function reset() { + this.lastPickUpTime = Math.NEGATIVE_INFINITY; + } }