fix: Fixes spawner timer deserialization, decimal deserialization, and adds potion keg reverse lookup (#1711)
### Summary * Fixes spawner timer deserialization * Adds a check for a null timer and allows the timer to get recreated * Adds PotionKeg reverse lookup * Heavily optimizes decimal serialize/deserialize
This commit is contained in:
parent
70575e1517
commit
1a7e7c7c70
7 changed files with 126 additions and 49 deletions
|
|
@ -39,6 +39,7 @@ public interface IGenericWriter
|
|||
void Write(bool value);
|
||||
void Write(Serial serial);
|
||||
void Write(Type type);
|
||||
void Write(decimal value);
|
||||
|
||||
void Write(DateTime value)
|
||||
{
|
||||
|
|
@ -79,20 +80,12 @@ public interface IGenericWriter
|
|||
Write((byte)bytesWritten);
|
||||
Write(stack[..bytesWritten]);
|
||||
}
|
||||
|
||||
void Write(TimeSpan value)
|
||||
{
|
||||
Write(value.Ticks);
|
||||
}
|
||||
|
||||
public void Write(decimal value)
|
||||
{
|
||||
var bits = decimal.GetBits(value);
|
||||
|
||||
for (var i = 0; i < 4; ++i)
|
||||
{
|
||||
Write(bits[i]);
|
||||
}
|
||||
}
|
||||
void WriteEncodedInt(int value)
|
||||
{
|
||||
var v = (uint)value;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue