Fix tile actions (#6958)
This commit is contained in:
@@ -53,13 +53,18 @@ public sealed partial class MappingSystem : EntitySystem
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var actionEvent = new StartPlacementActionEvent();
|
var actionEvent = new StartPlacementActionEvent();
|
||||||
|
ITileDefinition? tileDef = null;
|
||||||
|
|
||||||
if (_placementMan.CurrentPermission != null)
|
if (_placementMan.CurrentPermission != null)
|
||||||
{
|
{
|
||||||
actionEvent.EntityType = _placementMan.CurrentPermission.EntityType;
|
actionEvent.EntityType = _placementMan.CurrentPermission.EntityType;
|
||||||
actionEvent.IsTile = _placementMan.CurrentPermission.IsTile;
|
|
||||||
actionEvent.TileType = _placementMan.CurrentPermission.TileType;
|
|
||||||
actionEvent.PlacementOption = _placementMan.CurrentPermission.PlacementOption;
|
actionEvent.PlacementOption = _placementMan.CurrentPermission.PlacementOption;
|
||||||
|
|
||||||
|
if (_placementMan.CurrentPermission.IsTile)
|
||||||
|
{
|
||||||
|
tileDef = _tileMan[_placementMan.CurrentPermission.TileType];
|
||||||
|
actionEvent.TileId = tileDef.ID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (_placementMan.Eraser)
|
else if (_placementMan.Eraser)
|
||||||
{
|
{
|
||||||
@@ -68,10 +73,8 @@ public sealed partial class MappingSystem : EntitySystem
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (actionEvent.IsTile)
|
if (tileDef != null)
|
||||||
{
|
{
|
||||||
var tileDef = _tileMan[actionEvent.TileType];
|
|
||||||
|
|
||||||
if (tileDef is not ContentTileDefinition contentTileDef)
|
if (tileDef is not ContentTileDefinition contentTileDef)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -125,8 +128,8 @@ public sealed partial class MappingSystem : EntitySystem
|
|||||||
_placementMan.BeginPlacing(new()
|
_placementMan.BeginPlacing(new()
|
||||||
{
|
{
|
||||||
EntityType = args.EntityType,
|
EntityType = args.EntityType,
|
||||||
IsTile = args.IsTile,
|
IsTile = args.TileId != null,
|
||||||
TileType = args.TileType,
|
TileType = args.TileId != null ? _tileMan[args.TileId].TileId : (ushort) 0,
|
||||||
PlacementOption = args.PlacementOption,
|
PlacementOption = args.PlacementOption,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -140,11 +143,8 @@ public sealed class StartPlacementActionEvent : PerformActionEvent
|
|||||||
[DataField("entityType")]
|
[DataField("entityType")]
|
||||||
public string? EntityType;
|
public string? EntityType;
|
||||||
|
|
||||||
[DataField("isTile")]
|
[DataField("tileId")]
|
||||||
public bool IsTile;
|
public string? TileId;
|
||||||
|
|
||||||
[DataField("tileType")]
|
|
||||||
public ushort TileType;
|
|
||||||
|
|
||||||
[DataField("placementOption")]
|
[DataField("placementOption")]
|
||||||
public string? PlacementOption;
|
public string? PlacementOption;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user