A continuación se muestra una lista alfabética de métodos que se pueden invocar sobre instancias de la clase Item
, para servir como referencia.
Nota para quien mire el código fuente de AGE: si bien la clase Item
tiene en realidad más métodos, los métodos que no se listen aquí deben considerarse métodos internos de AGE que no están pensados para que los llame el creador de aventuras. Esto quiere decir que no se deben usar, puesto que potencialmente podrían cambiar en versiones posteriores de AGE, ser eliminados, cambiar de nombre, etc. y por lo tanto los mundos que los utilicen podrían dejar de funcionar. Sólo se garantiza la compatibilidad hacia adelante de los métodos que aparecen descritos en la documentación.
public boolean addItem ( Item nuevo ) throws WeightLimitExceededException, VolumeLimitExceededException
Añade la cosa dada (nuevo
) al contenido de esta cosa, si es un contenedor. Devuelve true
si se ha añadido con éxito, y false
de lo contrario (si esta cosa no es un contenedor, o bien lo que le queremos añadir ya estaba dentro anteriormente).
public boolean contains ( Item it )
Comprueba si esta cosa es un contenedor y tiene la cosa it
dentro, devolviendo true
en ese caso, y false
de lo contrario.
public Mobile createNewInstance( boolean cloneInventory , boolean cloneParts , String uniqueName )
Crea un nuevo Item
que es copia de éste, lo añade al mundo y lo devuelve.
El parámetro cloneInventory
será true
si se quiere que se copien también los objetos del inventario (objetos contenidos) y false
de lo contrario (en cuyo caso, la nueva cosa no tendrá nada dentro).
El parámetro cloneParts
es análogo a cloneInventory
; pero para las partes de la cosa.
El parámetro uniqueName
indica el nombre único que tendrá la nueva copia de la criatura.
(este formato del método está disponible desde AGE 1.2.4).
public String getBestReferenceName ( boolean plural )
Devuelve el nombre de referencia más específico (el de mayor prioridad) con el cual nos podemos referir a esta cosa, en singular (si plural
es false
) o plural (si plural
es true
).
public Inventory getInventory ( )
Devuelve un objeto de la clase Inventory con el contenido de esta cosa, si es un contenedor, o bien null
si la cosa no es un contenedor. Dicho inventario se debe utilizar sólo para lectura, y no modificar su contenido, lo cual podría provocar errores o comportamientos no deseados. Para modificar el contenido de un contenedor, se deben utilizar los métodos que se invocan directamente sobre el mismo como addItem()
, removeItem()
; o bien el método de cosa moveTo()
, por las razones detalladas en la sección sobre inventarios.
public String getDescription ( Entity viewer )
Devuelve la descripción de esta cosa para la entidad viewer
. Dicha entidad puede ser referenciada en las condiciones de las descripciones, mediante el identificador viewer
, que sirve para parametrizarlas para diferentes criaturas observadoras. Es posible pasar como parámetro null
si se quiere una descripción genérica; pero esto sólo funcionará si las condiciones de descripción de la entidad no utilizan la variable especial viewer
(o están preparadas para el caso de que viewer
sea null
).
public Spell getExtraDescription ( String name , Entity viewer )
Devuelve la descripción de componente para el componente de esta cosa llamado name
, para que la vea la entidad observadora viewer
. El funcionamiento del parámetro viewer
es igual que en el método getDescription()
.
public List getExtraDescriptionNames ( )
Devuelve una lista con todos los nombres descriptibles de componente de esta cosa. Cada llamada a este método construye internamente la lista para devolverla, así que para una programación eficiente debería evitarse llamarlo muchas veces seguidas si se sabe que el resultado no va a cambiar.
public Inventory getFlattenedInventory ( )
Devuelve un objeto de la clase Inventory
que contiene tanto el contenido de esta cosa (si es un contenedor) como el contenido del contenido, el contenido del contenido del contenido, etc. El método construye internamente dicha lista en cada llamada, así que para una programación eficiente debería evitarse llamarlo muchas veces seguidas si se sabe que el resultado no va a cambiar.
public Inventory getFlattenedPartsInventory ( )
Devuelve un objeto de la clase Inventory
que contiene tanto las partes de esta cosa como las partes de las partes, las partes de las partes de las partes, etc. El método construye internamente dicha lista en cada llamada, así que para una programación eficiente debería evitarse llamarlo muchas veces seguidas si se sabe que el resultado no va a cambiar.
public boolean getGender ( )
Devuelve el género de esta cosa: true
si es masculina, false
si es femenina.
public Entity getLocation ( )
Devuelve una habitación o contenedor en el que se encuentra actualmente esta cosa. Nótese que una cosa puede estar en varios lugares a la vez, en cuyo caso este método sólo devolvería uno (cualquiera).
public EntityList getLocations()
Devuelve una lista de los lugares donde se encuentra esta cosa. Cada uno de ellos puede ser una habitación o bien otro Item
que sea un contenedor.
public String getOutputName ( int nItems , Entity viewer , String mascArt , String femArt , boolean evenIfInvisible , boolean numberToWord )
Método avanzado para obtener un nombre para mostrar de esta cosa con un artículo o cuantificador (por ejemplo, “el helado”, “un helado” o “cuatro helados”). Normalmente no debería ser necesario usar este método; sino que debería ser suficiente con utilizar las variantes más sencillas como getOutputNameThe()
, getOutputNameA()
o getOutputNameOnly()
. Este método podrá ser útil cuando se quieran hacer cosas atípicas con el nombre, como prefijarlo con artículos que no sean los estándar. Los parámetros son:
nItems
: número de cosas para las que se quiere obtener el nombre (para generar “un helado” o “cuatro helados”, por ejemplo).viewer
: criatura que verá la descripción.mascArt
: artículo masculino a prefijar si la cosa es masculina, por ejemplo “el” o “un”.femArt
: artículo femenino a prefijar si la cosa es femenina, por ejemplo “la” o “una”.evenIfInvisible
: si se pone a true
, el método devolverá un nombre incluso si la cosa no tiene un nombre para mostrar, recurriendo al nombre único. Esta posibilidad rompe la regla general de que el nombre único es para uso exclusivo del programador y no se muestra en pantalla, así que no se recomienda usarla.numberToWord
: si se pone a true
, los números se devolverán en formato palabra cuando haya más de una cosa (por ejemplo, “cuatro helados”). Si se pone a false
, se devolverán en formato numérico (“4 helados”).
public String getOutputNameA ( )
Devuelve el nombre para mostrar de esta cosa prefijado con un artículo indeterminado (“un helado”, “una hamburguesa”), sin personalizarlo para un observador en particular. No se puede utilizar esta variante del método si en las condiciones de los nombres para mostrar se ha utilizado la variable que representa al observador (viewer
).
public String getOutputNameA ( Entity viewer )
Devuelve el nombre para mostrar de esta cosa prefijado con un artículo indeterminado (“un helado”, “una hamburguesa”), personalizado para el observador viewer
.
public String getOutputNameA ( int n )
Devuelve el nombre para mostrar de n
cosas como ésta, prefijado con un artículo indeterminado (“un helado”, “una hamburguesa”) si n
=1, o con un cuantificador (“cuatro helados”, “tres hamburguesas”) si n
>1, y sin personalizarlo para un observador en particular. No se puede utilizar esta variante del método si en las condiciones de los nombres para mostrar se ha utilizado la variable que representa al observador (viewer
).
public String getOutputNameA ( int n , Entity viewer )
Devuelve el nombre para mostrar de n
cosas como ésta, prefijado con un artículo indeterminado (“un helado”, “una hamburguesa”) si n
=1, o con un cuantificador (“cuatro helados”, “tres hamburguesas”) si n
>1, personalizado para el observador viewer
.
public String getOutputNameOnly ( )
Devuelve el nombre para mostrar de esta cosa (“helado”, “hamburguesa”), sin personalizarlo para un observador en particular. No se puede utilizar esta variante del método si en las condiciones de los nombres para mostrar se ha utilizado la variable que representa al observador (viewer
).
public String getOutputNameOnly ( Entity viewer )
Devuelve el nombre para mostrar de esta cosa, personalizado para el observador viewer
.
public String getOutputNameOnly ( int n )
Devuelve el nombre para mostrar de n
cosas como ésta, en singular (“helado”, “hamburguesa”) si n
=1, o en plural (“helados”, “hamburguesas”) si n
>1, y sin personalizarlo para un observador en particular. No se puede utilizar esta variante del método si en las condiciones de los nombres para mostrar se ha utilizado la variable que representa al observador (viewer
).
public String getOutputNameOnly ( int n , Entity viewer )
Devuelve el nombre para mostrar de n
cosas como ésta, en singular (“helado”, “hamburguesa”) si n
=1, o en plural (“helados”, “hamburguesas”) si n
>1, personalizado para el observador viewer
.
public String getOutputNameThe ( )
Devuelve el nombre para mostrar de esta cosa prefijado con un artículo determinado (“el helado”, “la hamburguesa”), sin personalizarlo para un observador en particular. No se puede utilizar esta variante del método si en las condiciones de los nombres para mostrar se ha utilizado la variable que representa al observador (viewer
).
public String getOutputNameThe ( Entity viewer )
Devuelve el nombre para mostrar de esta cosa prefijado con un artículo determinado (“el helado”, “la hamburguesa”), personalizado para el observador viewer
.
public String getOutputNameThe ( int n )
Devuelve el nombre para mostrar de n
cosas como ésta, prefijado con un artículo determinado (“el helado”, “la hamburguesa”) si n
=1, o con un cuantificador (“cuatro helados”, “tres hamburguesas”) si n
>1, y sin personalizarlo para un observador en particular. No se puede utilizar esta variante del método si en las condiciones de los nombres para mostrar se ha utilizado la variable que representa al observador (viewer
).
public String getOutputNameThe ( int n , Entity viewer )
Devuelve el nombre para mostrar de n
cosas como ésta, prefijado con un artículo determinado (“el helado”, “la hamburguesa”) si n
=1, o con un cuantificador (“cuatro helados”, “tres hamburguesas”) si n
>1, personalizado para el observador viewer
.
public Inventory getParts ( )
Devuelve un objeto de la clase Inventory
que contiene las partes de esta cosa. No contiene las partes de las partes. El inventario resultante se puede modificar para añadir o quitar partes a la cosa dinámicamente.
public List getPluralReferenceNames ( )
Devuelve una lista de los nombres de referencia plurales de esta cosa, en orden de prioridad, del más prioritario al menos prioritario.
public List getSingularReferenceNames ( )
Devuelve una lista de los nombres de referencia en singular de esta criatura, en orden de prioridad, del más prioritario al menos prioritario.
public int getTotalWeight ( )
Devuelve el peso conjunto de esta cosa y todo su contenido (si se trata de un contenedor).
public String getUniqueName ( )
Devuelve el nombre único de esta cosa, que el programador puede utilizar para identificarla.
public int getVolume ( )
Devuelve el volumen de esta cosa.
public int getWeight ( )
Devuelve el peso de esta cosa.
public boolean isCloseable ( )
Comprueba si esta cosa está marcada como cerrable, es decir, si es posible cerrarla (en general, no necesariamente en el estado actual). Devuelve true
en ese caso, y false
de lo contrario.
public boolean isClosed ( )
Comprueba si esta cosa está cerrada, devolviendo true
en tal caso, y false
de lo contrario. Sólo tiene sentido para cosas cerrables, devolviendo un valor indefinido para las que no lo sean.
public boolean isContainer ( )
Comprueba si esta cosa es un contenedor, devolviendo true
si lo es y false
de lo contrario.
public boolean isGettable ( )
Comprueba si esta cosa puede potencialmente cogerse (es decir, si no está “fija en el sitio”). Devuelve true
si se puede coger, y false
de lo contrario.
public boolean isIndistinguishableFrom ( Item another , Entity viewer )
Devuelve true
si la cosa another
es indistinguible de ésta para el observador dado (es decir, si se mostrará en conjunto, como en “dos helados” frente a “un helado grande y un helado pequeño” - esto sucede si ambas cosas tienen el mismo nombre para mostrar para ese observador).
public boolean isInvisible ( Mobile viewer )
Devuelve true
si esta cosa es invisible para el observador dado. Esto sucede si la cosa no tiene nombre para mostrar para ese observador.
public boolean isLockable ( )
Comprueba si esta cosa está marcada como cerrable con llave, es decir, si es posible cerrarla con llave (en general, no necesariamente en el estado actual). Devuelve true
en ese caso, y false
de lo contrario.
public boolean isLocked ( )
Comprueba si esta cosa está cerrada con llave, devolviendo true
en tal caso, y false
de lo contrario. Sólo tiene sentido para cosas cerrables con llave, devolviendo un valor indefinido para las que no lo sean.
public boolean isOpen ( )
Comprueba si esta cosa está abierta, devolviendo true
en tal caso, y false
de lo contrario. Sólo tiene sentido para cosas abribles, devolviendo un valor indefinido para las que no lo sean.
public boolean isOpenable ( )
Comprueba si esta cosa está marcada como abrible, es decir, si es posible abrirla (en general, no necesariamente en el estado actual). Devuelve true
en ese caso, y false
de lo contrario.
public boolean isUnlockable ( )
Comprueba si esta cosa está marcada como abrible con llave, es decir, si es posible abrible con llave (en general, no necesariamente en el estado actual). Devuelve true
en ese caso, y false
de lo contrario.
public boolean isUnlocked ( )
Comprueba si esta cosa está abierta con llave, devolviendo true
en tal caso, y false
de lo contrario. Sólo tiene sentido para cosas abribles con llave, devolviendo un valor indefinido para las que no lo sean.
public boolean isWeapon ( )
Comprueba si esta cosa es un arma, devolviendo true
en tal caso, y false
de lo contrario.
public boolean isWearable ( )
Comprueba si esta cosa es una vestimenta o armadura, devolviendo true
en tal caso, y false
de lo contrario.
public int matchesCommand ( String commandArgs , boolean pluralOrSingular )
Nos dice si los nombres de referencia de la cosa emparejan con una cadena que ha tecleado el usuario (commandArgs
), sean los nombres de referencia singulares (pluralOrSingular
=false
) o los plurales (pluralOrSingular
=true
). Normalmente este método no se debería usar, ya que AGE maneja el análisis de las órdenes del usuario de forma automática. Pensar que es necesario usar este método suele ser señal de que uno está haciendo algo mal o complicándose más de lo que debería. Sin embargo, como podrían existir casos en los que sí que sea necesario para personalizar el análisis de órdenes, este método está disponible recomendándose usarlo sólo cuando sea necesario.
public void moveTo ( Room/Item/Mobile target )
Mueve esta cosa desde donde esté hasta la habitación target
, o adentro del contenedor target
, o al inventario de la criatura target
. El movimiento es directo, es decir, la cosa se quita de todos los lugares donde esté y aparece directamente en el lugar de destino, y no se muestra ningún mensaje ni se activa ningún evento.
public void removeFromInventories ( )
Quita esta cosa de todos los lugares del mundo (habitaciones, inventarios de criaturas, o interior de contenedores) en los que esté, sin ponerla en ningún otro lugar.
public boolean removeItem ( Item it )
Quita la cosa it
del contenido de esta cosa, si es un contenedor. Devuelve true
si se ha quitado con éxito, y false
si no se ha hecho porque la cosa pasada como parámetro no estaba realmente dentro de esta cosa.
public void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , boolean self_included )
Equivalente a llamar al método reportAction
, con los mismos parámetros, sobre la habitación o habitaciones donde está esta cosa. Véase la sección sobre notificación de acciones y sucesos.
public void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , String style , boolean self_included )
Equivalente a llamar al método reportAction
, con los mismos parámetros, sobre la habitación o habitaciones donde está esta cosa. Véase la sección sobre notificación de acciones y sucesos.
public void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , boolean self_included )
Equivalente a llamar al método reportActionAuto
, con los mismos parámetros, sobre la habitación o habitaciones donde está esta cosa. Véase la sección sobre notificación de acciones y sucesos.
public void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String style , boolean self_included )
Equivalente a llamar al método reportActionAuto
, con los mismos parámetros, sobre la habitación o habitaciones donde está esta cosa. Véase la sección sobre notificación de acciones y sucesos.
public void setGettable ( boolean gettable )
Cambia si esta cosa se puede coger o no. Si se pasa true
, a partir de la ejecución del método se podrá coger, mientras que si se pasa false
, se marcará como “fija en el sitio”.
public boolean unlocksWithKey( Item key )
Comprueba si esta cosa se puede abrir con el Item
llave dado key
, devolviendo true
en tal caso, y false
en caso contrario.