com.planet_ink.coffee_mud.Items.Basic
Class StdContainer

java.lang.Object
  extended by com.planet_ink.coffee_mud.Items.Basic.StdItem
      extended by com.planet_ink.coffee_mud.Items.Basic.StdContainer
All Implemented Interfaces:
Affectable, Behavable, CloseableLockable, CMObject, Contingent, DBIdentifiable, Environmental, Modifiable, MsgListener, Physical, PhysicalAgent, Readable, Rider, StatsAffecting, Tickable, Container, Item, Wearable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
CloseableContainer, GenContainer, LargeSack, LockableContainer, SmallSack, StdArmor, StdCage, StdClanContainer, StdDrink, StdElecContainer, StdHandOfCards, StdPortal, StdRideable, StdSmokable

public class StdContainer
extends StdItem
implements Container


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
Wearable.CODES
 
Field Summary
protected  int capacity
           
protected  long containType
           
protected  boolean defaultsClosed
           
protected  boolean defaultsLocked
           
protected  boolean hasALid
           
protected  boolean hasALock
           
protected  boolean isLocked
           
protected  boolean isOpen
           
protected  int openDelayTicks
           
 
Fields inherited from class com.planet_ink.coffee_mud.Items.Basic.StdItem
affectPhyStats, affects, baseGoldValue, basePhyStats, behaviors, cachedImageName, CODES, databaseID, description, destroyed, displayText, dispossessionTime, material, me, miscText, myContainer, myUses, myWornCode, name, owner, phyStats, properWornBitmap, rawImageName, riding, scripts, secretIdentity, tickCtr, tickStatus, wornLogicalAnd, xtraValues
 
Fields inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Container
CONTAIN_ANYTHING, CONTAIN_BODIES, CONTAIN_CAGED, CONTAIN_CLOTHES, CONTAIN_COINS, CONTAIN_DAGGERS, CONTAIN_DESCS, CONTAIN_DRINKABLES, CONTAIN_EATABLES, CONTAIN_FOOTWEAR, CONTAIN_KEYS, CONTAIN_LIQUID, CONTAIN_ONEHANDWEAPONS, CONTAIN_OTHERWEAPONS, CONTAIN_RAWMATERIALS, CONTAIN_READABLES, CONTAIN_SCROLLS, CONTAIN_SMOKEABLES, CONTAIN_SSCOMPONENTS, CONTAIN_SWORDS
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
STATUS_AFFECT, STATUS_ALIVE, STATUS_BEHAVIOR, STATUS_CLASS, STATUS_DEAD, STATUS_END, STATUS_FIGHT, STATUS_MISC, STATUS_MISC2, STATUS_MISC3, STATUS_MISC4, STATUS_MISC5, STATUS_MISC6, STATUS_MISC7, STATUS_NOT, STATUS_OTHER, STATUS_RACE, STATUS_REBIRTH, STATUS_SCRIPT, STATUS_START, STATUS_WEATHER, TICKID_AREA, TICKID_BEAMWEAPON, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_ELECTRONICS, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MISCELLANEOUS, TICKID_MOB, TICKID_PROPERTY_SPECIAL, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SOLITARYMASK, TICKID_SPECIALCOMBAT, TICKID_SPECIALMANEUVER, TICKID_SPELL_AFFECT, TICKID_SUPPORT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET
 
Fields inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
DEFAULT_WORN_CODES, DEFAULT_WORN_DEPENDENCYGRID, DEFAULT_WORN_DESCS, DEFAULT_WORN_ORDER, DEFAULT_WORN_USUAL_NAMES, DEFAULT_WORN_WEIGHT_POINTS, DEFAULT_WORN_WEIGHTS, FILTER_ANY, FILTER_MOBINVONLY, FILTER_ROOMONLY, FILTER_UNWORNONLY, FILTER_WORNONLY, HIGHEST_WORN_CODE, IN_INVENTORY, WORN_ABOUT_BODY, WORN_ARMS, WORN_BACK, WORN_EARS, WORN_EYES, WORN_FEET, WORN_FLOATING_NEARBY, WORN_HANDS, WORN_HEAD, WORN_HELD, WORN_LEFT_FINGER, WORN_LEFT_WRIST, WORN_LEGS, WORN_MOUTH, WORN_NECK, WORN_RIGHT_FINGER, WORN_RIGHT_WRIST, WORN_TORSO, WORN_WAIST, WORN_WIELD
 
Constructor Summary
StdContainer()
           
 
Method Summary
 boolean canContain(Item I)
          Returns whether this container is allowed to contain the given object.
 int capacity()
          Returns the maximum weight that can fit inside this container.
 long containTypes()
          Returns a bitmap of the types of things that this container can hold.
 boolean defaultsClosed()
          For exits with a door, this returns whether this defaults in a closed state.
 boolean defaultsLocked()
          For exits with a door and lock, this returns whether this defaults in a closed and locked state.
 void emptyPlease(boolean flatten)
          Empties this container into its owner.
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
 ReadOnlyList<Item> getContents()
          Returns all the immediate items in this container, including other containers, but not the contents of those innner containers.
 ReadOnlyList<Item> getDeepContents()
          Returns all the items in this container, including other containers and THEIR contents, recursively.
 boolean hasADoor()
          Returns whether this has a door, and must be opened before being used.
 boolean hasALock()
          Returns whether this has a lock on it, and, if locked, must be unlocked before being used.
 boolean hasContent()
          Returns whether there is anything at all in this container.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 boolean isInside(Item I)
          Returns whether the given item is, in fact, inside this container, even recursively.
 boolean isLocked()
          Returns whether this is LOCKED, and must be unlocked before being used.
 boolean isOpen()
          Returns whether this is OPEN and may be accessed or travelled through
 java.lang.String keyName()
          For things with doors and locks, this returns the unique string representing the key code required to unlock/lock it.
 int numberOfItems()
          How many items this Item object represents.
 boolean okMessage(Environmental myHost, CMMsg msg)
          The general message event previewer for the object.
 int openDelayTicks()
          Returns the number of ticks that this remains open when a mob or player changes it from a closed to an open state, and this thing defaults in a closed state.
 int recursiveWeight()
          For a normal item, this method returns the same as phyStats().weight().
 void setCapacity(int newValue)
          Sets the maximum weight that can fit inside this container.
 void setContainTypes(long containTypes)
          Sets a bitmap of the types of things that this container can hold.
 void setDoorsNLocks(boolean newHasALid, boolean newIsOpen, boolean newDefaultsClosed, boolean newHasALock, boolean newIsLocked, boolean newDefaultsLocked)
          Modifies the various door/lock settings for this thing.
 void setKeyName(java.lang.String newKeyName)
          For things with doors and locks, this sets the unique string representing the key code required to unlock/lock it.
 void setMiscText(java.lang.String newMiscText)
          For objects which have false for their isGeneric method, this is used to set any internally coded strings to change the nature or behavior of the object.
 void setOpenDelayTicks(int ticksToReset)
          Sets the number of ticks that this will remain open when a mob or player changes it from a closed to an open state, and this thing defaults in a closed state.
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
 
Methods inherited from class com.planet_ink.coffee_mud.Items.Basic.StdItem
abilityImbuesMagic, addBehavior, addEffect, addNonUninvokableEffect, addScript, affectCharState, affectCharStats, affectPhyStats, alreadyWornMsg, amBeingWornProperly, amDestroyed, amWearingAt, baseGoldValue, basePhyStats, behaviors, canSaveDatabaseID, canWear, canWearComplete, cloneFix, compareProperLocations, compareTo, container, copyOf, databaseID, delAllBehaviors, delAllEffects, delAllScripts, delBehavior, delEffect, delScript, description, description, destroy, displayText, displayText, eachBehavior, eachEffect, eachScript, effects, expirationDate, fetchBehavior, fetchBehavior, fetchEffect, fetchEffect, fetchScript, fitsOn, getCodeNum, getSaveStatIndex, getStat, getStatCodes, getTickStatus, I, image, initializeClass, isGeneric, isReadable, isSavable, isStat, L, material, maxRange, minRange, miscTextFormat, name, Name, name, newInstance, numBehaviors, numEffects, numScripts, owner, phyStats, rawImage, rawLogicalAnd, rawProperLocationBitmap, rawSecretIdentity, rawWornCode, readableText, recoverPhyStats, removeFromOwnerContainer, riding, sameAs, scripts, secretIdentity, setBasePhyStats, setBaseValue, setContainer, setDatabaseID, setDescription, setDisplayText, setExpirationDate, setImage, setMaterial, setName, setOwner, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, setReadable, setReadableText, setRiding, setSavable, setSecretIdentity, setStat, setUsesRemaining, stopTicking, subjectToWearAndTear, tackOns, text, ultimateContainer, unWear, usesRemaining, value, wearAt, wearEvenIfImpossible, wearIfPossible, wearIfPossible, whereCantWear
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Item
baseGoldValue, container, material, owner, rawSecretIdentity, removeFromOwnerContainer, secretIdentity, setBaseValue, setContainer, setMaterial, setOwner, setSecretIdentity, setUsesRemaining, stopTicking, subjectToWearAndTear, ultimateContainer, usesRemaining, value
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Rider
riding, setRiding
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Physical
description, displayText, name
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Environmental
description, displayText, expirationDate, image, isGeneric, L, maxRange, minRange, miscTextFormat, Name, rawImage, sameAs, setDescription, setDisplayText, setExpirationDate, setImage, setName, text
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
getTickStatus, name
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.StatsAffecting
affectCharState, affectCharStats, affectPhyStats
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Contingent
amDestroyed, destroy, isSavable, setSavable
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.CMObject
copyOf, initializeClass, newInstance
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Modifiable
getSaveStatIndex, getStat, getStatCodes, isStat, setStat
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Affectable
addEffect, addNonUninvokableEffect, basePhyStats, delAllEffects, delEffect, eachEffect, effects, fetchEffect, fetchEffect, numEffects, phyStats, recoverPhyStats, setBasePhyStats
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Behavable
addBehavior, addScript, behaviors, delAllBehaviors, delAllScripts, delBehavior, delScript, eachBehavior, eachScript, fetchBehavior, fetchBehavior, fetchScript, numBehaviors, numScripts, scripts
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.DBIdentifiable
canSaveDatabaseID, databaseID, setDatabaseID
 
Methods inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
amBeingWornProperly, amWearingAt, canWear, compareProperLocations, fitsOn, rawLogicalAnd, rawProperLocationBitmap, rawWornCode, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, unWear, wearAt, wearEvenIfImpossible, wearIfPossible, wearIfPossible, whereCantWear
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Readable
isReadable, readableText, setReadable, setReadableText
 

Field Detail

isLocked

protected boolean isLocked

hasALock

protected boolean hasALock

isOpen

protected boolean isOpen

hasALid

protected boolean hasALid

defaultsClosed

protected boolean defaultsClosed

defaultsLocked

protected boolean defaultsLocked

capacity

protected int capacity

containType

protected long containType

openDelayTicks

protected int openDelayTicks
Constructor Detail

StdContainer

public StdContainer()
Method Detail

ID

public java.lang.String ID()
Description copied from interface: CMObject
The CoffeeMud Java Class ID shared by all instances of this object. Unlike the Java Class name, this method does not include package information. However, it must return a String value unique to its class category in the ClassLoader. Class categories include Libraries, Common, Areas, Abilities, Behaviors, CharClasses, Commands, Exits Locales, MOBS, Races, WebMacros, Basic Items, Armor, Weapons, ClanItems, Tech. The name is typically identical to the class name.

Specified by:
ID in interface CMObject
Overrides:
ID in class StdItem
Returns:
the name of this class

capacity

public int capacity()
Description copied from interface: Container
Returns the maximum weight that can fit inside this container. Weight is used as a proxy for volume in CoffeeMud.

Specified by:
capacity in interface Container
Returns:
the maximum weight that can fit inside this container
See Also:
Container.setCapacity(int)

setCapacity

public void setCapacity(int newValue)
Description copied from interface: Container
Sets the maximum weight that can fit inside this container. Weight is used as a proxy for volume in CoffeeMud.

Specified by:
setCapacity in interface Container
Parameters:
newValue - the maximum weight that can fit inside this container
See Also:
Container.capacity()

openDelayTicks

public int openDelayTicks()
Description copied from interface: CloseableLockable
Returns the number of ticks that this remains open when a mob or player changes it from a closed to an open state, and this thing defaults in a closed state.

Specified by:
openDelayTicks in interface CloseableLockable
Returns:
the number of ticks this remains open
See Also:
CloseableLockable.setOpenDelayTicks(int), Tickable.TICKID_EXIT_REOPEN

setOpenDelayTicks

public void setOpenDelayTicks(int ticksToReset)
Description copied from interface: CloseableLockable
Sets the number of ticks that this will remain open when a mob or player changes it from a closed to an open state, and this thing defaults in a closed state.

Specified by:
setOpenDelayTicks in interface CloseableLockable
Parameters:
ticksToReset - the number of ticks this will remain open
See Also:
CloseableLockable.openDelayTicks(), Tickable.TICKID_EXIT_REOPEN

okMessage

public boolean okMessage(Environmental myHost,
                         CMMsg msg)
Description copied from interface: MsgListener
The general message event previewer for the object. Messages passed herein are in a pending state, and may be safely modified or rejected without fear that they might be in the middle of being executed. Messages passed herein may not necessarily be FOR or FROM this object, but will almost always represent events which want to happen in the same rom. This method should always always return true UNLESS this message needs to be canceled, in which case it is necessary to tell the mob initiating the event (CMMsg.source()) why it is being cancelled. Every game event goes through these methods.

Specified by:
okMessage in interface MsgListener
Overrides:
okMessage in class StdItem
Parameters:
myHost - either the initiator of the event, or the host of this object
msg - the CMMsg that wants to be executed
Returns:
whether this message is allowed to execute
See Also:
CMMsg, CMMsg.source()

tick

public boolean tick(Tickable ticking,
                    int tickID)
Description copied from interface: Tickable
this is the method which is called periodically by the threading engine. How often it is called depends on the parameters passed to the threadding engine when it is submitted for thread access. Typically the period is once per TIME_TICK period, but that is determined when the object is submitted to the thread engine.

Specified by:
tick in interface Tickable
Overrides:
tick in class StdItem
Parameters:
ticking - a reference to this Tickable object
tickID - the TICKID_ constant describing this periodic call, as defined in Tickable
Returns:
true always, unless this object no longer wishes to ever tick again, in which case false
See Also:
Tickable, ServiceEngine, TickableGroup

executeMsg

public void executeMsg(Environmental myHost,
                       CMMsg msg)
Description copied from interface: MsgListener
The general message event handler for the object. Messages passed herein may not necessarily be FOR this object, or from it, but will almost always represent events happening in the same room. The messages have already been through an approval process, so this method is called only to affect the final execution of the meaning of the message. Every game event goes through these methods.

Specified by:
executeMsg in interface MsgListener
Overrides:
executeMsg in class StdItem
Parameters:
myHost - either the initiator of the event, or the host of this object
msg - the CMMsg that needs to be executed
See Also:
CMMsg

containTypes

public long containTypes()
Description copied from interface: Container
Returns a bitmap of the types of things that this container can hold.

Specified by:
containTypes in interface Container
Returns:
a bitmap of the types of things that this container can hold
See Also:
Container.setContainTypes(long), Container.CONTAIN_ANYTHING, Container.CONTAIN_DESCS

setContainTypes

public void setContainTypes(long containTypes)
Description copied from interface: Container
Sets a bitmap of the types of things that this container can hold.

Specified by:
setContainTypes in interface Container
Parameters:
containTypes - a bitmap of the types of things that this container can hold.
See Also:
Container.containTypes(), Container.CONTAIN_ANYTHING, Container.CONTAIN_DESCS

canContain

public boolean canContain(Item I)
Description copied from interface: Container
Returns whether this container is allowed to contain the given object.

Specified by:
canContain in interface Container
Parameters:
I - the item to check against the allowed content
Returns:
true if the given item can go in this container, false otherwise
See Also:
Container.setContainTypes(long), Container.containTypes()

isLocked

public boolean isLocked()
Description copied from interface: CloseableLockable
Returns whether this is LOCKED, and must be unlocked before being used.

Specified by:
isLocked in interface CloseableLockable
Returns:
true if locked, false otherwise
See Also:
CloseableLockable.hasADoor(), CloseableLockable.hasALock()

hasALock

public boolean hasALock()
Description copied from interface: CloseableLockable
Returns whether this has a lock on it, and, if locked, must be unlocked before being used.

Specified by:
hasALock in interface CloseableLockable
Returns:
whether a lock is present
See Also:
CloseableLockable.isOpen(), CloseableLockable.isLocked(), CloseableLockable.hasADoor()

isOpen

public boolean isOpen()
Description copied from interface: CloseableLockable
Returns whether this is OPEN and may be accessed or travelled through

Specified by:
isOpen in interface CloseableLockable
Returns:
whether this is OPEN and may be accessed or travelled through

hasADoor

public boolean hasADoor()
Description copied from interface: CloseableLockable
Returns whether this has a door, and must be opened before being used.

Specified by:
hasADoor in interface CloseableLockable
Returns:
true if a door is present, false otherwise.
See Also:
CloseableLockable.isOpen(), CloseableLockable.isLocked()

defaultsClosed

public boolean defaultsClosed()
Description copied from interface: CloseableLockable
For exits with a door, this returns whether this defaults in a closed state.

Specified by:
defaultsClosed in interface CloseableLockable
Returns:
true if defaults closed, false otherwise
See Also:
CloseableLockable.hasADoor(), CloseableLockable.defaultsLocked()

defaultsLocked

public boolean defaultsLocked()
Description copied from interface: CloseableLockable
For exits with a door and lock, this returns whether this defaults in a closed and locked state.

Specified by:
defaultsLocked in interface CloseableLockable
Returns:
true if defaults closed and locked, false otherwise
See Also:
CloseableLockable.hasADoor(), CloseableLockable.defaultsClosed()

setDoorsNLocks

public void setDoorsNLocks(boolean newHasALid,
                           boolean newIsOpen,
                           boolean newDefaultsClosed,
                           boolean newHasALock,
                           boolean newIsLocked,
                           boolean newDefaultsLocked)
Description copied from interface: CloseableLockable
Modifies the various door/lock settings for this thing.

Specified by:
setDoorsNLocks in interface CloseableLockable
Parameters:
newHasALid - whether this has a door
newIsOpen - whether this is open for use
newDefaultsClosed - whether this defaults closed
newHasALock - whether this has a lock
newIsLocked - whether this is presently locked
newDefaultsLocked - whether this defaults closed and locked.
See Also:
CloseableLockable.isOpen(), CloseableLockable.isLocked(), CloseableLockable.hasADoor(), CloseableLockable.hasALock(), CloseableLockable.defaultsClosed(), CloseableLockable.defaultsLocked()

setMiscText

public void setMiscText(java.lang.String newMiscText)
Description copied from interface: Environmental
For objects which have false for their isGeneric method, this is used to set any internally coded strings to change the nature or behavior of the object. For objects which have true for their isGeneric method, this is used to set and parse the XML which will be used to fill out the fields in this object. Since Ability objects are never Generic, this will always be where parameters are read from an Ability instance.

Specified by:
setMiscText in interface Environmental
Overrides:
setMiscText in class StdItem
Parameters:
newMiscText - either an open internal text string, or XML

keyName

public java.lang.String keyName()
Description copied from interface: CloseableLockable
For things with doors and locks, this returns the unique string representing the key code required to unlock/lock it.

Specified by:
keyName in interface CloseableLockable
Returns:
the key code
See Also:
CloseableLockable.setKeyName(String)

setKeyName

public void setKeyName(java.lang.String newKeyName)
Description copied from interface: CloseableLockable
For things with doors and locks, this sets the unique string representing the key code required to unlock/lock it.

Specified by:
setKeyName in interface CloseableLockable
Parameters:
newKeyName - the new key code
See Also:
CloseableLockable.keyName()

emptyPlease

public void emptyPlease(boolean flatten)
Description copied from interface: Container
Empties this container into its owner.

Specified by:
emptyPlease in interface Container
Parameters:
flatten - if true, will also remove all recursive items from their containers

isInside

public boolean isInside(Item I)
Description copied from interface: Container
Returns whether the given item is, in fact, inside this container, even recursively. So if the given item is in a container, and that container is in THIS container, it would still be inside.

Specified by:
isInside in interface Container
Parameters:
I - the item to check against the content
Returns:
true if the item is somewhere inside, false otherwise

numberOfItems

public int numberOfItems()
Description copied from interface: Item
How many items this Item object represents. When an item is Packaged, this method will return a number greater than 1, otherwise it always returns 1.

Specified by:
numberOfItems in interface Item
Overrides:
numberOfItems in class StdItem
Returns:
the number of items represented by this object.

recursiveWeight

public int recursiveWeight()
Description copied from interface: Item
For a normal item, this method returns the same as phyStats().weight(). For a Container, it returns the weight of the container plus the recursive weight of all items in the container.

Specified by:
recursiveWeight in interface Item
Overrides:
recursiveWeight in class StdItem
Returns:
the total weight of the item and any possible contents.
See Also:
Container

getDeepContents

public ReadOnlyList<Item> getDeepContents()
Description copied from interface: Container
Returns all the items in this container, including other containers and THEIR contents, recursively.

Specified by:
getDeepContents in interface Container
Returns:
all the items in this container, recursively
See Also:
Container.getContents()

getContents

public ReadOnlyList<Item> getContents()
Description copied from interface: Container
Returns all the immediate items in this container, including other containers, but not the contents of those innner containers. Just the first level contents of this container.

Specified by:
getContents in interface Container
Returns:
all the immediate items in this container
See Also:
Container.getDeepContents()

hasContent

public boolean hasContent()
Description copied from interface: Container
Returns whether there is anything at all in this container.

Specified by:
hasContent in interface Container
Returns:
true if there is anything in this container, false if it is empty