mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-06 15:17:34 +00:00
Grid Changes
- added good, warning and bad icons to the map spawner and prevent transfer grids.
This commit is contained in:
parent
9df02ec05e
commit
ca9c053f08
8 changed files with 172 additions and 17 deletions
|
|
@ -183,6 +183,8 @@ namespace ServerManagerTool.Lib
|
|||
|
||||
public static IEnumerable<NPCReplacement> GetNPCReplacements() => dinoSpawns.Select(d => new NPCReplacement() { FromClassName = d.ClassName, ToClassName = d.ClassName });
|
||||
|
||||
public static bool HasCreatureForClass(string className) => !string.IsNullOrWhiteSpace(className) && dinoSpawns.Any(e => e.ClassName.Equals(className));
|
||||
|
||||
public static bool IsSpawnableForClass(string className) => gameData?.Creatures?.FirstOrDefault(c => c.ClassName.Equals(className))?.IsSpawnable ?? true;
|
||||
|
||||
public static DinoTamable IsTameableForClass(string className) => gameData?.Creatures?.FirstOrDefault(c => c.ClassName.Equals(className))?.IsTameable ?? DinoTamable.True;
|
||||
|
|
|
|||
|
|
@ -17,11 +17,9 @@ namespace ServerManagerTool.Lib
|
|||
|
||||
public IEnumerable<string> RenderToView()
|
||||
{
|
||||
List<string> errors = new List<string>();
|
||||
|
||||
Update();
|
||||
|
||||
return errors;
|
||||
return new List<string>();
|
||||
}
|
||||
|
||||
public void RenderToModel()
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ namespace ServerManagerTool.Lib
|
|||
|
||||
public IEnumerable<string> RenderToView()
|
||||
{
|
||||
Update();
|
||||
|
||||
return new List<string>();
|
||||
}
|
||||
|
||||
|
|
@ -26,6 +28,14 @@ namespace ServerManagerTool.Lib
|
|||
public void UpdateForLocalization()
|
||||
{
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
IsEnabled = this.Count > 0;
|
||||
|
||||
foreach (var preventTransfer in this)
|
||||
preventTransfer.Update();
|
||||
}
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
|
|
@ -53,7 +63,10 @@ namespace ServerManagerTool.Lib
|
|||
public override void InitializeFromINIValue(string value)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
Update();
|
||||
return;
|
||||
}
|
||||
|
||||
var kvPair = value.Split(new[] { '=' }, 2);
|
||||
var kvValue = kvPair[1].Trim(' ');
|
||||
|
|
@ -74,5 +87,18 @@ namespace ServerManagerTool.Lib
|
|||
{
|
||||
return IsValid;
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty ValidStatusProperty = DependencyProperty.Register(nameof(ValidStatus), typeof(string), typeof(PreventTransferOverride), new PropertyMetadata("N"));
|
||||
|
||||
public string ValidStatus
|
||||
{
|
||||
get { return (string)GetValue(ValidStatusProperty); }
|
||||
set { SetValue(ValidStatusProperty, value); }
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
ValidStatus = IsValid ? (GameData.HasCreatureForClass(DinoClassString) ? "Y" : "W") : "N";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ namespace ServerManagerTool.Lib.ViewModel
|
|||
Reset();
|
||||
}
|
||||
|
||||
public NPCSpawnSettingsList(NPCSpawnContainerList<NPCSpawnContainer> configAddNPCSpawnEntriesContainer,
|
||||
public NPCSpawnSettingsList(
|
||||
NPCSpawnContainerList<NPCSpawnContainer> configAddNPCSpawnEntriesContainer,
|
||||
NPCSpawnContainerList<NPCSpawnContainer> configSubtractNPCSpawnEntriesContainer,
|
||||
NPCSpawnContainerList<NPCSpawnContainer> configOverrideNPCSpawnEntriesContainer)
|
||||
{
|
||||
|
|
@ -138,6 +139,8 @@ namespace ServerManagerTool.Lib.ViewModel
|
|||
|
||||
this.Add(spawnSettings);
|
||||
}
|
||||
|
||||
Update();
|
||||
}
|
||||
|
||||
public void RenderToModel()
|
||||
|
|
@ -195,6 +198,12 @@ namespace ServerManagerTool.Lib.ViewModel
|
|||
public void UpdateForLocalization()
|
||||
{
|
||||
}
|
||||
|
||||
public void Update(bool recursive = true)
|
||||
{
|
||||
foreach (var npcSpawn in this)
|
||||
npcSpawn.Update(recursive);
|
||||
}
|
||||
}
|
||||
|
||||
public class NPCSpawnSettings : DependencyObject, IEnumerable<NPCSpawnEntrySettings>
|
||||
|
|
@ -280,6 +289,26 @@ namespace ServerManagerTool.Lib.ViewModel
|
|||
{
|
||||
return NPCSpawnEntrySettings.GetEnumerator();
|
||||
}
|
||||
|
||||
public bool IsViewValid => !string.IsNullOrWhiteSpace(NPCSpawnEntriesContainerClassString) && (NPCSpawnEntrySettings?.Count ?? 0) > 0;
|
||||
|
||||
public static readonly DependencyProperty ValidStatusProperty = DependencyProperty.Register(nameof(ValidStatus), typeof(string), typeof(NPCSpawnSettings), new PropertyMetadata("N"));
|
||||
public string ValidStatus
|
||||
{
|
||||
get { return (string)GetValue(ValidStatusProperty); }
|
||||
set { SetValue(ValidStatusProperty, value); }
|
||||
}
|
||||
|
||||
public void Update(bool recursive = true)
|
||||
{
|
||||
if (recursive && NPCSpawnEntrySettings != null)
|
||||
{
|
||||
foreach (var itemSet in NPCSpawnEntrySettings)
|
||||
itemSet.Update();
|
||||
}
|
||||
|
||||
ValidStatus = IsViewValid ? (NPCSpawnEntrySettings.Any(i => i.ValidStatus == "N") ? "N" : (NPCSpawnEntrySettings.Any(i => i.ValidStatus == "W") ? "W" : "Y")) : "N";
|
||||
}
|
||||
}
|
||||
|
||||
public class NPCSpawnEntrySettings : DependencyObject
|
||||
|
|
@ -315,5 +344,17 @@ namespace ServerManagerTool.Lib.ViewModel
|
|||
public string DisplayName => GameData.FriendlyCreatureNameForClass(NPCClassString);
|
||||
|
||||
public bool IsValid => !string.IsNullOrWhiteSpace(NPCClassString);
|
||||
|
||||
public static readonly DependencyProperty ValidStatusProperty = DependencyProperty.Register(nameof(ValidStatus), typeof(string), typeof(NPCSpawnEntrySettings), new PropertyMetadata("N"));
|
||||
public string ValidStatus
|
||||
{
|
||||
get { return (string)GetValue(ValidStatusProperty); }
|
||||
set { SetValue(ValidStatusProperty, value); }
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
ValidStatus = IsValid ? (GameData.HasCreatureForClass(NPCClassString) ? "Y" : "W") : "N";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue