Constructor
new ServerItem(namespace, values)
- Source:
Parameters:
Name | Type | Description |
---|---|---|
namespace |
Namespace | Socket.io namespace for publishing changes. |
values |
Object | User-supplied data detailing the item. |
Extends
Members
(nullable) [@@holder] :module:mixins.Locker
- Description:
- If the Lockable is locked, stores a reference to the holder of the lock.
- Source:
- Overrides:
- Mixes In:
- Default Value:
- undefined
If the Lockable is locked, stores a reference to the holder of the lock.
Type:
(nullable) [@@locked] :boolean
- Description:
- Whether this Lockable is locked.
- Source:
- Overrides:
- Mixes In:
- Default Value:
- falsy
Whether this Lockable is locked.
Type:
- boolean
(nullable) [@@scheduled] :boolean
- Description:
- Whether a publication has been scheduled.
- Source:
- Overrides:
- Mixes In:
- Default Value:
- falsy
Whether a publication has been scheduled.
Type:
- boolean
(nullable) hitbox :module:shared.Hitbox
- Description:
- The hitbox for this Hittable instance. If it is null, hit detection will always return a falsy value.
- Source:
- Overrides:
- Mixes In:
- Default Value:
- undefined
The hitbox for this Hittable instance. If it is null, hit detection will
always return a falsy value.
Type:
(constant) id :number
- Description:
- Id to make Identifiables uniquely identifiable.
- Source:
- Overrides:
- Mixes In:
Id to make Identifiables uniquely identifiable.
Type:
- number
namespace :Namespace
- Description:
- Socket.io namespace for publishing updates.
- Source:
Socket.io namespace for publishing updates.
Type:
- Namespace
sequence :CanvasSequence
- Source:
- Overrides:
- Default Value:
- undefined
Type:
- CanvasSequence
Methods
[@@emit]()
- Description:
- Emit the publication of this object and mark that it is no longer scheduled for publication.
- Source:
- Overrides:
- Mixes In:
(protected) _emitPublication()
- Description:
- Emit the publication of this object. This method must be implemented by classes that use this mixin. It should never be called except by this mixin.
- Source:
- Overrides:
- Mixes In:
containsPoint(px, py) → {boolean}
- Description:
- Checks whether a point with the given x,y coordinates is contained by this item.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Description |
---|---|---|
px |
number | x coordinate of the point to check. |
py |
number | y coordinate of the point to check. |
Returns:
True if the (x,y) point is located inside this Item.
False otherwise.
- Type
- boolean
isLocked() → {boolean}
- Description:
- Checks whether this lockable is locked.
- Source:
- Overrides:
- Mixes In:
Returns:
True if the item is locked, false otherwise.
- Type
- boolean
lock(locker)
- Description:
- Lock this item.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Description |
---|---|---|
locker |
module:mixins.Locker | The holder of the lock. |
moveBy(dxopt, dyopt)
- Description:
- Move the transformable by the given amounts.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
dx |
number |
<optional> |
0
|
Movement along the x axis. |
dy |
number |
<optional> |
0
|
Movement along the y ayis. |
moveTo(xopt, yopt)
- Description:
- Move the transformable to the given coordinates.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
x |
number |
<optional> |
this.x
|
x coordinate to move to. |
y |
number |
<optional> |
this.y
|
y coordinate to move to. |
publish()
- Description:
- Schedule a publication of this object for the end of this turn of the node.js event loop. This will have the effect of making sure that the object update is not emitted until after all transformations applied by the user have been completed (assuming they don't use async callbacks, of course), and that only one update will be emitted regardless of the number of transformations that are applied! All this and we don't even need to do any fancy software engineering!
- Source:
- Overrides:
- Mixes In:
reversePoint(x, y) → {module:shared.Point2D}
- Description:
- Reverses "transformPoint"
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Description |
---|---|---|
x |
number | x coordinate to transform. |
y |
number | y coordinate to transform. |
Returns:
The transformed point.
reversePointChange(dx, dy) → {module:shared.Point2D}
- Description:
- Reverses "transformPointChange"
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Description |
---|---|---|
dx |
number | dx coordinate to transform. |
dy |
number | dy coordinate to transform. |
Returns:
The transformed point.
rotateBy(radiansopt, pxopt, pyopt)
- Description:
- Rotate the transformable by the given amount, in radians, around the given x,y point.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
radians |
number |
<optional> |
0
|
The amount of rotation to apply to the transformable, in radians. |
px |
number |
<optional> |
this.x
|
The x coordinate of the point around which to rotate. |
py |
number |
<optional> |
this.y
|
The y coordinate of the point around which to rotate. |
scaleBy(dsopt, mxopt, myopt, deltaFnopt)
- Description:
- Adjust the transformable by the given scale.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
ds |
number |
<optional> |
1
|
Change in desired scale. |
mx |
number |
<optional> |
this.x
|
The x coordinate of the point around which to scale. |
my |
number |
<optional> |
this.y
|
The y coordinate of the point around which to scale. |
deltaFn |
string |
<optional> |
'times'
|
The Point2D operation to apply to the delta point to extract the corrext this.x and this.y values. Should be one of 'times' or 'divideBy' depending on the use case. |
setSequence(sequence)
- Description:
- Set the render sequence.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
sequence |
CanvasSequence | The sequence of rendering instructions for this item. |
toJSON() → {Object}
- Description:
- Serialize the item as a JSON object.
- Source:
- Overrides:
Returns:
The item as a JSON object.
- Type
- Object
transformPoint(x, y) → {module:shared.Point2D}
- Description:
- Transforms a point from the transformable space to the default space. That is, it applies to the point the same transformations that apply to this Transformable2D, but in reverse.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Description |
---|---|---|
x |
number | x coordinate to transform. |
y |
number | y coordinate to transform. |
Returns:
The transformed point.
transformPointChange(dx, dy) → {module:shared.Point2D}
- Description:
- Transforms a "change" point from the transformable space to the default space. Very much like the 'transformPoint' function, except that it does not apply translation.
- Source:
- Overrides:
- Mixes In:
Parameters:
Name | Type | Description |
---|---|---|
dx |
number | dx coordinate to transform. |
dy |
number | dy coordinate to transform. |
Returns:
The transformed point.
unlock()
- Description:
- Unlock this item.
- Source:
- Overrides:
- Mixes In: