Initial Commit of 1.2.4, all data handlers are currently off.

This commit is contained in:
Zack Piispanen 2014-05-09 21:20:21 -04:00
parent 8d32d16bff
commit 871ad1fd2a
11 changed files with 109 additions and 88 deletions

View file

@ -4634,7 +4634,7 @@ namespace TShockAPI
}
if (args.Parameters.Count == 2)
int.TryParse(args.Parameters[1], out time);
if (id > 0 && id < Main.maxBuffs)
if (id > 0 && id < Main.maxBuffTypes)
{
if (time < 0 || time > short.MaxValue)
time = 60;
@ -4685,7 +4685,7 @@ namespace TShockAPI
}
if (args.Parameters.Count == 3)
int.TryParse(args.Parameters[2], out time);
if (id > 0 && id < Main.maxBuffs)
if (id > 0 && id < Main.maxBuffTypes)
{
if (time < 0 || time > short.MaxValue)
time = 60;

View file

@ -1198,7 +1198,7 @@ namespace TShockAPI
{
#region Blacklists
WhitelistBuffMaxTime = new int[Main.maxBuffs];
WhitelistBuffMaxTime = new int[Main.maxBuffTypes];
WhitelistBuffMaxTime[20] = 600;
WhitelistBuffMaxTime[0x18] = 1200;
WhitelistBuffMaxTime[0x1f] = 120;
@ -3218,7 +3218,7 @@ namespace TShockAPI
if (OnPlayerBuffUpdate(id))
return true;
for (int i = 0; i < 10; i++)
for (int i = 0; i < Terraria.Player.maxBuffs; i++)
{
var buff = args.Data.ReadInt8();

View file

@ -32,12 +32,12 @@ namespace TShockAPI.Net
public void PackFull(Stream stream)
{
long start = stream.Position;
stream.WriteInt32(1);
stream.WriteInt16(0);
stream.WriteInt8((byte) ID);
Pack(stream);
long end = stream.Position;
stream.Position = start;
stream.WriteInt32((int) (end - start) - 4);
stream.WriteInt16((short)end);
stream.Position = end;
}

View file

@ -41,8 +41,7 @@ namespace TShockAPI.Net
stream.WriteSingle(0);
stream.WriteInt16(0);
stream.WriteByte(Owner);
stream.WriteByte(0);
stream.WriteSingle(0);
stream.WriteInt16(0);
stream.WriteSingle(0);
stream.WriteSingle(0);
}

View file

@ -28,8 +28,8 @@ namespace TShockAPI.Net
get { return PacketTypes.PlayerSpawn; }
}
public int TileX { get; set; }
public int TileY { get; set; }
public short TileX { get; set; }
public short TileY { get; set; }
public byte PlayerIndex { get; set; }
public override void Pack(Stream stream)

View file

@ -20,6 +20,7 @@ using System;
using System.IO;
using System.IO.Streams;
using System.Text;
using Terraria;
namespace TShockAPI.Net
{
@ -58,12 +59,12 @@ namespace TShockAPI.Net
public byte MoonPhase { get; set; }
public bool BloodMoon { get; set; }
public bool Eclipse { get; set; }
public int MaxTilesX { get; set; }
public int MaxTilesY { get; set; }
public int SpawnX { get; set; }
public int SpawnY { get; set; }
public int WorldSurface { get; set; }
public int RockLayer { get; set; }
public short MaxTilesX { get; set; }
public short MaxTilesY { get; set; }
public short SpawnX { get; set; }
public short SpawnY { get; set; }
public short WorldSurface { get; set; }
public short RockLayer { get; set; }
public int WorldID { get; set; }
public byte MoonType { get; set; }
public int TreeX0 { get; set; }
@ -105,50 +106,71 @@ namespace TShockAPI.Net
public override void Pack(Stream stream)
{
stream.WriteInt32(Time);
stream.WriteBoolean(DayTime);
stream.WriteInt8(MoonPhase);
stream.WriteBoolean(BloodMoon);
stream.WriteBoolean(Eclipse);
stream.WriteInt32(MaxTilesX);
stream.WriteInt32(MaxTilesY);
stream.WriteInt32(SpawnX);
stream.WriteInt32(SpawnY);
stream.WriteInt32(WorldSurface);
stream.WriteInt32(RockLayer);
stream.WriteInt32(WorldID);
stream.WriteByte(MoonType);
stream.WriteInt32(TreeX0);
stream.WriteInt32(TreeX1);
stream.WriteInt32(TreeX2);
stream.WriteByte(TreeStyle0);
stream.WriteByte(TreeStyle1);
stream.WriteByte(TreeStyle2);
stream.WriteByte(TreeStyle3);
stream.WriteInt32(CaveBackX0);
stream.WriteInt32(CaveBackX1);
stream.WriteInt32(CaveBackX2);
stream.WriteByte(CaveBackStyle0);
stream.WriteByte(CaveBackStyle1);
stream.WriteByte(CaveBackStyle2);
stream.WriteByte(CaveBackStyle3);
stream.WriteByte(SetBG0);
stream.WriteByte(SetBG1);
stream.WriteByte(SetBG2);
stream.WriteByte(SetBG3);
stream.WriteByte(SetBG4);
stream.WriteByte(SetBG5);
stream.WriteByte(SetBG6);
stream.WriteByte(SetBG7);
stream.WriteByte(IceBackStyle);
stream.WriteByte(JungleBackStyle);
stream.WriteByte(HellBackStyle);
stream.WriteSingle(WindSpeed);
stream.WriteByte(NumberOfClouds);
stream.WriteInt8((byte)BossFlags);
stream.WriteInt8((byte)BossFlags2);
stream.WriteSingle(Rain);
stream.WriteBytes(Encoding.UTF8.GetBytes(WorldName));
BinaryWriter writer = new BinaryWriter(stream);
writer.Write(Time);
BitsByte worldinfo = new BitsByte(DayTime, BloodMoon, Eclipse);
writer.Write(worldinfo);
writer.Write(MoonPhase);
writer.Write(MaxTilesX);
writer.Write(MaxTilesY);
writer.Write(SpawnX);
writer.Write(SpawnY);
writer.Write(WorldSurface);
writer.Write(RockLayer);
writer.Write(WorldID);
writer.Write(WorldName);
writer.Write(MoonType);
writer.Write(SetBG0);
writer.Write(SetBG1);
writer.Write(SetBG2);
writer.Write(SetBG3);
writer.Write(SetBG4);
writer.Write(SetBG5);
writer.Write(SetBG6);
writer.Write(SetBG7);
writer.Write(IceBackStyle);
writer.Write(JungleBackStyle);
writer.Write(HellBackStyle);
writer.Write(WindSpeed);
writer.Write(NumberOfClouds);
writer.Write(TreeX0);
writer.Write(TreeX1);
writer.Write(TreeX2);
writer.Write(TreeStyle0);
writer.Write(TreeStyle1);
writer.Write(TreeStyle2);
writer.Write(TreeStyle3);
writer.Write(CaveBackX0);
writer.Write(CaveBackX1);
writer.Write(CaveBackX2);
writer.Write(CaveBackStyle0);
writer.Write(CaveBackStyle1);
writer.Write(CaveBackStyle2);
writer.Write(CaveBackStyle3);
writer.Write(Rain);
BitsByte bosses1 = new BitsByte((BossFlags & BossFlags.OrbSmashed) == BossFlags.OrbSmashed,
(BossFlags & BossFlags.DownedBoss1) == BossFlags.DownedBoss1,
(BossFlags & BossFlags.DownedBoss2) == BossFlags.DownedBoss2,
(BossFlags & BossFlags.DownedBoss3) == BossFlags.DownedBoss3,
(BossFlags & BossFlags.HardMode) == BossFlags.HardMode,
(BossFlags & BossFlags.DownedClown) == BossFlags.DownedClown,
(BossFlags & BossFlags.ServerSideCharacter) == BossFlags.ServerSideCharacter,
(BossFlags & BossFlags.DownedPlantBoss) == BossFlags.DownedPlantBoss);
writer.Write(bosses1);
BitsByte bosses2 = new BitsByte((BossFlags2 & BossFlags2.DownedMechBoss1) == BossFlags2.DownedMechBoss1,
(BossFlags2 & BossFlags2.DownedMechBoss2) == BossFlags2.DownedMechBoss2,
(BossFlags2 & BossFlags2.DownedMechBoss3) == BossFlags2.DownedMechBoss3,
(BossFlags2 & BossFlags2.DownedMechBossAny) == BossFlags2.DownedMechBossAny,
(BossFlags2 & BossFlags2.CloudBg) == BossFlags2.CloudBg,
(BossFlags2 & BossFlags2.Crimson) == BossFlags2.Crimson,
(BossFlags2 & BossFlags2.PumpkinMoon) == BossFlags2.PumpkinMoon,
(BossFlags2 & BossFlags2.SnowMoon) == BossFlags2.SnowMoon);
writer.Write(bosses2);
}
}
}

View file

@ -125,12 +125,12 @@ namespace TShockAPI
if (task.direct)
{
OnSaveWorld(new WorldSaveEventArgs());
WorldFile.realsaveWorld(task.resetTime);
WorldFile.RealSaveWorld(task.resetTime);
}
else
WorldFile.saveWorld(task.resetTime);
TShock.Utils.Broadcast("World saved.", Color.Yellow);
Log.Info(string.Format("World saved at ({0})", Main.worldPathName));
TShock.Utils.Broadcast("World saved.", Color.Yellow);
Log.Info(string.Format("World saved at ({0})", Main.worldPathName));
}
catch (Exception e)
{

View file

@ -525,12 +525,12 @@ namespace TShockAPI
DayTime = Main.dayTime,
MoonPhase = (byte)Main.moonPhase,
BloodMoon = Main.bloodMoon,
MaxTilesX = Main.maxTilesX,
MaxTilesY = Main.maxTilesY,
SpawnX = Main.spawnTileX,
SpawnY = Main.spawnTileY,
WorldSurface = (int)Main.worldSurface,
RockLayer = (int)Main.rockLayer,
MaxTilesX = (short)Main.maxTilesX,
MaxTilesY = (short)Main.maxTilesY,
SpawnX = (short)Main.spawnTileX,
SpawnY = (short)Main.spawnTileY,
WorldSurface = (short)Main.worldSurface,
RockLayer = (short)Main.rockLayer,
//Sending a fake world id causes the client to not be able to find a stored spawnx/y.
//This fixes the bed spawn point bug. With a fake world id it wont be able to find the bed spawn.
WorldID = Main.worldID,
@ -636,8 +636,8 @@ namespace TShockAPI
var msg = new SpawnMsg
{
PlayerIndex = (byte) Index,
TileX = tilex,
TileY = tiley
TileX = (short)tilex,
TileY = (short)tiley
};
msg.PackFull(ms);
SendRawData(ms.ToArray());

View file

@ -41,7 +41,7 @@ using System.Threading.Tasks;
namespace TShockAPI
{
[ApiVersion(1, 15)]
[ApiVersion(1, 16)]
public class TShock : TerrariaPlugin
{
public static readonly Version VersionNum = Assembly.GetExecutingAssembly().GetName().Version;
@ -1150,7 +1150,7 @@ namespace TShockAPI
if (e.Handled)
return;
PacketTypes type = e.MsgID;
/*PacketTypes type = e.MsgID;
Debug.WriteLine("Recv: {0:X}: {2} ({1:XX})", e.Msg.whoAmI, (byte) type, type);
@ -1174,11 +1174,11 @@ namespace TShockAPI
return;
}
using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length - 1))
{
// Exceptions are already handled
e.Handled = GetDataHandlers.HandlerGetData(type, player, data);
}
}*/
}
private void OnGreetPlayer(GreetPlayerEventArgs args)
@ -1359,12 +1359,12 @@ namespace TShockAPI
DayTime = Main.dayTime,
MoonPhase = (byte)Main.moonPhase,
BloodMoon = Main.bloodMoon,
MaxTilesX = Main.maxTilesX,
MaxTilesY = Main.maxTilesY,
SpawnX = Main.spawnTileX,
SpawnY = Main.spawnTileY,
WorldSurface = (int)Main.worldSurface,
RockLayer = (int)Main.rockLayer,
MaxTilesX = (short)Main.maxTilesX,
MaxTilesY = (short)Main.maxTilesY,
SpawnX = (short)Main.spawnTileX,
SpawnY = (short)Main.spawnTileY,
WorldSurface = (short)Main.worldSurface,
RockLayer = (short)Main.rockLayer,
//Sending a fake world id causes the client to not be able to find a stored spawnx/y.
//This fixes the bed spawn point bug. With a fake world id it wont be able to find the bed spawn.
WorldID = Main.worldID,
@ -1408,7 +1408,7 @@ namespace TShockAPI
(NPC.downedMechBoss2 ? BossFlags2.DownedMechBoss2 : BossFlags2.None) |
(NPC.downedMechBoss3 ? BossFlags2.DownedMechBoss3 : BossFlags2.None) |
(NPC.downedMechBossAny ? BossFlags2.DownedMechBossAny : BossFlags2.None) |
(Main.cloudBGActive == 1f ? BossFlags2.CloudBg : BossFlags2.None) |
(Main.cloudBGActive >= 1f ? BossFlags2.CloudBg : BossFlags2.None) |
(WorldGen.crimson ? BossFlags2.Crimson : BossFlags2.None) |
(Main.pumpkinMoon ? BossFlags2.PumpkinMoon : BossFlags2.None) |
(Main.snowMoon ? BossFlags2.SnowMoon : BossFlags2.None) ,

View file

@ -442,7 +442,7 @@ namespace TShockAPI
/// <returns>name</returns>
public string GetBuffName(int id)
{
return (id > 0 && id < Main.maxBuffs) ? Main.buffName[id] : "null";
return (id > 0 && id < Main.maxBuffTypes) ? Main.buffName[id] : "null";
}
/// <summary>
@ -452,7 +452,7 @@ namespace TShockAPI
/// <returns>description</returns>
public string GetBuffDescription(int id)
{
return (id > 0 && id < Main.maxBuffs) ? Main.buffTip[id] : "null";
return (id > 0 && id < Main.maxBuffTypes) ? Main.buffTip[id] : "null";
}
/// <summary>
@ -463,13 +463,13 @@ namespace TShockAPI
public List<int> GetBuffByName(string name)
{
string nameLower = name.ToLower();
for (int i = 1; i < Main.maxBuffs; i++)
for (int i = 1; i < Main.maxBuffTypes; i++)
{
if (Main.buffName[i].ToLower() == nameLower)
return new List<int> {i};
}
var found = new List<int>();
for (int i = 1; i < Main.maxBuffs; i++)
for (int i = 1; i < Main.maxBuffTypes; i++)
{
if (Main.buffName[i].ToLower().StartsWith(nameLower))
found.Add(i);

@ -1 +1 @@
Subproject commit 32544b409a0c40f2be57d27071fd97c36dbe73e4
Subproject commit 330a7f067c5ebd3f5dd9020f5f27a5e323ffdb1a