mirror of
https://github.com/MapMakersAndProgrammers/TankiOnline2.0DemoClient.git
synced 2025-10-26 09:59:07 -07:00
package_26 alternativa.tanks.game.utils.objectpool
This commit is contained in:
@@ -6,7 +6,7 @@ package alternativa.tanks.game
|
||||
import alternativa.tanks.game.subsystems.eventsystem.IEventSystem;
|
||||
import alternativa.tanks.game.subsystems.inputsystem.InputSystem;
|
||||
import alternativa.tanks.game.subsystems.inputsystem.IInput;
|
||||
import package_26.name_100;
|
||||
import alternativa.tanks.game.utils.objectpool.ObjectPoolManager;
|
||||
import package_27.name_180;
|
||||
import package_42.name_177;
|
||||
import package_42.name_184;
|
||||
@@ -63,7 +63,7 @@ package alternativa.tanks.game
|
||||
|
||||
private var var_38:int;
|
||||
|
||||
private var var_40:name_100;
|
||||
private var var_40:ObjectPoolManager;
|
||||
|
||||
public function GameKernel(stage:Stage, options:Object)
|
||||
{
|
||||
@@ -71,7 +71,7 @@ package alternativa.tanks.game
|
||||
this.var_43 = stage;
|
||||
this.var_36 = options || {};
|
||||
this.var_39 = new Vector.<Entity>();
|
||||
this.var_40 = new name_100();
|
||||
this.var_40 = new ObjectPoolManager();
|
||||
this.var_4 = new TaskManager();
|
||||
this.var_44 = new name_182(TIME_SYSTEM_PRIORITY);
|
||||
this.var_4.addTask(this.var_44);
|
||||
@@ -120,7 +120,7 @@ package alternativa.tanks.game
|
||||
this.var_42.name_187(command);
|
||||
}
|
||||
|
||||
public function method_108() : name_100
|
||||
public function method_108() : ObjectPoolManager
|
||||
{
|
||||
return this.var_40;
|
||||
}
|
||||
|
||||
41
src/alternativa/tanks/game/utils/objectpool/ObjectPool.as
Normal file
41
src/alternativa/tanks/game/utils/objectpool/ObjectPool.as
Normal file
@@ -0,0 +1,41 @@
|
||||
package alternativa.tanks.game.utils.objectpool
|
||||
{
|
||||
public class ObjectPool
|
||||
{
|
||||
private var objectClass:Class;
|
||||
|
||||
private var objects:Vector.<Object> = new Vector.<Object>();
|
||||
|
||||
private var numObjects:int;
|
||||
|
||||
public function ObjectPool(objectClass:Class)
|
||||
{
|
||||
super();
|
||||
this.objectClass = objectClass;
|
||||
}
|
||||
|
||||
public function name_110() : Object
|
||||
{
|
||||
if(this.numObjects == 0)
|
||||
{
|
||||
return new this.objectClass(this);
|
||||
}
|
||||
var object:Object = this.objects[--this.numObjects];
|
||||
this.objects[this.numObjects] = null;
|
||||
return object;
|
||||
}
|
||||
|
||||
public function clear() : void
|
||||
{
|
||||
this.objects.length = 0;
|
||||
this.numObjects = 0;
|
||||
}
|
||||
|
||||
internal function name_425(object:Object) : void
|
||||
{
|
||||
var _loc2_:* = this.numObjects++;
|
||||
this.objects[_loc2_] = object;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package alternativa.tanks.game.utils.objectpool
|
||||
{
|
||||
import flash.utils.Dictionary;
|
||||
|
||||
public class ObjectPoolManager
|
||||
{
|
||||
private var var_103:Dictionary = new Dictionary();
|
||||
|
||||
public function ObjectPoolManager()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function name_110(objectClass:Class) : Object
|
||||
{
|
||||
return this.getPool(objectClass).name_110();
|
||||
}
|
||||
|
||||
private function getPool(objectClass:Class) : ObjectPool
|
||||
{
|
||||
var pool:ObjectPool = this.var_103[objectClass];
|
||||
if(pool == null)
|
||||
{
|
||||
pool = new ObjectPool(objectClass);
|
||||
this.var_103[objectClass] = pool;
|
||||
}
|
||||
return pool;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
19
src/alternativa/tanks/game/utils/objectpool/PooledObject.as
Normal file
19
src/alternativa/tanks/game/utils/objectpool/PooledObject.as
Normal file
@@ -0,0 +1,19 @@
|
||||
package alternativa.tanks.game.utils.objectpool
|
||||
{
|
||||
public class PooledObject
|
||||
{
|
||||
protected var objectPool:ObjectPool;
|
||||
|
||||
public function PooledObject(objectPool:ObjectPool)
|
||||
{
|
||||
super();
|
||||
this.objectPool = objectPool;
|
||||
}
|
||||
|
||||
final public function method_254() : void
|
||||
{
|
||||
this.objectPool.name_425(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user