Files
TankiOnline2.0DemoClient/src/TanksTestingTool.as
2025-01-26 13:12:30 +00:00

300 lines
11 KiB
ActionScript

package
{
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Stage3D;
import flash.display.StageAlign;
import flash.display.StageDisplayState;
import flash.display.StageQuality;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.FullScreenEvent;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import alternativa.osgi.service.console.variables.ConsoleVarFloat;
import alternativa.osgi.service.console.variables.ConsoleVarInt;
import alternativa.osgi.service.console.variables.ConsoleVarString;
import alternativa.osgi.service.console.variables.ConsoleVar;
import alternativa.tanks.game.GameKernel;
import package_11.name_16;
import package_12.name_15;
import alternativa.tanks.config.Config;
import package_14.name_21;
import package_15.name_19;
import package_16.name_26;
import package_17.name_21;
import package_18.name_44;
import package_2.name_2;
import package_2.name_9;
import package_3.TankMaterial2;
import package_3.name_10;
import package_3.name_29;
import package_3.name_33;
import package_3.name_7;
import package_4.name_11;
import package_4.name_28;
import package_4.name_6;
import package_5.name_3;
import package_6.name_4;
import alternativa.tanks.InitBattleTask;
import alternativa.tanks.TankTestTask;
import package_8.name_24;
import package_8.name_25;
import package_9.name_20;
import package_9.name_23;
[SWF(backgroundColor="#333333",frameRate="100",width="1024",height="768")]
public class TanksTestingTool extends Sprite
{
public static var testTask:TankTestTask;
private var config:Config;
private var gameKernel:GameKernel;
private var var_1:name_15;
private var stage3D:Stage3D;
private var var_2:name_16;
private var preloader:Preloader = new Preloader();
public function TanksTestingTool()
{
super();
mouseEnabled = false;
mouseChildren = false;
this.initStage();
this.initClient();
this.initConsole();
this.initOptionsSupport();
name_2.fadeRadius = 7000;
name_2.spotAngle = 140 * Math.PI / 180;
name_2.fallofAngle = 170 * Math.PI / 180;
this.stage3D = stage.stage3Ds[0];
this.stage3D.addEventListener(Event.CONTEXT3D_CREATE,this.onContextCreate);
this.stage3D.requestContext3D();
}
private function onContextCreate(param1:Event) : void
{
switch(name_28.name_35(this.stage3D.context3D))
{
case name_6.DXT1:
this.loadConfig("cfg.dxt1.xml");
break;
case name_6.ETC1:
this.loadConfig("cfg.etc1.xml");
break;
case name_6.PVRTC:
this.loadConfig("cfg.pvrtc.xml");
} }
}
private function initOptionsSupport() : void
{
new ConsoleVarInt("fog_mode",0,0,3,this.onFogSettingsChange);
new ConsoleVarFloat("fog_near",0,0,1000000,this.onFogSettingsChange);
new ConsoleVarFloat("fog_far",5000,0,1000000,this.onFogSettingsChange);
new ConsoleVarFloat("fog_density",1,0,1,this.onFogSettingsChange);
new ConsoleVarFloat("horizon_offset",0,-1000000,1000000,this.onFogSettingsChange);
new ConsoleVarFloat("horizon_size",5000,0,1000000,this.onFogSettingsChange);
new ConsoleVarString("fog_color","0x0",this.onFogSettingsChange);
var _loc1_:name_4 = name_4(name_3.name_8().name_30(name_4));
_loc1_.name_45("fog_texture",this.onFogTextureChange);
new ConsoleVarFloat("beam_distance",7000,0,1000000,this.onLightSettingsChange);
new ConsoleVarFloat("beam_spot",140,0,180,this.onLightSettingsChange);
new ConsoleVarFloat("beam_fallof",170,0,180,this.onLightSettingsChange);
new ConsoleVarFloat("beam_fallof",170,0,180,this.onLightSettingsChange);
new ConsoleVarFloat("camera_smoothing",20,0,200,this.onControllerSettingsChange);
name_9.fogMode = name_9.DISABLED;
name_10.fogMode = name_10.DISABLED;
name_7.fogMode = name_7.DISABLED;
TankMaterial2.fogMode = name_7.DISABLED;
name_29.fogMode = name_11.DISABLED;
name_33.fogMode = name_11.DISABLED;
}
private function onControllerSettingsChange(param1:ConsoleVarFloat) : void
{
name_20.smoothing = param1.value;
}
private function onLightSettingsChange(param1:ConsoleVar) : void
{
switch(param1.name_32())
{
case "beam_distance":
name_2.fadeRadius = ConsoleVarFloat(param1).value;
break;
case "beam_spot":
name_2.spotAngle = ConsoleVarFloat(param1).value * Math.PI / 180;
break;
case "beam_fallof":
name_2.fallofAngle = ConsoleVarFloat(param1).value * Math.PI / 180;
}
}
private function onFogSettingsChange(param1:ConsoleVar) : void
{
var _loc3_:Number = NaN;
var _loc4_:Number = NaN;
var _loc5_:Number = NaN;
var _loc6_:name_44 = this.gameKernel.name_5();
switch(param1.name_32())
{
case "fog_mode":
_loc6_.name_41(ConsoleVarInt(param1).value);
break;
case "fog_near":
_loc6_.name_47(ConsoleVarFloat(param1).value);
break;
case "fog_far":
_loc6_.name_48(ConsoleVarFloat(param1).value);
break;
case "fog_density":
_loc6_.name_49(ConsoleVarFloat(param1).value);
break;
case "horizon_size":
_loc6_.name_38(ConsoleVarFloat(param1).value);
break;
case "horizon_offset":
_loc6_.name_34(ConsoleVarFloat(param1).value);
break;
case "fog_color":
_loc6_.name_40(parseInt(ConsoleVarString(param1).value,16));
}
}
private function onFogTextureChange(param1:name_4, param2:Array) : void
{
this.gameKernel.name_5().name_36(param2.join(" "));
}
private function initStage() : void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.quality = StageQuality.LOW;
}
private function initClient() : void
{
new name_3();
this.var_2 = new name_16();
this.var_2.start(this,new name_19(loaderInfo.parameters),new Vector.<name_24>(),new name_25(null,null,null),new Vector.<String>());
new name_26().start(name_3.name_8());
new package_17.name_21().start(name_3.name_8());
new package_14.name_21().start(name_3.name_8());
}
private function initConsole() : void
{
var _loc1_:name_4 = name_4(name_3.name_8().name_30(name_4));
_loc1_.width = 100;
_loc1_.alpha = 0.8;
_loc1_.height = 30;
}
private function loadConfig(param1:String) : void
{
addChild(this.preloader);
this.config = new Config();
this.config.addEventListener(Event.COMPLETE,this.onConfigLoadingComplete);
this.config.load(param1,this.preloader);
}
private function onConfigLoadingComplete(param1:Event) : void
{
this.initGame();
this.initHUD();
}
private function initHUD() : void
{
this.var_1 = new name_15();
stage.addChild(this.var_1);
this.var_1.mouseChildren = true;
this.var_1.mouseEnabled = true;
this.var_1.addEventListener("CLICK_FULL_SCREEN_BUTTON",this.onClickFullScreenButton);
this.var_1.addEventListener("CLICK_NEXT_TANK_BUTTON",this.onClickNextTankButton);
stage.addChild(this.preloader);
stage.addEventListener(KeyboardEvent.KEY_DOWN,this.onKeyDown);
this.gameKernel.name_5().name_27().diagramVerticalMargin = 85;
this.gameKernel.name_5().name_27().diagramHorizontalMargin = 12;
this.onResize(null);
}
private function onKeyDown(param1:KeyboardEvent) : void
{
var _loc2_:DisplayObject = null;
if(param1.keyCode == Keyboard.G)
{
_loc2_ = this.gameKernel.name_5().name_39();
if(_loc2_.parent != null)
{
_loc2_.parent.removeChild(_loc2_);
}
else
{
stage.addChild(_loc2_);
}
}
}
private function onClickFullScreenButton(param1:Event) : void
{
stage.displayState = this.var_1.name_31 ? StageDisplayState.FULL_SCREEN : StageDisplayState.NORMAL;
stage.addEventListener(FullScreenEvent.FULL_SCREEN,this.onFullScreenChange);
}
private function onFullScreenChange(param1:Event) : void
{
stage.removeEventListener(FullScreenEvent.FULL_SCREEN,this.onFullScreenChange);
this.var_1.name_31 = stage.displayState != StageDisplayState.NORMAL;
}
private function onClickNextTankButton(param1:Event) : void
{
if(testTask != null)
{
testTask.include();
}
}
private function initGame() : void
{
this.gameKernel = new GameKernel(stage,this.config.options);
this.gameKernel.name_5().name_37(this.stage3D);
var _loc1_:InitBattleTask = new InitBattleTask(this.gameKernel,this.config,this,this.preloader);
this.gameKernel.addTask(_loc1_);
stage.addEventListener(Event.RESIZE,this.onResize);
this.onResize(null);
stage.addEventListener(Event.ENTER_FRAME,this.onEnterFrame);
}
private function onEnterFrame(param1:Event) : void
{
this.gameKernel.name_51();
}
private function onResize(param1:Event) : void
{
var _loc2_:name_23 = null;
if(this.gameKernel != null)
{
this.gameKernel.name_5().name_46(0,0,stage.stageWidth,stage.stageHeight);
_loc2_ = this.gameKernel.name_5().name_42();
_loc2_.y = stage.stageHeight - _loc2_.size;
}
if(this.var_1 != null)
{
this.var_1.name_50(stage.stageWidth,stage.stageHeight);
}
}
}
}