Skip to content

Commit b37e67d

Browse files
committed
Merge branch 'develop'
2 parents 4a25515 + dc89613 commit b37e67d

30 files changed

+772
-121
lines changed

ChestPlacementFix.cs

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
6-
using Terraria.ModLoader;
1+
using System.Collections.Generic;
72
using Terraria;
83
using Terraria.ID;
4+
using Terraria.ModLoader;
95

106
namespace MechTransfer
117
{
12-
class ChestPlacementFix : GlobalTile
8+
internal class ChestPlacementFix : GlobalTile
139
{
1410
private List<int> noChestTiles = new List<int>();
1511

@@ -31,4 +27,4 @@ public void AddNoChestTile(int type)
3127
noChestTiles.Add(type);
3228
}
3329
}
34-
}
30+
}

ContainerAdapters/ChestAdapter.cs

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.IO;
34
using Terraria;
5+
using Terraria.ID;
46
using Terraria.ModLoader;
57

68
namespace MechTransfer.ContainerAdapters
79
{
8-
internal class ChestAdapter
10+
internal class ChestAdapter : INetHandler
911
{
1012
private Mod mod;
1113

1214
public ChestAdapter(Mod mod)
1315
{
1416
this.mod = mod;
17+
NetRouter.AddHandler(this);
1518
}
1619

1720
private int FindChest(int x, int y)
@@ -43,9 +46,9 @@ private void HandleChestItemChange(int chest)
4346
{
4447
if (Main.netMode == 2)
4548
{
46-
ModPacket packet = mod.GetPacket();
47-
packet.Write((byte)MechTransfer.ModMessageID.KickFromChest);
49+
ModPacket packet = NetRouter.GetPacketTo(this, mod);
4850
packet.Send(targetPlayer);
51+
Main.player[targetPlayer].chest = -1;
4952
}
5053
else if (Main.netMode == 0)
5154
Recipe.FindRecipes();
@@ -139,5 +142,12 @@ public void TakeItem(int x, int y, object slot, int amount)
139142

140143
HandleChestItemChange(c);
141144
}
145+
146+
public void HandlePacket(BinaryReader reader, int WhoAmI)
147+
{
148+
Main.LocalPlayer.chest = -1;
149+
Recipe.FindRecipes();
150+
Main.PlaySound(SoundID.MenuClose);
151+
}
142152
}
143153
}

ContainerAdapters/OmniTurretAdapter.cs

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
using Microsoft.Xna.Framework;
22
using System;
33
using System.Collections.Generic;
4+
using System.IO;
45
using Terraria;
56
using Terraria.ID;
67
using Terraria.ModLoader;
78

89
namespace MechTransfer.ContainerAdapters
910
{
10-
internal class OmniTurretAdapter
11+
internal class OmniTurretAdapter : INetHandler
1112
{
1213
private Mod mod;
1314

@@ -18,6 +19,7 @@ internal class OmniTurretAdapter
1819
public OmniTurretAdapter(Mod mod)
1920
{
2021
this.mod = mod;
22+
NetRouter.AddHandler(this);
2123
}
2224

2325
public void TakeItem(int x, int y, object slot, int amount)
@@ -70,8 +72,7 @@ public bool InjectItem(int x, int y, Item item)
7072

7173
if (Main.netMode == 2)
7274
{
73-
ModPacket packet = mod.GetPacket();
74-
packet.Write((byte)MechTransfer.ModMessageID.ProjectileMakeHostile);
75+
ModPacket packet = NetRouter.GetPacketTo(this, mod);
7576
packet.Write((Int16)proj.identity);
7677
packet.Write((byte)proj.owner);
7778
packet.Send();
@@ -82,5 +83,20 @@ public bool InjectItem(int x, int y, Item item)
8283

8384
return true;
8485
}
86+
87+
public void HandlePacket(BinaryReader reader, int WhoAmI)
88+
{
89+
int identity = reader.ReadInt16();
90+
int owner = reader.ReadByte();
91+
for (int i = 0; i < 1000; i++)
92+
{
93+
Projectile proj = Main.projectile[i];
94+
if (proj.owner == owner && proj.identity == identity && proj.active)
95+
{
96+
proj.hostile = true;
97+
break;
98+
}
99+
}
100+
}
85101
}
86102
}

0 commit comments

Comments
 (0)