public override void ReceiveSignal(int stepsTaken, string signal, Connection connection, Item source, Character sender, float power = 0.0f) { if (connection.Name == "velocity_in") { currVelocity = XMLExtensions.ParseToVector2(signal, false); } else { base.ReceiveSignal(stepsTaken, signal, connection, source, sender, power); } }
public override void ReceiveSignal(int stepsTaken, string signal, Connection connection, Item source, Character sender, float power) { switch (connection.Name) { case "position_in": Vector2 receivedPos = XMLExtensions.ParseToVector2(signal, false); Vector2 centerPos = new Vector2(item.WorldRect.X + barrelPos.X, item.WorldRect.Y - barrelPos.Y); Vector2 offset = receivedPos - centerPos; offset.Y = -offset.Y; targetRotation = MathUtils.WrapAngleTwoPi(MathUtils.VectorToAngle(offset)); IsActive = true; break; case "trigger_in": item.Use((float)Timing.Step, sender); break; } }