LADXHD/InGame/GameObjects/Things/ObjJumpRaft.cs

40 lines
1.3 KiB
C#
Raw Normal View History

2023-12-14 22:21:22 +00:00
using Microsoft.Xna.Framework;
using ProjectZ.Base;
using ProjectZ.InGame.GameObjects.Base;
using ProjectZ.InGame.GameObjects.Base.CObjects;
using ProjectZ.InGame.GameObjects.Base.Components;
using ProjectZ.InGame.Map;
namespace ProjectZ.InGame.GameObjects.Things
{
internal class ObjJumpRaft : GameObject
{
private readonly RectangleF _collisionRectangle;
private readonly int _offsetY;
public ObjJumpRaft() : base("editor jump")
{
EditorColor = Color.Blue * 0.5f;
}
public ObjJumpRaft(Map.Map map, int posX, int posY, int width, int offsetY) : base(map)
{
EntityPosition = new CPosition(posX, posY, 0);
EntitySize = new Rectangle(0, 0, width, 16);
_collisionRectangle = new RectangleF(posX, posY, width, 16);
_offsetY = offsetY;
AddComponent(UpdateComponent.Index, new UpdateComponent(Update));
}
private void Update()
{
if (_collisionRectangle.Intersects(MapManager.ObjLink.BodyRectangle))
{
var goalPosition = new Vector2(MapManager.ObjLink.EntityPosition.X, EntityPosition.Y + _offsetY);
MapManager.ObjLink.RaftJump(goalPosition);
}
}
}
}