public static void PutBallInCup_Actual( Point hitLocation, int plr, int numberOfHits, int projid) { if (numberOfHits == 0) { return; } Wiring.HitSwitch(hitLocation.X, hitLocation.Y); NetMessage.SendData(59, -1, -1, (NetworkText)null, hitLocation.X, (float)hitLocation.Y, 0.0f, 0.0f, 0, 0, 0); GolfHelper.ContactListener.EmitGolfballExplosion(hitLocation.ToWorldCoordinates(8f, 0.0f)); string key = "Game.BallBounceResultGolf_Single"; if (numberOfHits != 1) { key = "Game.BallBounceResultGolf_Plural"; } NetworkText text = NetworkText.FromKey(key, (object)Main.player[plr].name, (object)NetworkText.FromKey(Lang.GetProjectileName(projid).Key), (object)numberOfHits); switch (Main.netMode) { case 0: case 1: Main.NewText(text.ToString(), byte.MaxValue, (byte)240, (byte)20); break; case 2: ChatHelper.BroadcastChatMessage(text, new Color((int)byte.MaxValue, 240, 20), -1); break; } }
private static void UpdateEndInternal() { TELogicSensor.inUpdateLoop = false; foreach (Tuple <Point16, bool> tripPoint in TELogicSensor.tripPoints) { Wiring.blockPlayerTeleportationForOneIteration = tripPoint.Item2; Wiring.HitSwitch((int)tripPoint.Item1.X, (int)tripPoint.Item1.Y); if (Main.netMode == 2) { NetMessage.SendData(59, -1, -1, (NetworkText)null, (int)tripPoint.Item1.X, (float)tripPoint.Item1.Y, 0.0f, 0.0f, 0, 0, 0); } } Wiring.blockPlayerTeleportationForOneIteration = false; TELogicSensor.tripPoints.Clear(); foreach (int key in TELogicSensor.markedIDsForRemoval) { TileEntity tileEntity; if (TileEntity.ByID.TryGetValue(key, out tileEntity) && (int)tileEntity.type == (int)TELogicSensor._myEntityID) { TileEntity.ByID.Remove(key); } TileEntity.ByPosition.Remove(tileEntity.Position); } TELogicSensor.markedIDsForRemoval.Clear(); }
private static void UpdateEndInternal() { TELogicSensor.inUpdateLoop = false; using (List <Tuple <Point16, bool> > .Enumerator enumerator = TELogicSensor.tripPoints.GetEnumerator()) { while (enumerator.MoveNext()) { Tuple <Point16, bool> current = enumerator.Current; Wiring.blockPlayerTeleportationForOneIteration = current.get_Item2(); Wiring.HitSwitch((int)current.get_Item1().X, (int)current.get_Item1().Y); } } Wiring.blockPlayerTeleportationForOneIteration = false; TELogicSensor.tripPoints.Clear(); foreach (int key in TELogicSensor.markedIDsForRemoval) { TileEntity tileEntity; if (TileEntity.ByID.TryGetValue(key, out tileEntity) && (int)tileEntity.type == 2) { TileEntity.ByID.Remove(key); } TileEntity.ByPosition.Remove(tileEntity.Position); } TELogicSensor.markedIDsForRemoval.Clear(); }
private void PutBallInCup(Projectile proj, BallCollisionEvent collision) { if (proj.owner == Main.myPlayer && Main.LocalGolfState.ShouldScoreHole) { Point hitLocation = (collision.ImpactPoint - collision.Normal * 0.5f).ToTileCoordinates(); int owner = proj.owner; int num = (int)proj.ai[1]; int type = proj.type; if (num > 1) { Main.LocalGolfState.SetScoreTime(); } Main.LocalGolfState.RecordBallInfo(proj); Main.LocalGolfState.LandBall(proj); int golfBallScore = Main.LocalGolfState.GetGolfBallScore(proj); if (num > 0) { Main.player[owner].AccumulateGolfingScore(golfBallScore); } PutBallInCup_TextAndEffects(hitLocation, owner, num, type); Main.LocalGolfState.ResetScoreTime(); Wiring.HitSwitch(hitLocation.X, hitLocation.Y); NetMessage.SendData(59, -1, -1, null, hitLocation.X, hitLocation.Y); if (Main.netMode == 1) { NetMessage.SendData(128, -1, -1, null, owner, num, type, 0f, hitLocation.X, hitLocation.Y); } } proj.Kill(); }
private void PutBallInCup(Projectile proj, BallCollisionEvent collision) { if (proj.owner == Main.myPlayer && Main.LocalGolfState.ShouldScoreHole) { Point tileCoordinates = (collision.ImpactPoint - collision.Normal * 0.5f).ToTileCoordinates(); int owner = proj.owner; int numberOfHits = (int)proj.ai[1]; int type = proj.type; if (numberOfHits > 1) { Main.LocalGolfState.SetScoreTime(); } Main.LocalGolfState.RecordBallInfo(proj); Main.LocalGolfState.LandBall(proj); int golfBallScore = Main.LocalGolfState.GetGolfBallScore(proj); if (numberOfHits > 0) { Main.player[owner].AccumulateGolfingScore(golfBallScore); } GolfHelper.ContactListener.PutBallInCup_TextAndEffects(tileCoordinates, owner, numberOfHits, type); Main.LocalGolfState.ResetScoreTime(); Wiring.HitSwitch(tileCoordinates.X, tileCoordinates.Y); NetMessage.SendData(59, -1, -1, (NetworkText)null, tileCoordinates.X, (float)tileCoordinates.Y, 0.0f, 0.0f, 0, 0, 0); if (Main.netMode == 1) { NetMessage.SendData(128, -1, -1, (NetworkText)null, owner, (float)numberOfHits, (float)type, 0.0f, tileCoordinates.X, tileCoordinates.Y, 0); } } proj.Kill(); }
private static void PokeLocation(Point location) { if (Main.netMode != 1) { Wiring.blockPlayerTeleportationForOneIteration = true; Wiring.HitSwitch(location.X, location.Y); NetMessage.SendData(59, -1, -1, "", location.X, (float)location.Y, 0f, 0f, 0, 0, 0); } }
private static void PokeLocation(Point location) { if (Main.netMode == 1) { return; } Wiring.blockPlayerTeleportationForOneIteration = true; Wiring.HitSwitch((int)location.X, (int)location.Y); NetMessage.SendData(59, -1, -1, (NetworkText)null, (int)location.X, (float)location.Y, 0.0f, 0.0f, 0, 0, 0); }
public override void Process(int whoAmI, byte[] readBuffer, int length, int num) { int x = (int)ReadInt16(readBuffer); int y = (int)ReadInt16(readBuffer); Wiring.HitSwitch(x, y); if (Main.netMode == 2) { NewNetMessage.SendData(59, -1, whoAmI, String.Empty, x, (float)y, 0f, 0f, 0); return; } return; }
public override bool NewRightClick(int x, int y) { int j = Main.tile[x, y].frameX / 18; j = x - j; int num8 = y - Main.tile[x, y].frameY / 18; Animation.NewTemporaryAnimation(2, Main.tile[x, y].type, j, num8); NetMessage.SendTemporaryAnimation(-1, 2, Main.tile[x, y].type, j, num8); Wiring.HitSwitch(x, y); Use(x, y); NetMessage.SendData(59, -1, -1, null, x, y); return(true); }
public static void Kill(int x, int y) { TileEntity tileEntity; if (!TileEntity.ByPosition.TryGetValue(new Point16(x, y), out tileEntity) || (int)tileEntity.type != (int)TELogicSensor._myEntityID) { return; } Wiring.blockPlayerTeleportationForOneIteration = ((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.PlayerAbove; bool flag = false; if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.PlayerAbove && ((TELogicSensor)tileEntity).On) { flag = true; } else if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Water && ((TELogicSensor)tileEntity).On) { flag = true; } else if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Lava && ((TELogicSensor)tileEntity).On) { flag = true; } else if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Honey && ((TELogicSensor)tileEntity).On) { flag = true; } else if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Liquid && ((TELogicSensor)tileEntity).On) { flag = true; } if (flag) { Wiring.HitSwitch((int)tileEntity.Position.X, (int)tileEntity.Position.Y); NetMessage.SendData(59, -1, -1, (NetworkText)null, (int)tileEntity.Position.X, (float)tileEntity.Position.Y, 0.0f, 0.0f, 0, 0, 0); } Wiring.blockPlayerTeleportationForOneIteration = false; if (TELogicSensor.inUpdateLoop) { TELogicSensor.markedIDsForRemoval.Add(tileEntity.ID); } else { TileEntity.ByPosition.Remove(new Point16(x, y)); TileEntity.ByID.Remove(tileEntity.ID); } }
public static void Kill(int x, int y) { TileEntity tileEntity; if (!TileEntity.ByPosition.TryGetValue(new Point16(x, y), out tileEntity) || tileEntity.type != (byte)2) { return; } Wiring.blockPlayerTeleportationForOneIteration = ((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.PlayerAbove; if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.PlayerAbove && ((TELogicSensor)tileEntity).On) { Wiring.HitSwitch((int)tileEntity.Position.X, (int)tileEntity.Position.Y); } if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Water && ((TELogicSensor)tileEntity).On) { Wiring.HitSwitch((int)tileEntity.Position.X, (int)tileEntity.Position.Y); } if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Lava && ((TELogicSensor)tileEntity).On) { Wiring.HitSwitch((int)tileEntity.Position.X, (int)tileEntity.Position.Y); } if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Honey && ((TELogicSensor)tileEntity).On) { Wiring.HitSwitch((int)tileEntity.Position.X, (int)tileEntity.Position.Y); } if (((TELogicSensor)tileEntity).logicCheck == TELogicSensor.LogicCheckType.Liquid && ((TELogicSensor)tileEntity).On) { Wiring.HitSwitch((int)tileEntity.Position.X, (int)tileEntity.Position.Y); } Wiring.blockPlayerTeleportationForOneIteration = false; if (TELogicSensor.inUpdateLoop) { TELogicSensor.markedIDsForRemoval.Add(tileEntity.ID); } else { TileEntity.ByPosition.Remove(new Point16(x, y)); TileEntity.ByID.Remove(tileEntity.ID); } }
public static void Kill(int x, int y) { if (TileEntity.ByPosition.TryGetValue(new Point16(x, y), out var value) && value.type == _myEntityID) { Wiring.blockPlayerTeleportationForOneIteration = ((TELogicSensor)value).logicCheck == LogicCheckType.PlayerAbove; bool flag = false; if (((TELogicSensor)value).logicCheck == LogicCheckType.PlayerAbove && ((TELogicSensor)value).On) { flag = true; } else if (((TELogicSensor)value).logicCheck == LogicCheckType.Water && ((TELogicSensor)value).On) { flag = true; } else if (((TELogicSensor)value).logicCheck == LogicCheckType.Lava && ((TELogicSensor)value).On) { flag = true; } else if (((TELogicSensor)value).logicCheck == LogicCheckType.Honey && ((TELogicSensor)value).On) { flag = true; } else if (((TELogicSensor)value).logicCheck == LogicCheckType.Liquid && ((TELogicSensor)value).On) { flag = true; } if (flag) { Wiring.HitSwitch(value.Position.X, value.Position.Y); NetMessage.SendData(59, -1, -1, null, value.Position.X, value.Position.Y); } Wiring.blockPlayerTeleportationForOneIteration = false; if (inUpdateLoop) { markedIDsForRemoval.Add(value.ID); return; } TileEntity.ByPosition.Remove(new Point16(x, y)); TileEntity.ByID.Remove(value.ID); } }
private static void UpdateEndInternal() { TELogicSensor.inUpdateLoop = false; foreach (Tuple <Point16, bool> tripPoint in TELogicSensor.tripPoints) { Wiring.blockPlayerTeleportationForOneIteration = tripPoint.Item2; Wiring.HitSwitch((int)tripPoint.Item1.X, (int)tripPoint.Item1.Y); } Wiring.blockPlayerTeleportationForOneIteration = false; TELogicSensor.tripPoints.Clear(); foreach (int key in TELogicSensor.markedIDsForRemoval) { TileEntity tileEntity; if (TileEntity.ByID.TryGetValue(key, out tileEntity) && (int)tileEntity.type == 2) { TileEntity.ByID.Remove(key); } TileEntity.ByPosition.Remove(tileEntity.Position); } TELogicSensor.markedIDsForRemoval.Clear(); }
public static void PutBallInCup_Actual(Point hitLocation, int plr, int numberOfHits, int projid) { if (numberOfHits != 0) { Wiring.HitSwitch(hitLocation.X, hitLocation.Y); NetMessage.SendData(59, -1, -1, null, hitLocation.X, hitLocation.Y); EmitGolfballExplosion(hitLocation.ToWorldCoordinates(8f, 0f)); string key = "Game.BallBounceResultGolf_Single"; if (numberOfHits != 1) { key = "Game.BallBounceResultGolf_Plural"; } NetworkText networkText = NetworkText.FromKey(key, Main.player[plr].name, NetworkText.FromKey(Lang.GetProjectileName(projid).Key), numberOfHits); if (Main.netMode == 0 || Main.netMode == 1) { Main.NewText(networkText.ToString(), byte.MaxValue, 240, 20); } else if (Main.netMode == 2) { ChatHelper.BroadcastChatMessage(networkText, new Color(255, 240, 20)); } } }
private static void UpdateEndInternal() { inUpdateLoop = false; foreach (Tuple <Point16, bool> tripPoint in tripPoints) { Wiring.blockPlayerTeleportationForOneIteration = tripPoint.Item2; Wiring.HitSwitch(tripPoint.Item1.X, tripPoint.Item1.Y); if (Main.netMode == 2) { NetMessage.SendData(59, -1, -1, null, tripPoint.Item1.X, tripPoint.Item1.Y); } } Wiring.blockPlayerTeleportationForOneIteration = false; tripPoints.Clear(); foreach (int item in markedIDsForRemoval) { if (TileEntity.ByID.TryGetValue(item, out var value) && value.type == _myEntityID) { TileEntity.ByID.Remove(item); } TileEntity.ByPosition.Remove(value.Position); } markedIDsForRemoval.Clear(); }