Empeld plugin documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events
essentials.action.ItemFramework.BlockStackItem Class Reference
Inheritance diagram for essentials.action.ItemFramework.BlockStackItem:
essentials.action.ItemFramework.BlockItem essentials.action.ItemFramework.IItemQuantityBundleable essentials.action.ItemFramework.ItemBase essentials.action.ItemFramework.IItemQuantity pluginbase.Objects.Syncable.SyncableObject essentials.action.ItemFramework.IItem essentials.action.ItemFramework.IItem pluginbase.Objects.Syncable.SyncableBase< T > pluginbase.Objects.Syncable.INetSyncable pluginbase.Objects.Syncable.INetSyncable pluginbase.Objects.Syncable.INetSyncable pluginbase.Objects.Syncable.INetWatcher pluginbase.Objects.Syncable.INetWatcher pluginbase.Objects.Syncable.INetWatcher essentials.action.ItemFramework.Interactive.UseableBlockItem

Public Member Functions

 BlockStackItem ()
 BlockStackItem (IBlock block, int quantity)
 BlockStackItem (ushort block, int quantity)
IItem RemoveOne ()
 Remove a representation of a single item in the bundle More...
void AddOne ()
 Add one item to a given bundle More...
bool StacksWith (IItem item)
 Gets whether or not this stack can stack with another item More...
IItemQuantity Split (int count)
 Splits the stack into another stack of a count, removing the items from this stack More...
- Public Member Functions inherited from essentials.action.ItemFramework.BlockItem
 BlockItem ()
 BlockItem (ushort blockId)
 BlockItem (IBlock block)
- Public Member Functions inherited from essentials.action.ItemFramework.ItemBase
 ItemBase ()
override string ToString ()
- Public Member Functions inherited from pluginbase.Objects.Syncable.SyncableObject
 SyncableObject ()
 Initializes a new instance of the pluginbase.Objects.Syncable.SyncableObject class. More...

Protected Member Functions

override IReadonlyModel LoadModel ()
 Loads the mesh representing the model in-world More...
- Protected Member Functions inherited from essentials.action.ItemFramework.BlockItem
override Bitmap LoadIcon ()
 Loads the bitmap representing the image of the item More...
- Protected Member Functions inherited from pluginbase.Objects.Syncable.SyncableObject
sealed override void ResetWatch ()
 Reset variables watched status More...
sealed override void TouchRecurse ()
 Touch self, including all children of this syncable object More...
sealed override void EncodeTo (BinaryWriter writer, EncodeContext context)
 Encode changes to binary data More...
sealed override void DecodeFrom (BinaryReader reader, DecodeContext context)
 Decode changes from binary data More...
sealed override void Persist (IPersistObject obj)
 Build up a persistant object for this syncable, including all sync children and persist objects More...
sealed override void Load (IReadPersistObject obj)
 Load a given persistent object back into this instance More...
- Protected Member Functions inherited from pluginbase.Objects.Syncable.SyncableBase< T >
void Touch ()
 Touch the instance, notifying something has changed More...
virtual void OnChanged ()
 Raises the changed event. More...


int Quantity [get, set]
override string IconLabel [get]
override string ModelCacheKey [get]
virtual int MaxQuantityDisplay [get]
virtual int QuantityDisplayRatio [get]
- Properties inherited from essentials.action.ItemFramework.BlockItem
ushort BlockId [get]
IBlock Block [get]
override string Name [get]
override string Icon [get]
override ItemRenderMode ItemRenderMode [get]
- Properties inherited from essentials.action.ItemFramework.ItemBase
abstract string Icon [get]
 Gets the path to the icon More...
abstract string Name [get]
 Gets the name of the item More...
virtual string IconLabel [get]
virtual string Description [get]
virtual string MeshResource [get]
virtual string ModelImage [get]
virtual int MeshalizerResolution [get]
virtual float MeshalizerDepth [get]
virtual float ModelSize [get]
virtual ItemRenderMode ItemRenderMode [get]
virtual string ModelCacheKey [get]
virtual bool ShowNameplate [get]
virtual bool Bounce [get]
virtual bool AutoDespawn [get]
virtual TimeSpan AutoDespawnDelay [get]
virtual bool HasGravity [get]
virtual double ViewDistance [get]
- Properties inherited from pluginbase.Objects.Syncable.SyncableObject
virtual ushort NetOwnerId [get]
 Gets the network owner of this object (user id) More...
- Properties inherited from pluginbase.Objects.Syncable.INetSyncable
INetWatcher Watcher [get, set]
 Who is watching (who to inform of a change) More...
bool Modified [get]
 Gets a value indicating whether this pluginbase.Objects.Syncable.INetSyncable is modified. More...
- Properties inherited from essentials.action.ItemFramework.IItem
string Name [get]
 The human-readable name of the item More...
string IconLabel [get]
 Gets the wording that can appear over a icon More...
bool ShowNameplate [get]
 Whether or not to show the nameplate above the item More...
bool Bounce [get]
 Whether or not the item should bounce in the world More...
bool AutoDespawn [get]
 Whether or not the item should be subject to auto-despawn More...
TimeSpan AutoDespawnDelay [get]
 The amount of time the auto despawn will take, if set (Overrides global default) More...
bool HasGravity [get]
 Whether or not gravity affects the item More...
double ViewDistance [get]
 The distance from which the dropped item can be viewed More...
- Properties inherited from essentials.action.ItemFramework.IItemQuantity
int Quantity [get, set]
 Gets or sets the quantity of the stack More...

Additional Inherited Members

- Protected Attributes inherited from essentials.action.ItemFramework.BlockItem
IBlockLookup BlockManager
IResourceResolver ResourceResolver
- Protected Attributes inherited from essentials.action.ItemFramework.ItemBase
readonly IModelFactory ModelFactory
readonly IPluginLogger Logger
- Events inherited from pluginbase.Objects.Syncable.SyncableBase< T >
Action< T > Changed
 Event triggered when any change occurs on this object, either locally or over the network More...
Action< T > NetUpdate
 Event triggered when a change occurs resulting from a change over the network More...
Action< T > Touched
 Event occurs only when an object is first touched. Usually the first instance of a local-change More...

Constructor & Destructor Documentation

essentials.action.ItemFramework.BlockStackItem.BlockStackItem ( )
27  {
28  }
essentials.action.ItemFramework.BlockStackItem.BlockStackItem ( IBlock  block,
int  quantity 
31  :base(block)
32  {
33  this.Quantity = quantity;
34  }
int Quantity
Definition: BlockStackItem.cs:21
essentials.action.ItemFramework.BlockStackItem.BlockStackItem ( ushort  block,
int  quantity 
37  :base(block)
38  {
39  this.Quantity = quantity;
40  }
int Quantity
Definition: BlockStackItem.cs:21

Member Function Documentation

void essentials.action.ItemFramework.BlockStackItem.AddOne ( )

Add one item to a given bundle

Implements essentials.action.ItemFramework.IItemQuantityBundleable.

61  {
62  this.Quantity++;
63  }
int Quantity
Definition: BlockStackItem.cs:21
override IReadonlyModel essentials.action.ItemFramework.BlockStackItem.LoadModel ( )

Loads the mesh representing the model in-world

The model.

Reimplemented from essentials.action.ItemFramework.ItemBase.

89  {
90  Mesh mesh = new Mesh(true);
91  int dispCount = MExt.Clamp(this.Quantity / this.QuantityDisplayRatio, 1, this.MaxQuantityDisplay);
93  var material = new Material{
94  TextureFile = this.ModelImage
95  };
97  for (int i=0; i<dispCount; ++i)
98  {
99  const float maxDist = 0.3f;
100  mesh.DrawCube(
101  new Vector3(RandomNorm()*maxDist, RandomNorm()*maxDist, RandomNorm()*maxDist),
102  this.ModelSize,
103  material);
104  }
106  return this.ModelFactory.CreateMesh(mesh);
107  }
IReadonlyModel CreateMesh(Mesh mesh)
Creates a model given a mesh
A raw, un-optimize, fully mutable, representation of a static mesh
Definition: Mesh.cs:13
virtual int MaxQuantityDisplay
Definition: BlockStackItem.cs:74
static float Clamp(float v, float min, float max)
Clamp the specified v, min and max.
Definition: MathExtensions.cs:277
int Quantity
Definition: BlockStackItem.cs:21
Math extensions
Definition: MathExtensions.cs:7
Definition: Material.cs:6
virtual string ModelImage
Definition: ItemBase.cs:63
readonly IModelFactory ModelFactory
Definition: ItemBase.cs:19
virtual float ModelSize
Definition: ItemBase.cs:78
virtual int QuantityDisplayRatio
Definition: BlockStackItem.cs:79
IItem essentials.action.ItemFramework.BlockStackItem.RemoveOne ( )

Remove a representation of a single item in the bundle

The one.

Implements essentials.action.ItemFramework.IItemQuantityBundleable.

51  {
52  if (this.Quantity > 0)
53  {
54  this.Quantity--;
55  return new BlockItem(this.BlockId);
56  }
57  return null;
58  }
int Quantity
Definition: BlockStackItem.cs:21
Definition: BlockItem.cs:24
ushort BlockId
Definition: BlockItem.cs:42
IItemQuantity essentials.action.ItemFramework.BlockStackItem.Split ( int  count)

Splits the stack into another stack of a count, removing the items from this stack


Implements essentials.action.ItemFramework.IItemQuantity.

116  {
117  var splitCount = Math.Min(count, this.Quantity);
118  this.Quantity -= splitCount;
119  return new BlockStackItem(this.BlockId, splitCount);
120  }
int Quantity
Definition: BlockStackItem.cs:21
Definition: BlockStackItem.cs:26
ushort BlockId
Definition: BlockItem.cs:42
bool essentials.action.ItemFramework.BlockStackItem.StacksWith ( IItem  item)

Gets whether or not this stack can stack with another item

true, if with was stacksed, false otherwise.

Implements essentials.action.ItemFramework.IItemQuantity.

110  {
111  var block = item as BlockItem;
112  return block != null && block.BlockId == this.BlockId;
113  }
Definition: BlockItem.cs:24
ushort BlockId
Definition: BlockItem.cs:42

Property Documentation

override string essentials.action.ItemFramework.BlockStackItem.IconLabel
virtual int essentials.action.ItemFramework.BlockStackItem.MaxQuantityDisplay
override string essentials.action.ItemFramework.BlockStackItem.ModelCacheKey
int essentials.action.ItemFramework.BlockStackItem.Quantity
virtual int essentials.action.ItemFramework.BlockStackItem.QuantityDisplayRatio

The documentation for this class was generated from the following file: