fixed auto block breaking

This commit is contained in:
MasterGordon 2022-12-14 17:36:45 +01:00
parent 8edad6846b
commit d299222c09
5 changed files with 31 additions and 22 deletions

View File

@ -66,6 +66,10 @@ public class Breaking
{ {
return; return;
} }
if (packet.Source == BreakSource.Move && player.Mining == Vector2.Zero)
{
return;
}
player.Mining = packet.Target; player.Mining = packet.Target;
} }

View File

@ -48,7 +48,6 @@ public class ItemPhysics
var items = chunk.Value.Entities.Where(e => var items = chunk.Value.Entities.Where(e =>
{ {
Console.WriteLine("Where");
return e is ItemEntity itemEntity && return e is ItemEntity itemEntity &&
(player.Position + new Vector2(7, 3) - itemEntity.Position).LengthSquared() < 8 * 8 && (player.Position + new Vector2(7, 3) - itemEntity.Position).LengthSquared() < 8 * 8 &&
player.Inventory.PickupItemStack(new ItemStack { Id = itemEntity.ItemId, Count = 1 }); player.Inventory.PickupItemStack(new ItemStack { Id = itemEntity.ItemId, Count = 1 });

View File

@ -1,9 +1,16 @@
namespace Mine2d.game.backend.network.packets; namespace Mine2d.game.backend.network.packets;
public enum BreakSource
{
Move,
Click
}
public class BreakPacket : Packet public class BreakPacket : Packet
{ {
public override PacketType Type => PacketType.Break; public override PacketType Type => PacketType.Break;
public Guid PlayerGuid { get; init; } public Guid PlayerGuid { get; init; }
public Vector2 Target { get; init; } public Vector2 Target { get; init; }
public BreakSource Source { get; init; }
} }

View File

@ -22,7 +22,8 @@ public class PlayerBreakInput
ctx.Backend.ProcessPacket(new BreakPacket ctx.Backend.ProcessPacket(new BreakPacket
{ {
PlayerGuid = ctx.FrontendGameState.PlayerGuid, PlayerGuid = ctx.FrontendGameState.PlayerGuid,
Target = amp Target = amp,
Source = BreakSource.Move
}); });
} }
} }
@ -43,7 +44,8 @@ public class PlayerBreakInput
ctx.Backend.ProcessPacket(new BreakPacket ctx.Backend.ProcessPacket(new BreakPacket
{ {
PlayerGuid = ctx.FrontendGameState.PlayerGuid, PlayerGuid = ctx.FrontendGameState.PlayerGuid,
Target = amp Target = amp,
Source = BreakSource.Click
}); });
} }
@ -59,7 +61,8 @@ public class PlayerBreakInput
ctx.Backend.ProcessPacket(new BreakPacket ctx.Backend.ProcessPacket(new BreakPacket
{ {
PlayerGuid = ctx.FrontendGameState.PlayerGuid, PlayerGuid = ctx.FrontendGameState.PlayerGuid,
Target = Vector2.Zero Target = Vector2.Zero,
Source = BreakSource.Click
}); });
} }
} }

View File

@ -15,18 +15,14 @@ public class WorldCursorRenderer : IRenderer
{ {
return; return;
} }
var ts = Constants.TileSize;
if (ctx.GameState.World.HasTileAt((int)absoluteMousePos.X, (int)absoluteMousePos.Y)) var tilePos = new Vector2(absoluteMousePos.X - absoluteMousePos.X % ts, absoluteMousePos.Y - absoluteMousePos.Y % ts);
{ ctx.Renderer.SetColor(255, 255, 255);
var ts = Constants.TileSize; ctx.Renderer.DrawOutline(
var tilePos = new Vector2(absoluteMousePos.X - absoluteMousePos.X % ts, absoluteMousePos.Y - absoluteMousePos.Y % ts); (int)tilePos.X * scale - (int)camera.Position.X * scale,
ctx.Renderer.SetColor(255, 255, 255); (int)tilePos.Y * scale - (int)camera.Position.Y * scale,
ctx.Renderer.DrawOutline( 16 * scale,
(int)tilePos.X * scale - (int)camera.Position.X * scale, 16 * scale
(int)tilePos.Y * scale - (int)camera.Position.Y * scale, );
16 * scale,
16 * scale
);
}
} }
} }