Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.Xml;
using Server.Items;
namespace Server.Regions
{
public class ToKBridgeRegion : BaseRegion
{
public ToKBridgeRegion(XmlElement xml, Map map, Region parent)
: base(xml, map, parent)
{
Timer.DelayCall(TimeSpan.Zero, new TimerCallback(Ensure));
}
private List<Item> m_Blocks;
private Timer m_FadingTimer;
private int m_HuePointer;
public void Ensure()
{
m_Blocks = new List<Item>();
foreach (Rectangle3D r3d in Area)
{
Rectangle2D r2d = new Rectangle2D(r3d.Start, r3d.End);
foreach (Item item in Map.GetItemsInBounds(r2d))
{
if (item is Static)
m_Blocks.Add(item);
}
}
if (m_Blocks.Count == 0)
{
m_Blocks = null;
return;
}
foreach (Item item in m_Blocks)
{
item.Hue = 0x807;
item.Visible = false;
}
m_FadingTimer = Timer.DelayCall(TimeSpan.Zero, TimeSpan.FromSeconds(0.33), new TimerCallback(OnTick));
}
private static int[] m_Hues = new int[]
{
0,
0x807, 0x806, 0x805, 0x804, 0x803,
0x7E3, 0x7E4, 0x7E5, 0x7E6, 0x7E7,
0x7E8, 0x7E9, 0x3E3, 0x3E4, 0x380,
0
};
public void WakeUp()
{
if (m_Blocks == null)
Ensure();
if (m_FadingTimer != null && !m_FadingTimer.Running)
m_FadingTimer.Start();
}
public void OnTick()
{
m_HuePointer += GetPlayerCount() > 0 ? 1 : -1;
Utility.FixMinMax(ref m_HuePointer, 0, m_Hues.Length - 1);
foreach (Item item in m_Blocks)
item.Hue = m_Hues[m_HuePointer];
if (m_HuePointer == 0)
{
foreach (Item item in m_Blocks)
item.Visible = false;
m_FadingTimer.Stop();
}
else if (m_HuePointer == 1)
{
foreach (Item item in m_Blocks)
item.Visible = true;
}
else if (m_HuePointer == m_Hues.Length - 1)
{
m_FadingTimer.Stop();
}
}
public override void OnEnter(Mobile m)
{
WakeUp();
}
public override void OnExit(Mobile m)
{
WakeUp();
}
}
}