com.planet_ink.coffee_mud.Items.Basic
Class GenPackagedVariety

java.lang.Object
  extended by com.planet_ink.coffee_mud.Items.Basic.StdItem
      extended by com.planet_ink.coffee_mud.Items.Basic.GenItem
          extended by com.planet_ink.coffee_mud.Items.Basic.GenPackagedVariety
All Implemented Interfaces:
Affectable, Behavable, CMObject, Contingent, DBIdentifiable, Environmental, Modifiable, MsgListener, Physical, PhysicalAgent, Readable, Rider, StatsAffecting, Tickable, Item, PackagedItems, Wearable, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class GenPackagedVariety
extends GenItem
implements PackagedItems


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
Wearable.CODES
 
Field Summary
protected  int numberOfItemsInPackage
           
protected  byte[] readableText
           
 
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.PackagedItems
PACKAGE_FLAG_TO_ITEMS_PROGRAMMATICALLY
 
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
GenPackagedVariety()
           
 
Method Summary
 boolean areAllItemsTheSame()
          Returns whether this package contains identical items.
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
 int getPackageFlagsBitmap()
          Returns the flag bitmap describing how this item behaves.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 boolean isPackagable(java.util.List<Item> V)
          Returns whether the given list of items can be held by this package.
 int numberOfItemsInPackage()
          Returns the total number of items in the package.
 boolean packageMe(Item I, int number)
          Puts the given item into the package, and records the number of times it is repeated in the package.
 java.lang.String packageText()
          Returns the contents of the package as an XML doc.
 Item peekFirstItem()
          Returns the first item in the package, as a peek.
 java.lang.String readableText()
          For things that are readable, this returns the readable string for this thing.
 void setNumberOfItemsInPackage(int number)
          For packages that hold only one type of item, this is a quick method to alter the number in the package.
 void setPackageFlagsBitmap(int bitmap)
          Sets the flag bitmap describing how this item behaves.
 void setPackageText(java.lang.String text)
          Sets the contents of the package from an XML doc.
 void setReadableText(java.lang.String text)
          For things that are readable, this set the readable string for this thing.
 java.util.List<Item> unPackage(int number)
          Unpackages the top number of items in the package and returns them in an item list.
 
Methods inherited from class com.planet_ink.coffee_mud.Items.Basic.GenItem
getStat, getStatCodes, isGeneric, sameAs, setMiscText, setStat, text
 
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, getTickStatus, I, image, initializeClass, isReadable, isSavable, isStat, L, material, maxRange, minRange, miscTextFormat, name, Name, name, newInstance, numBehaviors, numberOfItems, numEffects, numScripts, okMessage, owner, phyStats, rawImage, rawLogicalAnd, rawProperLocationBitmap, rawSecretIdentity, rawWornCode, recoverPhyStats, recursiveWeight, removeFromOwnerContainer, riding, scripts, secretIdentity, setBasePhyStats, setBaseValue, setContainer, setDatabaseID, setDescription, setDisplayText, setExpirationDate, setImage, setMaterial, setName, setOwner, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, setReadable, setRiding, setSavable, setSecretIdentity, setUsesRemaining, stopTicking, subjectToWearAndTear, tackOns, tick, 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, numberOfItems, owner, rawSecretIdentity, recursiveWeight, 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, setMiscText, setName, text
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
getTickStatus, name, tick
 
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.MsgListener
okMessage
 
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, setReadable
 

Field Detail

readableText

protected byte[] readableText

numberOfItemsInPackage

protected int numberOfItemsInPackage
Constructor Detail

GenPackagedVariety

public GenPackagedVariety()
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 GenItem
Returns:
the name of this class

readableText

public java.lang.String readableText()
Description copied from interface: Readable
For things that are readable, this returns the readable string for this thing. That is to say, what the player sees when they read the door.

Specified by:
readableText in interface Readable
Overrides:
readableText in class GenItem
Returns:
the readable string
See Also:
Readable.isReadable(), Readable.setReadable(boolean), Readable.setReadableText(String)

setReadableText

public void setReadableText(java.lang.String text)
Description copied from interface: Readable
For things that are readable, this set the readable string for this thing. That is to say, what the player sees when they read the door.

Specified by:
setReadableText in interface Readable
Overrides:
setReadableText in class GenItem
Parameters:
text - the readable text
See Also:
Readable.isReadable(), Readable.setReadable(boolean), Readable.readableText()

packageMe

public boolean packageMe(Item I,
                         int number)
Description copied from interface: PackagedItems
Puts the given item into the package, and records the number of times it is repeated in the package.

Specified by:
packageMe in interface PackagedItems
Parameters:
I - the item to put in the package
number - the number of times the item repeats
Returns:
true if the packaging went well, false otherwise
See Also:
PackagedItems.unPackage(int), PackagedItems.isPackagable(List)

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

isPackagable

public boolean isPackagable(java.util.List<Item> V)
Description copied from interface: PackagedItems
Returns whether the given list of items can be held by this package. Some require all items to be identical while others are more flexible. This method should be called before trying to package anything.

Specified by:
isPackagable in interface PackagedItems
Parameters:
V - the list of items to test
Returns:
true if the entire list can be packaged, and false otherwise

peekFirstItem

public Item peekFirstItem()
Description copied from interface: PackagedItems
Returns the first item in the package, as a peek. It does not affect the contents of the package. The item should be destroyed after inspection.

Specified by:
peekFirstItem in interface PackagedItems
Returns:
the first item in the package, or null

areAllItemsTheSame

public boolean areAllItemsTheSame()
Description copied from interface: PackagedItems
Returns whether this package contains identical items.

Specified by:
areAllItemsTheSame in interface PackagedItems
Returns:
true if this package contains identical items

unPackage

public java.util.List<Item> unPackage(int number)
Description copied from interface: PackagedItems
Unpackages the top number of items in the package and returns them in an item list. If this results in 0 items in the package, the package is destroyed!

Specified by:
unPackage in interface PackagedItems
Parameters:
number - the number of items to unpackage
Returns:
the list of items unpackaged

packageText

public java.lang.String packageText()
Description copied from interface: PackagedItems
Returns the contents of the package as an XML doc.

Specified by:
packageText in interface PackagedItems
Returns:
the contents of the package as an XML doc
See Also:
PackagedItems.setPackageText(String)

setPackageText

public void setPackageText(java.lang.String text)
Description copied from interface: PackagedItems
Sets the contents of the package from an XML doc.

Specified by:
setPackageText in interface PackagedItems
Parameters:
text - the contents of the package as an XML doc
See Also:
PackagedItems.packageText()

numberOfItemsInPackage

public int numberOfItemsInPackage()
Description copied from interface: PackagedItems
Returns the total number of items in the package.

Specified by:
numberOfItemsInPackage in interface PackagedItems
Returns:
the total number of items in the package.

setNumberOfItemsInPackage

public void setNumberOfItemsInPackage(int number)
Description copied from interface: PackagedItems
For packages that hold only one type of item, this is a quick method to alter the number in the package. It is otherwise harmful.

Specified by:
setNumberOfItemsInPackage in interface PackagedItems
Parameters:
number - the new number of items in the package

getPackageFlagsBitmap

public int getPackageFlagsBitmap()
Description copied from interface: PackagedItems
Returns the flag bitmap describing how this item behaves.

Specified by:
getPackageFlagsBitmap in interface PackagedItems
Returns:
the flag bitmap describing how this item behaves.
See Also:
PackagedItems.PACKAGE_FLAG_TO_ITEMS_PROGRAMMATICALLY, PackagedItems.setPackageFlagsBitmap(int)

setPackageFlagsBitmap

public void setPackageFlagsBitmap(int bitmap)
Description copied from interface: PackagedItems
Sets the flag bitmap describing how this item behaves.

Specified by:
setPackageFlagsBitmap in interface PackagedItems
Parameters:
bitmap - the flag bitmap describing how this item behaves.
See Also:
PackagedItems.PACKAGE_FLAG_TO_ITEMS_PROGRAMMATICALLY, PackagedItems.getPackageFlagsBitmap()