Merge pull request #1368 from DogooFalchion/fix_trapdoors
Fix for trap doors.
This commit is contained in:
commit
ab9175234b
1 changed files with 13 additions and 10 deletions
|
|
@ -1719,15 +1719,7 @@ namespace TShockAPI
|
||||||
var tileX = args.Data.ReadInt16();
|
var tileX = args.Data.ReadInt16();
|
||||||
var tileY = args.Data.ReadInt16();
|
var tileY = args.Data.ReadInt16();
|
||||||
|
|
||||||
bool isTrapdoor = false;
|
if (args.Player.HasPermission(Permissions.allowclientsideworldedit))
|
||||||
|
|
||||||
if (Main.tile[tileX, tileY].type == TileID.TrapdoorClosed
|
|
||||||
|| Main.tile[tileX, tileY].type == TileID.TrapdoorOpen)
|
|
||||||
{
|
|
||||||
isTrapdoor = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.Player.HasPermission(Permissions.allowclientsideworldedit) && !isTrapdoor)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (OnSendTileSquare(size, tileX, tileY))
|
if (OnSendTileSquare(size, tileX, tileY))
|
||||||
|
|
@ -1826,7 +1818,7 @@ namespace TShockAPI
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tile.active() && newtile.Active)
|
if (tile.active() && newtile.Active && tile.type != newtile.Type)
|
||||||
{
|
{
|
||||||
// Grass <-> Grass
|
// Grass <-> Grass
|
||||||
if ((TileID.Sets.Conversion.Grass[tile.type] && TileID.Sets.Conversion.Grass[newtile.Type]) ||
|
if ((TileID.Sets.Conversion.Grass[tile.type] && TileID.Sets.Conversion.Grass[newtile.Type]) ||
|
||||||
|
|
@ -1859,6 +1851,17 @@ namespace TShockAPI
|
||||||
Main.tile[realx, realy].wall = newtile.Wall;
|
Main.tile[realx, realy].wall = newtile.Wall;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((tile.type == TileID.TrapdoorClosed && (newtile.Type == TileID.TrapdoorOpen || !newtile.Active)) ||
|
||||||
|
(tile.type == TileID.TrapdoorOpen && (newtile.Type == TileID.TrapdoorClosed || !newtile.Active)) ||
|
||||||
|
(!tile.active() && newtile.Active && (newtile.Type == TileID.TrapdoorOpen||newtile.Type == TileID.TrapdoorClosed)))
|
||||||
|
{
|
||||||
|
Main.tile[realx, realy].type = newtile.Type;
|
||||||
|
Main.tile[realx, realy].frameX = newtile.FrameX;
|
||||||
|
Main.tile[realx, realy].frameY = newtile.FrameY;
|
||||||
|
Main.tile[realx, realy].active(newtile.Active);
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue