Item

datablock for common properties.

Inherit:
ShapeBase

Description

Base Item class. Uses the ItemData datablock for common properties.

Items represent an object in the world, usually one that the player will interact with. One example is a health kit on the group that is automatically picked up when the player comes into contact with it.

Example:

// This is the "health patch" dropped by a dying player.
datablock ItemData(HealthKitPatch)
{
   // Mission editor category, this datablock will show up in the// specified category under the "shapes" root category.
   category = "Health";

   className = "HealthPatch";

   // Basic Item properties
   shapeFile = "art/shapes/items/patch/healthpatch.dts";
   mass = 2;
   friction = 1;
   elasticity = 0.3;
   emap = true;

   // Dynamic properties used by the scripts
   pickupName = "a health patch";
   repairAmount = 50;
};

%obj = newItem()
{
   dataBlock = HealthKitSmall;
   parentGroup = EWCreatorWindow.objectGroup;
   static = true;
   rotate = true;
};

Methods

string Item::getLastStickyNormal()

Get the normal of the surface on which the object is stuck.

Returns:is stuck.

Example:

// Acquire the position where this Item is currently stuck
%stuckPosition = %item.getLastStickPos();
string Item::getLastStickyPos()

Get the position on the surface on which this Item is stuck.

Returns:is stuck.

Example:

// Acquire the position where this Item is currently stuck
%stuckPosition = %item.getLastStickPos();
bool Item::isAtRest()

Is the object at rest (ie, no longer moving)?

Returns:True if the object is at rest, false if it is not.

Example:

// Query the item on if it is or is not at rest.
%isAtRest = %item.isAtRest();
bool Item::isRotating()

Is the object still rotating?

Returns:True if the object is still rotating, false if it is not.

Example:

// Query the item on if it is or is not rotating.
%isRotating = %itemData.isRotating();
bool Item::isStatic()

Is the object static (ie, non-movable)?

Returns:True if the object is static, false if it is not.

Example:

// Query the item on if it is or is not static.
%isStatic = %itemData.isStatic();
void Item::onEnterLiquid(string objID, string waterCoverage, string liquidType)

Informs an Item object that it has entered liquid, along with information about the liquid type.

Parameters:
  • objID – Object ID for this Item object.
  • waterCoverage – How much coverage of water this Item object has.
  • liquidType – The type of liquid that this Item object has entered.
void Item::onLeaveLiquid(string objID, string liquidType)

Informs an Item object that it has left a liquid, along with information about the liquid type.

Parameters:
  • objID – Object ID for this Item object.
  • liquidType – The type of liquid that this Item object has left.
void Item::onStickyCollision(string objID)

Informs the Item object that it is now sticking to another object. This callback is only called if the ItemData::sticky property for this Item is true.

Parameters:objID – Object ID this Item object.
bool Item::setCollisionTimeout(int ignoreColObj)

Temporarily disable collisions against a specific ShapeBase object. This is useful to prevent a player from immediately picking up an Item they have just thrown. Only one object may be on the timeout list at a time. The timeout is defined as 15 ticks.

Parameters:objectID – ShapeBase object ID to disable collisions against.
Returns:object requested could be found, false if it could not.

Example:

// Set the ShapeBase Object ID to disable collisions against
%ignoreColObj = %player.getID();

// Inform this Item object to ignore collisions temproarily against the %ignoreColObj.
%item.setCollisionTimeout(%ignoreColObj);

Fields

int Item::maxWarpTicks[static]

When a warp needs to occur due to the client being too far off from the server, this is the maximum number of ticks we’ll allow the client to warp to catch up.

float Item::minWarpTicks[static]

Fraction of tick at which instant warp occures on the client.

bool Item::rotate

If true, the object will automatically rotate around its Z axis.

bool Item::static

If true, the object is not moving in the world.