本文整理汇总了Java中com.artemis.utils.IntBag.size方法的典型用法代码示例。如果您正苦于以下问题:Java IntBag.size方法的具体用法?Java IntBag.size怎么用?Java IntBag.size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.artemis.utils.IntBag
的用法示例。
在下文中一共展示了IntBag.size方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: killCheapestUnit
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
public void killCheapestUnit() {
int productivity = 999;
int cheapestId=-1;
IntBag actives = subscription.getEntities();
int[] ids = actives.getData();
for (int i = 0, s = actives.size(); s > i; i++) {
int entity = ids[i];
Minion minion = mMinion.get(entity);
if ( minion.productivity < productivity && !mSchedule.has(entity) )
{
productivity = minion.productivity;
cheapestId = entity;
}
}
if ( cheapestId != -1 )
{
explode(cheapestId);
}
}
示例2: toggleHighlightedActors
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
/**
* toggles highlighted state of actor that is on the same tile as the mouse is
* over
*/
private boolean toggleHighlightedActors() {
boolean toggled = false;
@SuppressWarnings("unchecked")
final EntitySubscription entitySubscription = GameEngine.getInstance().getAspectSubscriptionManager()
.get(Aspect.all(PositionComponent.class, HighlightAbleComponent.class)
.exclude(CursorComponent.class));
final IntBag entities = entitySubscription.getEntities();
PositionComponent positionComponent;
HighlightAbleComponent highlight;
for (int i = 0; i < entities.size(); i++) {
positionComponent = ComponentMappers.getInstance().position.get(i);
if (positionComponent.getX() == mouseOverX && positionComponent.getY() == mouseOverY) {
highlight = ComponentMappers.getInstance().highlight.get(i);
highlight.toggleHighlighted();
toggled = true;
}
}
return toggled;
}
示例3: processTurnTaken
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
/**
* checks if all entities have their turn taken for the current turn
*
* @param _currentTurnSide
*/
private void processTurnTaken() {
if (checkReadyToSwitchTurns()) {
// reset turn components
final IntBag entities = getAspectSubscriptionManager().get(Aspect.all(TurnComponent.class))
.getEntities();
TurnComponent turnComponent;
for (int i = 0; i < entities.size(); i++) {
turnComponent = ComponentMappers.getInstance().turn.get(entities.get(i));
if (turnComponent.getMovesOnTurn() == currentTurnSide) {
turnComponent.setTurnTaken(false);
turnComponent.setProcessed(false);
}
}
// switch sides
currentTurnSide = currentTurnSide == ETurnType.PLAYER ? ETurnType.MONSTER : ETurnType.PLAYER;
Gdx.app.debug("GameEngine", "switching turn sides to " + ETurnType.toString(currentTurnSide));
}
}
示例4: display
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
@Override
public void display(final AsciiPanel terminal)
{
final int playerId = pManager.getEntitiesOfPlayer("player").get(0).getId();
terminal.clear(' ');
drawHeader(terminal);
final Inventory inv = mInventory.get(playerId);
final ArrayList<String> elements = new ArrayList<>();
final IntBag items = inv.items;
for (int i = 0, size = items.size(); i < size; i++)
{
final int itemId = items.get(i);
if (!canDraw(itemId))
continue;
elements
.add(String.format("%s %s", mName.get(itemId).name.toLowerCase(), mEquip.has(itemId) ? " [WORN]" : ""));
}
drawList(terminal, elements);
}
示例5: processSystem
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
@Override
protected void processSystem() {
final IntBag entities = subscription.getEntities();
final int processedPerSecond = (int) ((entities.size() / getRoundTripTime()));
// Depending on subscription size invocation could potentially require less than
// one invocation. Keep track of 'partial' invocations until we can invoke.
entitiesToProcess += processedPerSecond * getWorldDelta();
if (entitiesToProcess >= 1f) {
processEntities((int) entitiesToProcess, entities.getData(), entities.size());
// keep remainder.
entitiesToProcess -= (int) entitiesToProcess;
}
}
示例6: processSystem
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
/**
* Iterate over all entities.
*
* Stop when allotted time has passed.
* Stop when all entities have been cycled.
*/
@Override
protected final void processSystem() {
final IntBag actives = subscription.getEntities();
final int[] array = actives.getData();
final int size = actives.size();
int processed = 0;
if ( size > 0 ) {
long time = getTime();
final long deadline = time + (long) (getAllottedTime() * MILLISECONDS_PER_SECOND);
index = index % size; // avoid breakage upon subscription changes.
while ((processed < size) && (time < deadline)) {
lastProcessedEntityId = array[index];
process(lastProcessedEntityId);
index = ++index % size;
processed++;
time = getTime();
}
}
processedEntities = processed;
}
示例7: reloadFonts
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
public void reloadFonts (boolean reloadBmpFonts, boolean reloadTtfFonts) {
IntBag bag = subscription.getEntities();
int[] data = bag.getData();
for (int i = 0; i < bag.size(); i++) {
int id = data[i];
Entity entity = world.getEntity(id);
VisText text = textCm.get(entity);
VisAssetDescriptor asset = assetCm.get(entity).asset;
if (asset instanceof BmpFontAsset && reloadBmpFonts)
text.setFont(fontCache.get((BmpFontAsset) asset, pixelInUnits));
if (asset instanceof TtfFontAsset && reloadTtfFonts)
text.setFont(fontCache.get((TtfFontAsset) asset, pixelInUnits));
}
}
示例8: reloadTextures
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
public void reloadTextures () {
IntBag bag = subscription.getEntities();
int[] data = bag.getData();
for (int i = 0; i < bag.size(); i++) {
int id = data[i];
Entity entity = world.getEntity(id);
VisSprite sprite = spriteCm.get(entity);
VisAssetDescriptor asset = assetCm.get(entity).asset;
boolean flipX = sprite.isFlipX();
boolean flipY = sprite.isFlipY();
sprite.setRegion(textureCache.getRegion(asset));
sprite.setFlip(flipX, flipY);
}
}
示例9: reloadParticles
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
public void reloadParticles () {
IntBag bag = subscription.getEntities();
int[] data = bag.getData();
for (int i = 0; i < bag.size(); i++) {
int id = data[i];
Entity entity = world.getEntity(id);
VisParticle particle = particleCm.get(entity);
VisAssetDescriptor asset = assetCm.get(entity).asset;
particle.getEffect().dispose();
particle.setEffect(particleCache.get(asset, 1f / pixelsPerUnit));
transformCm.get(entity).setDirty(true);
}
}
示例10: getEntitiesWithLayer
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
public ImmutableBag<Entity> getEntitiesWithLayer (int layerId) {
Bag<Entity> entities = new Bag<Entity>();
IntBag bag = subscription.getEntities();
int[] data = bag.getData();
for (int i = 0; i < bag.size(); i++) {
int id = data[i];
Entity entity = world.getEntity(id);
Layer layer = layerCm.get(entity);
if (layer.layerId == layerId)
entities.add(entity);
}
return entities;
}
示例11: swapLayers
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
/**
* Swaps layers id in entities. This SHOULD NOT be used directly because it does not update internal layer structure
* in {@link EditorScene}. Layers order is managed by {@link LayersDialog}
*/
public void swapLayers (int id1, int id2) {
IntBag bag = subscription.getEntities();
int[] data = bag.getData();
for (int i = 0; i < bag.size(); i++) {
int id = data[i];
Entity entity = world.getEntity(id);
Layer layer = layerCm.get(entity);
if (layer.layerId == id1) layer.layerId = id2;
else if (layer.layerId == id2) layer.layerId = id1;
}
renderBatchingSystem.markDirty();
}
示例12: reloadSpriterData
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
public void reloadSpriterData () {
IntBag bag = subscription.getEntities();
int[] data = bag.getData();
for (int i = 0; i < bag.size(); i++) {
int id = data[i];
Entity entity = world.getEntity(id);
VisSpriter spriter = spriterCm.get(entity);
SpriterAsset asset = (SpriterAsset) assetCm.get(entity).asset;
VisSpriter newSpriter = spriterCache.cloneComponent(asset, spriter);
entity.edit().remove(spriter).add(newSpriter);
transformCm.get(entity).setDirty(true);
//we've replaced SpriterComponent in entity so proxy needs manual reloading
entityProxyCache.get(entity).reload();
}
spriterCache.disposeOldLoaders();
}
示例13: processSystem
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
/**
* Updates the {@link #stateTime}.
*/
@Override
protected void processSystem() {
if (stateTime == Float.MAX_VALUE)
stateTime = 0;
stateTime += getWorld().getDelta();
IntBag actives = subscription.getEntities();
int[] ids = actives.getData();
for (int i = 0, s = actives.size(); s > i; i++) {
process(ids[i]);
}
}
示例14: hasDolphins
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
private boolean hasDolphins() {
IntBag dudes = getDudes();
int[] ids = dudes.getData();
for (int i = 0, s = dudes.size(); s > i; i++) {
E e = E.E(ids[i]);
if (e.hasDolphinized()) return true;
}
return false;
}
示例15: hasNonDolphins
import com.artemis.utils.IntBag; //导入方法依赖的package包/类
private boolean hasNonDolphins() {
IntBag dudes = getDudes();
int[] ids = dudes.getData();
for (int i = 0, s = dudes.size(); s > i; i++) {
E e = E.E(ids[i]);
if (!e.hasDolphinized()) return true;
}
return false;
}