Support for inverted doors.

This commit is contained in:
MobiusDev
2017-02-25 13:35:30 +00:00
parent d6de2740bd
commit 5ecaf41431
8 changed files with 72 additions and 14 deletions

View File

@ -53,6 +53,7 @@ public final class L2DoorInstance extends L2Character
{
private boolean _open = false;
private boolean _isAttackableDoor = false;
private boolean _isInverted = false;
private int _meshindex = 1;
private Future<?> _autoCloseTask;
@ -64,6 +65,7 @@ public final class L2DoorInstance extends L2Character
setLethalable(false);
_open = template.isOpenByDefault();
_isAttackableDoor = template.isAttackable();
_isInverted = template.isInverted();
super.setTargetable(template.isTargetable());
if (isOpenableByTime())
@ -227,6 +229,11 @@ public final class L2DoorInstance extends L2Character
return _isAttackableDoor;
}
public boolean isInverted()
{
return _isInverted;
}
public boolean getIsShowHp()
{
return getTemplate().isShowHp();
@ -367,7 +374,14 @@ public final class L2DoorInstance extends L2Character
OnEventTrigger oe = null;
if (getEmitter() > 0)
{
oe = new OnEventTrigger(getEmitter(), isOpen());
if (isInverted())
{
oe = new OnEventTrigger(getEmitter(), !isOpen());
}
else
{
oe = new OnEventTrigger(getEmitter(), isOpen());
}
}
for (L2PcInstance player : knownPlayers)
@ -583,7 +597,14 @@ public final class L2DoorInstance extends L2Character
{
if (getEmitter() > 0)
{
activeChar.sendPacket(new OnEventTrigger(getEmitter(), isOpen()));
if (isInverted())
{
activeChar.sendPacket(new OnEventTrigger(getEmitter(), !isOpen()));
}
else
{
activeChar.sendPacket(new OnEventTrigger(getEmitter(), isOpen()));
}
}
activeChar.sendPacket(new StaticObject(this, activeChar.isGM()));
}

View File

@ -55,6 +55,7 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable
private final boolean _checkCollision;
private final boolean _isAttackableDoor;
private final boolean _stealth;
private final boolean _isInverted;
public L2DoorTemplate(StatsSet set)
{
@ -105,6 +106,7 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable
}
_isAttackableDoor = set.getBoolean("attackable", false);
_stealth = set.getBoolean("stealth", false);
_isInverted = set.getBoolean("isInverted", false);
}
/**
@ -241,4 +243,9 @@ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable
{
return _stealth;
}
public boolean isInverted()
{
return _isInverted;
}
}