Skip to content

Commit

Permalink
Be a little smarter about our detection of the placed sign
Browse files Browse the repository at this point in the history
When placing a sign against a tile entity (such as a turtle or chest),
we would consider that block the "placed" one instead, meaning the text
was never set. This solution isn't entirely ideal either, but short of
capturing block snapshots I'm not sure of a better solution.

Fixes dan200#552
  • Loading branch information
SquidDev committed Jul 9, 2018
1 parent 914df8b commit d405316
Showing 1 changed file with 4 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ private static ItemStack deployOnBlock( @Nonnull ItemStack stack, ITurtleAccess

// Do the deploying (put everything in the players inventory)
boolean placed = false;

TileEntity existingTile = turtle.getWorld().getTileEntity( position );

// See PlayerInteractionManager.processRightClickBlock
PlayerInteractEvent.RightClickBlock event = ForgeHooks.onRightClickBlock( turtlePlayer, EnumHand.MAIN_HAND, position, side, new Vec3d( hitX, hitY, hitZ ) );
Expand Down Expand Up @@ -409,12 +409,11 @@ else if( actionResult == null )
{
World world = turtle.getWorld();
TileEntity tile = world.getTileEntity( position );
if( tile == null )
if( tile == null || tile == existingTile )
{
BlockPos newPosition = WorldUtil.moveCoords( position, side );
tile = world.getTileEntity( newPosition );
tile = world.getTileEntity( WorldUtil.moveCoords( position, side ) );
}
if( tile != null && tile instanceof TileEntitySign )
if( tile instanceof TileEntitySign )
{
TileEntitySign signTile = (TileEntitySign) tile;
String s = (String)extraArguments[0];
Expand Down

0 comments on commit d405316

Please # to comment.