From eb8978b406d4766554a15a391ac06380c3797a0c Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Wed, 23 Nov 2022 13:48:05 +0530 Subject: [PATCH] functional searcg --- data/ui/search/artist_d.png | Bin 0 -> 3416 bytes data/ui/search/artist_h.png | Bin 0 -> 3439 bytes data/ui/search/artist_n.png | Bin 0 -> 3393 bytes data/ui/search/cancel_d.png | Bin 0 -> 5026 bytes data/ui/search/cancel_h.png | Bin 0 -> 4922 bytes data/ui/search/cancel_n.png | Bin 0 -> 4945 bytes data/ui/search/file_d.png | Bin 0 -> 3322 bytes data/ui/search/file_h.png | Bin 0 -> 3370 bytes data/ui/search/file_n.png | Bin 0 -> 3314 bytes data/ui/search/more.png | Bin 0 -> 5683 bytes data/ui/search/name_d.png | Bin 0 -> 3755 bytes data/ui/search/name_h.png | Bin 0 -> 3755 bytes data/ui/search/name_n.png | Bin 0 -> 3731 bytes data/ui/search/options_d.png | Bin 0 -> 5432 bytes data/ui/search/options_h.png | Bin 0 -> 5380 bytes data/ui/search/options_n.png | Bin 0 -> 5376 bytes data/ui/search/play_d.png | Bin 0 -> 4314 bytes data/ui/search/play_h.png | Bin 0 -> 4297 bytes data/ui/search/play_i.png | Bin 0 -> 3456 bytes data/ui/search/play_n.png | Bin 0 -> 4215 bytes data/ui/search/random_d.png | Bin 0 -> 3651 bytes data/ui/search/random_h.png | Bin 0 -> 3604 bytes data/ui/search/random_n.png | Bin 0 -> 3684 bytes data/ui/search/window-lb.png | Bin 0 -> 11484 bytes data/ui/search/window.png | Bin 0 -> 10751 bytes src/gui/GuiButton.hx | 9 ++ src/gui/GuiScrollCtrl.hx | 9 +- src/gui/GuiTextInput.hx | 7 + src/gui/GuiTextListCtrl.hx | 197 +++++++++++++++++++++++----- src/gui/OOBInsultGui.hx | 2 +- src/gui/PlayMissionGui.hx | 54 ++++---- src/gui/SearchGui.hx | 245 +++++++++++++++++++++++++++++++++++ 32 files changed, 468 insertions(+), 55 deletions(-) create mode 100644 data/ui/search/artist_d.png create mode 100644 data/ui/search/artist_h.png create mode 100644 data/ui/search/artist_n.png create mode 100644 data/ui/search/cancel_d.png create mode 100644 data/ui/search/cancel_h.png create mode 100644 data/ui/search/cancel_n.png create mode 100644 data/ui/search/file_d.png create mode 100644 data/ui/search/file_h.png create mode 100644 data/ui/search/file_n.png create mode 100644 data/ui/search/more.png create mode 100644 data/ui/search/name_d.png create mode 100644 data/ui/search/name_h.png create mode 100644 data/ui/search/name_n.png create mode 100644 data/ui/search/options_d.png create mode 100644 data/ui/search/options_h.png create mode 100644 data/ui/search/options_n.png create mode 100644 data/ui/search/play_d.png create mode 100644 data/ui/search/play_h.png create mode 100644 data/ui/search/play_i.png create mode 100644 data/ui/search/play_n.png create mode 100644 data/ui/search/random_d.png create mode 100644 data/ui/search/random_h.png create mode 100644 data/ui/search/random_n.png create mode 100644 data/ui/search/window-lb.png create mode 100644 data/ui/search/window.png create mode 100644 src/gui/SearchGui.hx diff --git a/data/ui/search/artist_d.png b/data/ui/search/artist_d.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff4310677c03400a1c5a678caecddb202e8527d GIT binary patch literal 3416 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 XO66jpk@2!Y00000NkvXXu0mjf91M`B literal 0 HcmV?d00001 diff --git a/data/ui/search/cancel_d.png b/data/ui/search/cancel_d.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2322ec57b868a1777e85eb54b60d684c350f87 GIT binary patch literal 5026 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 literal 0 HcmV?d00001 diff --git a/data/ui/search/cancel_n.png b/data/ui/search/cancel_n.png new file mode 100644 index 0000000000000000000000000000000000000000..caf0e7e2a81871d5af8fad67812ce0767cfd9c4f GIT binary patch literal 4945 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 Ef;n9@6aWAK literal 0 HcmV?d00001 diff --git a/data/ui/search/file_h.png b/data/ui/search/file_h.png new file mode 100644 index 0000000000000000000000000000000000000000..4625c33ff8f10592169f0ecdfe7975f99385e64a GIT binary patch literal 3370 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 w0#JGD(0xCSzi{Vuo-{LSf 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 V(A7T;qtpNZ002ovPDHLkV1idH?2!Nf literal 0 HcmV?d00001 diff --git a/data/ui/search/name_h.png b/data/ui/search/name_h.png new file mode 100644 index 0000000000000000000000000000000000000000..af15c6acf15effb9338e36366e4eb16904c5cde3 GIT binary patch literal 3755 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 VzH`DFp5_1m002ovPDHLkV1iyf|LXt% literal 0 HcmV?d00001 diff --git a/data/ui/search/name_n.png b/data/ui/search/name_n.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad1d6eaac3d2b2f184eefb795e925ebb8aba6a1 GIT binary patch literal 3731 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 iwuS$G{F#sc7hnLHgaC`EHaQ9a0000 literal 0 HcmV?d00001 diff --git a/data/ui/search/options_h.png b/data/ui/search/options_h.png new file mode 100644 index 0000000000000000000000000000000000000000..e1333939240e9cdad2723d30bdd33152468328fc GIT binary patch literal 5380 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 literal 0 HcmV?d00001 diff --git a/data/ui/search/play_i.png b/data/ui/search/play_i.png new file mode 100644 index 0000000000000000000000000000000000000000..ab5e5b3ecbdeb2ab6a667d02034401364716e907 GIT binary patch literal 3456 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 literal 0 HcmV?d00001 diff --git a/data/ui/search/random_d.png b/data/ui/search/random_d.png new file mode 100644 index 0000000000000000000000000000000000000000..ae75bda977e45b0106d6d93822adb550618d9dd3 GIT binary patch literal 3651 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 V_U{$o6*&L^002ovPDHLkV1j`Y9XS91 literal 0 HcmV?d00001 diff --git a/data/ui/search/random_h.png b/data/ui/search/random_h.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c32ec8938c44dc79a714b45123140a9bcb5b91 GIT binary patch literal 3604 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 a0R{l7dRUx7QKy*z0000G5+uX literal 0 HcmV?d00001 diff --git a/data/ui/search/random_n.png b/data/ui/search/random_n.png new file mode 100644 index 0000000000000000000000000000000000000000..c308d873b12e7e146c8748b3cd4bc4768ee3fd53 GIT binary patch literal 3684 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 literal 0 HcmV?d00001 diff --git a/data/ui/search/window.png b/data/ui/search/window.png new file mode 100644 index 0000000000000000000000000000000000000000..27e512e4367479cf2807f2bfce8d35223b9d5d1f GIT binary patch literal 10751 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 literal 0 HcmV?d00001 diff --git a/src/gui/GuiButton.hx b/src/gui/GuiButton.hx index b88941e8..3fd7999f 100644 --- a/src/gui/GuiButton.hx +++ b/src/gui/GuiButton.hx @@ -80,6 +80,15 @@ class GuiButton extends GuiAnim { } if (buttonType == Radio) { pressed = true; + // Unpress all the other radios + for (c in this.parent.children) { + if (c != this && c is GuiButton) { + var cb:GuiButton = cast c; + if (cb.buttonType == Radio) { + cb.pressed = false; + } + } + } } } diff --git a/src/gui/GuiScrollCtrl.hx b/src/gui/GuiScrollCtrl.hx index f8540aac..199e2563 100644 --- a/src/gui/GuiScrollCtrl.hx +++ b/src/gui/GuiScrollCtrl.hx @@ -84,7 +84,7 @@ class GuiScrollCtrl extends GuiControl { } public override function render(scene2d:Scene) { - updateScrollVisual(); + this.dirty = true; if (scene2d.contains(scrollBarY)) scene2d.removeChild(scrollBarY); @@ -95,12 +95,19 @@ class GuiScrollCtrl extends GuiControl { scene2d.addChild(scrollBarY); scene2d.addChild(clickInteractive); + updateScrollVisual(); + super.render(scene2d); } public function updateScrollVisual() { var renderRect = this.getRenderRectangle(); + if (maxScrollY < renderRect.extent.y) { + scrollBarY.clear(); + return; + } + var scrollBarYSize = renderRect.extent.y * renderRect.extent.y / maxScrollY; this.scrollY = Util.clamp(scrollY, 0, renderRect.extent.y - scrollBarYSize); diff --git a/src/gui/GuiTextInput.hx b/src/gui/GuiTextInput.hx index 75b76146..b97785e8 100644 --- a/src/gui/GuiTextInput.hx +++ b/src/gui/GuiTextInput.hx @@ -15,10 +15,17 @@ class GuiTextInput extends GuiControl { var text:TextInput; var justify:Justification = Left; + var onTextChange:String->Void; + public function new(font:h2d.Font) { super(); this.text = new TextInput(font); this.text.textColor = 0; + this.text.onChange = () -> { + if (onTextChange != null) { + onTextChange(this.text.text); + } + }; } public override function render(scene2d:Scene) { diff --git a/src/gui/GuiTextListCtrl.hx b/src/gui/GuiTextListCtrl.hx index 493e349c..8514d593 100644 --- a/src/gui/GuiTextListCtrl.hx +++ b/src/gui/GuiTextListCtrl.hx @@ -1,5 +1,10 @@ package gui; +import h3d.Engine; +import h2d.Tile; +import h2d.Bitmap; +import h3d.mat.Texture; +import shaders.GuiClipFilter; import h2d.Graphics; import gui.GuiControl.MouseState; import h2d.Scene; @@ -9,7 +14,6 @@ import src.MarbleGame; class GuiTextListCtrl extends GuiControl { public var texts:Array; - public var onSelectedFunc:Int->Void; var font:Font; @@ -17,8 +21,19 @@ class GuiTextListCtrl extends GuiControl { var g:Graphics; var _prevSelected:Int = -1; + var bmp:Bitmap; + var textTexture:Texture; + var _dirty = true; + + public var selectedColor:Int = 0x206464; + public var selectedFillColor:Int = 0xC8C8C8; + public var textYOffset:Int = 0; + public var scroll:Float = 0; + + public var scrollable:Bool = false; + public function new(font:Font, texts:Array) { super(); this.font = font; @@ -33,44 +48,101 @@ class GuiTextListCtrl extends GuiControl { this.g = new Graphics(); } - public override function render(scene2d:Scene) { + public function setTexts(texts:Array) { var renderRect = this.getRenderRectangle(); + for (textObj in this.textObjs) { + textObj.remove(); + } + this.textObjs = []; + for (text in texts) { + var tobj = new Text(font); + tobj.text = text; + tobj.textColor = 0; + textObjs.push(tobj); + } + this.texts = texts; + this._prevSelected = -1; + if (this.onSelectedFunc != null) + this.onSelectedFunc(-1); + this._dirty = true; - g.setPosition(renderRect.position.x, renderRect.position.y); - if (scene2d.contains(g)) - scene2d.removeChild(g); - scene2d.addChild(g); + redrawSelectionRect(renderRect); for (i in 0...textObjs.length) { var text = textObjs[i]; - text.setPosition(Math.floor(renderRect.position.x + 5), Math.floor(renderRect.position.y + (i * (text.font.size + 4) + 5 + textYOffset))); - if (scene2d.contains(text)) - scene2d.removeChild(text); - scene2d.addChild(text); + text.setPosition(Math.floor((!scrollable ? renderRect.position.x : 0) + 5), + Math.floor((!scrollable ? renderRect.position.y : 0) + (i * (text.font.size + 4) + 5 + textYOffset - this.scroll))); if (_prevSelected == i) { - text.textColor = 0x206464; + text.textColor = selectedColor; + } + } + } + + public override function render(scene2d:Scene) { + var renderRect = this.getRenderRectangle(); + + if (scene2d.contains(g)) + scene2d.removeChild(g); + scene2d.addChild(g); + g.setPosition(renderRect.position.x, renderRect.position.y - this.scroll); + + if (scrollable) { + if (textTexture != null) + textTexture.dispose(); + + var htr = this.getHitTestRect(); + + textTexture = new Texture(cast htr.extent.x, cast htr.extent.y, [Target]); + if (bmp != null) { + bmp.tile = Tile.fromTexture(textTexture); + } else { + bmp = new Bitmap(Tile.fromTexture(textTexture)); + } + + if (scene2d.contains(bmp)) + scene2d.removeChild(bmp); + + scene2d.addChild(bmp); + + bmp.setPosition(htr.position.x, htr.position.y); + } + + for (i in 0...textObjs.length) { + var text = textObjs[i]; + text.setPosition(Math.floor((!scrollable ? renderRect.position.x : 0) + 5), + Math.floor((!scrollable ? renderRect.position.y : 0) + (i * (text.font.size + 4) + 5 + textYOffset - this.scroll))); + if (!scrollable) { + if (scene2d.contains(text)) + scene2d.removeChild(text); + scene2d.addChild(text); + } + + if (_prevSelected == i) { + text.textColor = selectedColor; } } - if (_prevSelected != -1) { - g.clear(); - g.beginFill(0xC8C8C8); - g.drawRect(0, 5 + (_prevSelected * (font.size + 4)) - 3, renderRect.extent.x, font.size + 4); - g.endFill(); - } else { - g.clear(); - } + redrawSelectionRect(renderRect); + redrawText(); super.render(scene2d); } + public function calculateFullHeight() { + return (this.texts.length * (font.size + 4)); + } + public override function dispose() { super.dispose(); for (text in textObjs) { text.remove(); } this.g.remove(); + if (this.scrollable) { + this.textTexture.dispose(); + this.bmp.remove(); + } } public override function onRemove() { @@ -98,9 +170,10 @@ class GuiTextListCtrl extends GuiControl { for (i in 0...textObjs.length) { var selected = i == hoverIndex || i == this._prevSelected; var text = textObjs[i]; - text.textColor = selected ? 0x206464 : 0; + text.textColor = selected ? selectedColor : 0; // fill color = 0xC8C8C8 } + this._dirty = true; // obviously in renderRect } @@ -112,6 +185,7 @@ class GuiTextListCtrl extends GuiControl { text.textColor = 0; // fill color = 0xC8C8C8 } + this._dirty = true; } public override function onMousePress(mouseState:MouseState) { @@ -121,25 +195,90 @@ class GuiTextListCtrl extends GuiControl { var renderRect = this.getRenderRectangle(); var yStart = renderRect.position.y; var dy = mousePos.y - yStart; - var selectedIndex = Math.floor(dy / (font.size + 4)); + var selectedIndex = Math.floor((dy + this.scroll) / (font.size + 4)); if (selectedIndex >= this.texts.length) { selectedIndex = -1; } if (_prevSelected != selectedIndex) { + this._dirty = true; _prevSelected = selectedIndex; - if (selectedIndex != -1) { - g.clear(); - g.beginFill(0xC8C8C8); - g.drawRect(0, 5 + (selectedIndex * (font.size + 4)) - 3, renderRect.extent.x, font.size + 4); - g.endFill(); - } else { - g.clear(); - } + redrawSelectionRect(renderRect); } if (onSelectedFunc != null) { onSelectedFunc(selectedIndex); } } + + function redrawSelectionRect(renderRect:Rect) { + if (_prevSelected != -1) { + g.clear(); + g.beginFill(selectedFillColor); + + // Check if we are between the top and bottom, render normally in that case + var topY = 2 + (_prevSelected * (font.size + 4)) + g.y; + var bottomY = 2 + (_prevSelected * (font.size + 4)) + g.y + font.size + 4; + var topRectY = renderRect.position.y; + var bottomRectY = renderRect.position.y + renderRect.extent.y; + + if (topY >= topRectY && bottomY <= bottomRectY) + g.drawRect(0, 5 + (_prevSelected * (font.size + 4)) - 3, renderRect.extent.x, font.size + 4); + // We need to do math the draw the partially visible top selected + if (topY <= topRectY && bottomY >= topRectY) { + g.drawRect(0, this.scroll, renderRect.extent.x, topY + font.size + 4 - renderRect.position.y); + } + // Same for the bottom + if (topY <= bottomRectY && bottomY >= bottomRectY) { + g.drawRect(0, this.scroll + + renderRect.extent.y + - font.size + - 4 + + (topY + font.size + 4 - bottomRectY), renderRect.extent.x, + renderRect.position.y + + renderRect.extent.y + - (topY)); + } + g.endFill(); + } else { + g.clear(); + } + } + + public override function onScroll(scrollX:Float, scrollY:Float) { + super.onScroll(scrollX, scrollY); + var renderRect = this.getRenderRectangle(); + + this.scroll = scrollY; + var hittestrect = this.getHitTestRect(); + for (i in 0...textObjs.length) { + var text = textObjs[i]; + text.y = Math.floor((i * (text.font.size + 4) + 5 + textYOffset - scrollY)); + g.y = renderRect.position.y - scrollY; + + // if (text.y < hittestrect.position.y - text.textHeight || text.y > hittestrect.position.y + hittestrect.extent.y) + // text.visible = false; + // else { + // text.visible = true; + // } + } + redrawSelectionRect(hittestrect); + this._dirty = true; + } + + function redrawText() { + if (this.scrollable) { + if (this._dirty) { + textTexture.clear(0, 0); + for (txt in this.textObjs) + txt.drawTo(textTexture); + this._dirty = false; + } + } + } + + public override function renderEngine(engine:Engine) { + redrawText(); + super.renderEngine(engine); + } } diff --git a/src/gui/OOBInsultGui.hx b/src/gui/OOBInsultGui.hx index 4d0c9362..79ace7a1 100644 --- a/src/gui/OOBInsultGui.hx +++ b/src/gui/OOBInsultGui.hx @@ -132,7 +132,7 @@ class OOBInsultGui extends GuiImage { "Wow, you truly are bad, probably one of the worst Marble Blast players to ever live on this planet. Or you just keep failing to good runs. Are you sure you aren\'t playing an easy level while this message pops up? Whatever, those messages will now repeat themselves (with a few exceptions), but for now, please remember this:\n\n\nYOU suck!", "SING WITH ME:\n\nForty nine thousand nine hundred and ninety nine times Out of Bounds, forty nine thousand nine hundred and ninety nine times Out of Bounds, knock a marble off the level, fifty thousand times Out of Bounds!", "What\'s that in the sky? Is it a plane? Is it a bird? No! It\'s the marble! And it\'s way off the level!!! Congratulations on hitting 300,000 Out of Bounds mark. You may now suck more.", - "1,000,000 times Out of Bounds?!?! You seriously love this game, don\'t you? Well then, thanks for playing PlatinumQuest! Please keep this bad playing up and continue to go Out of Bounds. We\'ll just laugh at how bad you are. Also, this is the final message as from now on they\'re all repeats. Thank you for sucking at PlatinumQuest!", + "1,000,000 times Out of Bounds?!?! You seriously love this game, don\'t you? Well then, thanks for playing Marble Blast Platinum! Please keep this bad playing up and continue to go Out of Bounds. We\'ll just laugh at how bad you are. Also, this is the final message as from now on they\'re all repeats. Thank you for sucking at Marble Blast Platinum!", "You have no life. This is official." ]; diff --git a/src/gui/PlayMissionGui.hx b/src/gui/PlayMissionGui.hx index 009c2bff..2eb83a73 100644 --- a/src/gui/PlayMissionGui.hx +++ b/src/gui/PlayMissionGui.hx @@ -61,7 +61,7 @@ class PlayMissionGui extends GuiImage { currentSelectionStatic = MissionList.missionList["platinum"]["beginner"].length - 1; } - currentSelection = PlayMissionGui.currentSelectionStatic; + // currentSelection = PlayMissionGui.currentSelectionStatic; currentCategory = PlayMissionGui.currentCategoryStatic; currentGame = PlayMissionGui.currentGameStatic; @@ -181,7 +181,9 @@ class PlayMissionGui extends GuiImage { var pmSearch = new GuiButton(loadButtonImages("data/ui/play/search")); pmSearch.position = new Vector(315, 325); pmSearch.extent = new Vector(43, 43); - // todo search button functionality + pmSearch.pressedAction = (e) -> { + MarbleGame.canvas.pushDialog(new SearchGui(currentGame)); + } pmBox.addChild(pmSearch); var pmPrev = new GuiButton(loadButtonImages("data/ui/play/prev")); @@ -777,6 +779,8 @@ class PlayMissionGui extends GuiImage { index = 0; } + var selectionChanged = currentSelection != index; + currentSelection = index; currentSelectionStatic = currentSelection; @@ -892,29 +896,31 @@ class PlayMissionGui extends GuiImage { setScoreHover(scoreButtonHover); - pmPreview.bmp.tile = tmpprevtile; - #if js - switch (previewTimeoutHandle) { - case None: - previewTimeoutHandle = Some(js.Browser.window.setTimeout(() -> { - currentMission.getPreviewImage(prevImg -> { - pmPreview.bmp.tile = prevImg; - }); - }, 75)); - case Some(previewTimeoutHandle_id): - js.Browser.window.clearTimeout(previewTimeoutHandle_id); - previewTimeoutHandle = Some(js.Browser.window.setTimeout(() -> { - currentMission.getPreviewImage(prevImg -> { - pmPreview.bmp.tile = prevImg; - }); - }, 75)); + if (selectionChanged) { + pmPreview.bmp.tile = tmpprevtile; + #if js + switch (previewTimeoutHandle) { + case None: + previewTimeoutHandle = Some(js.Browser.window.setTimeout(() -> { + currentMission.getPreviewImage(prevImg -> { + pmPreview.bmp.tile = prevImg; + }); + }, 75)); + case Some(previewTimeoutHandle_id): + js.Browser.window.clearTimeout(previewTimeoutHandle_id); + previewTimeoutHandle = Some(js.Browser.window.setTimeout(() -> { + currentMission.getPreviewImage(prevImg -> { + pmPreview.bmp.tile = prevImg; + }); + }, 75)); + } + #end + #if hl + currentMission.getPreviewImage(prevImg -> { + pmPreview.bmp.tile = prevImg; + }); // Shit be sync + #end } - #end - #if hl - currentMission.getPreviewImage(prevImg -> { - pmPreview.bmp.tile = prevImg; - }); // Shit be sync - #end } setCategoryFunc(currentGame, currentCategoryStatic, false); diff --git a/src/gui/SearchGui.hx b/src/gui/SearchGui.hx new file mode 100644 index 00000000..360462e3 --- /dev/null +++ b/src/gui/SearchGui.hx @@ -0,0 +1,245 @@ +package gui; + +import h2d.Tile; +import hxd.BitmapData; +import src.MarbleGame; +import hxd.res.BitmapFont; +import h3d.Vector; +import src.ResourceLoader; +import src.Settings; + +class SearchGui extends GuiImage { + public function new(game:String) { + var img = ResourceLoader.getImage("data/ui/search/window.png"); + super(img.resource.toTile()); + + this.horizSizing = Center; + this.vertSizing = Center; + this.position = new Vector(76, 8); + this.extent = new Vector(487, 463); + + var missionList = []; + for (diff in MissionList.missionList[game]) { + for (mis in diff) { + missionList.push({ + mis: mis, + name: mis.title, + artist: mis.artist, + path: mis.path + }); + } + } + + var displayList = missionList.map(x -> x.name); + displayList.sort((x, y) -> (x > y) ? 1 : (x == y ? 0 : -1)); + missionList.sort((x, y) -> x.name > y.name ? 1 : (x.name == y.name ? 0 : -1)); + var retrieveMissionList = missionList; + + var searchMissionList:GuiTextListCtrl = null; + var scrollCtrl:GuiScrollCtrl = null; + + var currentSortBy = "title"; + + function sortBy(type:String, txt:String = "") { + if (type == "title") { + retrieveMissionList = missionList.filter(x -> StringTools.contains(x.name.toLowerCase(), txt.toLowerCase())); + displayList = retrieveMissionList.map(x -> x.name); + displayList.sort((x, y) -> (x > y) ? 1 : (x == y ? 0 : -1)); + retrieveMissionList.sort((x, y) -> x.name > y.name ? 1 : (x.name == y.name ? 0 : -1)); + } + if (type == "artist") { + retrieveMissionList = missionList.filter(x -> StringTools.contains(x.artist.toLowerCase(), txt.toLowerCase())); + retrieveMissionList.sort((x, y) -> x.artist > y.artist ? 1 : (x.artist == y.artist ? 0 : -1)); + displayList = retrieveMissionList.map(x -> '${x.name} By ${x.artist}'); + } + if (type == "file") { + retrieveMissionList = missionList.filter(x -> StringTools.contains(x.path.toLowerCase(), txt.toLowerCase())); + retrieveMissionList.sort((x, y) -> x.path > y.path ? 1 : (x.path == y.path ? 0 : -1)); + var idxofslash = 0; + displayList = retrieveMissionList.map(x -> { + var idxofslash = 0; + var slashcount = 0; + for (i in 0...x.path.length) { + if (x.path.charCodeAt(x.path.length - i - 1) == '/'.code) { + slashcount++; + if (slashcount == 2) { + idxofslash = x.path.length - i - 1; + break; + } + } + } + return '${x.path.substr(idxofslash + 1)}'; + }); + } + searchMissionList.setTexts(displayList); + scrollCtrl.setScrollMax(searchMissionList.calculateFullHeight()); + } + + function loadButtonImages(path:String) { + var normal = ResourceLoader.getResource('${path}_n.png', ResourceLoader.getImage, this.imageResources).toTile(); + var hover = ResourceLoader.getResource('${path}_h.png', ResourceLoader.getImage, this.imageResources).toTile(); + var pressed = ResourceLoader.getResource('${path}_d.png', ResourceLoader.getImage, this.imageResources).toTile(); + var disabledObj = ResourceLoader.getResource('${path}_i.png', ResourceLoader.getImage, this.imageResources); + var disabled = disabledObj != null ? disabledObj.toTile() : null; + return [normal, hover, pressed, disabled]; + } + + var markerFelt32fontdata = ResourceLoader.getFileEntry("data/font/MarkerFelt.fnt"); + var markerFelt32b = new BitmapFont(markerFelt32fontdata.entry); + @:privateAccess markerFelt32b.loader = ResourceLoader.loader; + var markerFelt32 = markerFelt32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel); + var markerFelt24 = markerFelt32b.toSdfFont(cast 18 * Settings.uiScale, MultiChannel); + var markerFelt18 = markerFelt32b.toSdfFont(cast 14 * Settings.uiScale, MultiChannel); + + var domcasual32fontdata = ResourceLoader.getFileEntry("data/font/DomCasualD.fnt"); + var domcasual32b = new BitmapFont(domcasual32fontdata.entry); + @:privateAccess domcasual32b.loader = ResourceLoader.loader; + var domcasual32 = domcasual32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel); + var domcasual64 = domcasual32b.toSdfFont(cast 58 * Settings.uiScale, MultiChannel); + var domcasual24 = domcasual32b.toSdfFont(cast 20 * Settings.uiScale, MultiChannel); + + var searchCancel = new GuiButton(loadButtonImages("data/ui/search/cancel")); + searchCancel.vertSizing = Top; + searchCancel.position = new Vector(21, 395); + searchCancel.extent = new Vector(94, 45); + searchCancel.pressedAction = (e) -> { + MarbleGame.canvas.popDialog(this); + } + this.addChild(searchCancel); + + var selectedIdx:Int = -1; + + var searchPlay = new GuiButton(loadButtonImages("data/ui/search/play")); + searchPlay.position = new Vector(370, 395); + searchPlay.extent = new Vector(94, 45); + searchPlay.disabled = true; + searchPlay.pressedAction = (e) -> { + if (selectedIdx != -1) { + var mis = retrieveMissionList[selectedIdx]; + cast(this.parent, Canvas).marbleGame.playMission(mis.mis); + } + } + this.addChild(searchPlay); + + var searchTitle = new GuiText(domcasual24); + searchTitle.position = new Vector(52, 19); + searchTitle.extent = new Vector(64, 25); + searchTitle.text.textColor = 0x696969; + searchTitle.text.text = "Title:"; + this.addChild(searchTitle); + + var searchEdit = new GuiTextInput(domcasual24); + searchEdit.position = new Vector(91, 19); + searchEdit.extent = new Vector(373, 29); + searchEdit.onTextChange = (txt) -> { + sortBy(currentSortBy, txt); + }; + this.addChild(searchEdit); + + scrollCtrl = new GuiScrollCtrl(ResourceLoader.getResource("data/ui/common/philscroll.png", ResourceLoader.getImage, this.imageResources).toTile()); + scrollCtrl.position = new Vector(19, 65); + scrollCtrl.extent = new Vector(447, 317); + this.addChild(scrollCtrl); + + searchMissionList = new GuiTextListCtrl(markerFelt24, displayList); + searchMissionList.selectedColor = 0; + searchMissionList.horizSizing = Width; + searchMissionList.position = new Vector(4, -1); + searchMissionList.extent = new Vector(432, 2880); + searchMissionList.textYOffset = -6; + searchMissionList.scrollable = true; + searchMissionList.onSelectedFunc = (sel) -> { + selectedIdx = sel; + if (retrieveMissionList.length <= selectedIdx || selectedIdx < 0) { + searchPlay.disabled = true; + } else { + searchPlay.disabled = false; + } + } + scrollCtrl.addChild(searchMissionList); + scrollCtrl.setScrollMax(searchMissionList.calculateFullHeight()); + + var optionsPopup:GuiButton = null; + + var searchOptions = new GuiButton(loadButtonImages("data/ui/search/options")); + searchOptions.vertSizing = Top; + searchOptions.horizSizing = Right; + searchOptions.position = new Vector(121, 395); + searchOptions.extent = new Vector(94, 45); + searchOptions.pressedAction = (e) -> { + MarbleGame.canvas.pushDialog(optionsPopup); + } + this.addChild(searchOptions); + + var temprev = new BitmapData(1, 1); + temprev.setPixel(0, 0, 0); + var tmpprevtile = Tile.fromBitmap(temprev); + + optionsPopup = new GuiButton([tmpprevtile, tmpprevtile, tmpprevtile]); + optionsPopup.horizSizing = Width; + optionsPopup.vertSizing = Height; + optionsPopup.position = new Vector(0, 0); + optionsPopup.extent = new Vector(640, 480); + optionsPopup.pressedAction = (e) -> { + MarbleGame.canvas.popDialog(optionsPopup, false); + } + + var optionsPopupInner = new GuiControl(); + optionsPopupInner.horizSizing = Center; + optionsPopupInner.vertSizing = Center; + optionsPopupInner.position = new Vector(80, 7); + optionsPopupInner.extent = new Vector(480, 465); + optionsPopup.addChild(optionsPopupInner); + + var optionsBgR = ResourceLoader.getResource('data/ui/search/more.png', ResourceLoader.getImage, this.imageResources).toTile(); + + var optionsBg = new GuiImage(optionsBgR); + optionsBg.position = new Vector(0, 281); + optionsBg.extent = new Vector(348, 148); + optionsPopupInner.addChild(optionsBg); + + var searchByFile = new GuiButton(loadButtonImages("data/ui/search/file")); + searchByFile.buttonType = Radio; + searchByFile.position = new Vector(229, 32); + searchByFile.extent = new Vector(68, 45); + searchByFile.pressedAction = (e) -> { + searchTitle.text.text = "File:"; + currentSortBy = "file"; + sortBy("file"); + }; + optionsBg.addChild(searchByFile); + + var searchByartist = new GuiButton(loadButtonImages("data/ui/search/artist")); + searchByartist.buttonType = Radio; + searchByartist.position = new Vector(159, 32); + searchByartist.extent = new Vector(72, 45); + searchByartist.pressedAction = (e) -> { + searchTitle.text.text = "Artist:"; + currentSortBy = "artist"; + sortBy("artist"); + }; + optionsBg.addChild(searchByartist); + + var searchByTitle = new GuiButton(loadButtonImages("data/ui/search/name")); + searchByTitle.buttonType = Radio; + searchByTitle.position = new Vector(92, 32); + searchByTitle.extent = new Vector(68, 45); + searchByTitle.pressed = true; + searchByTitle.pressedAction = (e) -> { + searchTitle.text.text = "Title:"; + currentSortBy = "title"; + sortBy("title"); + }; + optionsBg.addChild(searchByTitle); + + var searchRandom = new GuiButton(loadButtonImages("data/ui/search/random")); + searchRandom.vertSizing = Top; + searchRandom.position = new Vector(44, 32); + searchRandom.extent = new Vector(44, 44); + searchRandom.pressedAction = (e) -> { + var mis = missionList[Math.floor(Math.random() * missionList.length)]; + cast(this.parent, Canvas).marbleGame.playMission(mis.mis); + } + optionsBg.addChild(searchRandom); + } +}