/** Returns a Sort instance for convenience. Multiple threads must not use this instance at the same time. */ static public Sort instance () { if (instance == null) instance = new Sort(); return instance; } }
/** Returns a Sort instance for convenience. Multiple threads must not use this instance at the same time. */ static public Sort instance () { if (instance == null) instance = new Sort(); return instance; } }
@Override protected void processSystem() { Bag<Entity> entities = getEntities(); Sort sort = Sort.instance(); sort.sort(entities, new Comparator<Entity>() { @Override public int compare(Entity o1, Entity o2) { Transform t1 = mTransform.get(o1); Transform t2 = mTransform.get(o2); if (t1.z < t2.z) { return 1; } else if (t1.z > t2.z) { return -1; } else { return 0; } } }); for (Entity e : entities) { process(e); } }
/** * add custom field handler with resolvers. */ protected void registerFieldResolvers(WorldConfiguration config) { if (fieldResolvers.size() > 0) { Sort.instance().sort(fieldResolvers); // instance default field handler final FieldHandler fieldHandler = new FieldHandler(InjectionCache.sharedCache.get()); for (ConfigurationElement<? extends FieldResolver> configurationElement : fieldResolvers) { fieldHandler.addFieldResolver(configurationElement.item); } config.setInjector(new CachedInjector().setFieldHandler(fieldHandler)); } }
/** * add custom field handler with resolvers. */ protected void registerFieldResolvers(WorldConfiguration config) { if (fieldResolvers.size() > 0) { Sort.instance().sort(fieldResolvers); // instance default field handler final FieldHandler fieldHandler = new FieldHandler(InjectionCache.sharedCache.get()); for (ConfigurationElement<? extends FieldResolver> configurationElement : fieldResolvers) { fieldHandler.addFieldResolver(configurationElement.item); } config.setInjector(new CachedInjector().setFieldHandler(fieldHandler)); } }