mirror of
https://github.com/MapMakersAndProgrammers/TankiOnline2.0DemoClient.git
synced 2025-10-26 09:59:07 -07:00
package_10 alternativa.tanks.game
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package alternativa.tanks
|
||||
{
|
||||
import flash.display.DisplayObjectContainer;
|
||||
import package_10.class_1;
|
||||
import package_10.name_17;
|
||||
import package_10.name_54;
|
||||
import alternativa.tanks.game.GameTask;
|
||||
import alternativa.tanks.game.GameKernel;
|
||||
import alternativa.tanks.game.Entity;
|
||||
import alternativa.tanks.config.Config;
|
||||
import alternativa.tanks.config.BlobGroup;
|
||||
import alternativa.tanks.config.BlobCategory;
|
||||
@@ -13,9 +13,9 @@ package alternativa.tanks
|
||||
import package_2.A3DMapComponent;
|
||||
import package_9.name_20;
|
||||
|
||||
public class InitBattleTask extends class_1
|
||||
public class InitBattleTask extends GameTask
|
||||
{
|
||||
private var gameKernel:name_17;
|
||||
private var gameKernel:GameKernel;
|
||||
|
||||
private var config:Config;
|
||||
|
||||
@@ -23,9 +23,9 @@ package alternativa.tanks
|
||||
|
||||
private var preloader:Preloader;
|
||||
|
||||
public function InitBattleTask(param1:name_17, param2:Config, param3:DisplayObjectContainer, param4:Preloader)
|
||||
public function InitBattleTask(param1:GameKernel, param2:Config, param3:DisplayObjectContainer, param4:Preloader)
|
||||
{
|
||||
super(name_17.EVENT_SYSTEM_PRIORITY + 1);
|
||||
super(GameKernel.EVENT_SYSTEM_PRIORITY + 1);
|
||||
this.gameKernel = param1;
|
||||
this.config = param2;
|
||||
this.preloader = param4;
|
||||
@@ -40,14 +40,14 @@ package alternativa.tanks
|
||||
_loc2_.name_75(0,0,1000);
|
||||
_loc2_.name_76(0,2000,0);
|
||||
this.container.addChild(_loc1_.name_71());
|
||||
var _loc3_:name_54 = this.createMapEntity();
|
||||
var _loc3_:Entity = this.createMapEntity();
|
||||
this.gameKernel.name_73(_loc3_);
|
||||
this.preloader.name_69(0.75);
|
||||
var_4.addTask(new TankTestTask(name_17.INPUT_SYSTEM_PRIORITY + 1,this.config,this.gameKernel,_loc2_,this.preloader));
|
||||
var_4.addTask(new TankTestTask(GameKernel.INPUT_SYSTEM_PRIORITY + 1,this.config,this.gameKernel,_loc2_,this.preloader));
|
||||
var_4.killTask(this);
|
||||
}
|
||||
|
||||
private function createMapEntity() : name_54
|
||||
private function createMapEntity() : Entity
|
||||
{
|
||||
var _loc2_:name_55 = null;
|
||||
var _loc6_:BlobGroup = null;
|
||||
@@ -62,7 +62,7 @@ package alternativa.tanks
|
||||
_loc2_.name_59(_loc7_,_loc6_.name_65(_loc7_));
|
||||
}
|
||||
}
|
||||
var _loc4_:name_54 = new name_54(name_54.name_74());
|
||||
var _loc4_:Entity = new Entity(Entity.name_74());
|
||||
var _loc5_:A3DMapComponent = new A3DMapComponent(this.config.mapData,_loc2_,1000000,new MapListener(this.gameKernel.name_61()));
|
||||
_loc4_.name_60(_loc5_);
|
||||
_loc4_.name_64();
|
||||
@@ -71,7 +71,7 @@ package alternativa.tanks
|
||||
}
|
||||
}
|
||||
|
||||
import package_10.name_57;
|
||||
import alternativa.tanks.game.GameEvents;
|
||||
import package_2.class_2;
|
||||
import package_20.name_56;
|
||||
|
||||
@@ -87,6 +87,6 @@ class MapListener implements class_2
|
||||
|
||||
public function onA3DMapComplete() : void
|
||||
{
|
||||
this.eventSystem.dispatchEvent(name_57.MAP_COMPLETE,null);
|
||||
this.eventSystem.dispatchEvent(GameEvents.MAP_COMPLETE,null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,10 @@ package alternativa.tanks
|
||||
import flash.ui.Keyboard;
|
||||
import alternativa.osgi.service.console.variables.ConsoleVarFloat;
|
||||
import alternativa.osgi.service.console.variables.ConsoleVarInt;
|
||||
import package_10.class_1;
|
||||
import package_10.name_17;
|
||||
import package_10.name_54;
|
||||
import package_10.name_57;
|
||||
import alternativa.tanks.game.GameTask;
|
||||
import alternativa.tanks.game.GameKernel;
|
||||
import alternativa.tanks.game.Entity;
|
||||
import alternativa.tanks.game.GameEvents;
|
||||
import package_100.name_301;
|
||||
import alternativa.tanks.config.Config;
|
||||
import package_15.name_275;
|
||||
@@ -110,7 +110,7 @@ package alternativa.tanks
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class TankTestTask extends class_1 implements class_11
|
||||
public class TankTestTask extends GameTask implements class_11
|
||||
{
|
||||
private static const DEAD_TEXTURE_ID:String = "dead";
|
||||
|
||||
@@ -126,13 +126,13 @@ package alternativa.tanks
|
||||
|
||||
private var config:Config;
|
||||
|
||||
private var gameKernel:name_17;
|
||||
private var gameKernel:GameKernel;
|
||||
|
||||
private var var_82:int = 0;
|
||||
|
||||
private var var_79:Vector.<name_255> = new Vector.<name_255>();
|
||||
|
||||
private var tanks:Vector.<name_54>;
|
||||
private var tanks:Vector.<Entity>;
|
||||
|
||||
private var var_62:int;
|
||||
|
||||
@@ -174,18 +174,18 @@ package alternativa.tanks
|
||||
|
||||
private var preloader:Preloader;
|
||||
|
||||
private var var_72:name_54;
|
||||
private var var_72:Entity;
|
||||
|
||||
private var var_80:name_293 = new name_293();
|
||||
|
||||
public function TankTestTask(param1:int, param2:Config, param3:name_17, param4:name_20, param5:Preloader)
|
||||
public function TankTestTask(param1:int, param2:Config, param3:GameKernel, param4:name_20, param5:Preloader)
|
||||
{
|
||||
super(param1);
|
||||
this.preloader = param5;
|
||||
this.config = param2;
|
||||
this.gameKernel = param3;
|
||||
this.freeCameraController = param4;
|
||||
this.tanks = new Vector.<name_54>();
|
||||
this.tanks = new Vector.<Entity>();
|
||||
this.var_62 = -1;
|
||||
this.var_73 = new BitmapData(1,1);
|
||||
this.var_73.setPixel(0,0,11141120);
|
||||
@@ -215,12 +215,12 @@ package alternativa.tanks
|
||||
this.executeConsoleCommands(_loc3_,this.config.xml.elements("console-commands")[0].toString());
|
||||
}
|
||||
_loc3_.name_45("lstanks",this.listTanks);
|
||||
this.var_71 = new name_294(name_17.RENDER_SYSTEM_PRIORITY + 1,10,this.gameKernel.stage,0,0);
|
||||
this.var_71 = new name_294(GameKernel.RENDER_SYSTEM_PRIORITY + 1,10,this.gameKernel.stage,0,0);
|
||||
this.gameKernel.addTask(this.var_71);
|
||||
this.gameKernel.name_61().addEventListener(name_57.MAP_COMPLETE,this);
|
||||
this.gameKernel.name_61().addEventListener(GameEvents.MAP_COMPLETE,this);
|
||||
}
|
||||
|
||||
private function get activeTank() : name_54
|
||||
private function get activeTank() : Entity
|
||||
{
|
||||
return this.var_62 >= 0 ? this.tanks[this.var_62] : null;
|
||||
}
|
||||
@@ -331,7 +331,7 @@ package alternativa.tanks
|
||||
private function toggleTankTitle() : void
|
||||
{
|
||||
var _loc2_:name_245 = null;
|
||||
var _loc1_:name_54 = this.activeTank;
|
||||
var _loc1_:Entity = this.activeTank;
|
||||
if(_loc1_ != null)
|
||||
{
|
||||
_loc2_ = name_245(_loc1_.getComponent(name_245));
|
||||
@@ -447,11 +447,11 @@ package alternativa.tanks
|
||||
private function rebuildActiveTank() : void
|
||||
{
|
||||
var _loc2_:TankParams = null;
|
||||
var _loc3_:name_54 = null;
|
||||
var _loc3_:Entity = null;
|
||||
var _loc4_:name_236 = null;
|
||||
var _loc5_:name_236 = null;
|
||||
var _loc6_:name_194 = null;
|
||||
var _loc1_:name_54 = this.activeTank;
|
||||
var _loc1_:Entity = this.activeTank;
|
||||
if(_loc1_ != null)
|
||||
{
|
||||
this.removeActiveTank();
|
||||
@@ -499,19 +499,19 @@ package alternativa.tanks
|
||||
var _loc7_:XMLList = null;
|
||||
var _loc8_:int = 0;
|
||||
var _loc9_:int = 0;
|
||||
var _loc10_:name_54 = null;
|
||||
var _loc10_:Entity = null;
|
||||
var _loc11_:name_259 = null;
|
||||
var _loc12_:name_241 = null;
|
||||
switch(param1)
|
||||
{
|
||||
case name_253.TANK_CLICK:
|
||||
_loc3_ = int(this.tanks.indexOf(name_54(param2)));
|
||||
_loc3_ = int(this.tanks.indexOf(Entity(param2)));
|
||||
if(_loc3_ >= 0)
|
||||
{
|
||||
this.selectTank(_loc3_);
|
||||
}
|
||||
break;
|
||||
case name_57.MAP_COMPLETE:
|
||||
case GameEvents.MAP_COMPLETE:
|
||||
this.setCameraController(this.var_67);
|
||||
if(this.config.xml.user.length() > 0)
|
||||
{
|
||||
@@ -588,21 +588,21 @@ package alternativa.tanks
|
||||
this.selectTank(this.tanks.length - 1);
|
||||
}
|
||||
|
||||
private function addTank(param1:TankParams) : name_54
|
||||
private function addTank(param1:TankParams) : Entity
|
||||
{
|
||||
var _loc2_:name_54 = this.createTank(param1);
|
||||
var _loc2_:Entity = this.createTank(param1);
|
||||
this.gameKernel.name_73(_loc2_);
|
||||
this.tanks.push(_loc2_);
|
||||
return _loc2_;
|
||||
}
|
||||
|
||||
private function createTank(param1:TankParams) : name_54
|
||||
private function createTank(param1:TankParams) : Entity
|
||||
{
|
||||
var _loc2_:name_249 = this.config.tankParts.name_353(param1.hull);
|
||||
var _loc3_:name_234 = this.config.tankParts.name_331(param1.turret);
|
||||
var _loc4_:BitmapData = this.config.tankParts.name_347(param1.coloring);
|
||||
var _loc5_:BitmapData = this.config.var_37.name_244(DEAD_TEXTURE_ID) as BitmapData;
|
||||
var _loc6_:name_54 = new name_54(name_54.name_74());
|
||||
var _loc6_:Entity = new Entity(Entity.name_74());
|
||||
var _loc9_:name_237 = new name_237(_loc2_,1000,80000);
|
||||
var _loc10_:int = conMaxSpeed.value;
|
||||
_loc9_.name_321(_loc10_,true);
|
||||
@@ -731,7 +731,7 @@ package alternativa.tanks
|
||||
return null;
|
||||
}
|
||||
|
||||
private function createSmoky(param1:name_54) : void
|
||||
private function createSmoky(param1:Entity) : void
|
||||
{
|
||||
var _loc9_:name_129 = null;
|
||||
var _loc10_:Vector.<class_4> = null;
|
||||
@@ -774,7 +774,7 @@ package alternativa.tanks
|
||||
param1.name_60(_loc17_);
|
||||
}
|
||||
|
||||
private function createThunder(param1:name_54) : void
|
||||
private function createThunder(param1:Entity) : void
|
||||
{
|
||||
var _loc9_:name_129 = null;
|
||||
var _loc10_:Vector.<class_4> = null;
|
||||
@@ -816,14 +816,14 @@ package alternativa.tanks
|
||||
param1.name_60(_loc17_);
|
||||
}
|
||||
|
||||
private function createRailgun(param1:name_54) : void
|
||||
private function createRailgun(param1:Entity) : void
|
||||
{
|
||||
var _loc5_:name_256 = this.gameKernel.method_112().name_246().collisionDetector;
|
||||
var _loc6_:name_292 = new name_292();
|
||||
var _loc7_:name_291 = new name_291(Math.PI / 9,20,Math.PI / 9,20,_loc5_,_loc6_);
|
||||
}
|
||||
|
||||
private function createEnergyGun(param1:name_54) : void
|
||||
private function createEnergyGun(param1:Entity) : void
|
||||
{
|
||||
var _loc9_:name_256 = this.gameKernel.method_112().name_246().collisionDetector;
|
||||
var _loc10_:name_240 = new name_240();
|
||||
@@ -849,7 +849,7 @@ package alternativa.tanks
|
||||
param1.name_60(_loc27_);
|
||||
}
|
||||
|
||||
private function createContinuousActionGun(param1:name_54) : void
|
||||
private function createContinuousActionGun(param1:Entity) : void
|
||||
{
|
||||
var _loc5_:name_286 = new name_286(1000,1,15,true);
|
||||
param1.name_60(_loc5_);
|
||||
@@ -883,7 +883,7 @@ package alternativa.tanks
|
||||
|
||||
private function removeActiveTank() : void
|
||||
{
|
||||
var _loc1_:name_54 = null;
|
||||
var _loc1_:Entity = null;
|
||||
if(this.var_62 >= 0)
|
||||
{
|
||||
_loc1_ = this.activeTank;
|
||||
@@ -1022,7 +1022,7 @@ package alternativa.tanks
|
||||
var _loc8_:Vector.<name_129> = null;
|
||||
var _loc9_:Vector.<class_4> = null;
|
||||
var _loc10_:name_264 = null;
|
||||
var _loc1_:name_54 = this.activeTank;
|
||||
var _loc1_:Entity = this.activeTank;
|
||||
if(_loc1_ != null)
|
||||
{
|
||||
_loc2_ = this.gameKernel.method_112().name_246().collisionDetector;
|
||||
@@ -1058,7 +1058,7 @@ package alternativa.tanks
|
||||
var _loc7_:Number = NaN;
|
||||
var _loc8_:Number = NaN;
|
||||
var _loc9_:Number = NaN;
|
||||
var _loc1_:name_54 = this.activeTank;
|
||||
var _loc1_:Entity = this.activeTank;
|
||||
if(_loc1_ != null)
|
||||
{
|
||||
_loc2_ = this.var_64.getFrames("tank_explosion/explosion");
|
||||
@@ -1097,7 +1097,7 @@ package alternativa.tanks
|
||||
var _loc19_:Number = NaN;
|
||||
var _loc20_:name_260 = null;
|
||||
var _loc21_:Number = NaN;
|
||||
var _loc1_:name_54 = this.activeTank;
|
||||
var _loc1_:Entity = this.activeTank;
|
||||
if(_loc1_ != null)
|
||||
{
|
||||
_loc2_ = 100;
|
||||
@@ -1142,7 +1142,7 @@ package alternativa.tanks
|
||||
|
||||
private function listTanks(param1:name_4, param2:Array) : void
|
||||
{
|
||||
var _loc3_:name_54 = null;
|
||||
var _loc3_:Entity = null;
|
||||
var _loc4_:name_237 = null;
|
||||
var _loc5_:name_271 = null;
|
||||
for each(var _loc8_ in this.tanks)
|
||||
@@ -1162,7 +1162,7 @@ package alternativa.tanks
|
||||
import flash.display.BitmapData;
|
||||
import flash.media.Sound;
|
||||
import flash.utils.ByteArray;
|
||||
import package_10.name_17;
|
||||
import alternativa.tanks.game.GameKernel;
|
||||
import package_101.name_304;
|
||||
import alternativa.tanks.config.TextureLibrary;
|
||||
import package_15.name_275;
|
||||
@@ -1237,7 +1237,7 @@ class PointHitRoundAmmo implements class_14
|
||||
|
||||
private var weaponHitEffects:WeaponHitEffects;
|
||||
|
||||
public function PointHitRoundAmmo(param1:name_17)
|
||||
public function PointHitRoundAmmo(param1:GameKernel)
|
||||
{
|
||||
var _loc5_:int = 0;
|
||||
super();
|
||||
@@ -1266,9 +1266,9 @@ class WeaponHitEffects implements class_12
|
||||
|
||||
private var frames:Vector.<class_4>;
|
||||
|
||||
private var gameKernel:name_17;
|
||||
private var gameKernel:GameKernel;
|
||||
|
||||
public function WeaponHitEffects(param1:Sound, param2:Vector.<class_4>, param3:name_17)
|
||||
public function WeaponHitEffects(param1:Sound, param2:Vector.<class_4>, param3:GameKernel)
|
||||
{
|
||||
super();
|
||||
this.sound = param1;
|
||||
|
||||
@@ -3,7 +3,7 @@ package alternativa.tanks
|
||||
import flash.display.BitmapData;
|
||||
import flash.utils.ByteArray;
|
||||
import flash.utils.Dictionary;
|
||||
import package_10.name_17;
|
||||
import alternativa.tanks.game.GameKernel;
|
||||
import package_117.name_542;
|
||||
import package_28.name_241;
|
||||
import package_28.name_93;
|
||||
@@ -11,7 +11,7 @@ package alternativa.tanks
|
||||
|
||||
public class TextureResourceService implements ITextureResourceService
|
||||
{
|
||||
public var gameKernel:name_17;
|
||||
public var gameKernel:GameKernel;
|
||||
|
||||
private var var_455:name_326;
|
||||
|
||||
@@ -23,7 +23,7 @@ package alternativa.tanks
|
||||
|
||||
private var var_456:Dictionary;
|
||||
|
||||
public function TextureResourceService(param1:name_17)
|
||||
public function TextureResourceService(param1:GameKernel)
|
||||
{
|
||||
super();
|
||||
this.gameKernel = param1;
|
||||
|
||||
116
src/alternativa/tanks/game/Entity.as
Normal file
116
src/alternativa/tanks/game/Entity.as
Normal file
@@ -0,0 +1,116 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
public class Entity
|
||||
{
|
||||
private static var lastId:int;
|
||||
|
||||
private var var_101:int;
|
||||
|
||||
private var components:Vector.<EntityComponent>;
|
||||
|
||||
private var var_100:Object;
|
||||
|
||||
internal var index:int = -1;
|
||||
|
||||
public function Entity(id:int)
|
||||
{
|
||||
super();
|
||||
this.var_101 = id;
|
||||
this.components = new Vector.<EntityComponent>();
|
||||
this.var_100 = new Object();
|
||||
}
|
||||
|
||||
public static function name_74() : int
|
||||
{
|
||||
return ++lastId;
|
||||
}
|
||||
|
||||
public function get id() : int
|
||||
{
|
||||
return this.var_101;
|
||||
}
|
||||
|
||||
public function name_60(component:EntityComponent) : void
|
||||
{
|
||||
this.components.push(component);
|
||||
component.method_197(this);
|
||||
}
|
||||
|
||||
public function name_64() : void
|
||||
{
|
||||
var entityComponent:EntityComponent = null;
|
||||
for each(entityComponent in this.components)
|
||||
{
|
||||
entityComponent.initComponent();
|
||||
}
|
||||
}
|
||||
|
||||
public function getComponent(cls:Class) : EntityComponent
|
||||
{
|
||||
var component:EntityComponent = null;
|
||||
for each(component in this.components)
|
||||
{
|
||||
if(component is cls)
|
||||
{
|
||||
return component;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getComponentStrict(cls:Class) : EntityComponent
|
||||
{
|
||||
var component:EntityComponent = this.getComponent(cls);
|
||||
if(component == null)
|
||||
{
|
||||
throw new Error("Component " + cls + " not found");
|
||||
}
|
||||
return component;
|
||||
}
|
||||
|
||||
public function addToGame(gameKernel:GameKernel) : void
|
||||
{
|
||||
var entityComponent:EntityComponent = null;
|
||||
for each(entityComponent in this.components)
|
||||
{
|
||||
entityComponent.addToGame(gameKernel);
|
||||
}
|
||||
}
|
||||
|
||||
public function removeFromGame(gameKernel:GameKernel) : void
|
||||
{
|
||||
var entityComponent:EntityComponent = null;
|
||||
for each(entityComponent in this.components)
|
||||
{
|
||||
entityComponent.removeFromGame(gameKernel);
|
||||
}
|
||||
}
|
||||
|
||||
public function dispatchEvent(eventType:String, eventData:* = undefined) : void
|
||||
{
|
||||
var numListeners:uint = 0;
|
||||
var i:int = 0;
|
||||
var listeners:Vector.<Function> = this.var_100[eventType];
|
||||
if(listeners != null)
|
||||
{
|
||||
numListeners = uint(listeners.length);
|
||||
for(i = 0; i < numListeners; i++)
|
||||
{
|
||||
listeners[i].call(null,eventType,eventData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function addEventHandler(eventType:String, handler:Function) : void
|
||||
{
|
||||
var handlers:Vector.<Function> = this.var_100[eventType];
|
||||
if(handlers == null)
|
||||
{
|
||||
handlers = new Vector.<Function>();
|
||||
this.var_100[eventType] = handlers;
|
||||
}
|
||||
handlers.push(handler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
30
src/alternativa/tanks/game/EntityComponent.as
Normal file
30
src/alternativa/tanks/game/EntityComponent.as
Normal file
@@ -0,0 +1,30 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
public class EntityComponent
|
||||
{
|
||||
protected var entity:Entity;
|
||||
|
||||
public function EntityComponent()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function method_197(entity:Entity) : void
|
||||
{
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
public function initComponent() : void
|
||||
{
|
||||
}
|
||||
|
||||
public function addToGame(gameKernel:GameKernel) : void
|
||||
{
|
||||
}
|
||||
|
||||
public function removeFromGame(gameKernel:GameKernel) : void
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
15
src/alternativa/tanks/game/GameEvents.as
Normal file
15
src/alternativa/tanks/game/GameEvents.as
Normal file
@@ -0,0 +1,15 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
public class GameEvents
|
||||
{
|
||||
public static const MAP_COMPLETE:String = "mapComplete";
|
||||
|
||||
public static const BATTLE_FINISHED:String = "battleFinished";
|
||||
|
||||
public function GameEvents()
|
||||
{
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
216
src/alternativa/tanks/game/GameKernel.as
Normal file
216
src/alternativa/tanks/game/GameKernel.as
Normal file
@@ -0,0 +1,216 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
import flash.display.Stage;
|
||||
import package_18.name_44;
|
||||
import package_20.name_179;
|
||||
import package_20.name_56;
|
||||
import package_22.name_181;
|
||||
import package_22.name_87;
|
||||
import package_26.name_100;
|
||||
import package_27.name_180;
|
||||
import package_42.name_177;
|
||||
import package_42.name_184;
|
||||
import package_43.name_183;
|
||||
import package_43.name_190;
|
||||
import package_44.name_178;
|
||||
import package_45.name_182;
|
||||
|
||||
public class GameKernel
|
||||
{
|
||||
public static const TIME_SYSTEM_PRIORITY:int = 0;
|
||||
|
||||
public static const INPUT_SYSTEM_PRIORITY:int = 1000;
|
||||
|
||||
public static const EVENT_SYSTEM_PRIORITY:int = 2000;
|
||||
|
||||
public static const LOGIC_SYSTEM_1_PRIORITY:int = 3000;
|
||||
|
||||
public static const LOGIC_SYSTEM_2_PRIORITY:int = 3001;
|
||||
|
||||
public static const PHYSICS_SYSTEM_PRIORITY:int = 4000;
|
||||
|
||||
public static const RENDER_SYSTEM_PRIORITY:int = 5000;
|
||||
|
||||
public static const CLEANUP_SYSTEM_PRIORITY:int = 6000;
|
||||
|
||||
public const const_1:name_180 = new name_180(20);
|
||||
|
||||
private var var_43:Stage;
|
||||
|
||||
private var var_36:Object;
|
||||
|
||||
private var var_41:IGameLogger = new DummyLogger();
|
||||
|
||||
private var var_4:TaskManager;
|
||||
|
||||
private var var_44:name_182;
|
||||
|
||||
private var inputSystem:name_181;
|
||||
|
||||
private var eventSystem:name_179;
|
||||
|
||||
private var logicSystem1:name_177;
|
||||
|
||||
private var logicSystem2:name_177;
|
||||
|
||||
private var physicsSystem:name_178;
|
||||
|
||||
private var renderSystem:name_44;
|
||||
|
||||
private var var_42:name_183;
|
||||
|
||||
private var var_39:Vector.<Entity>;
|
||||
|
||||
private var var_38:int;
|
||||
|
||||
private var var_40:name_100;
|
||||
|
||||
public function GameKernel(stage:Stage, options:Object)
|
||||
{
|
||||
super();
|
||||
this.var_43 = stage;
|
||||
this.var_36 = options || {};
|
||||
this.var_39 = new Vector.<Entity>();
|
||||
this.var_40 = new name_100();
|
||||
this.var_4 = new TaskManager();
|
||||
this.var_44 = new name_182(TIME_SYSTEM_PRIORITY);
|
||||
this.var_4.addTask(this.var_44);
|
||||
this.inputSystem = new name_181(INPUT_SYSTEM_PRIORITY,stage);
|
||||
this.var_4.addTask(this.inputSystem);
|
||||
this.eventSystem = new name_179(EVENT_SYSTEM_PRIORITY);
|
||||
this.var_4.addTask(this.eventSystem);
|
||||
this.logicSystem1 = new name_177(LOGIC_SYSTEM_1_PRIORITY,this);
|
||||
this.var_4.addTask(this.logicSystem1);
|
||||
this.logicSystem2 = new name_177(LOGIC_SYSTEM_2_PRIORITY,this);
|
||||
this.var_4.addTask(this.logicSystem2);
|
||||
this.physicsSystem = new name_178(PHYSICS_SYSTEM_PRIORITY,this.var_40);
|
||||
this.var_4.addTask(this.physicsSystem);
|
||||
this.renderSystem = new name_44(RENDER_SYSTEM_PRIORITY,stage);
|
||||
this.var_4.addTask(this.renderSystem);
|
||||
this.var_42 = new name_183(CLEANUP_SYSTEM_PRIORITY);
|
||||
this.var_4.addTask(this.var_42);
|
||||
}
|
||||
|
||||
public function get logger() : IGameLogger
|
||||
{
|
||||
return this.var_41;
|
||||
}
|
||||
|
||||
public function set logger(value:IGameLogger) : void
|
||||
{
|
||||
if(value == null)
|
||||
{
|
||||
throw new ArgumentError("Logger is null");
|
||||
}
|
||||
this.var_41 = value;
|
||||
}
|
||||
|
||||
public function get stage() : Stage
|
||||
{
|
||||
return this.var_43;
|
||||
}
|
||||
|
||||
public function get options() : Object
|
||||
{
|
||||
return this.var_36;
|
||||
}
|
||||
|
||||
public function method_111(command:name_190) : void
|
||||
{
|
||||
this.var_42.name_187(command);
|
||||
}
|
||||
|
||||
public function method_108() : name_100
|
||||
{
|
||||
return this.var_40;
|
||||
}
|
||||
|
||||
public function addTask(gameTask:GameTask) : void
|
||||
{
|
||||
this.var_4.addTask(gameTask);
|
||||
}
|
||||
|
||||
public function name_73(entity:Entity) : void
|
||||
{
|
||||
if(entity.index < 0)
|
||||
{
|
||||
entity.index = this.var_38;
|
||||
var _loc2_:* = this.var_38++;
|
||||
this.var_39[_loc2_] = entity;
|
||||
entity.addToGame(this);
|
||||
return;
|
||||
}
|
||||
throw new Error("Entity " + entity + " is already in game");
|
||||
}
|
||||
|
||||
public function method_109(entity:Entity) : void
|
||||
{
|
||||
var index:int = int(entity.index);
|
||||
if(index < 0)
|
||||
{
|
||||
throw new Error("Entity " + entity + " is not in game");
|
||||
}
|
||||
var lastEntity:Entity = this.var_39[--this.var_38];
|
||||
lastEntity.index = index;
|
||||
this.var_39[index] = lastEntity;
|
||||
this.var_39[this.var_38] = null;
|
||||
entity.index = -1;
|
||||
entity.removeFromGame(this);
|
||||
}
|
||||
|
||||
public function name_66() : name_87
|
||||
{
|
||||
return this.inputSystem;
|
||||
}
|
||||
|
||||
public function name_61() : name_56
|
||||
{
|
||||
return this.eventSystem;
|
||||
}
|
||||
|
||||
public function getLogicSystem1() : name_184
|
||||
{
|
||||
return this.logicSystem1;
|
||||
}
|
||||
|
||||
public function getLogicSystem2() : name_184
|
||||
{
|
||||
return this.logicSystem2;
|
||||
}
|
||||
|
||||
public function method_112() : name_178
|
||||
{
|
||||
return this.physicsSystem;
|
||||
}
|
||||
|
||||
public function name_5() : name_44
|
||||
{
|
||||
return this.renderSystem;
|
||||
}
|
||||
|
||||
public function name_51() : void
|
||||
{
|
||||
this.const_1.name_188();
|
||||
this.var_4.name_185();
|
||||
this.const_1.name_186();
|
||||
}
|
||||
|
||||
public function method_110() : void
|
||||
{
|
||||
this.var_4.name_189();
|
||||
this.var_4.name_185();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class DummyLogger implements IGameLogger
|
||||
{
|
||||
public function DummyLogger()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function log(channel:String, text:String) : void
|
||||
{
|
||||
}
|
||||
}
|
||||
73
src/alternativa/tanks/game/GameTask.as
Normal file
73
src/alternativa/tanks/game/GameTask.as
Normal file
@@ -0,0 +1,73 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
public class GameTask
|
||||
{
|
||||
public var var_4:TaskManager;
|
||||
|
||||
public var priority:int;
|
||||
|
||||
protected var var_3:Boolean;
|
||||
|
||||
public function GameTask(priority:int)
|
||||
{
|
||||
super();
|
||||
this.priority = priority;
|
||||
}
|
||||
|
||||
public function start() : void
|
||||
{
|
||||
}
|
||||
|
||||
public function stop() : void
|
||||
{
|
||||
}
|
||||
|
||||
public function run() : void
|
||||
{
|
||||
}
|
||||
|
||||
final public function get method_20() : Boolean
|
||||
{
|
||||
return this.var_3;
|
||||
}
|
||||
|
||||
final public function set method_20(value:Boolean) : void
|
||||
{
|
||||
if(value)
|
||||
{
|
||||
this.method_21();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.method_22();
|
||||
}
|
||||
}
|
||||
|
||||
final public function method_21() : void
|
||||
{
|
||||
if(!this.var_3)
|
||||
{
|
||||
this.var_3 = true;
|
||||
this.onPause();
|
||||
}
|
||||
}
|
||||
|
||||
final public function method_22() : void
|
||||
{
|
||||
if(this.var_3)
|
||||
{
|
||||
this.var_3 = false;
|
||||
this.onResume();
|
||||
}
|
||||
}
|
||||
|
||||
protected function onPause() : void
|
||||
{
|
||||
}
|
||||
|
||||
protected function onResume() : void
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8
src/alternativa/tanks/game/IGameLogger.as.as
Normal file
8
src/alternativa/tanks/game/IGameLogger.as.as
Normal file
@@ -0,0 +1,8 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
public interface IGameLogger
|
||||
{
|
||||
function log(param1:String, param2:String) : void;
|
||||
}
|
||||
}
|
||||
|
||||
84
src/alternativa/tanks/game/ObjectController.as
Normal file
84
src/alternativa/tanks/game/ObjectController.as
Normal file
@@ -0,0 +1,84 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
import package_21.name_124;
|
||||
import package_21.name_78;
|
||||
import package_46.Matrix3;
|
||||
import package_46.name_194;
|
||||
|
||||
public class ObjectController
|
||||
{
|
||||
private static var matrix:Matrix3 = new Matrix3();
|
||||
|
||||
private static var vector:name_194 = new name_194();
|
||||
|
||||
private var var_234:name_78;
|
||||
|
||||
public function ObjectController()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function get object() : name_78
|
||||
{
|
||||
return this.var_234;
|
||||
}
|
||||
|
||||
public function set object(value:name_78) : void
|
||||
{
|
||||
this.var_234 = value;
|
||||
}
|
||||
|
||||
public function name_201(x:Number, y:Number, z:Number) : void
|
||||
{
|
||||
this.var_234.x = x;
|
||||
this.var_234.y = y;
|
||||
this.var_234.z = z;
|
||||
}
|
||||
|
||||
public function method_368(rx:Number, ry:Number, rz:Number) : void
|
||||
{
|
||||
this.var_234.rotationX = rx;
|
||||
this.var_234.rotationY = ry;
|
||||
this.var_234.rotationZ = rz;
|
||||
}
|
||||
|
||||
public function method_367(dx:Number, dy:Number, dz:Number) : void
|
||||
{
|
||||
matrix.name_196(this.var_234.rotationX,this.var_234.rotationY,this.var_234.rotationZ);
|
||||
vector.reset(dx,dy,dz);
|
||||
vector.transform3(matrix);
|
||||
this.var_234.x += vector.x;
|
||||
this.var_234.y += vector.y;
|
||||
this.var_234.z += vector.z;
|
||||
}
|
||||
|
||||
public function move(dx:Number, dy:Number, dz:Number) : void
|
||||
{
|
||||
this.var_234.x += dx;
|
||||
this.var_234.y += dy;
|
||||
this.var_234.z += dz;
|
||||
}
|
||||
|
||||
public function rotate(rdx:Number, rdy:Number, rdz:Number) : void
|
||||
{
|
||||
this.var_234.rotationX += rdx;
|
||||
this.var_234.rotationY += rdy;
|
||||
this.var_234.rotationZ += rdz;
|
||||
}
|
||||
|
||||
public function name_76(x:Number, y:Number, z:Number) : void
|
||||
{
|
||||
var dx:Number = x - this.var_234.x;
|
||||
var dy:Number = y - this.var_234.y;
|
||||
var dz:Number = z - this.var_234.z;
|
||||
this.var_234.rotationX = Math.atan2(dz,Math.sqrt(dx * dx + dy * dy));
|
||||
if(this.var_234 is name_124)
|
||||
{
|
||||
this.var_234.rotationX -= 0.5 * Math.PI;
|
||||
}
|
||||
this.var_234.rotationY = 0;
|
||||
this.var_234.rotationZ = -Math.atan2(dx,dy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
175
src/alternativa/tanks/game/TaskManager.as
Normal file
175
src/alternativa/tanks/game/TaskManager.as
Normal file
@@ -0,0 +1,175 @@
|
||||
package alternativa.tanks.game
|
||||
{
|
||||
import flash.utils.Dictionary;
|
||||
import flash.utils.describeType;
|
||||
import flash.utils.getDefinitionByName;
|
||||
import package_108.name_373;
|
||||
import package_108.name_374;
|
||||
|
||||
public class TaskManager
|
||||
{
|
||||
private var var_85:name_374 = new name_374();
|
||||
|
||||
private var var_87:TaskArray = new TaskArray();
|
||||
|
||||
private var var_86:TaskArray = new TaskArray();
|
||||
|
||||
private var var_88:Dictionary = new Dictionary();
|
||||
|
||||
public function TaskManager()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function addTask(task:GameTask) : void
|
||||
{
|
||||
if(this.var_85.contains(task))
|
||||
{
|
||||
throw new Error("Task is already active");
|
||||
}
|
||||
if(this.var_87.contains(task))
|
||||
{
|
||||
throw new Error("Task has been already scheduled for addition");
|
||||
}
|
||||
this.var_87.add(task);
|
||||
}
|
||||
|
||||
public function killTask(task:GameTask) : void
|
||||
{
|
||||
if(this.var_85.contains(task) && !this.var_86.contains(task))
|
||||
{
|
||||
this.var_86.add(task);
|
||||
}
|
||||
}
|
||||
|
||||
public function name_185() : void
|
||||
{
|
||||
var task:GameTask = null;
|
||||
this.startAddedTasks();
|
||||
var iterator:name_373 = this.var_85.listIterator();
|
||||
while(iterator.hasNext())
|
||||
{
|
||||
task = GameTask(iterator.next());
|
||||
if(!task.method_20)
|
||||
{
|
||||
task.run();
|
||||
}
|
||||
}
|
||||
this.removeKilledTasks();
|
||||
}
|
||||
|
||||
public function getTaskInterface(taskInterface:Class) : Object
|
||||
{
|
||||
return this.var_88[taskInterface];
|
||||
}
|
||||
|
||||
public function name_189() : void
|
||||
{
|
||||
var task:GameTask = null;
|
||||
var listIterator:name_373 = this.var_85.listIterator();
|
||||
while(listIterator.hasNext())
|
||||
{
|
||||
task = GameTask(listIterator.next());
|
||||
this.killTask(task);
|
||||
}
|
||||
}
|
||||
|
||||
private function startAddedTasks() : void
|
||||
{
|
||||
var task:GameTask = null;
|
||||
var taskInterfaces:Vector.<Class> = null;
|
||||
var taskInterface:Class = null;
|
||||
var activeTasksIterator:name_373 = null;
|
||||
var activeTask:GameTask = null;
|
||||
for(var i:int = 0; i < this.var_87.numTasks; i++)
|
||||
{
|
||||
task = this.var_87.tasks[i];
|
||||
task.var_4 = this;
|
||||
task.start();
|
||||
taskInterfaces = this.getObjectInterfaces(task);
|
||||
for each(taskInterface in taskInterfaces)
|
||||
{
|
||||
this.var_88[taskInterface] = task;
|
||||
}
|
||||
activeTasksIterator = this.var_85.listIterator();
|
||||
while(activeTasksIterator.hasNext())
|
||||
{
|
||||
activeTask = GameTask(activeTasksIterator.next());
|
||||
if(activeTask.priority > task.priority)
|
||||
{
|
||||
activeTasksIterator.name_375();
|
||||
break;
|
||||
}
|
||||
}
|
||||
activeTasksIterator.add(task);
|
||||
}
|
||||
this.var_87.clear();
|
||||
}
|
||||
|
||||
private function removeKilledTasks() : void
|
||||
{
|
||||
var task:GameTask = null;
|
||||
var taskInterfaces:Vector.<Class> = null;
|
||||
var taskInterface:Class = null;
|
||||
for(var i:int = 0; i < this.var_86.numTasks; i++)
|
||||
{
|
||||
task = this.var_86.tasks[i];
|
||||
this.var_85.remove(task);
|
||||
task.stop();
|
||||
taskInterfaces = this.getObjectInterfaces(task);
|
||||
for each(taskInterface in taskInterfaces)
|
||||
{
|
||||
delete this.var_88[taskInterface];
|
||||
}
|
||||
task.var_4 = null;
|
||||
}
|
||||
this.var_86.clear();
|
||||
}
|
||||
|
||||
private function getObjectInterfaces(object:Object) : Vector.<Class>
|
||||
{
|
||||
var interfaceXML:XML = null;
|
||||
var interfaceClass:Object = null;
|
||||
var result:Vector.<Class> = new Vector.<Class>();
|
||||
var xml:XML = describeType(object);
|
||||
for each(interfaceXML in xml.implementsInterface)
|
||||
{
|
||||
interfaceClass = getDefinitionByName(interfaceXML.@type);
|
||||
result.push(interfaceClass);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TaskArray
|
||||
{
|
||||
public var tasks:Vector.<GameTask> = new Vector.<GameTask>();
|
||||
|
||||
public var numTasks:int;
|
||||
|
||||
public function TaskArray()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function add(task:GameTask) : void
|
||||
{
|
||||
var _loc2_:* = this.numTasks++;
|
||||
this.tasks[_loc2_] = task;
|
||||
}
|
||||
|
||||
public function clear() : void
|
||||
{
|
||||
for(var i:int = 0; i < this.numTasks; i++)
|
||||
{
|
||||
this.tasks[i] = null;
|
||||
}
|
||||
this.numTasks = 0;
|
||||
}
|
||||
|
||||
public function contains(task:GameTask) : Boolean
|
||||
{
|
||||
return this.tasks.indexOf(task) >= 0;
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,8 @@ package alternativa.tanks.game.usertitle.component
|
||||
import alternativa.tanks.game.usertitle.name_607;
|
||||
import alternativa.tanks.game.usertitle.name_610;
|
||||
import alternativa.tanks.game.usertitle.name_613;
|
||||
import package_10.class_17;
|
||||
import package_10.name_17;
|
||||
import alternativa.tanks.game.EntityComponent;
|
||||
import alternativa.tanks.game.GameKernel;
|
||||
import package_114.name_488;
|
||||
import package_18.name_44;
|
||||
import package_18.name_82;
|
||||
@@ -14,7 +14,7 @@ package alternativa.tanks.game.usertitle.component
|
||||
import package_74.class_25;
|
||||
import package_75.name_236;
|
||||
|
||||
public class name_245 extends class_17 implements name_82
|
||||
public class name_245 extends EntityComponent implements name_82
|
||||
{
|
||||
private static const REMOTE_LABEL_OFFSET_Z:int = 200;
|
||||
|
||||
@@ -30,7 +30,7 @@ package alternativa.tanks.game.usertitle.component
|
||||
|
||||
private var var_424:name_488;
|
||||
|
||||
private var gameKernel:name_17;
|
||||
private var gameKernel:GameKernel;
|
||||
|
||||
private var var_426:Boolean;
|
||||
|
||||
@@ -93,13 +93,13 @@ package alternativa.tanks.game.usertitle.component
|
||||
this.setHealth(Number(data));
|
||||
}
|
||||
|
||||
override public function addToGame(gameKernel:name_17) : void
|
||||
override public function addToGame(gameKernel:GameKernel) : void
|
||||
{
|
||||
this.gameKernel = gameKernel;
|
||||
this.var_505.name_612(gameKernel.name_5());
|
||||
}
|
||||
|
||||
override public function removeFromGame(gameKernel:name_17) : void
|
||||
override public function removeFromGame(gameKernel:GameKernel) : void
|
||||
{
|
||||
this.var_424.name_493.stop();
|
||||
this.removeFromScene();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package alternativa.tanks.game.usertitle
|
||||
{
|
||||
import alternativa.tanks.game.usertitle.component.name_245;
|
||||
import package_10.name_54;
|
||||
import alternativa.tanks.game.Entity;
|
||||
|
||||
public interface name_610
|
||||
{
|
||||
function name_614(param1:name_54, param2:name_245) : void;
|
||||
function name_614(param1:Entity, param2:name_245) : void;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user