-
-
Save davidbmaier/8720d3ea0bebac4336ad450846bb8cb5 to your computer and use it in GitHub Desktop.
Light map quality - TM2020 editor plugin by Nadeo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#RequireContext CMapEditorPlugin | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// Common Constants | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
#Const Version "2021-09-14" | |
#Const ScriptName "LightmapQualityQuality.Script.txt" | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// LightmapQuality Constants | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
//L16N Map Editor UI plugin title/label, in plugin for Block LightmapQuality selection. | |
#Const C_LightmapQuality_DefaultTitle _("Next block lightmap quality") | |
//L16N Map Editor UI plugin title/label, in plugin for Block LightmapQuality selection, but we're placing items | |
#Const C_LightmapQuality_DefaultTitle_Item _("Next item lightmap quality") | |
//L16N Map Editor UI plugin title/label, in plugin for Block LightmapQuality selection. Indicates that in this mode, clicking buttons will apply that LightmapQuality to all blocks in the selection. | |
#Const C_LightmapQuality_ApplyToSelectionTitle _("Apply to selection") | |
//L16N Map Editor UI plugin title/label, in plugin for Block LightmapQuality selection. Indicates that in this mode, clicking buttons will force your next placed macroblock to use certain LightmapQuality | |
#Const C_LightmapQuality_MacroblockTitle _("Force macroblock lightmap quality") | |
//L16N Map editor Block LightmapQuality tooltip | |
#Const C_LightmapQuality_LowestText _("|BlockLightmapQuality|Lowest") | |
#Const C_LightmapQuality_VeryLowText _("|BlockLightmapQuality|Very low") | |
#Const C_LightmapQuality_LowText _("|BlockLightmapQuality|Low") | |
#Const C_LightmapQuality_NormalText _("|BlockLightmapQuality|Normal") | |
#Const C_LightmapQuality_HighText _("|BlockLightmapQuality|High") | |
#Const C_LightmapQuality_VeryHighText _("|BlockLightmapQuality|Very high") | |
#Const C_LightmapQuality_HighestText _("|BlockLightmapQuality|Highest") | |
Text CreateManialink() { | |
declare MLText = | |
""" | |
<script><!-- | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// LightmapQuality Globals | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// These values save the state of the plugin, to know at any point if we need to adapt to an API change. | |
declare CMapEditorPlugin::MapElemLightmapQuality G_LocalLightmapQuality; | |
declare Boolean G_LocalForceMacroblockLightmapQuality; | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// LightmapQuality Functions | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
Void SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality _LightmapQuality) { | |
declare L_SelectionLightmapQuality for Page = CMapEditorPlugin::MapElemLightmapQuality::Normal; | |
declare Boolean L_RequestSelectionLightmapQuality for Page = False; | |
L_SelectionLightmapQuality = _LightmapQuality; | |
L_RequestSelectionLightmapQuality = True; | |
} | |
Void SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality _LightmapQuality) { | |
declare Quad_LowestLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-lowest") as CMlQuad); | |
declare Quad_VeryLowLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-verylow") as CMlQuad); | |
declare Quad_LowLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-low") as CMlQuad); | |
declare Quad_NormalLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-normal") as CMlQuad); | |
declare Quad_HighLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-high") as CMlQuad); | |
declare Quad_VeryHighLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-veryhigh") as CMlQuad); | |
declare Quad_HighestLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-classicmode-highest") as CMlQuad); | |
declare L_LightmapQuality for Page = CMapEditorPlugin::MapElemLightmapQuality::Normal; | |
L_LightmapQuality = _LightmapQuality; | |
G_LocalLightmapQuality = _LightmapQuality; | |
Quad_LowestLightmapQualityBtn.Opacity = 0.; | |
Quad_VeryLowLightmapQualityBtn.Opacity = 0.; | |
Quad_LowLightmapQualityBtn.Opacity = 0.; | |
Quad_NormalLightmapQualityBtn.Opacity = 0.; | |
Quad_HighLightmapQualityBtn.Opacity = 0.; | |
Quad_VeryHighLightmapQualityBtn.Opacity = 0.; | |
Quad_HighestLightmapQualityBtn.Opacity = 0.; | |
switch (_LightmapQuality) { | |
case CMapEditorPlugin::MapElemLightmapQuality::Lowest: Quad_LowestLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::VeryLow: Quad_VeryLowLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::Low: Quad_LowLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::Normal: Quad_NormalLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::High: Quad_HighLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::VeryHigh: Quad_VeryHighLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::Highest: Quad_HighestLightmapQualityBtn.Opacity = 0.3; | |
} | |
} | |
Void InitMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality _LightmapQuality) { | |
declare Quad_LowestLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-lowest") as CMlQuad); | |
declare Quad_VeryLowLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-verylow") as CMlQuad); | |
declare Quad_LowLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-low") as CMlQuad); | |
declare Quad_NormalLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-normal") as CMlQuad); | |
declare Quad_HighLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-high") as CMlQuad); | |
declare Quad_VeryHighLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-veryhigh") as CMlQuad); | |
declare Quad_HighestLightmapQualityBtn <=> (Page.GetFirstChild("quad-lightmapquality-macroblockmode-highest") as CMlQuad); | |
Quad_LowestLightmapQualityBtn.Opacity = 0.; | |
Quad_VeryLowLightmapQualityBtn.Opacity = 0.; | |
Quad_LowLightmapQualityBtn.Opacity = 0.; | |
Quad_NormalLightmapQualityBtn.Opacity = 0.; | |
Quad_HighLightmapQualityBtn.Opacity = 0.; | |
Quad_VeryHighLightmapQualityBtn.Opacity = 0.; | |
Quad_HighestLightmapQualityBtn.Opacity = 0.; | |
switch (_LightmapQuality) { | |
case CMapEditorPlugin::MapElemLightmapQuality::Lowest: Quad_LowestLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::VeryLow: Quad_VeryLowLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::Low: Quad_LowLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::Normal: Quad_NormalLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::High: Quad_HighLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::VeryHigh: Quad_VeryHighLightmapQualityBtn.Opacity = 0.3; | |
case CMapEditorPlugin::MapElemLightmapQuality::Highest: Quad_HighestLightmapQualityBtn.Opacity = 0.3; | |
} | |
} | |
Void ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality _LightmapQuality) { | |
InitMacroblockLightmapQuality(_LightmapQuality); | |
declare L_ForceMacroblockLightmapQuality for Page = False; | |
L_ForceMacroblockLightmapQuality = True; | |
G_LocalForceMacroblockLightmapQuality = True; | |
SetLightmapQuality(_LightmapQuality); | |
} | |
Void InitSelectionLightmapQualities() { | |
declare CMlQuad[CMapEditorPlugin::MapElemLightmapQuality] Quads; | |
declare CMapEditorPlugin::MapElemLightmapQuality[] L_QualityInSelection for Page; | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::Lowest] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-lowest") as CMlQuad); | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::VeryLow] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-verylow") as CMlQuad); | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::Low] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-low") as CMlQuad); | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::Normal] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-normal") as CMlQuad); | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::High] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-high") as CMlQuad); | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::VeryHigh] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-veryhigh") as CMlQuad); | |
Quads[CMapEditorPlugin::MapElemLightmapQuality::Highest] <=> (Page.GetFirstChild("quad-lightmapquality-selectionmode-highest") as CMlQuad); | |
foreach(Quality => Quad in Quads) { | |
if(L_QualityInSelection.exists(Quality)) { | |
if(Quad.Opacity == 0.1 || Quad.Opacity == 0.4) { | |
Quad.Opacity = 0.4; | |
} else { | |
Quad.Opacity = 0.3; | |
} | |
} else { | |
if(Quad.Opacity == 0.1 || Quad.Opacity == 0.4) { | |
Quad.Opacity = 0.1; | |
} else { | |
Quad.Opacity = 0.; | |
} | |
} | |
} | |
} | |
Void Init() { | |
/** LightmapQuality Init **/ | |
declare Frame_LightmapQuality_ClassicMode <=> (Page.GetFirstChild("frame-lightmapquality-classicmode") as CMlFrame); | |
declare Frame_LightmapQuality_SelectionMode <=> (Page.GetFirstChild("frame-lightmapquality-selectionmode") as CMlFrame); | |
declare Frame_LightmapQuality_MacroblockMode <=> (Page.GetFirstChild("frame-lightmapquality-macroblockmode") as CMlFrame); | |
declare L_LightmapQuality_ClassicMode for Page = False; | |
declare L_LightmapQuality_SelectionMode for Page = False; | |
declare L_LightmapQuality_MacroblockMode for Page = False; | |
Frame_LightmapQuality_ClassicMode.Visible = L_LightmapQuality_ClassicMode; | |
Frame_LightmapQuality_SelectionMode.Visible = L_LightmapQuality_SelectionMode; | |
Frame_LightmapQuality_MacroblockMode.Visible = L_LightmapQuality_MacroblockMode; | |
declare L_LightmapQuality for Page = CMapEditorPlugin::MapElemLightmapQuality::Normal; | |
SetLightmapQuality(L_LightmapQuality); | |
/** Common Init **/ | |
declare L_GlobalFrame_Pos for Page = <-153.2, -20.>; | |
declare Frame_Global <=> (Page.GetFirstChild("frame-global") as CMlFrame); | |
Frame_Global.RelativePosition_V3 = L_GlobalFrame_Pos; | |
} | |
Void HoverQuad(Text _QuadId) { | |
declare Quad_Btn <=> (Page.GetFirstChild(_QuadId) as CMlQuad); | |
if (Quad_Btn.Opacity == 0.) { | |
Quad_Btn.Opacity = 0.1; | |
log("0.1- Hoverquad "^_QuadId); | |
} else { | |
Quad_Btn.Opacity = 0.4; | |
log("0.4- Hoverquad "^_QuadId); | |
} | |
} | |
Void UnhoverQuad(Text _QuadId) { | |
declare Quad_Btn <=> (Page.GetFirstChild(_QuadId) as CMlQuad); | |
if (Quad_Btn.Opacity == 0.1) { | |
Quad_Btn.Opacity = 0.; | |
log("0.- Unhoverquad "^_QuadId); | |
} else { | |
Quad_Btn.Opacity = 0.3; | |
log("0.3- Unhoverquad "^_QuadId); | |
} | |
} | |
main() { | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// LightmapQuality Variables | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
/** Read from main plugin **/ | |
declare L_LightmapQuality_ClassicMode for Page = False; | |
declare L_LightmapQuality_SelectionMode for Page = False; | |
declare L_LightmapQuality_MacroblockMode for Page = False; | |
/** Read from main plugin & Write for main plugin **/ | |
declare L_LightmapQuality for Page = CMapEditorPlugin::MapElemLightmapQuality::Normal; // Can be changed by our ML, but it could be changed externally by ctrl Z or another plugin. | |
declare L_ForceMacroblockLightmapQuality for Page = False; // Can be changed by our ML, but it could be changed externally by ctrl Z or another plugin. | |
/** Backups, only local read/write **/ | |
declare Boolean LightmapQuality_WasClassicModeLastFrame = False; | |
declare Boolean LightmapQuality_WasSelectionModeLastFrame = False; | |
declare Boolean LightmapQuality_WasMacroblockModeLastFrame = False; | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// Common Variables | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
/** Read from main plugin **/ | |
declare L_GlobalFrame_Pos for Page = <-153.2, -20.>; | |
declare L_GlobalFrame_Visible for Page = True; | |
declare Boolean L_UseItemTitle for Page = False; | |
/** Backups, only local read/write **/ | |
declare Vec2 GlobalFrame_PosLastFrame = L_GlobalFrame_Pos; | |
declare Boolean GlobalFrame_WasVisibleLastFrame = True; | |
declare Boolean LastFrameL_UseItemTitle = L_UseItemTitle; | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// LightmapQuality CMlControls | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
declare Frame_LightmapQuality_Main <=> (Page.GetFirstChild("frame-lightmapquality-main") as CMlFrame); | |
declare Frame_LightmapQuality_ClassicMode <=> (Page.GetFirstChild("frame-lightmapquality-classicmode") as CMlFrame); | |
declare Frame_LightmapQuality_SelectionMode <=> (Page.GetFirstChild("frame-lightmapquality-selectionmode") as CMlFrame); | |
declare Frame_LightmapQuality_MacroblockMode <=> (Page.GetFirstChild("frame-lightmapquality-macroblockmode") as CMlFrame); | |
declare Label_LightmapQuality_ClassicTitle <=> (Page.GetFirstChild("label-lightmapquality-classicmode-title") as CMlLabel); | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// Common CMlControls | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
declare Frame_Global <=> (Page.GetFirstChild("frame-global") as CMlFrame); | |
Init(); | |
while (True) { | |
/** LightmapQuality frames update **/ | |
if (LightmapQuality_WasClassicModeLastFrame != L_LightmapQuality_ClassicMode | |
|| LightmapQuality_WasSelectionModeLastFrame != L_LightmapQuality_SelectionMode | |
|| LightmapQuality_WasMacroblockModeLastFrame != L_LightmapQuality_MacroblockMode) | |
{ | |
Frame_LightmapQuality_ClassicMode.Visible = L_LightmapQuality_ClassicMode; | |
Frame_LightmapQuality_SelectionMode.Visible = L_LightmapQuality_SelectionMode; | |
Frame_LightmapQuality_MacroblockMode.Visible = L_LightmapQuality_MacroblockMode; | |
if (L_LightmapQuality_MacroblockMode) { | |
InitMacroblockLightmapQuality(L_LightmapQuality); | |
} | |
} | |
if (L_LightmapQuality_SelectionMode) { | |
//tuningmark("pre InitSelectionLightmapQualities"); | |
InitSelectionLightmapQualities(); | |
//tuningmark("post InitSelectionLightmapQualities"); | |
} | |
/** Common frames update **/ | |
if (L_GlobalFrame_Pos != GlobalFrame_PosLastFrame) { | |
Frame_Global.RelativePosition_V3 = L_GlobalFrame_Pos; | |
} | |
if (GlobalFrame_WasVisibleLastFrame != L_GlobalFrame_Visible) { | |
Frame_Global.Visible = L_GlobalFrame_Visible; | |
} | |
if (LastFrameL_UseItemTitle != L_UseItemTitle) { | |
if (L_UseItemTitle) { | |
Label_LightmapQuality_ClassicTitle.Value = "{{{C_LightmapQuality_DefaultTitle_Item}}}"; | |
} else { | |
Label_LightmapQuality_ClassicTitle.Value = "{{{C_LightmapQuality_DefaultTitle}}}"; | |
} | |
} | |
/** Events **/ | |
foreach(Event in PendingEvents) { | |
if (Event.Type == CMlScriptEvent::Type::MouseClick) { | |
switch (Event.ControlId) { | |
/** LightmapQuality mouse inputs **/ | |
case "label-lightmapquality-classicmode-lowest": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Lowest); | |
case "label-lightmapquality-classicmode-verylow": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::VeryLow); | |
case "label-lightmapquality-classicmode-low": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Low); | |
case "label-lightmapquality-classicmode-normal": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Normal); | |
case "label-lightmapquality-classicmode-high": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::High); | |
case "label-lightmapquality-classicmode-veryhigh": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::VeryHigh); | |
case "label-lightmapquality-classicmode-highest": SetLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Highest); | |
case "label-lightmapquality-selectionmode-lowest": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::Lowest); | |
case "label-lightmapquality-selectionmode-verylow": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::VeryLow); | |
case "label-lightmapquality-selectionmode-low": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::Low); | |
case "label-lightmapquality-selectionmode-normal": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::Normal); | |
case "label-lightmapquality-selectionmode-high": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::High); | |
case "label-lightmapquality-selectionmode-veryhigh": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::VeryHigh); | |
case "label-lightmapquality-selectionmode-highest": SetSelectionLightmap(CMapEditorPlugin::MapElemLightmapQuality::Highest); | |
case "label-lightmapquality-macroblockmode-lowest": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Lowest); | |
case "label-lightmapquality-macroblockmode-verylow": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::VeryLow); | |
case "label-lightmapquality-macroblockmode-low": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Low); | |
case "label-lightmapquality-macroblockmode-normal": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Normal); | |
case "label-lightmapquality-macroblockmode-high": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::High); | |
case "label-lightmapquality-macroblockmode-veryhigh": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::VeryHigh); | |
case "label-lightmapquality-macroblockmode-highest": ForceMacroblockLightmapQuality(CMapEditorPlugin::MapElemLightmapQuality::Highest); | |
} | |
} | |
else if (Event.Type == CMlScriptEvent::Type::MouseOver) { | |
switch (Event.ControlId) { | |
case "label-lightmapquality-classicmode-lowest" : HoverQuad("quad-lightmapquality-classicmode-lowest"); | |
case "label-lightmapquality-classicmode-verylow" : HoverQuad("quad-lightmapquality-classicmode-verylow"); | |
case "label-lightmapquality-classicmode-low" : HoverQuad("quad-lightmapquality-classicmode-low"); | |
case "label-lightmapquality-classicmode-normal" : HoverQuad("quad-lightmapquality-classicmode-normal"); | |
case "label-lightmapquality-classicmode-high" : HoverQuad("quad-lightmapquality-classicmode-high"); | |
case "label-lightmapquality-classicmode-veryhigh" : HoverQuad("quad-lightmapquality-classicmode-veryhigh"); | |
case "label-lightmapquality-classicmode-highest" : HoverQuad("quad-lightmapquality-classicmode-highest"); | |
case "label-lightmapquality-selectionmode-lowest" : HoverQuad("quad-lightmapquality-selectionmode-lowest"); | |
case "label-lightmapquality-selectionmode-verylow" : HoverQuad("quad-lightmapquality-selectionmode-verylow"); | |
case "label-lightmapquality-selectionmode-low" : HoverQuad("quad-lightmapquality-selectionmode-low"); | |
case "label-lightmapquality-selectionmode-normal" : HoverQuad("quad-lightmapquality-selectionmode-normal"); | |
case "label-lightmapquality-selectionmode-high" : HoverQuad("quad-lightmapquality-selectionmode-high"); | |
case "label-lightmapquality-selectionmode-veryhigh" : HoverQuad("quad-lightmapquality-selectionmode-veryhigh"); | |
case "label-lightmapquality-selectionmode-highest" : HoverQuad("quad-lightmapquality-selectionmode-highest"); | |
case "label-lightmapquality-macroblockmode-lowest" : HoverQuad("quad-lightmapquality-macroblockmode-lowest"); | |
case "label-lightmapquality-macroblockmode-verylow" : HoverQuad("quad-lightmapquality-macroblockmode-verylow"); | |
case "label-lightmapquality-macroblockmode-low" : HoverQuad("quad-lightmapquality-macroblockmode-low"); | |
case "label-lightmapquality-macroblockmode-normal" : HoverQuad("quad-lightmapquality-macroblockmode-normal"); | |
case "label-lightmapquality-macroblockmode-high" : HoverQuad("quad-lightmapquality-macroblockmode-high"); | |
case "label-lightmapquality-macroblockmode-veryhigh" : HoverQuad("quad-lightmapquality-macroblockmode-veryhigh"); | |
case "label-lightmapquality-macroblockmode-highest" : HoverQuad("quad-lightmapquality-macroblockmode-highest"); | |
} | |
} | |
else if (Event.Type == CMlScriptEvent::Type::MouseOut) { | |
switch (Event.ControlId) { | |
case "label-lightmapquality-classicmode-lowest" : UnhoverQuad("quad-lightmapquality-classicmode-lowest"); | |
case "label-lightmapquality-classicmode-verylow" : UnhoverQuad("quad-lightmapquality-classicmode-verylow"); | |
case "label-lightmapquality-classicmode-low" : UnhoverQuad("quad-lightmapquality-classicmode-low"); | |
case "label-lightmapquality-classicmode-normal" : UnhoverQuad("quad-lightmapquality-classicmode-normal"); | |
case "label-lightmapquality-classicmode-high" : UnhoverQuad("quad-lightmapquality-classicmode-high"); | |
case "label-lightmapquality-classicmode-veryhigh" : UnhoverQuad("quad-lightmapquality-classicmode-veryhigh"); | |
case "label-lightmapquality-classicmode-highest" : UnhoverQuad("quad-lightmapquality-classicmode-highest"); | |
case "label-lightmapquality-selectionmode-lowest" : UnhoverQuad("quad-lightmapquality-selectionmode-lowest"); | |
case "label-lightmapquality-selectionmode-verylow" : UnhoverQuad("quad-lightmapquality-selectionmode-verylow"); | |
case "label-lightmapquality-selectionmode-low" : UnhoverQuad("quad-lightmapquality-selectionmode-low"); | |
case "label-lightmapquality-selectionmode-normal" : UnhoverQuad("quad-lightmapquality-selectionmode-normal"); | |
case "label-lightmapquality-selectionmode-high" : UnhoverQuad("quad-lightmapquality-selectionmode-high"); | |
case "label-lightmapquality-selectionmode-veryhigh" : UnhoverQuad("quad-lightmapquality-selectionmode-veryhigh"); | |
case "label-lightmapquality-selectionmode-highest" : UnhoverQuad("quad-lightmapquality-selectionmode-highest"); | |
case "label-lightmapquality-macroblockmode-lowest" : UnhoverQuad("quad-lightmapquality-macroblockmode-lowest"); | |
case "label-lightmapquality-macroblockmode-verylow" : UnhoverQuad("quad-lightmapquality-macroblockmode-verylow"); | |
case "label-lightmapquality-macroblockmode-low" : UnhoverQuad("quad-lightmapquality-macroblockmode-low"); | |
case "label-lightmapquality-macroblockmode-normal" : UnhoverQuad("quad-lightmapquality-macroblockmode-normal"); | |
case "label-lightmapquality-macroblockmode-high" : UnhoverQuad("quad-lightmapquality-macroblockmode-high"); | |
case "label-lightmapquality-macroblockmode-veryhigh" : UnhoverQuad("quad-lightmapquality-macroblockmode-veryhigh"); | |
case "label-lightmapquality-macroblockmode-highest" : UnhoverQuad("quad-lightmapquality-macroblockmode-highest"); | |
} | |
} | |
} | |
/** LightmapQuality API variable checks **/ | |
if (G_LocalLightmapQuality != L_LightmapQuality) { // something changed it from outside, other than this script. Adapt UI to reflect the change. | |
SetLightmapQuality(L_LightmapQuality); | |
} | |
if (G_LocalForceMacroblockLightmapQuality != L_ForceMacroblockLightmapQuality) { // something changed it from outside, other than this script. Adapt UI to reflect the change. | |
if (L_ForceMacroblockLightmapQuality) { | |
ForceMacroblockLightmapQuality(L_LightmapQuality); | |
} | |
} | |
if(!LightmapQuality_WasMacroblockModeLastFrame && L_LightmapQuality_MacroblockMode && L_ForceMacroblockLightmapQuality) { | |
ForceMacroblockLightmapQuality(L_LightmapQuality); | |
} | |
/** LightmapQuality variable backups **/ | |
LightmapQuality_WasClassicModeLastFrame = L_LightmapQuality_ClassicMode; | |
LightmapQuality_WasSelectionModeLastFrame = L_LightmapQuality_SelectionMode; | |
LightmapQuality_WasMacroblockModeLastFrame = L_LightmapQuality_MacroblockMode; | |
/** Common variable backups **/ | |
GlobalFrame_PosLastFrame = L_GlobalFrame_Pos; | |
GlobalFrame_WasVisibleLastFrame = L_GlobalFrame_Visible; | |
LastFrameL_UseItemTitle = L_UseItemTitle; | |
yield; | |
} | |
} | |
--></script> | |
<frame pos="-153.2 -20 0" id="frame-global"> | |
<frame pos="0 -10.5" id="frame-lightmapquality-main"> | |
<frame id="frame-lightmapquality-classicmode"> | |
<quad id="quad-lightmapquality-classicmode-bg" z-index="-1" size="42 11" style="UICommon128_1" substyle="BgFrame1" modulatecolor="444" pos="0.3 2.9" opacity="0.9"/> | |
<label pos="41.5 1.8" size="39.5 2.67" id="label-lightmapquality-classicmode-title" z-index="0" text="{{{C_LightmapQuality_DefaultTitle}}}" halign="right" style="TextCardSmallScores2" textcolor="fff" textsize="1"/> | |
<frame pos="1 -0.25" id="frame-lightmapquality-classicmode-lowest"> | |
<quad id="quad-lightmapquality-classicmode-lowest" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-lowest" z-index="1" text="-3" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_LowestText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="6.5 -0.25" id="frame-lightmapquality-classicmode-verylow"> | |
<quad id="quad-lightmapquality-classicmode-verylow" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-verylow" z-index="1" text="-2" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_VeryLowText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="11.75 -0.25" id="frame-lightmapquality-classicmode-low"> | |
<quad id="quad-lightmapquality-classicmode-low" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-low" z-index="1" text="-1" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_LowText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="17 -0.25" id="frame-lightmapquality-classicmode-normal"> | |
<quad id="quad-lightmapquality-classicmode-normal" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-normal" z-index="1" text="0" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_NormalText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="22.25 -0.25" id="frame-lightmapquality-classicmode-high"> | |
<quad id="quad-lightmapquality-classicmode-high" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-high" z-index="1" text="+1" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_HighText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="27.5 -0.25" id="frame-lightmapquality-classicmode-veryhigh"> | |
<quad id="quad-lightmapquality-classicmode-veryhigh" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-veryhigh" z-index="1" text="+2" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_VeryHighText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="33 -0.25" id="frame-lightmapquality-classicmode-highest"> | |
<quad id="quad-lightmapquality-classicmode-highest" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-classicmode-highest" z-index="1" text="+3" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_HighestText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
</frame> | |
<frame id="frame-lightmapquality-selectionmode"> | |
<quad id="quad-lightmapquality-selectionmode-bg" z-index="-1" size="42 11" style="UICommon128_1" substyle="BgFrame1" modulatecolor="449" pos="0.3 2.9" opacity="0.9"/> | |
<label pos="42. 1.8" size="39.5 2.67" id="label-lightmapquality-selectionmode-title" z-index="0"text="{{{C_LightmapQuality_ApplyToSelectionTitle}}}" halign="right" style="TextCardSmallScores2" textcolor="fff" textsize="1"/> | |
<frame pos="1 -0.25" id="frame-lightmapquality-selectionmode-lowest"> | |
<quad id="quad-lightmapquality-selectionmode-lowest" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-lowest" z-index="1" text="-3" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_LowestText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
<frame pos="6.5 -0.25" id="frame-lightmapquality-selectionmode-verylow"> | |
<quad id="quad-lightmapquality-selectionmode-verylow" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-verylow" z-index="1" text="-2" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_VeryLowText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
<frame pos="11.75 -0.25" id="frame-lightmapquality-selectionmode-low"> | |
<quad id="quad-lightmapquality-selectionmode-low" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-low" z-index="1" text="-1" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_LowText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
<frame pos="17 -0.25" id="frame-lightmapquality-selectionmode-normal"> | |
<quad id="quad-lightmapquality-selectionmode-normal" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-normal" z-index="1" text="0" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_NormalText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
<frame pos="22.25 -0.25" id="frame-lightmapquality-selectionmode-high"> | |
<quad id="quad-lightmapquality-selectionmode-high" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-high" z-index="1" text="+1" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_HighText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
<frame pos="27.5 -0.25" id="frame-lightmapquality-selectionmode-veryhigh"> | |
<quad id="quad-lightmapquality-selectionmode-veryhigh" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-veryhigh" z-index="1" text="+2" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_VeryHighText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
<frame pos="33 -0.25" id="frame-lightmapquality-selectionmode-highest"> | |
<quad id="quad-lightmapquality-selectionmode-highest" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0" style="UICommon64_1" substyle="BgFrame2"/> | |
<label id="label-lightmapquality-selectionmode-highest" z-index="1" text="+3" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_HighestText}}}" style="TextCardInfoSmall"/> | |
</frame> | |
</frame> | |
<frame id="frame-lightmapquality-macroblockmode"> | |
<quad id="LightmapQuality_MacroblockBgQuad" z-index="-1" size="42 11" style="UICommon128_1" substyle="BgFrame1" modulatecolor="384" pos="0.3 2.9" opacity="0.9"/> | |
<label pos="42. 1.8" size="39.5 2.67" id="LightmapQuality_MacroblockTitleLbl" z-index="0" text="{{{C_LightmapQuality_MacroblockTitle}}}" halign="right" style="TextCardSmallScores2" textcolor="fff" textsize="1"/> | |
<frame pos="1 -0.25" id="frame-lightmapquality-macroblockmode-lowest"> | |
<quad id="quad-lightmapquality-macroblockmode-lowest" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-lowest" z-index="1" text="-3" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_LowestText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="6.5 -0.25" id="frame-lightmapquality-macroblockmode-verylow"> | |
<quad id="quad-lightmapquality-macroblockmode-verylow" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-verylow" z-index="1" text="-2" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_VeryLowText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="11.75 -0.25" id="frame-lightmapquality-macroblockmode-low"> | |
<quad id="quad-lightmapquality-macroblockmode-low" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-low" z-index="1" text="-1" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_LowText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="17 -0.25" id="frame-lightmapquality-macroblockmode-normal"> | |
<quad id="quad-lightmapquality-macroblockmode-normal" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-normal" z-index="1" text="0" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_NormalText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="22.25 -0.25" id="frame-lightmapquality-macroblockmode-high"> | |
<quad id="quad-lightmapquality-macroblockmode-high" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-high" z-index="1" text="+1" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_HighText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="27.5 -0.25" id="frame-lightmapquality-macroblockmode-veryhigh"> | |
<quad id="quad-lightmapquality-macroblockmode-veryhigh" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-veryhigh" z-index="1" text="+2" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_VeryHighText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
<frame pos="33 -0.25" id="frame-lightmapquality-macroblockmode-highest"> | |
<quad id="quad-lightmapquality-macroblockmode-highest" pos="1.5 -1.67" z-index="0" size="5 5" opacity="0.3" style="UICommon64_1" substyle="BgFrame2" /> | |
<label id="label-lightmapquality-macroblockmode-highest" z-index="1" text="+3" ScriptEvents="1" halign="center" pos="4 -4" valign="center" tooltip="{{{C_LightmapQuality_HighestText}}}" style="TextCardInfoSmall" textcolor="fcb119"/> | |
</frame> | |
</frame> | |
</frame> | |
</frame> | |
"""; | |
return MLText; | |
} | |
Boolean HackIsAnimatedItemActive() { | |
// kinda hacked, checks if ColorAndAnimation has phase window possibly appearing | |
// If so, window must go up to make place for it | |
// Code copied from ColorAndAnimation.Script.txt | |
declare Boolean Phase_ClassicMode = (PlaceMode == CMapEditorPlugin::PlaceMode::Item) && Cursor.IsCurrentItemAnimated(); | |
if(Phase_ClassicMode) return True; | |
declare Boolean IsCorrectPlaceModeForLocalMode = (PlaceMode == CMapEditorPlugin::PlaceMode::CopyPaste); | |
declare Boolean IsCorrectEditModeForLocalMode = | |
IsCorrectPlaceModeForLocalMode | |
&& (EditMode == CMapEditorPlugin::EditMode::SelectionAdd | |
|| EditMode == CMapEditorPlugin::EditMode::SelectionRemove | |
|| (EditMode == CMapEditorPlugin::EditMode::FreeLook) // not perfect | |
|| (EditMode == CMapEditorPlugin::EditMode::Pick)); | |
declare Boolean Phase_SelectionMode = IsCorrectEditModeForLocalMode && Cursor.CurrentSelectionHasAnimatedItem(); | |
if(Phase_SelectionMode) return True; | |
IsCorrectPlaceModeForLocalMode = (PlaceMode == CMapEditorPlugin::PlaceMode::Macroblock || PlaceMode == CMapEditorPlugin::PlaceMode::FreeMacroblock); | |
IsCorrectEditModeForLocalMode = | |
IsCorrectPlaceModeForLocalMode | |
|| (PlaceMode == CMapEditorPlugin::PlaceMode::CopyPaste | |
&& (EditMode == CMapEditorPlugin::EditMode::Place | |
|| (EditMode == CMapEditorPlugin::EditMode::FreeLook) // not perfect | |
|| (EditMode == CMapEditorPlugin::EditMode::Pick))); | |
declare Boolean Phase_MacroblockMode = IsCorrectEditModeForLocalMode && Cursor.CurrentMacroblockHasAnimatedItem(); | |
return Phase_MacroblockMode; | |
} | |
Real GetGlobalFramePosY() { | |
declare Real PosY = -20.; | |
if(PlaceMode == CMapEditorPlugin::PlaceMode::CopyPaste) { | |
PosY = -45.; | |
} | |
declare Boolean HackIsAnimatedItem = HackIsAnimatedItemActive(); | |
if (HackIsAnimatedItem) { | |
PosY += 10.5; | |
} | |
return PosY; | |
} | |
main() { | |
LayersDefaultManialinkVersion = 3; | |
ManialinkText = CreateManialink(); | |
EnableCursorShowingWhenInterfaceIsFocused = True; | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// LightmapQuality Variables | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
/** Write for layer **/ | |
declare L_LightmapQuality_ClassicMode for ManialinkPage = False; | |
declare L_LightmapQuality_SelectionMode for ManialinkPage = False; | |
declare L_LightmapQuality_MacroblockMode for ManialinkPage = False; | |
/** Read from layer & Write for layer **/ | |
declare CMapEditorPlugin::MapElemLightmapQuality L_LightmapQuality for ManialinkPage = NextMapElemLightmapQuality; // read, write only if NextMapElemLightmapQuality has changed | |
declare Boolean L_ForceMacroblockLightmapQuality for ManialinkPage = ForceMacroblockLightmapQuality; // read, write only if ForceMacroblockLightmapQuality has changed | |
/** Read from layer **/ | |
declare L_SelectionLightmapQuality for ManialinkPage = CMapEditorPlugin::MapElemLightmapQuality::Normal; | |
declare Boolean L_RequestSelectionLightmapQuality for ManialinkPage = False; | |
/** Backups, only local read/write **/ | |
declare CMapEditorPlugin::MapElemLightmapQuality LastFrameL_LightmapQuality = L_LightmapQuality; | |
declare CMapEditorPlugin::MapElemLightmapQuality LastFrameNextMapElemLightmapQuality = NextMapElemLightmapQuality; | |
declare Boolean LastFrameL_ForceMacroblockLightmapQuality = L_ForceMacroblockLightmapQuality; | |
declare Boolean LastFrameForceMacroblockLightmapQuality = ForceMacroblockLightmapQuality; | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
// Common Variables | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // | |
/** Write for layer **/ | |
declare L_GlobalFrame_Pos for ManialinkPage = <-153.2, GetGlobalFramePosY()>; | |
declare L_GlobalFrame_Visible for ManialinkPage = True; | |
declare Boolean L_UseItemTitle for ManialinkPage = (PlaceMode == CMapEditorPlugin::PlaceMode::Item); | |
/** Only local read/write **/ | |
declare Boolean IsCorrectPlaceModeForLocalMode; // Temp boolean used to make the code look clearer, instead of having huge multiline bools | |
declare Boolean IsCorrectEditModeForLocalMode; // Temp boolean used to make the code look clearer, instead of having huge multiline bools | |
while (True) { | |
/** LightmapQuality Modes update **/ | |
L_LightmapQuality_ClassicMode = | |
((PlaceMode == CMapEditorPlugin::PlaceMode::Block) | |
|| (PlaceMode == CMapEditorPlugin::PlaceMode::GhostBlock) | |
|| (PlaceMode == CMapEditorPlugin::PlaceMode::FreeBlock) | |
|| (PlaceMode == CMapEditorPlugin::PlaceMode::Item) | |
); | |
/* EditMode condition check for LightmapQuality Selection mode. | |
* Requires: Being in CopyPaste PlaceMode, and either : | |
* - Being in Add or Remove edit mode (these always allow LightmapQuality to appear) | |
* - Being in FreeLook or Pick mode, but only if we already were in L_LightmapQuality_SelectionMode last frame. | |
*/ | |
IsCorrectPlaceModeForLocalMode = (PlaceMode == CMapEditorPlugin::PlaceMode::CopyPaste); | |
IsCorrectEditModeForLocalMode = | |
IsCorrectPlaceModeForLocalMode | |
&& (EditMode == CMapEditorPlugin::EditMode::SelectionAdd | |
|| EditMode == CMapEditorPlugin::EditMode::SelectionRemove | |
|| (EditMode == CMapEditorPlugin::EditMode::FreeLook && L_LightmapQuality_SelectionMode) | |
|| (EditMode == CMapEditorPlugin::EditMode::Pick && L_LightmapQuality_SelectionMode)); | |
L_LightmapQuality_SelectionMode = IsCorrectEditModeForLocalMode && CopyPaste_GetSelectedCoordsCount() != 0; | |
/* EditMode condition check for LightmapQuality Macroblock mode. | |
* Requires either : | |
* - Being in Macroblock or FreeMacroblock placemode (these always allow LightmapQuality to appear) | |
* - Being in CopyPaste placemode + Place editmode (always allows LightmapQuality to appear) | |
* - Being in CopyPaste placemode + FreeLook or Pick editmode, but only if we already were in L_LightmapQuality_MacroblockMode last frame. | |
*/ | |
IsCorrectPlaceModeForLocalMode = (PlaceMode == CMapEditorPlugin::PlaceMode::Macroblock || PlaceMode == CMapEditorPlugin::PlaceMode::FreeMacroblock); | |
IsCorrectEditModeForLocalMode = | |
IsCorrectPlaceModeForLocalMode | |
|| (PlaceMode == CMapEditorPlugin::PlaceMode::CopyPaste | |
&& (EditMode == CMapEditorPlugin::EditMode::Place | |
|| (EditMode == CMapEditorPlugin::EditMode::FreeLook && L_LightmapQuality_MacroblockMode) | |
|| (EditMode == CMapEditorPlugin::EditMode::Pick && L_LightmapQuality_MacroblockMode))); | |
L_LightmapQuality_MacroblockMode = !L_LightmapQuality_SelectionMode && IsCorrectEditModeForLocalMode; | |
/** Common UI update **/ | |
L_GlobalFrame_Visible = !HideInventory; | |
L_UseItemTitle = (PlaceMode == CMapEditorPlugin::PlaceMode::Item); | |
L_GlobalFrame_Pos = <-153.2, GetGlobalFramePosY()>; | |
//tuningmark("pre CopyPaste_GetLightmapQualityInSelection"); | |
if (L_LightmapQuality_SelectionMode) { | |
declare CMapEditorPlugin::MapElemLightmapQuality[] L_QualityInSelection for ManialinkPage; | |
CopyPaste_GetLightmapQualityInSelection(); | |
L_QualityInSelection.clear(); | |
foreach(Quality in CopyPaste_GetLightmapQualityInSelection_Results) { | |
L_QualityInSelection.add(Quality); | |
} | |
} | |
//tuningmark("post CopyPaste_GetLightmapQualityInSelection"); | |
/** LightmapQuality API Sync **/ | |
if (LastFrameL_LightmapQuality != L_LightmapQuality) { // Manialink wants to change the LightmapQuality | |
NextMapElemLightmapQuality = L_LightmapQuality; // set the C++ LightmapQuality | |
} else if (LastFrameNextMapElemLightmapQuality != NextMapElemLightmapQuality) { // C++ has changed the LightmapQuality | |
L_LightmapQuality = NextMapElemLightmapQuality; // set the ML LightmapQuality | |
} | |
if (LastFrameL_ForceMacroblockLightmapQuality != L_ForceMacroblockLightmapQuality) { // Manialink wants to change the bool | |
ForceMacroblockLightmapQuality = L_ForceMacroblockLightmapQuality; // set the C++ bool | |
} else if (LastFrameForceMacroblockLightmapQuality != ForceMacroblockLightmapQuality) { // C++ has changed the bool | |
L_ForceMacroblockLightmapQuality = ForceMacroblockLightmapQuality; // set the ML bool | |
} | |
/** LightmapQuality API calls **/ | |
if (L_RequestSelectionLightmapQuality) { | |
if (CopyPaste_ApplyLightmapQualityToSelection(L_SelectionLightmapQuality)) { | |
AutoSave(); | |
} | |
L_RequestSelectionLightmapQuality = False; | |
} | |
/** LightmapQuality variable backups **/ | |
LastFrameNextMapElemLightmapQuality = NextMapElemLightmapQuality; | |
LastFrameL_LightmapQuality = L_LightmapQuality; | |
LastFrameForceMacroblockLightmapQuality = ForceMacroblockLightmapQuality; | |
LastFrameL_ForceMacroblockLightmapQuality = L_ForceMacroblockLightmapQuality; | |
yield; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment