PolyacovYury/PYmods

PlayerspanelApi... as fix code

Closed this issue · 1 comments

`package polyacov_yury.views.battle
{
// Flash
import flash.filters.DropShadowFilter;
import flash.text.TextField;
// WG Imports
import net.wg.data.constants.generated.LAYER_NAMES;
import net.wg.gui.battle.random.views.BattlePage;
import net.wg.gui.battle.views.BaseBattlePage;
import net.wg.gui.components.containers.MainViewContainer;
import net.wg.infrastructure.base.AbstractView;
import net.wg.infrastructure.interfaces.ISimpleManagedContainer;
// Scalefromm
import scaleform.gfx.TextFieldEx;

public class PlayersPanels extends AbstractView
{
	private static const NAME_MAIN:String = "main";
	
	public static var ui:PlayersPanelsApi;
	
	public var py_log:Function;
	public var py_update:Function;
	
	private var viewPage:BaseBattlePage;
	
	private var configs:Object = {};
	private var textFields:Object = {};
	
	public function PlayersPanelsApi():void
	{
		super();
		ui = this;
	}
	
	override protected function onPopulate():void
	{
		super.onPopulate();
		
		try
		{
			parent.removeChild(this);
			var viewContainer:MainViewContainer = _getContainer(LAYER_NAMES.VIEWS) as MainViewContainer;
			viewContainer.setFocusedView(viewContainer.getTopmostView());
			viewPage = viewContainer.getChildByName(NAME_MAIN) as BaseBattlePage;
		}
		catch (error:Error)
		{
			py_log(error.getStackTrace());
		}
	}
	
	override protected function onDispose():void
	{
		super.onDispose();
	}
	
	public function as_create(linkage:String, config:Object):void
	{
		if (viewPage) createComponent(linkage, config);
	}
	
	public function as_update(linkage:String, data:Object):void
	{
		if (viewPage) updateComponent(linkage, data);
	}
	
	public function as_delete(linkage:String):void
	{
		if (viewPage) deleteComponent(linkage);
	}
	
	private function _getContainer(containerName:String) : ISimpleManagedContainer
	{
		return App.containerMgr.getContainer(LAYER_NAMES.LAYER_ORDER.indexOf(containerName))
	}
	
	private function createComponent(linkage:String, config:Object):void
	{
		configs[linkage] = config;
		textFields[linkage] = {};
	}
	
	private function updateComponent(linkage:String, data:Object):void
	{
		try
		{
			if (!textFields[linkage].hasOwnProperty(data['vehicleID']))
			{
				_createTextField(linkage, data);
			}
			
			var textField:TextField = textFields[linkage][data.vehicleID];
			
			if (configs[linkage]['isHtml'])
				textField.htmlText = data.text;
			else
				textField.text = data.text;
		}
		catch (e:Error)
		{
			DebugUtils.LOG_ERROR(e.getStackTrace());
		}
	}
	
	public function deleteComponent(linkage:String):void
	{
		delete configs[linkage];
		delete textFields[linkage];
	}
	
	private function _createTextField(linkage:String, data:Object):void
	{
		var isRight:Boolean = false;
		var textField:TextField = null;
		var playersPanelHolder:* = null;
		var movieIndex:Number = 0;
		var config:Object = null;
		var shadow:Object = null;
		
		var playersPanel:* = (viewPage as BattlePage).playersPanel;
		
		playersPanelHolder = playersPanel.listLeft.getHolderByVehicleID(data['vehicleID']);
		if (!playersPanelHolder)
		{
			isRight = true;
			playersPanelHolder = playersPanel.listRight.getHolderByVehicleID(data['vehicleID']);
		}
		
		config = configs[linkage][isRight ? "right" : "left"];
		shadow = configs[linkage]["shadow"];
		
		textField = new TextField();
		textField.visible = true
		textField.height = config.height;
		textField.width = config.width;
		textField.autoSize = config.align;
		textField.selectable = false;
		textField.filters = [new DropShadowFilter(shadow.distance, shadow.angle, shadow.color, shadow.alpha, shadow.blurX, shadow.blurY, shadow.strength, shadow.quality)]
		TextFieldEx.setNoTranslate(textField, true);
		
		textField.x = playersPanelHolder._listItem.vehicleIcon.x + config.x;
		textField.y = playersPanelHolder._listItem.vehicleIcon.y + config.y;
		
		movieIndex = playersPanelHolder._listItem.getChildIndex(playersPanelHolder._listItem.vehicleTF) + 1;
		playersPanelHolder._listItem.addChildAt(textField, movieIndex);
		
		textFields[linkage][data.vehicleID] = textField;
	}
}

}`

Sorry, for I put the code here, but I'm in smartphone.