Bump to version 1.8
- Allow to enter time in milliseconds like before the 1.6 version - Add tooltip to display time in milliseconds or in race format - Add tooltip to explain why validate button is disabled - Improve valid time detection to allow time in seconds without minutes
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
				
			|||||||
// Based on the Moski plugin which is also based on the Miss plugin :)
 | 
					// Based on the Moski plugin which is also based on the Miss plugin :)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const string C_InvalidValueError = "Invalid value. You can set a human readable value like \\$<\\$aaa1:23.456\\$>\nor a value in milliseconds like \\$<\\$aaa83456\\$>";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool G_MenuVisibility = false;
 | 
					bool G_MenuVisibility = false;
 | 
				
			||||||
string G_AuthorTimeText = "0:00:00.000";
 | 
					string G_AuthorTimeText = "0:00:00.000";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,21 +29,45 @@ void Render() {
 | 
				
			|||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						UI::SetNextItemWidth(200.0);
 | 
				
			||||||
	if (UI::Begin("\\$cf9" + Icons::Flag + "\\$z Map Validator###MapValidator", G_MenuVisibility, UI::WindowFlags::NoResize | UI::WindowFlags::AlwaysAutoResize | UI::WindowFlags::NoCollapse)){
 | 
						if (UI::Begin("\\$cf9" + Icons::Flag + "\\$z Map Validator###MapValidator", G_MenuVisibility, UI::WindowFlags::NoResize | UI::WindowFlags::AlwaysAutoResize | UI::WindowFlags::NoCollapse)){
 | 
				
			||||||
		UI::SetNextItemWidth(100.0);
 | 
							UI::SetNextItemWidth(100.0);
 | 
				
			||||||
		G_AuthorTimeText = UI::InputText("###AuthorTimeText", G_AuthorTimeText);
 | 
							G_AuthorTimeText = UI::InputText("###AuthorTimeText", G_AuthorTimeText);
 | 
				
			||||||
		UI::SameLine();
 | 
							UI::SameLine();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		UI::BeginDisabled(!IsValidAuthorTime(G_AuthorTimeText));
 | 
							const bool IsMilliseconds = IsMillisecondsFormat(G_AuthorTimeText);
 | 
				
			||||||
 | 
							const bool IsButtonDisabled = (!IsMilliseconds && !IsValidAuthorTime(G_AuthorTimeText));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Creating group to be able to display the tooltip even when the button is disabled
 | 
				
			||||||
 | 
							UI::BeginGroup();
 | 
				
			||||||
 | 
							UI::BeginDisabled(IsButtonDisabled);
 | 
				
			||||||
		if (UI::Button("Validate")) {
 | 
							if (UI::Button("Validate")) {
 | 
				
			||||||
			setAuthorTime(map, Time::ParseRelativeTime(G_AuthorTimeText));
 | 
								int AuthorTime = 0;
 | 
				
			||||||
 | 
								if (IsMilliseconds) AuthorTime = Text::ParseUInt(G_AuthorTimeText);
 | 
				
			||||||
 | 
								else AuthorTime = Time::ParseRelativeTime(G_AuthorTimeText);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								setAuthorTime(map, AuthorTime);
 | 
				
			||||||
			setValidationStatus(editor);
 | 
								setValidationStatus(editor);
 | 
				
			||||||
			G_MenuVisibility = false;
 | 
								G_MenuVisibility = false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		UI::EndDisabled();
 | 
							UI::EndDisabled();
 | 
				
			||||||
 | 
							UI::EndGroup();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		string warning = GetWarning();
 | 
							// Time tooltip
 | 
				
			||||||
 | 
							if (UI::IsItemHovered()) {
 | 
				
			||||||
 | 
								UI::BeginTooltip();
 | 
				
			||||||
 | 
								if (IsButtonDisabled) {
 | 
				
			||||||
 | 
									UI::Text(C_InvalidValueError);
 | 
				
			||||||
 | 
								} else if (IsMilliseconds) {
 | 
				
			||||||
 | 
									UI::Text(Time::Format(Text::ParseUInt(G_AuthorTimeText)));
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									UI::Text("" + Time::ParseRelativeTime(G_AuthorTimeText) + " ms");
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								UI::EndTooltip();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Warning tooltip depending the game
 | 
				
			||||||
 | 
							const string warning = GetWarning();
 | 
				
			||||||
		if (warning != "") {
 | 
							if (warning != "") {
 | 
				
			||||||
			UI::SameLine();
 | 
								UI::SameLine();
 | 
				
			||||||
			UI::Text("\\$fa2" + Icons::Info);
 | 
								UI::Text("\\$fa2" + Icons::Info);
 | 
				
			||||||
@@ -51,9 +77,8 @@ void Render() {
 | 
				
			|||||||
				UI::EndTooltip();
 | 
									UI::EndTooltip();
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					 | 
				
			||||||
		UI::End();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						UI::End();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void RenderMenu() {
 | 
					void RenderMenu() {
 | 
				
			||||||
@@ -68,14 +93,17 @@ void RenderMenu() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool IsMillisecondsFormat(string _AuthorTimeText) {
 | 
				
			||||||
 | 
						return Regex::IsMatch(_AuthorTimeText, '\\d+');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool IsValidAuthorTime(string _AuthorTimeText) {
 | 
					bool IsValidAuthorTime(string _AuthorTimeText) {
 | 
				
			||||||
	if (!Regex::IsMatch(_AuthorTimeText, '[\\d\\.:]+')) {
 | 
						if (!Regex::IsMatch(_AuthorTimeText, '[\\d\\.:]+')) {
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (!Regex::IsMatch(_AuthorTimeText, '^((\\d+):)?(\\d|[0-5]\\d):(\\d|[0-5]\\d)\\.\\d{3}$')) {
 | 
						if (!Regex::IsMatch(_AuthorTimeText, '^(((((\\d+:)?[0-5])?\\d:)?[0-5])?\\d)\\.\\d{3}$')) {
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -3,6 +3,6 @@ name = "Map Validator"
 | 
				
			|||||||
author = "Beu"
 | 
					author = "Beu"
 | 
				
			||||||
category = "Map Editor"
 | 
					category = "Map Editor"
 | 
				
			||||||
siteid = 91
 | 
					siteid = 91
 | 
				
			||||||
version = "1.7"
 | 
					version = "1.8"
 | 
				
			||||||
blocks = [ "Plugin_MapValidator" ]
 | 
					blocks = [ "Plugin_MapValidator" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user