This commit is contained in:
MarioE 2014-02-16 12:29:59 -05:00
parent 03de0652e9
commit a450bff22f
3 changed files with 131 additions and 128 deletions

View file

@ -33,7 +33,8 @@ namespace TShockAPI.Net
DownedBoss3 = 8, DownedBoss3 = 8,
HardMode = 16, HardMode = 16,
DownedClown = 32, DownedClown = 32,
ServerSideCharacter = 64 ServerSideCharacter = 64,
DownedPlantBoss = 128
} }
[Flags] [Flags]
@ -46,7 +47,8 @@ namespace TShockAPI.Net
DownedMechBossAny = 8, DownedMechBossAny = 8,
CloudBg = 16, CloudBg = 16,
Crimson = 32, Crimson = 32,
Pumpkin = 64 PumpkinMoon = 64,
SnowMoon = 128
} }
public class WorldInfoMsg : BaseMsg public class WorldInfoMsg : BaseMsg

View file

@ -520,65 +520,67 @@ namespace TShockAPI
using (var ms = new MemoryStream()) using (var ms = new MemoryStream())
{ {
var msg = new WorldInfoMsg var msg = new WorldInfoMsg
{ {
Time = (int) Main.time, Time = (int)Main.time,
DayTime = Main.dayTime, DayTime = Main.dayTime,
MoonPhase = (byte) Main.moonPhase, MoonPhase = (byte)Main.moonPhase,
BloodMoon = Main.bloodMoon, BloodMoon = Main.bloodMoon,
MaxTilesX = Main.maxTilesX, MaxTilesX = Main.maxTilesX,
MaxTilesY = Main.maxTilesY, MaxTilesY = Main.maxTilesY,
SpawnX = tilex, SpawnX = Main.spawnTileX,
SpawnY = tiley, SpawnY = Main.spawnTileY,
WorldSurface = (int) Main.worldSurface, WorldSurface = (int)Main.worldSurface,
RockLayer = (int) Main.rockLayer, RockLayer = (int)Main.rockLayer,
//Sending a fake world id causes the client to not be able to find a stored spawnx/y. //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. //This fixes the bed spawn point bug. With a fake world id it wont be able to find the bed spawn.
WorldID = !fakeid ? Main.worldID : -1, WorldID = Main.worldID,
MoonType = (byte)Main.moonType, MoonType = (byte)Main.moonType,
TreeX0 = Main.treeX[0], TreeX0 = Main.treeX[0],
TreeX1 = Main.treeX[1], TreeX1 = Main.treeX[1],
TreeX2 = Main.treeX[2], TreeX2 = Main.treeX[2],
TreeStyle0 = (byte)Main.treeStyle[0], TreeStyle0 = (byte)Main.treeStyle[0],
TreeStyle1 = (byte)Main.treeStyle[1], TreeStyle1 = (byte)Main.treeStyle[1],
TreeStyle2 = (byte)Main.treeStyle[2], TreeStyle2 = (byte)Main.treeStyle[2],
TreeStyle3 = (byte)Main.treeStyle[3], TreeStyle3 = (byte)Main.treeStyle[3],
CaveBackX0 = Main.caveBackX[0], CaveBackX0 = Main.caveBackX[0],
CaveBackX1 = Main.caveBackX[1], CaveBackX1 = Main.caveBackX[1],
CaveBackX2 = Main.caveBackX[2], CaveBackX2 = Main.caveBackX[2],
CaveBackStyle0 = (byte)Main.caveBackStyle[0], CaveBackStyle0 = (byte)Main.caveBackStyle[0],
CaveBackStyle1 = (byte)Main.caveBackStyle[1], CaveBackStyle1 = (byte)Main.caveBackStyle[1],
CaveBackStyle2 = (byte)Main.caveBackStyle[2], CaveBackStyle2 = (byte)Main.caveBackStyle[2],
CaveBackStyle3 = (byte)Main.caveBackStyle[3], CaveBackStyle3 = (byte)Main.caveBackStyle[3],
SetBG0 = (byte)WorldGen.treeBG, SetBG0 = (byte)WorldGen.treeBG,
SetBG1 = (byte)WorldGen.corruptBG, SetBG1 = (byte)WorldGen.corruptBG,
SetBG2 = (byte)WorldGen.jungleBG, SetBG2 = (byte)WorldGen.jungleBG,
SetBG3 = (byte)WorldGen.snowBG, SetBG3 = (byte)WorldGen.snowBG,
SetBG4 = (byte)WorldGen.hallowBG, SetBG4 = (byte)WorldGen.hallowBG,
SetBG5 = (byte)WorldGen.crimsonBG, SetBG5 = (byte)WorldGen.crimsonBG,
SetBG6 = (byte)WorldGen.desertBG, SetBG6 = (byte)WorldGen.desertBG,
SetBG7 = (byte)WorldGen.oceanBG, SetBG7 = (byte)WorldGen.oceanBG,
IceBackStyle = (byte)Main.iceBackStyle, IceBackStyle = (byte)Main.iceBackStyle,
JungleBackStyle = (byte)Main.jungleBackStyle, JungleBackStyle = (byte)Main.jungleBackStyle,
HellBackStyle = (byte)Main.hellBackStyle, HellBackStyle = (byte)Main.hellBackStyle,
WindSpeed = Main.windSpeed, WindSpeed = Main.windSpeed,
NumberOfClouds = (byte)Main.numClouds, NumberOfClouds = (byte)Main.numClouds,
BossFlags = (WorldGen.shadowOrbSmashed ? BossFlags.OrbSmashed : BossFlags.None) | BossFlags = (WorldGen.shadowOrbSmashed ? BossFlags.OrbSmashed : BossFlags.None) |
(NPC.downedBoss1 ? BossFlags.DownedBoss1 : BossFlags.None) | (NPC.downedBoss1 ? BossFlags.DownedBoss1 : BossFlags.None) |
(NPC.downedBoss2 ? BossFlags.DownedBoss2 : BossFlags.None) | (NPC.downedBoss2 ? BossFlags.DownedBoss2 : BossFlags.None) |
(NPC.downedBoss3 ? BossFlags.DownedBoss3 : BossFlags.None) | (NPC.downedBoss3 ? BossFlags.DownedBoss3 : BossFlags.None) |
(Main.hardMode ? BossFlags.HardMode : BossFlags.None) | (Main.hardMode ? BossFlags.HardMode : BossFlags.None) |
(NPC.downedClown ? BossFlags.DownedClown : BossFlags.None) | (NPC.downedClown ? BossFlags.DownedClown : BossFlags.None) |
(Main.ServerSideCharacter ? BossFlags.ServerSideCharacter : BossFlags.None), (Main.ServerSideCharacter ? BossFlags.ServerSideCharacter : BossFlags.None) |
BossFlags2 = (NPC.downedMechBoss1 ? BossFlags2.DownedMechBoss1 : BossFlags2.None) | (NPC.downedPlantBoss ? BossFlags.DownedPlantBoss : BossFlags.None),
(NPC.downedMechBoss2 ? BossFlags2.DownedMechBoss2 : BossFlags2.None) | BossFlags2 = (NPC.downedMechBoss1 ? BossFlags2.DownedMechBoss1 : BossFlags2.None) |
(NPC.downedMechBoss3 ? BossFlags2.DownedMechBoss3 : BossFlags2.None) | (NPC.downedMechBoss2 ? BossFlags2.DownedMechBoss2 : BossFlags2.None) |
(NPC.downedMechBossAny ? BossFlags2.DownedMechBossAny : BossFlags2.None) | (NPC.downedMechBoss3 ? BossFlags2.DownedMechBoss3 : BossFlags2.None) |
(Main.cloudBGActive == 1f ? BossFlags2.CloudBg : BossFlags2.None) | (NPC.downedMechBossAny ? BossFlags2.DownedMechBossAny : BossFlags2.None) |
(WorldGen.crimson ? BossFlags2.Crimson : BossFlags2.None) | (Main.cloudBGActive == 1f ? BossFlags2.CloudBg : BossFlags2.None) |
(Main.pumpkinMoon ? BossFlags2.Pumpkin : BossFlags2.None), (WorldGen.crimson ? BossFlags2.Crimson : BossFlags2.None) |
Rain = Main.maxRaining, (Main.pumpkinMoon ? BossFlags2.PumpkinMoon : BossFlags2.None) |
WorldName = TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName (Main.snowMoon ? BossFlags2.SnowMoon : BossFlags2.None),
}; Rain = Main.maxRaining,
WorldName = TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName
};
msg.PackFull(ms); msg.PackFull(ms);
SendRawData(ms.ToArray()); SendRawData(ms.ToArray());
} }

View file

@ -1359,76 +1359,75 @@ namespace TShockAPI
if (e.remoteClient == -1) return; if (e.remoteClient == -1) return;
var player = Players[e.remoteClient]; var player = Players[e.remoteClient];
if (player == null) return; if (player == null) return;
if (Config.UseServerName) using (var ms = new MemoryStream())
{ {
using (var ms = new MemoryStream()) var msg = new WorldInfoMsg
{ {
var msg = new WorldInfoMsg Time = (int)Main.time,
{ DayTime = Main.dayTime,
Time = (int)Main.time, MoonPhase = (byte)Main.moonPhase,
DayTime = Main.dayTime, BloodMoon = Main.bloodMoon,
MoonPhase = (byte)Main.moonPhase, MaxTilesX = Main.maxTilesX,
BloodMoon = Main.bloodMoon, MaxTilesY = Main.maxTilesY,
MaxTilesX = Main.maxTilesX, SpawnX = Main.spawnTileX,
MaxTilesY = Main.maxTilesY, SpawnY = Main.spawnTileY,
SpawnX = Main.spawnTileX, WorldSurface = (int)Main.worldSurface,
SpawnY = Main.spawnTileY, RockLayer = (int)Main.rockLayer,
WorldSurface = (int)Main.worldSurface, //Sending a fake world id causes the client to not be able to find a stored spawnx/y.
RockLayer = (int)Main.rockLayer, //This fixes the bed spawn point bug. With a fake world id it wont be able to find the bed spawn.
//Sending a fake world id causes the client to not be able to find a stored spawnx/y. WorldID = Main.worldID,
//This fixes the bed spawn point bug. With a fake world id it wont be able to find the bed spawn. MoonType = (byte)Main.moonType,
WorldID = Main.worldID, TreeX0 = Main.treeX[0],
MoonType = (byte)Main.moonType, TreeX1 = Main.treeX[1],
TreeX0 = Main.treeX[0], TreeX2 = Main.treeX[2],
TreeX1 = Main.treeX[1], TreeStyle0 = (byte)Main.treeStyle[0],
TreeX2 = Main.treeX[2], TreeStyle1 = (byte)Main.treeStyle[1],
TreeStyle0 = (byte)Main.treeStyle[0], TreeStyle2 = (byte)Main.treeStyle[2],
TreeStyle1 = (byte)Main.treeStyle[1], TreeStyle3 = (byte)Main.treeStyle[3],
TreeStyle2 = (byte)Main.treeStyle[2], CaveBackX0 = Main.caveBackX[0],
TreeStyle3 = (byte)Main.treeStyle[3], CaveBackX1 = Main.caveBackX[1],
CaveBackX0 = Main.caveBackX[0], CaveBackX2 = Main.caveBackX[2],
CaveBackX1 = Main.caveBackX[1], CaveBackStyle0 = (byte)Main.caveBackStyle[0],
CaveBackX2 = Main.caveBackX[2], CaveBackStyle1 = (byte)Main.caveBackStyle[1],
CaveBackStyle0 = (byte)Main.caveBackStyle[0], CaveBackStyle2 = (byte)Main.caveBackStyle[2],
CaveBackStyle1 = (byte)Main.caveBackStyle[1], CaveBackStyle3 = (byte)Main.caveBackStyle[3],
CaveBackStyle2 = (byte)Main.caveBackStyle[2], SetBG0 = (byte)WorldGen.treeBG,
CaveBackStyle3 = (byte)Main.caveBackStyle[3], SetBG1 = (byte)WorldGen.corruptBG,
SetBG0 = (byte)WorldGen.treeBG, SetBG2 = (byte)WorldGen.jungleBG,
SetBG1 = (byte)WorldGen.corruptBG, SetBG3 = (byte)WorldGen.snowBG,
SetBG2 = (byte)WorldGen.jungleBG, SetBG4 = (byte)WorldGen.hallowBG,
SetBG3 = (byte)WorldGen.snowBG, SetBG5 = (byte)WorldGen.crimsonBG,
SetBG4 = (byte)WorldGen.hallowBG, SetBG6 = (byte)WorldGen.desertBG,
SetBG5 = (byte)WorldGen.crimsonBG, SetBG7 = (byte)WorldGen.oceanBG,
SetBG6 = (byte)WorldGen.desertBG, IceBackStyle = (byte)Main.iceBackStyle,
SetBG7 = (byte)WorldGen.oceanBG, JungleBackStyle = (byte)Main.jungleBackStyle,
IceBackStyle = (byte)Main.iceBackStyle, HellBackStyle = (byte)Main.hellBackStyle,
JungleBackStyle = (byte)Main.jungleBackStyle, WindSpeed = Main.windSpeed,
HellBackStyle = (byte)Main.hellBackStyle, NumberOfClouds = (byte)Main.numClouds,
WindSpeed = Main.windSpeed, BossFlags = (WorldGen.shadowOrbSmashed ? BossFlags.OrbSmashed : BossFlags.None) |
NumberOfClouds = (byte)Main.numClouds, (NPC.downedBoss1 ? BossFlags.DownedBoss1 : BossFlags.None) |
BossFlags = (WorldGen.shadowOrbSmashed ? BossFlags.OrbSmashed : BossFlags.None) | (NPC.downedBoss2 ? BossFlags.DownedBoss2 : BossFlags.None) |
(NPC.downedBoss1 ? BossFlags.DownedBoss1 : BossFlags.None) | (NPC.downedBoss3 ? BossFlags.DownedBoss3 : BossFlags.None) |
(NPC.downedBoss2 ? BossFlags.DownedBoss2 : BossFlags.None) | (Main.hardMode ? BossFlags.HardMode : BossFlags.None) |
(NPC.downedBoss3 ? BossFlags.DownedBoss3 : BossFlags.None) | (NPC.downedClown ? BossFlags.DownedClown : BossFlags.None) |
(Main.hardMode ? BossFlags.HardMode : BossFlags.None) | (Main.ServerSideCharacter ? BossFlags.ServerSideCharacter : BossFlags.None) |
(NPC.downedClown ? BossFlags.DownedClown : BossFlags.None) | (NPC.downedPlantBoss ? BossFlags.DownedPlantBoss : BossFlags.None),
(Main.ServerSideCharacter ? BossFlags.ServerSideCharacter : BossFlags.None), BossFlags2 = (NPC.downedMechBoss1 ? BossFlags2.DownedMechBoss1 : BossFlags2.None) |
BossFlags2 = (NPC.downedMechBoss1 ? BossFlags2.DownedMechBoss1 : BossFlags2.None) | (NPC.downedMechBoss2 ? BossFlags2.DownedMechBoss2 : BossFlags2.None) |
(NPC.downedMechBoss2 ? BossFlags2.DownedMechBoss2 : BossFlags2.None) | (NPC.downedMechBoss3 ? BossFlags2.DownedMechBoss3 : BossFlags2.None) |
(NPC.downedMechBoss3 ? BossFlags2.DownedMechBoss3 : BossFlags2.None) | (NPC.downedMechBossAny ? BossFlags2.DownedMechBossAny : 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) |
(WorldGen.crimson ? BossFlags2.Crimson : BossFlags2.None) | (Main.pumpkinMoon ? BossFlags2.PumpkinMoon : BossFlags2.None) |
(Main.pumpkinMoon ? BossFlags2.Pumpkin : BossFlags2.None), (Main.snowMoon ? BossFlags2.SnowMoon : BossFlags2.None) ,
Rain = Main.maxRaining, Rain = Main.maxRaining,
WorldName = TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName WorldName = TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName
}; };
msg.PackFull(ms); msg.PackFull(ms);
player.SendRawData(ms.ToArray()); player.SendRawData(ms.ToArray());
}
e.Handled = true;
return;
} }
e.Handled = true;
return;
} }
else if (e.MsgId == PacketTypes.PlayerHp) else if (e.MsgId == PacketTypes.PlayerHp)
{ {