This commit is contained in:
RandomityGuy 2021-07-14 17:59:44 +05:30
parent 4281833793
commit c9355d0eba
5 changed files with 50 additions and 11 deletions

1
data/cla_list.json Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1,5 +1,7 @@
package src;
import haxe.io.BytesBuffer;
import haxe.Http;
import h2d.Tile;
import hxd.BitmapData;
import mis.MisParser;
@ -21,6 +23,8 @@ class Mission {
public var missionInfo:MissionElementScriptObject;
public var index:Int;
public var difficultyIndex:Int;
public var id:Int;
public var isClaMission:Bool;
public function new() {}
@ -51,16 +55,28 @@ class Mission {
}
public function getPreviewImage() {
var basename = haxe.io.Path.withoutExtension(this.path);
if (ResourceLoader.fileSystem.exists(basename + ".png")) {
return ResourceLoader.getImage(basename + ".png").toTile();
if (!this.isClaMission) {
var basename = haxe.io.Path.withoutExtension(this.path);
if (ResourceLoader.fileSystem.exists(basename + ".png")) {
return ResourceLoader.getImage(basename + ".png").toTile();
}
if (ResourceLoader.fileSystem.exists(basename + ".jpg")) {
return ResourceLoader.getImage(basename + ".jpg").toTile();
}
var img = new BitmapData(1, 1);
img.setPixel(0, 0, 0);
return Tile.fromBitmap(img);
} else {
var outputString = Http.requestUrl('https://marbleblast.vani.ga/api/custom/${this.id}.jpg');
#if hl
sys.FileSystem.createDirectory("data/previewcache");
sys.io.File.write('data/previewcache/${this.id}.jpg', true).writeString(outputString);
var imgData = ResourceLoader.getFileEntry('data/previewcache/${this.id}.jpg');
var img = new BitmapData(1, 1);
img.setPixel(0, 0, 0);
return Tile.fromBitmap(img);
#end
}
if (ResourceLoader.fileSystem.exists(basename + ".jpg")) {
return ResourceLoader.getImage(basename + ".jpg").toTile();
}
var img = new BitmapData(1, 1);
img.setPixel(0, 0, 0);
return Tile.fromBitmap(img);
}
public function getDifPath(rawElementPath:String) {

View file

@ -1,3 +1,4 @@
import haxe.Json;
import mis.MisParser;
import src.ResourceLoader;
import src.Mission;
@ -41,6 +42,26 @@ class MissionList {
advancedMissions = parseDifficulty("advanced");
customMissions = parseDifficulty("custom");
// parseCLAList();
_build = true;
}
static function parseCLAList() {
var claJson:Array<Dynamic> = Json.parse(ResourceLoader.fileSystem.get("data/cla_list.json").getText());
for (missionData in claJson) {
var mission = new Mission();
mission.id = missionData.id;
mission.artist = missionData.artist;
mission.title = missionData.name;
mission.description = missionData.desc;
mission.qualifyTime = missionData.time;
mission.goldTime = missionData.goldTime;
mission.path = missionData.baseName;
mission.isClaMission = true;
customMissions.push(mission);
}
}
}

View file

@ -437,7 +437,7 @@ class PlayMissionGui extends GuiImage {
}
var descText = '<font face="DomCasual24" color="#000000">${currentMission.title}</font><br/><br/>'
+ splitTextWithPadding(pmDescription.text, Util.unescape(currentMission.description));
+ splitTextWithPadding(pmDescription.text, StringTools.htmlEscape(Util.unescape(currentMission.description)));
if (currentMission.qualifyTime != Math.POSITIVE_INFINITY) {
descText += '<font face="DomCasual24"><br/>Time To Qualify: ${Util.formatTime(currentMission.qualifyTime)}</font>';
}
@ -448,7 +448,8 @@ class PlayMissionGui extends GuiImage {
pmDescription.text.text = descText;
var descText2 = '<br/><br/>'
+ '<font opacity="0">${splitTextWithPadding(pmDescriptionOther.text, Util.unescape(currentMission.description))}</font>';
+
'<font opacity="0">${splitTextWithPadding(pmDescriptionOther.text, StringTools.htmlEscape(Util.unescape(currentMission.description)))}</font>';
descText2 += '<br/><br/>';
if (currentMission.qualifyTime != Math.POSITIVE_INFINITY) {
descText2 += '<font face="DomCasual24" opacity="0"><br/>Time To Qualify: ${Util.formatTime(currentMission.qualifyTime)}</font>';