add support for MBU/MBM datablocks via substitutions

This commit is contained in:
RandomityGuy 2025-02-11 12:49:10 +05:30
parent 570c7355eb
commit 5736b9c03c

View file

@ -56,9 +56,9 @@ class MarbleWorldMacros {
// Add the correct shape based on type // Add the correct shape based on type
var dataBlockLowerCase = element.datablock.toLowerCase(); var dataBlockLowerCase = element.datablock.toLowerCase();
if (dataBlockLowerCase == "") {} // Make sure we don't do anything if there's no data block if (dataBlockLowerCase == "") {} // Make sure we don't do anything if there's no data block
else if (["startpad", "startpad_mbg", "startpad_mbp"].contains(dataBlockLowerCase)) else if (["startpad", "startpad_mbg", "startpad_mbp", "startpad_mbu"].contains(dataBlockLowerCase))
shape = new StartPad(); shape = new StartPad();
else if (["endpad", "endpad_mbg", "endpad_mbp"].contains(dataBlockLowerCase)) { else if (["endpad", "endpad_mbg", "endpad_mbp", "endpad_mbu"].contains(dataBlockLowerCase)) {
shape = new EndPad(); shape = new EndPad();
if (element is MissionElementStaticShape && cast(element, MissionElementStaticShape) == endPadElement) if (element is MissionElementStaticShape && cast(element, MissionElementStaticShape) == endPadElement)
endPad = cast shape; endPad = cast shape;
@ -70,51 +70,53 @@ class MarbleWorldMacros {
shape = new Gem(cast element); shape = new Gem(cast element);
this.totalGems++; this.totalGems++;
this.gems.push(cast shape); this.gems.push(cast shape);
} else if (dataBlockLowerCase == "superjumpitem") } else if (dataBlockLowerCase == "superjumpitem" || dataBlockLowerCase == "superjumpitem_mbu")
shape = new SuperJump(cast element); shape = new SuperJump(cast element);
else if (StringTools.startsWith(dataBlockLowerCase, "signcaution")) else if (StringTools.startsWith(dataBlockLowerCase, "signcaution"))
shape = new SignCaution(cast element); shape = new SignCaution(cast element);
else if (dataBlockLowerCase == "superbounceitem") else if (dataBlockLowerCase == "superbounceitem")
shape = new SuperBounce(cast element); shape = new SuperBounce(cast element);
else if (dataBlockLowerCase == "roundbumper") else if (dataBlockLowerCase == "roundbumper" || dataBlockLowerCase == "bumper")
shape = new RoundBumper(); shape = new RoundBumper();
else if (dataBlockLowerCase == "trianglebumper") else if (dataBlockLowerCase == "trianglebumper")
shape = new TriangleBumper(); shape = new TriangleBumper();
else if (dataBlockLowerCase == "helicopteritem") else if (dataBlockLowerCase == "helicopteritem" || dataBlockLowerCase == "helicopteritem_mbu")
shape = new Helicopter(cast element); shape = new Helicopter(cast element);
else if (dataBlockLowerCase == "easteregg") else if (dataBlockLowerCase == "easteregg" || dataBlockLowerCase == "easteregg_mbu")
shape = new EasterEgg(cast element); shape = new EasterEgg(cast element);
else if (dataBlockLowerCase == "checkpoint") else if (dataBlockLowerCase == "checkpoint" || dataBlockLowerCase == "checkpoint_mbu")
shape = new Checkpoint(cast element); shape = new Checkpoint(cast element);
else if (dataBlockLowerCase == "ductfan") else if (dataBlockLowerCase == "ductfan" || dataBlockLowerCase == "ductfan_mbu" || dataBlockLowerCase == "ductfan_mbm")
shape = new DuctFan(); shape = new DuctFan();
else if (dataBlockLowerCase == "smallductfan") else if (dataBlockLowerCase == "smallductfan" || dataBlockLowerCase == "smallductfan_mbm")
shape = new SmallDuctFan(); shape = new SmallDuctFan();
else if (dataBlockLowerCase == "magnet") else if (dataBlockLowerCase == "magnet")
shape = new Magnet(); shape = new Magnet();
else if (dataBlockLowerCase == "antigravityitem") else if (dataBlockLowerCase == "antigravityitem" || dataBlockLowerCase == "antigravityitem_mbu")
shape = new AntiGravity(cast element); shape = new AntiGravity(cast element);
else if (dataBlockLowerCase == "norespawnantigravityitem") else if (dataBlockLowerCase == "norespawnantigravityitem")
shape = new AntiGravity(cast element, true); shape = new AntiGravity(cast element, true);
else if (dataBlockLowerCase == "landmine") else if (dataBlockLowerCase == "landmine" || dataBlockLowerCase == "landmine_mbm")
shape = new LandMine(); shape = new LandMine();
else if (dataBlockLowerCase == "nuke") else if (dataBlockLowerCase == "nuke")
shape = new Nuke(); shape = new Nuke();
else if (dataBlockLowerCase == "shockabsorberitem") else if (dataBlockLowerCase == "shockabsorberitem")
shape = new ShockAbsorber(cast element); shape = new ShockAbsorber(cast element);
else if (dataBlockLowerCase == "superspeeditem") else if (dataBlockLowerCase == "superspeeditem" || dataBlockLowerCase == "superspeeditem_mbu")
shape = new SuperSpeed(cast element); shape = new SuperSpeed(cast element);
else if (dataBlockLowerCase == "timetravelitem" || dataBlockLowerCase == "timepenaltyitem") else if (dataBlockLowerCase == "timetravelitem"
|| dataBlockLowerCase == "timepenaltyitem"
|| dataBlockLowerCase == "timetravelitem_mbu")
shape = new TimeTravel(cast element); shape = new TimeTravel(cast element);
else if (dataBlockLowerCase == "randompowerupitem") else if (dataBlockLowerCase == "randompowerupitem")
shape = new RandomPowerup(cast element); shape = new RandomPowerup(cast element);
else if (dataBlockLowerCase == "blastitem") else if (dataBlockLowerCase == "blastitem" || dataBlockLowerCase == "blastitem_mbu")
shape = new Blast(cast element); shape = new Blast(cast element);
else if (dataBlockLowerCase == "megamarbleitem") else if (dataBlockLowerCase == "megamarbleitem" || dataBlockLowerCase == "megamarbleitem_mbu")
shape = new MegaMarble(cast element); shape = new MegaMarble(cast element);
else if (dataBlockLowerCase == "tornado") else if (dataBlockLowerCase == "tornado" || dataBlockLowerCase == "tornado_mbm")
shape = new Tornado(); shape = new Tornado();
else if (dataBlockLowerCase == "trapdoor") else if (dataBlockLowerCase == "trapdoor" || dataBlockLowerCase == "trapdoor_mbu")
shape = new Trapdoor(); shape = new Trapdoor();
else if (dataBlockLowerCase == "pushbutton") else if (dataBlockLowerCase == "pushbutton")
shape = new PushButton(); shape = new PushButton();