Skip to content

Instantly share code, notes, and snippets.

@davidbmaier
Last active May 15, 2022 11:57
Show Gist options
  • Save davidbmaier/8720d3ea0bebac4336ad450846bb8cb5 to your computer and use it in GitHub Desktop.
Save davidbmaier/8720d3ea0bebac4336ad450846bb8cb5 to your computer and use it in GitHub Desktop.
Light map quality - TM2020 editor plugin by Nadeo
#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