Class AutoSyncAdvancedLayeredSpatialMap<T>
A version of AdvancedLayeredSpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
Implements
Namespace: SadRogue.Primitives.SpatialMaps
Assembly: TheSadRogue.Primitives.dll
Syntax
public class AutoSyncAdvancedLayeredSpatialMap<T> : Object, ISpatialMap<T>, IReadOnlyLayeredSpatialMap<T>, IReadOnlySpatialMap<T>, IEnumerable<ItemPositionPair<T>>, IEnumerable where T : class, IHasLayer, IPositionable
Type Parameters
| Name | Description |
|---|---|
| T | The type of object that will be contained by this spatial map. |
Remarks
This class automatically keeps the spatial map position of each object synced up with their Position property; you may either use the Move functions of the spatial map, in which case the Position fields of the objects are updated as appropriate, or you may change the Position field, in which case the spatial map position is updated to match.
If you want to manually control the positions of items in the spatial map, you should use AdvancedLayeredSpatialMap<T> instead.
Constructors
AutoSyncAdvancedLayeredSpatialMap(IEqualityComparer<T>, Int32, Func<Int32, IListPool<T>>, IEqualityComparer<Point>, Int32, UInt32)
Constructor.
Declaration
public AutoSyncAdvancedLayeredSpatialMap(IEqualityComparer<T> itemComparer, int numberOfLayers, Func<int, IListPool<T>> customListPoolCreator = null, IEqualityComparer<Point> pointComparer = null, int startingLayer = 0, uint layersSupportingMultipleItems = 0U)
Parameters
| Type | Name | Description |
|---|---|---|
| IEqualityComparer<T> | itemComparer | Equality comparer to use for comparison and hashing of type T. Be especially mindful of the efficiency of its GetHashCode function, as it will determine the efficiency of many AdvancedLayeredSpatialMap functions. |
| Int32 | numberOfLayers | Number of layers to include. |
| Func<Int32, IListPool<T>> | customListPoolCreator | A function used to determine the list pool implementation used for the spatial maps which support multiple items in a location (if any). The function takes the layer it is creating the pool for as a parameter. If no custom creator is specified, a ListPool is used. |
| IEqualityComparer<Point> | pointComparer | Equality comparer to use for comparison and hashing of points, as object are added to/removed from/moved around the spatial map. Be especially mindful of the efficiency of its GetHashCode function, as it will determine the efficiency of many AdvancedLayeredSpatialMap functions. Defaults to the default equality comparer for Point, which uses a fairly efficient generalized hashing algorithm. |
| Int32 | startingLayer | Index to use for the first layer. |
| UInt32 | layersSupportingMultipleItems | A layer mask indicating which layers should support multiple items residing at the same location on that layer. Defaults to no layers. |
Properties
Count
The number of items in the spatial map.
Declaration
public int Count { get; }
Property Value
| Type | Description |
|---|---|
| Int32 |
Items
Enumerable of the items stored in the spatial map: for use to iterate over all items with a foreach loop.
Declaration
public IEnumerable<T> Items { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<T> |
LayerMasker
Object used to get layer masks as they pertain to this spatial map.
Declaration
public LayerMasker LayerMasker { get; }
Property Value
| Type | Description |
|---|---|
| LayerMasker |
Layers
Gets read-only spatial maps representing each layer. To access a specific layer, instead use GetLayer(Int32).
Declaration
public IEnumerable<IReadOnlySpatialMap<T>> Layers { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<IReadOnlySpatialMap<T>> |
NumberOfLayers
Gets the number of layers contained in the spatial map.
Declaration
public int NumberOfLayers { get; }
Property Value
| Type | Description |
|---|---|
| Int32 |
Positions
Enumerable of all positions that contain items.
Declaration
public IEnumerable<Point> Positions { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<Point> |
StartingLayer
Starting index for layers contained in this spatial map.
Declaration
public int StartingLayer { get; }
Property Value
| Type | Description |
|---|---|
| Int32 |
Methods
Add(T)
Adds the given item at its position on the correct layer. ArgumentException is thrown if the layer is invalid or the item otherwise cannot be added to its layer.
Declaration
public void Add(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to add. |
Add(T, Point)
Changes the position field of the given item to the given value, and then adds it to the spatial map on the correct layer. ArgumentException is thrown if the layer is invalid or the item otherwise cannot be added to its layer.
Declaration
public void Add(T item, Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to add. |
| Point | position | Position to add item at. |
Add(T, Int32, Int32)
Changes the position field of the given item to the given value, and then adds it to the spatial map on the correct layer. ArgumentException is thrown if the layer is invalid or the item otherwise cannot be added to its layer.
Declaration
public void Add(T item, int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to add. |
| Int32 | x | X-value of position to add item at. |
| Int32 | y | Y-value of position to add item at. |
AsReadOnly()
Returns a read-only reference to the spatial map. Convenient for "safely" exposing the spatial map as a property.
Declaration
public IReadOnlyLayeredSpatialMap<T> AsReadOnly()
Returns
| Type | Description |
|---|---|
| IReadOnlyLayeredSpatialMap<T> | The current spatial map, as a "read-only" reference. |
CanAdd(T)
Returns true if the given item can be added at its current position, eg. it is on a layer in the spatial map and its layer will accept it; false otherwise.
Declaration
public bool CanAdd(T newItem)
Parameters
| Type | Name | Description |
|---|---|---|
| T | newItem | Item to add. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item can be successfully added at its current position; false otherwise. |
CanAdd(T, Point)
Returns true if the given item can be added at the given position, eg. it is on a layer in the spatial map and its layer will accept it; false otherwise.
Declaration
public bool CanAdd(T newItem, Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| T | newItem | Item to add. |
| Point | position | Position to add item to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item can be successfully added at the position given; false otherwise. |
CanAdd(T, Int32, Int32)
Returns true if the given item can be added at the given position, eg. it is on a layer in the spatial map and its layer will accept it; false otherwise.
Declaration
public bool CanAdd(T newItem, int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| T | newItem | Item to add. |
| Int32 | x | X-value of the position to add item to. |
| Int32 | y | Y-value of the position to add item to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item can be successfully added at the position given; false otherwise. |
CanMove(T, Point)
Returns true if the given item can be moved from its current location to the specified one, eg. it is in the spatial map and its layer will accept it at the new position; false otherwise.
Declaration
public bool CanMove(T item, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to move. |
| Point | target | Location to move item to. |
Returns
| Type | Description |
|---|---|
| Boolean | true if the given item can be moved to the given position; false otherwise. |
CanMove(T, Int32, Int32)
Returns true if the given item can be moved from its current location to the specified one, eg. it is in the spatial map and its layer will accept it at the new position; false otherwise.
Declaration
public bool CanMove(T item, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to move. |
| Int32 | targetX | X-value of the location to move item to. |
| Int32 | targetY | Y-value of the location to move item to. |
Returns
| Type | Description |
|---|---|
| Boolean | true if the given item can be moved to the given position; false otherwise. |
CanMoveAll(Point, Point, UInt32)
Returns true if there are items at current
on one or more of the layers specified by the layer
mask,
and all items on those layers at that position can be moved to target
; false otherwise.
Declaration
public bool CanMoveAll(Point current, Point target, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Location to move items from. |
| Point | target | Location to move items to. |
| UInt32 | layerMask | Layer mask indicating which layers to check items on. |
Returns
| Type | Description |
|---|---|
| Boolean | true if all items at the position current can be moved to the position target; false if one or more items cannot be moved or there are no items to move. |
CanMoveAll(Int32, Int32, Int32, Int32, UInt32)
Returns true if there are items at the current position on one or more of the layers specified by the layer mask, and all items on those layers at that position can be moved to the target position; false otherwise.
Declaration
public bool CanMoveAll(int currentX, int currentY, int targetX, int targetY, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the location to move items from. |
| Int32 | currentY | Y-value of the location to move items from. |
| Int32 | targetX | X-value of the location to move items to. |
| Int32 | targetY | Y-value of the location to move items to. |
| UInt32 | layerMask | Layer mask indicating which layers to check items on. |
Returns
| Type | Description |
|---|---|
| Boolean | true if all items at the position current can be moved to the position target; false if one or more items cannot be moved or there are no items to move. |
Clear()
Clears all items out of the spatial map.
Declaration
public void Clear()
Contains(T)
Returns whether or not the spatial map contains the given item.
Declaration
public bool Contains(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to check for. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the given item is contained in the spatial map, false if not. |
Contains(Point, UInt32)
Returns whether or not there is an item in the spatial map at the given position that is on a layer included in the given layer mask. Defaults to searching on all layers.
Declaration
public bool Contains(Point position, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position | The position to check for. |
| UInt32 | layerMask | Layer mask that indicates which layers to check. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| Boolean | True if there is some item at the given position on a layer included in the given layer mask, false if not. |
Contains(Int32, Int32, UInt32)
Returns whether or not there is an item in the data structure at the given position, that is on a layer included in the given layer mask.
Declaration
public bool Contains(int x, int y, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | X-value of the position to check for. |
| Int32 | y | Y-value of the position to check for. |
| UInt32 | layerMask | Layer mask that indicates which layers to check. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| Boolean | True if there is some item at the given position on a layer included in the given layer mask, false if not. |
GetEnumerator()
Used by foreach loop, so that the class will give ISpatialTuple objects when used in a foreach loop. Generally should never be called explicitly.
Declaration
public IEnumerator<ItemPositionPair<T>> GetEnumerator()
Returns
| Type | Description |
|---|---|
| IEnumerator<ItemPositionPair<T>> | An enumerator for the spatial map |
GetItemsAt(Point, UInt32)
Gets the item(s) associated with the given position that reside on any layer included in the given layer mask. Returns nothing if there is nothing at that position on a layer included in the given layer mask.
Declaration
public IEnumerable<T> GetItemsAt(Point position, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position | The position to return the item(s) for. |
| UInt32 | layerMask | Layer mask that indicates which layers to check. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| IEnumerable<T> | The item(s) at the given position that reside on a layer included in the layer mask if there are any items, or nothing if there is nothing at that position. |
GetItemsAt(Int32, Int32, UInt32)
Gets the item(s) associated with the given position that reside on any layer included in the given layer mask. Returns nothing if there is nothing at that position on a layer included in the given layer mask.
Declaration
public IEnumerable<T> GetItemsAt(int x, int y, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | X-value of the position to return the item(s) for. |
| Int32 | y | Y-value of the position to return the item(s) for. |
| UInt32 | layerMask | Layer mask that indicates which layers to check. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| IEnumerable<T> | The item(s) at the given position that reside on a layer included in the layer mask if there are any items, or nothing if there is nothing at that position. |
GetLayer(Int32)
Gets a read-only spatial map representing the layer specified.
Declaration
public IReadOnlySpatialMap<T> GetLayer(int layer)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | layer | The layer to retrieve. |
Returns
| Type | Description |
|---|---|
| IReadOnlySpatialMap<T> | The IReadOnlySpatialMap that represents the given layer. |
GetLayersInMask(UInt32)
Returns read-only spatial maps that represent each layer included in the given layer mask. Defaults to all layers.
Declaration
public IEnumerable<IReadOnlySpatialMap<T>> GetLayersInMask(uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | layerMask | Layer mask indicating which layers to return. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| IEnumerable<IReadOnlySpatialMap<T>> | Read-only spatial maps representing each layer in the given layer mask. |
GetPositionOf(T)
Gets the position associated with the given item in the spatial map. If the item does not exist in the spatial map, throws ArgumentException.
Declaration
public Point GetPositionOf(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to get the position for. |
Returns
| Type | Description |
|---|---|
| Point | The position associated with the given item. |
GetPositionOfOrNull(T)
Gets the position associated with the given item in the spatial map, or null if that item is not found.
Declaration
public Nullable<Point> GetPositionOfOrNull(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to get the position for. |
Returns
| Type | Description |
|---|---|
| Nullable<Point> | The position associated with the given item, if it exists in the spatial map, or null if the item does not exist. |
Move(T, Point)
Moves the item specified to the position specified, updating its Position field
accordingly. Throws ArgumentException if either the item given
isn't in the spatial map, or if the layer that the item resides on is configured to allow only one item per
location at any given time and there is already an item at target
.
Declaration
public void Move(T item, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to move. |
| Point | target | Position to move the given item to. |
Move(T, Int32, Int32)
Moves the item specified to the position specified, updating its Position field accordingly. Throws ArgumentException if either the item given isn't in the spatial map, or if the layer that the item resides on is configured to allow only one item per location at any given time and there is already an item at the target position.
Declaration
public void Move(T item, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to move. |
| Int32 | targetX | X-value of position to move the given item to. |
| Int32 | targetY | Y-value of position to move the given item to. |
MoveAll(Point, Point, UInt32)
Moves all items that are on layers in layerMask
at the specified source location to the target
location, updating their Position fields accordingly. Throws ArgumentException
if one or more items cannot be moved or there are no items to be moved.
Declaration
public void MoveAll(Point current, Point target, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Location to move items from. |
| Point | target | Location to move items to. |
| UInt32 | layerMask | The layer mask to use to find items. |
MoveAll(Int32, Int32, Int32, Int32, UInt32)
Moves all items that are on layers in layerMask
at the specified source location to the target
location, updating their Position fields accordingly. Throws ArgumentException
if one or more items cannot be moved or there are no items to be moved.
Declaration
public void MoveAll(int currentX, int currentY, int targetX, int targetY, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the location to move items from. |
| Int32 | currentY | Y-value of the location to move items from. |
| Int32 | targetX | X-value of the location to move items to. |
| Int32 | targetY | Y-value of the location to move items to. |
| UInt32 | layerMask | The layer mask to use to find items. |
MoveValid(Point, Point, List<T>, UInt32)
Moves all items that can be moved, that are at the given position and on any layer specified by the given layer mask, to the new position, updating their Position fields accordingly. If no layer mask is specified, defaults to all layers.
Declaration
public void MoveValid(Point current, Point target, List<T> itemsMovedOutput, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Position to move items from. |
| Point | target | Position to move items to. |
| List<T> | itemsMovedOutput | List in which to place all moved items. |
| UInt32 | layerMask | Layer mask specifying which layers to search for items on. Defaults to all layers. |
MoveValid(Point, Point, UInt32)
Moves all items that can be moved, that are at the given position and on any layer specified by the given layer mask, to the new position, updating their Position fields accordingly. If no layer mask is specified, defaults to all layers.
Declaration
public List<T> MoveValid(Point current, Point target, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Position to move all items from. |
| Point | target | Position to move all items to. |
| UInt32 | layerMask | Layer mask specifying which layers to search for items on. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| List<T> | All items moved. |
MoveValid(Int32, Int32, Int32, Int32, List<T>, UInt32)
Moves all items that can be moved, that are at the given position and on any layer specified by the given layer mask, to the new position, updating their Position fields accordingly. If no layer mask is specified, defaults to all layers.
Declaration
public void MoveValid(int currentX, int currentY, int targetX, int targetY, List<T> itemsMovedOutput, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the position to move items from. |
| Int32 | currentY | Y-value of the position to move items from. |
| Int32 | targetX | X-value of the position to move items to. |
| Int32 | targetY | Y-value of the position to move items from. |
| List<T> | itemsMovedOutput | List in which to place all moved items. |
| UInt32 | layerMask | Layer mask specifying which layers to search for items on. Defaults to all layers. |
MoveValid(Int32, Int32, Int32, Int32, UInt32)
Moves all items that can be moved, that are at the given position and on any layer specified by the given layer mask, to the new position, updating their Position fields accordingly. If no layer mask is specified, defaults to all layers.
Declaration
public List<T> MoveValid(int currentX, int currentY, int targetX, int targetY, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the position to move items from. |
| Int32 | currentY | Y-value of the position to move items from. |
| Int32 | targetX | X-value of the position to move items to. |
| Int32 | targetY | Y-value of the position to move items from. |
| UInt32 | layerMask | Layer mask specifying which layers to search for items on. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| List<T> | All items moved. |
Remove(T)
Removes the given item from the spatial map. Throws ArgumentException if the item cannot be removed.
Declaration
public void Remove(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to remove. |
Remove(Point, UInt32)
Removes all items at the specified location that are on any layer included in the given layer mask from the spatial map. Returns any items that were removed. Defaults to searching for items on all layers.
Declaration
public List<T> Remove(Point position, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position | Position to remove items from. |
| UInt32 | layerMask | The layer mask indicating which layers to search for items. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| List<T> | Any items that were removed, or nothing if no items were removed. |
Remove(Int32, Int32, UInt32)
Removes all items at the specified location that are on any layer included in the given layer mask from the spatial map. Returns any items that were removed. Defaults to searching for items on all layers.
Declaration
public List<T> Remove(int x, int y, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | X-value of the position to remove items from. |
| Int32 | y | Y-value of the position to remove items from. |
| UInt32 | layerMask | The layer mask indicating which layers to search for items. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| List<T> | Any items that were removed, or nothing if no items were removed. |
ToString()
Returns a string representation of the spatial map.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String | A string representation of the spatial map. |
ToString(Func<T, String>)
Returns a string representation of each item in the spatial map, with elements displayed in the specified way.
Declaration
public string ToString(Func<T, string> elementStringifier)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<T, String> | elementStringifier | A function that takes an element of type T and produces the string that should represent it in the output. |
Returns
| Type | Description |
|---|---|
| String | A string representing each layer in the spatial map, with each element displayed in the specified way. |
TryAdd(T)
Adds the given item at its position on the correct layer. Returns false if the layer is invalid or the item otherwise cannot be added to its layer.
Declaration
public bool TryAdd(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to add. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was successfully added; false otherwise. |
TryAdd(T, Point)
Changes the position field of the given item to the given value, and then adds it to the spatial map on the correct layer. If the layer is invalid or the item otherwise cannot be added to its layer, does nothing and returns false.
Declaration
public bool TryAdd(T item, Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to add. |
| Point | position | Position to add item at. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was added, false otherwise. |
TryAdd(T, Int32, Int32)
Changes the position field of the given item to the given value, and then adds it to the spatial map on the correct layer. If the layer is invalid or the item otherwise cannot be added to its layer, does nothing and returns false.
Declaration
public bool TryAdd(T item, int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to add. |
| Int32 | x | X-value of position to add item at. |
| Int32 | y | Y-value of position to add item at. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was added, false otherwise. |
TryGetPositionOf(T, out Point)
Attempts to get the position of the given item in the spatial map. If successful, the function will return
true and the position will be stored in the position
parameter. If the item was not found,
position
will have the default value for Point, and the function will return false.
Declaration
public bool TryGetPositionOf(T item, out Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to retrieve the position of. |
| Point | position | The position of the item if found, or default(Point) if not. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was found in the spatial map, false otherwise. |
TryMove(T, Point)
Attempts to move the given item from its current location to the specified one. Does nothing and returns false if the item cannot be moved to the given location.
Declaration
public bool TryMove(T item, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to move. |
| Point | target | Location to move item to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was moved; false if not. |
TryMove(T, Int32, Int32)
Attempts to move the given item from its current location to the specified one. Does nothing and returns false if the item cannot be moved to the given location.
Declaration
public bool TryMove(T item, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | Item to move. |
| Int32 | targetX | X-value of the location to move item to. |
| Int32 | targetY | Y-value of the location to move item to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was moved; false if not. |
TryMoveAll(Point, Point, UInt32)
Moves all items that are on layers in layerMask
at the specified source location to the
target location, updating their Position fields accordingly. Returns false and moves nothing if one or more
items cannot be moved or there are no items to be moved.
Declaration
public bool TryMoveAll(Point current, Point target, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Location to move items from. |
| Point | target | Location to move items to. |
| UInt32 | layerMask | The layer mask to use to find items. |
Returns
| Type | Description |
|---|---|
| Boolean | True if all items at |
TryMoveAll(Int32, Int32, Int32, Int32, UInt32)
Moves all items that are on layers in layerMask
at the specified source location to the
target location, updating their Position fields accordingly. Returns false and moves nothing if one or more
items cannot be moved or there are no items to be moved.
Declaration
public bool TryMoveAll(int currentX, int currentY, int targetX, int targetY, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the location to move items from. |
| Int32 | currentY | Y-value of the location to move items from. |
| Int32 | targetX | X-value of the location to move items to. |
| Int32 | targetY | Y-value of the location to move items to. |
| UInt32 | layerMask | The layer mask to use to find items. |
Returns
| Type | Description |
|---|---|
| Boolean | True if all items at the current position on layers within the mask given were moved to the target position; false otherwise. |
TryRemove(T)
Attempts to remove the given item from the spatial map. Does nothing and return false if the item cannot be removed.
Declaration
public bool TryRemove(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to remove. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the item was successfully removed; false otherwise. |
TryRemove(Point, UInt32)
Attempts to remove all items at the specified location that are on any layer included in the given layer mask from the spatial map. Returns true if the items were successfully removed; false if one or more failed.
Declaration
public bool TryRemove(Point position, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position | Position to remove items from. |
| UInt32 | layerMask | The layer mask indicating which layers to search for items. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the items were successfully removed; false otherwise |
TryRemove(Int32, Int32, UInt32)
Attempts to remove all items at the specified location that are on any layer included in the given layer mask from the spatial map. Returns true if the items were successfully removed; false if one or more failed.
Declaration
public bool TryRemove(int x, int y, uint layerMask =<PHONE_NUMBER>U)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | X-value of the position to remove items from. |
| Int32 | y | Y-value of the position to remove items from. |
| UInt32 | layerMask | The layer mask indicating which layers to search for items. Defaults to all layers. |
Returns
| Type | Description |
|---|---|
| Boolean | True if the items were successfully removed; false otherwise |
Events
ItemAdded
Event that is fired directly after an item has been added to the spatial map.
Declaration
public event EventHandler<ItemEventArgs<T>> ItemAdded
Event Type
| Type | Description |
|---|---|
| EventHandler<ItemEventArgs<T>> |
ItemMoved
Event that is fired directly after an item in the spatial map has been moved.
Declaration
public event EventHandler<ItemMovedEventArgs<T>> ItemMoved
Event Type
| Type | Description |
|---|---|
| EventHandler<ItemMovedEventArgs<T>> |
ItemRemoved
Event that is fired directly after an item has been removed from the spatial map.
Declaration
public event EventHandler<ItemEventArgs<T>> ItemRemoved
Event Type
| Type | Description |
|---|---|
| EventHandler<ItemEventArgs<T>> |
Explicit Interface Implementations
IReadOnlySpatialMap<T>.AsReadOnly()
Declaration
IReadOnlySpatialMap<T> IReadOnlySpatialMap<T>.AsReadOnly()
Returns
| Type | Description |
|---|---|
| IReadOnlySpatialMap<T> |
IReadOnlySpatialMap<T>.CanMoveAll(Point, Point)
Returns true if there are items at current
and all items at that position
can be moved to target
; false otherwise.
Declaration
bool IReadOnlySpatialMap<T>.CanMoveAll(Point current, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Location to move items from. |
| Point | target | Location to move items to. |
Returns
| Type | Description |
|---|---|
| Boolean | true if all items at the position current can be moved to the position target; false if one or more items cannot be moved or there are no items to move. |
IReadOnlySpatialMap<T>.CanMoveAll(Int32, Int32, Int32, Int32)
Returns true if there are items at the current position specified, and all items at that position can be moved to the target position; false otherwise.
Declaration
bool IReadOnlySpatialMap<T>.CanMoveAll(int currentX, int currentY, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the location to move items from. |
| Int32 | currentY | Y-value of the location to move items from. |
| Int32 | targetX | X-value of the location to move items to. |
| Int32 | targetY | Y-value of the location to move items to. |
Returns
| Type | Description |
|---|---|
| Boolean | true if all items at the position current can be moved to the position target; false if one or more items cannot be moved or there are no items to move. |
IReadOnlySpatialMap<T>.Contains(Point)
Returns if there is an item in the spatial map at the given position or not.
Declaration
bool IReadOnlySpatialMap<T>.Contains(Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position | The position to check for. |
Returns
| Type | Description |
|---|---|
| Boolean | True if there is some item at the given position, false if not. |
IReadOnlySpatialMap<T>.Contains(Int32, Int32)
Declaration
bool IReadOnlySpatialMap<T>.Contains(int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | |
| Int32 | y |
Returns
| Type | Description |
|---|---|
| Boolean |
IReadOnlySpatialMap<T>.GetItemsAt(Point)
Gets the item(s) at the given position if there are any items, or returns nothing if there is nothing at that position.
Declaration
IEnumerable<T> IReadOnlySpatialMap<T>.GetItemsAt(Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position | The position to return the item(s) for. |
Returns
| Type | Description |
|---|---|
| IEnumerable<T> | The item(s) at the given position if there are any items, or nothing if there is nothing at that position. |
IReadOnlySpatialMap<T>.GetItemsAt(Int32, Int32)
Gets the item(s) at the given position if there are any items, or returns nothing if there is nothing at that position.
Declaration
IEnumerable<T> IReadOnlySpatialMap<T>.GetItemsAt(int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | The x-value of the position to return the item(s) for. |
| Int32 | y | The y-value of the position to return the item(s) for. |
Returns
| Type | Description |
|---|---|
| IEnumerable<T> | The item(s) at the given position if there are any items, or nothing if there is nothing at that position. |
ISpatialMap<T>.MoveAll(Point, Point)
Moves all items at the specified source location to the target location. Throws ArgumentException if one or more items cannot be moved or there are no items to be moved.
Declaration
void ISpatialMap<T>.MoveAll(Point current, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Location to move items from. |
| Point | target | Location to move items to. |
ISpatialMap<T>.MoveAll(Int32, Int32, Int32, Int32)
Moves all items at the specified source location to the target location. Throws ArgumentException if one or more items cannot be moved or there are no items to be moved.
Declaration
void ISpatialMap<T>.MoveAll(int currentX, int currentY, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the location to move items from. |
| Int32 | currentY | Y-value of the location to move items from. |
| Int32 | targetX | X-value of the location to move items to. |
| Int32 | targetY | Y-value of the location to move items to. |
ISpatialMap<T>.MoveValid(Point, Point)
Declaration
List<T> ISpatialMap<T>.MoveValid(Point current, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | |
| Point | target |
Returns
| Type | Description |
|---|---|
| List<T> |
ISpatialMap<T>.MoveValid(Point, Point, List<T>)
Declaration
void ISpatialMap<T>.MoveValid(Point current, Point target, List<T> itemsMovedOutput)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | |
| Point | target | |
| List<T> | itemsMovedOutput |
ISpatialMap<T>.MoveValid(Int32, Int32, Int32, Int32)
Declaration
List<T> ISpatialMap<T>.MoveValid(int currentX, int currentY, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | |
| Int32 | currentY | |
| Int32 | targetX | |
| Int32 | targetY |
Returns
| Type | Description |
|---|---|
| List<T> |
ISpatialMap<T>.MoveValid(Int32, Int32, Int32, Int32, List<T>)
Declaration
void ISpatialMap<T>.MoveValid(int currentX, int currentY, int targetX, int targetY, List<T> itemsMovedOutput)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | |
| Int32 | currentY | |
| Int32 | targetX | |
| Int32 | targetY | |
| List<T> | itemsMovedOutput |
ISpatialMap<T>.Remove(Point)
Declaration
List<T> ISpatialMap<T>.Remove(Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position |
Returns
| Type | Description |
|---|---|
| List<T> |
ISpatialMap<T>.Remove(Int32, Int32)
Declaration
List<T> ISpatialMap<T>.Remove(int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | |
| Int32 | y |
Returns
| Type | Description |
|---|---|
| List<T> |
ISpatialMap<T>.TryMoveAll(Point, Point)
Moves all items at the specified source location to the target location. Returns false if one or more items cannot be moved or there are no items to be moved.
Declaration
bool ISpatialMap<T>.TryMoveAll(Point current, Point target)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | current | Location to move items from. |
| Point | target | Location to move items to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if all items at |
ISpatialMap<T>.TryMoveAll(Int32, Int32, Int32, Int32)
Moves all items at the specified source location to the target location. Returns false if one or more items cannot be moved or there are no items to be moved.
Declaration
bool ISpatialMap<T>.TryMoveAll(int currentX, int currentY, int targetX, int targetY)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | currentX | X-value of the location to move items from. |
| Int32 | currentY | Y-value of the location to move items from. |
| Int32 | targetX | X-value of the location to move items to. |
| Int32 | targetY | Y-value of the location to move items to. |
Returns
| Type | Description |
|---|---|
| Boolean | True if all items at (currentX, currentY) were moved to (targetX, targetY); false otherwise. |
ISpatialMap<T>.TryRemove(Point)
Declaration
bool ISpatialMap<T>.TryRemove(Point position)
Parameters
| Type | Name | Description |
|---|---|---|
| Point | position |
Returns
| Type | Description |
|---|---|
| Boolean |
ISpatialMap<T>.TryRemove(Int32, Int32)
Declaration
bool ISpatialMap<T>.TryRemove(int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | x | |
| Int32 | y |
Returns
| Type | Description |
|---|---|
| Boolean |


Problem 1: Write a function called sum() that takes in two numbers as arguments and then returns the sum of those numbers.
Problem 2: Write a function called multiply() that takes in two numbers as arguments and then returns the product of those numbers.
Problem 3: Write a function called sumAndMultiply() that takes in THREE numbers as arguments and then returns two values in an array: the sum of those numbers and the product of those numbers.
Problem 4: Write a function called sumArray() that takes in an array of numbers as a single argument and then returns the sum of those numbers.
Problem 5: Write a function called multiplyArray() that takes in an array of numbers as a single argument and then returns the product of those numbers.


Little Man Tate (1991, PG)
Directed by Jodie Foster
Written by Scott Frank
Starring Jodie Foster, Dianne Weist, Adam Hann-Byrd, and Harry Connick, Jr.
As Reviewed by James Brundage
It's been ages since I've seen this film. I watched it on video when it first came out, circa 1992 and barely remembered all of it. I remembered the little kid getting hit on the head with a globe by Harry Connick, Jr. I completely forgot about Dianne Weist, and I had a vague memory of Jodie Foster having something or other to do with it. But, it was Sunday and I was bored and it just so happened that The Movie Channel had it on so I decided to sit back and watch it. I had nothing better to do.
Although I am already going senile at a very young age and cannot trust much of any memories, I do remember thinking that Little Man Tate was a good film. I am glad to see that times have not changed that much.
Little Man Tate follows child prodigy Fred Tate(Adam Hann-Byrd, whose only other good role came in the form of Ang Lee's The Ice Storm) and struggling mother Dede Tate(Jodie Foster). Fred Tate seeks only to have friends. Dede Tate is driven by what her son wants. The third force in this movie is Jane Grierson (Dianne Weist), a former child prodigy who seeks to enter into a maternal position as far as Fred is concerned and also to make sure his intellectual needs are fulfilled.
In short, the plot is something we have seen time and time again.
The movie is much more psychologically complex however, when you factor in that Fred has ulcers due to worldly concerns and when you take into light the director of the movie, Jodie Foster.
We all know her as the recluse of cinema. We also may know her as the runner up for Princess Leia in the original Star Wars trilogy (ironically, the person who has been often referred to as "the next Jodie Foster", Natalie Portman, grabbed the female lead in the new Star Wars trilogy). What most people are not familiar with is that she was in, to a degree, the position that Fred Tate finds himself in during the film.
Jodie Foster was able to read by 3, speak fluent French by 14, graduated Valedictorian a year early from a Private Academy known as Lycee Francais. She was managed by her mother, a person who reportedly pushed her to be in her famous/infamous role as a 13-year-old prostitute in Taxi Driver while she just wanted to hang out with friends. Do I sense a very similar structure when Fred utters the voice-over "All I wanted was for someone to eat lunch with me?"
That point aside, the film in and of itself is a basic formula character drama… back when they still made them. You have conflicts between characters you care about a tiny bit, tears jerked from the majority of the audience; tiny bits of comic support placed all over like chocolate jimmies on Ice Cream. You have errors here and there, nice cinematography, fine performances and mediocre directing (yes, Jodie Foster does a better job than most mainstream drama directors do). You have some characters that you wonder about the significance of, Freudian psychology, and events that don't make any sense as far as the plot is concerned.
Movies like this are significantly easier to grade with a rubric, such as stars or letters or ranking out of ten, but I do not use any of these so I will simply have to say that it is a basically mediocre film. It is more a film for people who like Jodie Foster than for people who want to see actually good films. It isn't worth spending money over but it isn't worth skipping, so, using a very trite phrase: you decide.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Description
A customizable bot. It's hsbot. Pass your custom template and you are ready to use your own bot.
Quick demo using terminal
Integrate into your project
Features
- Pass custom template. Template should be in format as defined.
- You can integrate with your system easily.
- Analyze user chat history.
Install
$ npm install hsbot -g
"OR"
$ npm i install hsbot
Usage
Test from terminal, if you have install globally.$ hsbot
Now you are ready to use hsbot.
Did you get 'What is your name?' question from hsbot?
Points to keep in mind
- userId: UserId is mandatory.
- userName: (optional) If pass it will not ask you about your name. If not, hsbot will ask you about your name first.
- topicList and topics: These two files you need to pass to the constructor of hsbot. You can find template under hsbot -> db -> data
- Template: topicList.json and topics.json
Example:
var topicList = require('../db/data/topicList.json'); // Your file path as per defined template.
var topics = require('../db/data/topics.json'); // Your file path as per defined template.
const HSBot = require('hsbot');
const hsBot = new HSBot(topicList, topics);
var userId = "aQ11zyTr4u7I";
var userName;
// userId (Mandatory)
// userName (User Name)
// human_text (Your answer/query, the question asked by HSBot)
hsBot.transformAndReply(userId, userName, human_text, function(err, data){
console.log("HSBot:", data);
});


Innovative, minimalistic, and romantic, Worry ups-the-game in fashion while amplifying weeaboo culture in the clothing industry. Young children can make a statement, while the elderly can flex their life's earnings. Worry is a clothing brand made for everyone young and old. Worry products exemplify the pinnacle of weeb craftmanship while extending a warm welcome to bourgeois teens.


_Universal_Soldier:_The_Return_ (R) no stars (out of ****)
When one goes to a Jean-Claude Van Damme action movie, one doesn't expect certain things they would from a typical film--for example, decent acting, a strong storyline, interesting characters. True to Van Damme form, _Universal_Soldier:_The_Return_ boasts none of these qualities. The problem is, neither does it possess the one thing for which one would watch a Van Damme vehicle in the first place: excitement.
_The_Return_ is, as can be gleaned by its title, the third sequel (the Van Damme-less numbers 2 and 3 went straight to cable) to the Muscles from Brussels's 1992 sci-fi thriller, created by overpaid uberhacks Roland Emmerich and Dean Devlin. That film was far from a masterpiece--in fact, it was quite bad--but it did have its share of diverting moments, not to mention a casting gimmick that proved to be the film's biggest drawing card: pit against Van Damme as the baddie was another lower-tier action star, Dolph Lundgren.
With Lundgren's character having been fed into a wood chipper at the end of the first film, there really is no novelty left for _The_Return_. All that remains are the formica acting and still-below-average English skills of Van Damme and the plot concept of having dead soldiers reanimated into invincible supersoldiers. The nothing plotline cooked up by _The_Return_'s "writers" (I won't dignify their "work" by mentioning their names) has the computer in charge of a new advanced brand of UniSols, SETH (eventually played in human form by Michael Jai White, a charismatic actor who at one point seemed to have a promising career), going berserk and hence making his UniSols go on a killing spree. The only one who can stop them of course, is Van Damme's Luc Deveraux, one of the original UniSols.
There is plenty of mayhem in _The_Return_; the film begins with an extended jetski/boat chase, and numerous fights and shootouts follow. Sounds interesting, and, if anything all the wild goings-on keep the viewer awake. But since they are so conventionally, matter-of-factly shot and staged by director Mic Rodgers, none of it was particularly exciting; one generic set piece comes after another, ultimately blurring into one unmemorable whole by the end of the film.
Perhaps Rodgers thought the mere presence of Van Damme would compensate, or that of one of his co-stars--Bill Goldberg, of World Championship Wrestling fame, who plays the evil Romeo. While not at the level of Lundgren's casting in the original, seeing Goldberg on the big screen does hold some curious interest. At least, that is, until it becomes painfully (if unsurprisingly) evident that Goldberg can't act a lick, and his one showcase scene, where he rips off his shirt for no apparent reason and dispatches some foes using some wrestling maneuvers, just makes his presence in the film even more ludicrous.
Van Damme has expressed his interest in making a break from the hard action scene and going into more classy thriller territory, à la _The_Thomas_Crown_Affair_. It's a ridiculous idea, but from Van Damme's standpoint, it's understandable.
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>Mr. Brown's Movie Site: http://welcome.to/mrbrown CompuServe Hollywood Hotline: http://www.HollywoodHotline.com on ICQ: #25289934 | on AOL Instant Messenger: MrBrown23
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Software Developer
Hello, World! My name is Levi Vary, and I'm a BLANK in the Bay Area of California. I love programming, designing electronics, building new and helpful gadgets, and much, much more.
I made this website to catalogue my personal projects. Below you'll find a library with documentation of the many things I enjoy working on. Whether you want to follow along, use one of my designs, or simply want entertainment, I have you covered!
HTML, CSS, JavaScript, BootStrap, ReactJS, SCSS, JQuery, Python, SQL, NodeJS, WordPress, Jekyll
Photoshop, Illustrator, Solidworks, AutoCAD, MatLab
I have a math degree and have taken multiple courses in computer science and physics; however, my most valuable experience comes from self-teaching, and trial and error on my personal projects.
Whether you have a question or just want to say hi, my inbox is always open. Email me and I'll do my best to quickly get back to you.
Say HelloYou can also find me on any of these websites:


--- layout: page description: "Javacafe Tech Blog" ---
Posted by {% if post.author %}{{ post.author }}{% else %}{{ site.title }}{% endif %} on {{ post.date | date: "%B %-d, %Y" }}


Introduction
DATA: Data is small volume of facts and figures
DATABASE: Database is large volume of facts and figures
Types of Data
1.Structured
2.Unstructured
3.Semi-Structured
Structured:
Structured data is data which have a predefined data model
Structured data conforms to a tabular format with the relationship between the different
rows and columns.
Semi-Structured:
Semi-structured data is a form of structured data that does not conform with the formal structure of data models
Unstructured:
Unstructured data is information that either does not
have a predefined data model or is not organized in a predefined manner.
Types of Databases
1.Centralized Database
2.Distributed Database
3.NoSQL Database
4.Cloud Database
5.Relational Database
6.Network Database
7.Hierarchical Database
➢Centralized Database: It is the type of database that stores data at a centralized database system. It comforts the users to access the stored data from different locations through several applications.
These applications contain the authentication process to let users access data securely.
➢Distributed Database: Unlike a centralized database system, in distributed systems, data is distributed among different database systems of an
organization. These database systems are connected via communication links. Such links help the end-users to access the data easily.
➢NoSQL Database: Non-SQL/Not Only SQL is a type of database that is used for storing a wide range of
data sets. It is not a relational database as it stores data not only in tabular form but in several different ways. It came into existence when the demand for building modern applications increased.
➢Cloud Database: Cloud database
facilitates you to store, manage, and retrieve their structured, unstructured data via a cloud platform. This data is accessible over the Internet.
➢Relational Database: This database is based on the relational data model, which stores
data in the form of rows(tuple) and columns(attributes), and together forms a table(relation). Four commonly known properties of a relational model known as ACID properties.
➢Network Database:In this model data is organized more like
a graph and are allowed to have more than one parent node.
➢Hierarchical Database:It is the type of database that stores data in the form of parent-childrenrelationship nodes.
RDBMS stands for Relational Database Management Systems.
Difference
between DBMS and RDBMS:
| DBMS |
RDBMS |
| DBMS stores data as a file |
RDBMS stores data in tabular form. |
| No relationship between data. |
Data is stored in the form of tables which are related to each other. |
| Normalization is not present. |
Normalization is present. |
| It deals with a small quantity of data |
It deals with a large amount of data |
| Data redundancy is common in this model |
Keys and indexes do not allow Data redundancy. |
| Examples: XML, Microsoft Access, etc. |
Examples: MySQL, PostgreSQL, SQL Server, Oracle, etc. |
RDBMS Software:
- Oracle
- MySQL
- PostgreSQL
- MS SQL
- IBM Db2
- MariaDB
History of MySQL:
MySQL was founded by David Axmark, Allan Larsson and Michael Monty Widenius
Initial release:23 May 1995
Stable release:8.0
Features of MySQL:
- Easy to use
- It is secure
- Free to download
- Allows roll-back
- High Performance
- GUI Support
- Compatible with many operating systems
Creation of table:
Create table student (
Id int,
Name varchar(20),
Marks int,
Grade varchar(5),
Contact int);
Inserting values into the table:
Insert into student values(1,’Arun’,35,’B’,9245673464);
Insert into student(id,name,marks,grade,contact) values (2,’Aruna’,38,’A’,958367826);


| sprite - sprite handle. Not to be confused with HandleSprite - ie. the handle used to position the sprite, rather than the sprite's actual handle |
|
Sets a sprite handle. Defaults to 0,0.
A sprite extends from -1,-1 to +1,+1. See also: LoadSprite, CreateSprite. |
|
Graphics3D 640,480
cam = CreateCamera() MoveEntity cam,0,0,-5 sp = CreateSprite() handlepos# = 0.0 While Not KeyDown(1) RenderWorld Color 100,100,100 Plot 320,240 Text 320,250,"Handle",True Flip HandleSprite sp,handlepos,handlepos handlepos = handlepos + 0.01 Wend End |


The Highest Quality Guide For Your Home Plant Nursery
Everybody wants to live in an urban jungle, but not everybody are capable of not being a serial plant
killer. PLNTRS.com with it's own ULTIMATE PLANT GUIDE will shift you to the other side, in which life is green
and full of joy. Come on in, enjoy nature!
the shop
Monstera
An impresive and easy to take-care, originally from South America


Brazil judge orders ex-president Lula released from prison
SAO PAULO/BRASILIA (Reuters) - A Brazilian judge ordered the release of former president Luiz Inacio Lula da Silva from prison on Friday, according to a court document, following a Supreme Court ruling ending the mandatory imprisonment of convicts after they lose their first appeal.


Class: Aws::ApplicationDiscoveryService::Types::CustomerMeCollectorInfo
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb |
Overview
The inventory data for installed Migration Evaluator collectors.
Constant Summary
Instance Attribute Summary
-
#active_me_collectors ⇒ Integer
rw
The number of active Migration Evaluator collectors.
-
#deny_listed_me_collectors ⇒ Integer
rw
The number of deny-listed Migration Evaluator collectors.
-
#healthy_me_collectors ⇒ Integer
rw
The number of healthy Migration Evaluator collectors.
-
#shutdown_me_collectors ⇒ Integer
rw
The number of Migration Evaluator collectors with
SHUTDOWN
status. -
#total_me_collectors ⇒ Integer
rw
The total number of Migration Evaluator collectors.
-
#unhealthy_me_collectors ⇒ Integer
rw
The number of unhealthy Migration Evaluator collectors.
-
#unknown_me_collectors ⇒ Integer
rw
The number of unknown Migration Evaluator collectors.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#active_me_collectors ⇒ Integer
(rw)
The number of active Migration Evaluator collectors.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end
#deny_listed_me_collectors ⇒ Integer
(rw)
The number of deny-listed Migration Evaluator collectors.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end
#healthy_me_collectors ⇒ Integer
(rw)
The number of healthy Migration Evaluator collectors.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end
#shutdown_me_collectors ⇒ Integer
(rw)
The number of Migration Evaluator collectors with SHUTDOWN
status.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end
#total_me_collectors ⇒ Integer
(rw)
The total number of Migration Evaluator collectors.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end
#unhealthy_me_collectors ⇒ Integer
(rw)
The number of unhealthy Migration Evaluator collectors.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end
#unknown_me_collectors ⇒ Integer
(rw)
The number of unknown Migration Evaluator collectors.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 599
class CustomerMeCollectorInfo < Struct.new( :active_me_collectors, :healthy_me_collectors, :deny_listed_me_collectors, :shutdown_me_collectors, :unhealthy_me_collectors, :total_me_collectors, :unknown_me_collectors) SENSITIVE = [] include Aws::Structure end


will be changed by a callback function
will be changed by another callback function
will be changed by another other callback function


Welcome devs, I recently faced an issue where if I didn’t specify any android:inputType
for EditText
then keyboard capitalisation did not correctly show. The deeper problem was that I always forgot to include that attribute. So I decided to use a lint check which would fail my build if any of my EditText
does not have the android:inputType
attribute.
Since there was no such thing included in pre-provided checks I decided to write a custom lint rule. What follows is a guide on how to write a lint-check which goes checks all of our layout files and flags any EditText
without android:inputType
attribute.
What is Android lint?
Android lint is a tool which provides us static code-analysis (it does not need to run the application to identify potential problems). The Android SDK already provides us with some pre-made lint checks, but the best part is that it allows us to write our own custom lint checks.
Writing a custom lint check
We will be writing a lint check which checks whether each EditText
, androidx.appcompat.widget.AppCompatEditText
and android.support.v7.widget.AppCompatEditText
has the android:inputType
attribute defined or not.
This lint check is set to fail the build when it finds any of the above element not containing the android:inputType
attribute.
Create a new Library Module
In the project for which you want to write the lint check, add a new “Java or Kotlin Library” module.
- For Library name you can put anything but I have used
lint-checks
- For Class name put
LintRegistry
(we will get to the reasoning later) - I have selected Kotlin as the language
Add dependencies in Gradle
You only need 3 dependencies in your lint-checks
module’s build.gradle
and all of them need to be only compileOnly
dependencies {
compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
compileOnly "com.android.tools.lint:lint-api:26.6.0"
compileOnly "com.android.tools.lint:lint-checks:26.6.0"
}
Create the detector
Now let’s write the class which will actually detect the issues. We create a new class named InputTypeDetector
which extends from LayoutDetector
class InputTypeDetector : LayoutDetector() {
...
}
Now we specify the Issue that we want our detector to raise when we find and edit-text without input-type. We declare it as a property under companion object of this class (and mark it with @JvmStatic
so that it appears as static field when accessed from Java code).
companion object {
@JvmStatic
internal val ISSUE_MISSING_INPUT_TYPE = Issue.create(
id = "MissingInputType",
briefDescription = "Specify inputType attribute to get proper keyboard shown by system.",
explanation = "You should specify an inputType for each EditText so that you can get the proper keyboard to be shown by system.",
category = Category.USABILITY,
priority = 8,
severity = Severity.ERROR,
implementation = Implementation(
InputTypeDetector::class.java,
Scope.ALL_RESOURCES_SCOPE
)
).addMoreInfo("https://developer.android.com/training/keyboard-input/style")
}
The important things here are:
id
- The name which is shown in the lint reportseverity
- There are many types of severity, here we have specifiedERROR
as we want the build to fail when we find this issueimplementation
- The implementation defines which XML files to scan for this issue and which detector to use to detect this issue.
After that we override the function getApplicableElements
, where we specify for which elements we want this detector to be run (so that our detector doesn’t get unnecessarily called for every element).
override fun getApplicableElements(): Collection<String>? {
return listOf(
SdkConstants.EDIT_TEXT,
"androidx.appcompat.widget.AppCompatEditText",
"android.support.v7.widget.AppCompatEditText"
)
}
Since we only want our detector to be called for EditText
, androidx.appcompat.widget.AppCompatEditText
and android.support.v7.widget.AppCompatEditText
we return a list of all of them.
The last thing remaining to be done in detector is to actually determine if any given element has the problem or not. For that we override the visitElement
method.
override fun visitElement(context: XmlContext, element: Element) {
if (!element.hasAttribute(SdkConstants.ATTR_INPUT_TYPE)) { // Check if the element has the `android:inputType` attribute
context.report(
issue = ISSUE_MISSING_INPUT_TYPE, // The issue that we defined above
location = context.getLocation(element),
message = ISSUE_MISSING_INPUT_TYPE.getExplanation(TextFormat.TEXT)
)
}
}
Here we are doing 2 things
- Checking if given element has the
android:inputType
attribute or not - Raise the issue if the
android:inputType
attribute is not present
Note: One thing you might have noticed is the location
parameter, that is used by the lint
tool to show exactly where any issue is reported.
Registering the Issue
Now we have declared the issue and corresponding detector, but we need to register them at a central location so that the lint tool knows that it has to execute these checks too. For that we go back to our LintRegistry
class that we declared earlier when creating the lint-checks
module.
We extend that class from IssueRegistry
class and override a couple of properties.
class LintRegistry : IssueRegistry() {
override val api: Int
get() = CURRENT_API
override val issues: List<Issue>
get() = listOf(
InputTypeDetector.ISSUE_MISSING_INPUT_TYPE
)
}
Any future issues that we declare/write are to be added to this issues
property list.
Registering our Issue Registry
We now need to declare this class within the manifest of our JAR. We do this in our build script. Add the following block under your lint-checks
module’s build.gradle
file
jar {
manifest {
// Format is
// attributes("Lint-Registry-v2": "<fully-qualified-class-name-of-your-issue-registry>")
attributes("Lint-Registry-v2": "com.varunbarad.androidlintchecks.LintRegistry")
}
}
Integrating our custom lint check module into our project
In your app
module go and add a lintChecks
dependency on your lint-checks
module like this
dependencies {
lintChecks project(":lint-checks")
...
}
Run the lint checks
That was all that was needed to write your custom lint check. Now whenever you run a lint check using gradle, it will also check whether your code passes our custom lint checks or not.
# Command to run lint check
./gradlew lint
Want to discuss this or any other interesting thing, hit me up on Twitter @varun_barad.
Edits
- 2020-03-02: Add the step of “Registering our Issue Registry”


--- layout: default date: 2019-12-06 title: Computing/ liquid: ---
Home/ Computing/ Editors, Formatting, Languages, Unix, Web
A general description of topics in computing related to web publishing.
CSS/
HTML/
SVG/
The Jekyll Web Page Generator and Server
AsciiDoc/
Rimu/
Vim/
Emacs/
JavaScript/
Ruby
git


An intermediate code file consists of:
| intermediate‑code‑file | → | compile‑unit‑header type‑declarations? data‑definitions? function‑definitions? metadata‑declarations? |
| compile‑unit‑header | → | cu ( compile‑unit‑id , metadata‑ref ) |
| compile‑unit‑id | → | hex‑number | number | identifier |
| hex‑number | → | hex‑digit+ |
| hex‑digit | → | [0-9A-Fa-f] |
| number | → | sign? (fractional‑part | digit+) exponent‑part? |
| sign | → | + | - |
| digit | → | [0-9] |
| fractional‑part | → | digit* . digit+ | digit+ . |
| exponent‑part | → | (e | E) sign? digit+ |
| identifier | → | id‑start id‑cont* |
| id‑start | → | 'Unicode characters having ID_Start Property' | _ |
| id‑cont | → | 'Unicode characters having ID_Continue Property' | @ | _ |
| metadata‑ref | → | ! digit+ |
The types of the intermediate language can be grouped into fundamental and compound types.
The following table contains a summary of fundamental types:
| type | kind | signed | unsigned | size | range |
|---|---|---|---|---|
| void | - | - | - | - |
| bool | Boolean | - | 1 byte | true | false |
| sbyte | integer | signed | 1 byte | -128...127 |
| byte | integer | unsigned | 1 byte | 0...255 |
| short | integer | signed | 2 bytes | -32768...32767 |
| ushort | integer | unsigned | 2 bytes | 0...65535 |
| int | integer | signed | 4 bytes | -2147483648...2147483647 |
| uint | integer | unsigned | 4 bytes | 0...4294967295 |
| long | integer | signed | 8 bytes | -9223372036854775808...9223372036854775807 |
| ulong | integer | unsigned | 8 bytes | 0...18446744073709551615 |
| float | floating-point | - | 4 bytes | IEEE single precision floating-point type range |
| double | floating-point | - | 8 bytes | IEEE double precision floating-point type range |
The void keyword represents lack of type.
Other fundamental types can be divided into Boolean, integer and floating-point types.
The integer and floating-point types are together called the arithmetic types.
There are four kinds of compound types:
The structured, array and function types used in the intermediate file has to be declared in the type declaration part of the intermediate file.
A structured type consists of a non-empty sequence of fields. Each field has a type identified using a type-ref.
A structured type has to be declared using a structure‑type‑declaration.
An array type consists of a non-empty sequence of elements of the same type. The type of the elements are identified using a a type-ref.
An array type has to be declared using a array‑type‑declaration.
A function type consists of the return type and the types of the parameters of a function. The return type and the types of the parameters are identified using a type-ref.
An function type has to be declared using a function‑type‑declaration.
A pointer type is identified using a type-ref that consists of a prefix that identifies a base type and a suffix consisting of one or more * symbols.
The base type may be fundamental type, a structured type, an array type or a function type.
The value of a pointer type object is a memory address of the pointed-to object.
| type‑declarations | → | types { type‑declaration* } |
| type‑declaration | → | type‑id = type ( structure‑type‑declaration | array‑type‑declaration | function‑type‑declaration ) |
| structure‑type‑declaration | → | { type‑ref ( , type‑ref )* } |
| array‑type‑declaration | → | [ array‑size x type‑ref ] |
| function‑type‑declaration | → | function return‑type ( ( param‑type (, param‑type)* )? ) |
| return‑type | → | type‑ref |
| param‑type | → | type‑ref |
| type‑ref | → | base‑type ** |
| base‑type | → | type‑id | fundamental‑type |
| type‑id | → | $T digit+ |
| fundamental‑type | → | void | bool | sbyte | byte | short | ushort | int | uint | long | ulong | float | double |
| array‑size | → | digit+ |
| data‑definitions | → | data { data‑definition* } |
| data‑definition | → | type‑ref once? identifier ( ; | = initializer ) |
| initializer | → | constant |
The once flag denotes that identical data definitions may occur many times in different translation units. The linker chooses one of them and throws the rest away.
| constant | → | bool‑constant | sbyte‑constant | byte‑constant | short‑constant | ushort‑constant | int‑constant | uint‑constant | long‑constant | ulong‑constant | float‑constant | double‑constant | address‑constant | array‑constant | structure‑constant | string‑constant | string‑array‑constant | conversion‑constant | clsid‑constant | symbol‑constant |
| bool‑constant | → | bool (true | false) |
| sbyte‑constant | → | sbyte number |
| byte‑constant | → | byte number |
| short‑constant | → | short number |
| ushort‑constant | → | ushort number |
| int‑constant | → | int number |
| uint‑constant | → | uint number |
| long‑constant | → | long number |
| ulong‑constant | → | ulong number |
| float‑constant | → | float number |
| double‑constant | → | double number |
| address‑constant | → | ptr‑type ( null | identifier ) |
| ptr‑type | → | type‑ref |
| array‑constant | → | [ (constant (, constant)* )? ] |
| structure‑constant | → | { (constant (, constant)* )? } |
| string‑constant | → | " [^\r\n]* " |
| string‑array‑constant | → | string‑array‑prefix [ (constant (, constant)* )? ] |
| string‑array‑prefix | → | u | w | b |
| conversion‑constant | → | type‑ref conv ( constant ) |
| clsid‑constant | → | type‑ref clsid ( (hex‑digit | -)+ ) |
| symbol‑constant | → | type‑ref symbol‑value |
| value | → | reg‑value | symbol‑value | literal‑value |
| reg‑value | → | $ digit+ |
| symbol‑value | → | @ identifier |
| literal‑value | → | true | false | null | number | identifier |
| ptr-value | → | value |
| function‑definitions | → | function‑definition* |
| function‑definition | → | function‑header { basic‑block* } |
| function‑header | → | function function‑type‑id once? identifier metadata‑ref? |
| function‑type‑id | → | type‑id |
| basic‑block | → | label instructions |
| label | → | @ digit+ |
The once flag denotes that identical function definitions may occur many times in different translation units. The linker chooses one of them and throws the rest away.
| add‑instruction | → | add |
The 'add' instruction sets the result to the sum of its operands.
The type of the result and the types of the operands must be the same. The type must be an arithmetic type.
| and‑instruction | → | and |
The 'and' instruction sets the result to the bitwise AND of its left and right operands.
The type of the result and the types of the operands must be the same. The type must be an integer or Boolean type.
| arg‑instruction | → | arg type‑ref value |
The 'arg' instruction passes a function argument to a following function call, procedure call or trap.
The type of the operand must be an aritmetic, pointer or Boolean type.
| bitcast‑instruction | → | bitcast |
The 'bitcast' instruction sets the result to its operand converted to a target type without changing the bits of the operand.
The type of the operand must be an aritmetic, pointer, function or Boolean type. The type of the result must be an arithmetic, pointer, function or Boolean type.
| branch‑instruction | → | branch type‑ref value , label , label |
The 'branch' instruction transfers control to the intermediate instruction that has the true-target label if condition is true and to the intermedite instruction that has the false-target label if condition is false.
The type of the operand must be a Boolean type.
| function‑call‑instruction | → | call function‑type‑id callee |
| function‑type‑id | → | type‑id |
| callee | → | value |
The function call 'call' instruction calls the 'callee' function that returns a result.
The type of the 'callee' must be a function or a pointer to function type. The type of the result must be the type returned by the 'callee' function.
| procedure‑call‑instruction | → | call procedure‑type‑id callee |
| procedure‑type‑id | → | type‑id |
| callee | → | value |
The procedure call 'call' instruction calls the void 'callee' function.
The type of the 'callee' must be a function or a pointer to function type.
| div‑instruction | → | div |
The 'div' instruction sets the result to the quotient of its left operand divided by its right operand.
The type of the result and the types of the operands must be the same. The type must be an arithmetic type.
| elemaddr‑instruction | → | elemaddr operand , operand |
The 'elemaddr' instruction sets the result to an address of an index'th element from an aggregate pointed by ptr.
The type of the 'ptr' must be a a pointer type. The type of the result must be a pointer to the element type.
| equal‑instruction | → | equal |
The 'equal' instruction sets the result to true if its left and right operands are equal and false otherwise.
The type of the operands must be the same. The type of the operands must be an arithmetic, pointer of Boolean type. The type of the result must be a Boolean type.
| floattoint‑instruction | → | floattoint |
The 'floattoint' instruction sets the result to its floating-point type operand converted to an integer type.
The type of the operand must be a floating-point type. The type of the result must be an integer type.
| inttofloat‑instruction | → | inttofloat |
The 'inttofloat' instruction sets the result to its integer type operand converted to a floating-point type.
The type of the operand must be an integer type. The type of the result must be a floating-point type.
| inttoptr‑instruction | → | inttoptr |
The 'inttoptr' instruction sets the result to its integer type operand converted to a pointer type.
The type of the operand must be an integer type. The type of the result must be a pointer type.
| jmp‑instruction | → | jmp label |
The 'jmp' instruction transfers control to the intermediate instruction that has the given label.
| less‑instruction | → | less |
The 'less' instruction sets the result to true if its left operand is less than its right operand and false otherwise.
The type of the operands must be the same. The type of the operands must be an arithmetic or pointer type. The type of the result must be a Boolean type.
| load‑instruction | → | load operand |
The 'load' instruction reads from memory.
The type of the operand must be a pointer type. The type of the result must be the type of the value pointed by the 'from' pointer.
| local‑instruction | → | local type‑ref |
The 'local' instruction allocates space for a local variable from a function frame.
The type of the result must a pointer to a local variable type.
| mod‑instruction | → | mod |
The 'mod' instruction sets the result to the remainder of the division of its left and right operands.
The type of the result and the types of the operands must be the same. The type must be an integer type.
| mul‑instruction | → | mul |
The 'mul' instruction sets the result to the product of its operands.
The type of the result and the types of the operands must be the same. The type must be an arithmetic type.
| neg‑instruction | → | neg |
The 'neg' instruction sets the result to its operand subtracted from zero.
| no‑operation‑instruction | → | nop |
The 'nop' instruction is a no-operation.
| not‑instruction | → | not |
If the operand of the 'not' instruction is a Boolean value, the instruction sets a Boolean type result to true if its operand is false and false if its operand is true. If the operand of the 'not' instruction is a an integer value, the instruction sets an integer type result to the bitwise complement of its operand.
The type of the result and the type of the operand must be the same. The type of the operand must be an integer or a Boolean type.
| or‑instruction | → | or |
The 'or' instruction sets the result to the bitwise OR of its left and right operands.
The type of the result and the types of the operands must be the same. The type must be an integer or Boolean type.
| param‑instruction | → | param |
The 'param' instruction receives a value of a function parameter of a given type.
| ptrdiff‑instruction | → | ptrdiff operand , operand |
The 'ptrdiff' instruction sets the result to the number of elements between pointers left-ptr and right-ptr.
The type of the operands must be the same. The type of the operands must be a pointer type. The type of the result must be an integer type.
| ptroffset‑instruction | → | ptroffset operand , operand |
The 'ptroffset' instruction sets the result to an address of an element having given offset added to pointer ptr.
The type of the left operand must be a pointer type. The type of the 'offset' must be an integer type. The type of the result must be a pointer type.
| ptrtoint‑instruction | → | ptrtoint |
The 'ptrtoint' instruction converts its pointer type operand to an integer type.
The type of the operand must be a pointer type. The type of the result must be an integer type.
| ret‑instruction | → | ret (void | type‑ref value) |
The 'ret' instruction has two forms: The first form is used for returning control from a void function, and the second form is used for returning a value from a non-void function.
| shl‑instruction | → | shl |
The 'shl' instruction sets the result to its left operand shifted left by the number of bit positions indicated by its right operand.
The type of the result and the types of the operands must be the same. The type must be an integer type.
| shr‑instruction | → | shr |
The 'shr' instruction sets the result to its left operand shifted right by the number of bit positions indicated by its right operand.
The type of the result and the types of the operands must be the same. The type must be an integer type.
| signextend‑instruction | → | signextend |
The 'signextend' instruction increases the number of bits of its operand while preserving the value of its operand. If the operand is non-negative the vacant most significant bit positions of the result are filled with zero bits, otherwise the vacant most significant bit positions of the result are fillled with one bits.
The type of the result and the type of the operand must be the same. The type must be an aritmetic type.
| store‑instruction | → | store type‑ref value , type‑ref ptr‑value |
The 'store' instruction writes a value to the memory location pointed by ptr.
The type of the 'ptr' must be a pointer type.
| sub‑instruction | → | sub |
The 'sub' instruction sets the result to the difference of its operands.
The type of the result and the types of the operands must be the same. The type must be an arithmetic type.
| switch‑instruction | → | switch type‑ref value label , [ type‑ref value , label (: type‑ref value , label)* ] |
The 'switch' instruction transfers control to an instruction having a label case-target if the condition is equal to the value associated with the case-target. If none of the values associated with case-targets match the condition, control is transfered to the instruction having label default-target.
The type of the 'condition' must be an integer or Boolean type. The type of each case value must be the same as the type of the condition.
| trap‑instruction | → | trap type‑ref value , type‑ref value , type‑ref value |
The 'trap' instruction calls a virtual operating system trap. See System X Kernel Traps.
The types of the operands shall be byte. The second byte operand shall contain the number of the virtual operating system trap to be called, the first and the third byte operands shall be zero. The arguments to the trap function shall be passed using the arg instruction.
| truncate‑instruction | → | truncate |
The 'truncate' instruction truncates its operand by throwing away the most significant bits of the operand so that it fits the type of the result.
The type of the operand must be an aritmetic type. The type of the result must be an arithmetic or Boolean type.
| xor‑instruction | → | xor |
The 'xor' instruction sets the result to the bitwise exclusive OR of its left and right operands.
The type of the result and the types of the operands must be the same. The type must be an integer or Boolean type.
| zeroextend‑instruction | → | zeroextend |
The 'zeroextend' instruction increases the number of bits of its operand by adding zero bits to the vacant most significant bit positions of the result.
The type of the operand must be an aritmetic or Boolean type. The type of the result must be an arithmetic type.
| metada‑declarations | → | metadata { mdstruct* } |
| mdstruct | → | ! digit+ = { (mdfield (, mdfield)*)? } |
| mdfield | → | identifier : mditem |
| mditem | → | mdbool | mdlong | mdstring | metadata‑ref |
| mdbool | → | true | false |
| mdlong | → | number |
| mdstring | → | string‑constant |


Dashboard
Server Status
Server is currently $_status
The server is running normally and no issues have recently been detected. If you notice an outage, please report it to the administrator.
CSGO Status
Cheat is currently $_status
The server is running normally and no issues have recently been detected. If you notice an outage, please report it to the administrator.
Active Users
12
Overview
Download
Cheat Client
Latest Version: v$_VERSION
changelog here
About
Developer
uplusion23
Dashboard Version
1.0.0


The Lion King. Incredible 2 Aladin Lego injagow
The Lego Movie. Shrek(all of them exept the musical). kungfu panda 1 2. How to train your dragon one and two. Aang was the best Avatar ever. Aang had feelings for katara. Nationality: Southern Air Temple. Roku came before him. korra came after him. Aang is a male air nomad. He learnt energybending from the energy lion turtle. He is the only avatar actually known for using this bending. Aang was frozen in an ice berg for 100 years of war. He was personally chased around the world by Zuko before Zuko changed. He was the friend of prince sozin His future wife was Ta Min. kioshi came before him. Aang the best avatar came after him. This guy said one word and for 100 years their was a war. Then he tried to prevent it and failed terribly. Monk Gyatso was his air bending tearcher he faught with all the bending but he faught water Northern Water Tribe style. In his life he tried to be diciplined.
Avatar the last air bender Lego Ninjago SpongeBob SquarePants Gravity falls
TMNT(Teenage Mutant Ninja Turtles) Henry danger. KC undercover. Labrats (Word of advice dark apocolipse war cannot be seen even with adult supervision if your a kid like me.) Mufasa was a good king. Mufasa was not bad. Mufasa never thought of himslef as king was not to boss his kingdom around it was to protect it. Mufasa maried sarabi. Together they had a bay called simba. Sometimes Mufasa anoined his brother. He was betared on his day of death.Scar was a very bad lion. First of all he tried to comit murder to his nephew. Second he betared mufasa.


{% load staticfiles %}
{{ title }}
Now think of someone important to you {{ second_person }}
{% csrf_token %}
What is her/his name?
Gender
Male
Female
How old is she/he?
Where does she/he live?


Simple Data Binding Example
Show simple concepts of data binding!
First Example Using Simple Binds
First Name
Last Name
Full Name