/* * Copyright (C) 2004-2015 L2J Server * * This file is part of L2J Server. * * L2J Server is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * L2J Server is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jserver.gameserver.model.actor.templates; import com.l2jserver.gameserver.model.StatsSet; import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance; import com.l2jserver.gameserver.model.interfaces.IIdentifiable; /** * Doors template. * @author JIV */ public class L2DoorTemplate extends L2CharTemplate implements IIdentifiable { private final int _doorId; private final int _nodeX[]; private final int _nodeY[]; private final int _nodeZ; private final int _height; private final int _posX; private final int _posY; private final int _posZ; private final int _emmiter; private final int _childDoorId; private final String _name; private final String _groupName; private final boolean _showHp; private final boolean _isWall; // -1 close, 0 nothing, 1 open private final byte _masterDoorClose; private final byte _masterDoorOpen; private final boolean _isTargetable; private final boolean _default_status; private int _openTime; private int _randomTime; private final int _closeTime; private final int _level; private final int _openType; private final boolean _checkCollision; private final boolean _isAttackableDoor; private final int _clanhallId; private final boolean _stealth; public L2DoorTemplate(StatsSet set) { super(set); _doorId = set.getInt("id"); _name = set.getString("name"); // position String[] pos = set.getString("pos").split(";"); _posX = Integer.parseInt(pos[0]); _posY = Integer.parseInt(pos[1]); _posZ = Integer.parseInt(pos[2]); _height = set.getInt("height"); _nodeZ = set.getInt("nodeZ"); _nodeX = new int[4]; // 4 * x _nodeY = new int[4]; // 4 * y for (int i = 0; i < 4; i++) { String split[] = set.getString("node" + (i + 1)).split(","); _nodeX[i] = Integer.parseInt(split[0]); _nodeY[i] = Integer.parseInt(split[1]); } // optional _emmiter = set.getInt("emitter_id", 0); _showHp = set.getBoolean("hp_showable", true); _isWall = set.getBoolean("is_wall", false); _groupName = set.getString("group", null); _childDoorId = set.getInt("child_id_event", -1); // true if door is opening String masterevent = set.getString("master_close_event", "act_nothing"); _masterDoorClose = (byte) (masterevent.equals("act_open") ? 1 : masterevent.equals("act_close") ? -1 : 0); masterevent = set.getString("master_open_event", "act_nothing"); _masterDoorOpen = (byte) (masterevent.equals("act_open") ? 1 : masterevent.equals("act_close") ? -1 : 0); _isTargetable = set.getBoolean("targetable", true); _default_status = set.getString("default_status", "close").equals("open"); _closeTime = set.getInt("close_time", -1); _level = set.getInt("level", 0); _openType = set.getInt("open_method", 0); _checkCollision = set.getBoolean("check_collision", true); if ((_openType & L2DoorInstance.OPEN_BY_TIME) == L2DoorInstance.OPEN_BY_TIME) { _openTime = set.getInt("open_time"); _randomTime = set.getInt("random_time", -1); } _isAttackableDoor = set.getBoolean("is_attackable", false); _clanhallId = set.getInt("clanhall_id", 0); _stealth = set.getBoolean("stealth", false); } /** * Gets the door ID. * @return the door ID */ @Override public int getId() { return _doorId; } public String getName() { return _name; } public int[] getNodeX() { return _nodeX; } public int[] getNodeY() { return _nodeY; } public int getNodeZ() { return _nodeZ; } public int getHeight() { return _height; } public int getX() { return _posX; } public int getY() { return _posY; } public int getZ() { return _posZ; } public int getEmmiter() { return _emmiter; } public int getChildDoorId() { return _childDoorId; } public String getGroupName() { return _groupName; } public boolean isShowHp() { return _showHp; } public boolean isWall() { return _isWall; } public byte getMasterDoorOpen() { return _masterDoorOpen; } public byte getMasterDoorClose() { return _masterDoorClose; } public boolean isTargetable() { return _isTargetable; } public boolean isOpenByDefault() { return _default_status; } public int getOpenTime() { return _openTime; } public int getRandomTime() { return _randomTime; } public int getCloseTime() { return _closeTime; } public int getLevel() { return _level; } public int getOpenType() { return _openType; } public boolean isCheckCollision() { return _checkCollision; } public boolean isAttackable() { return _isAttackableDoor; } public int getClanHallId() { return _clanhallId; } public boolean isStealth() { return _stealth; } }