more versions added

This commit is contained in:
Tubix
2024-10-05 12:11:16 +01:00
parent 413f563f33
commit c32c7e8c34
7661 changed files with 1343635 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
package com.alternativagame.engine3d.skin {
import com.alternativagame.engine3d.Math3D;
import com.alternativagame.engine3d.Matrix3D;
import com.alternativagame.engine3d.engine3d;
import com.alternativagame.engine3d.material.HelperMaterial;
import com.alternativagame.engine3d.object.Object3D;
import com.alternativagame.engine3d.object.SkinObject3D;
import com.alternativagame.engine3d.object.light.Light3D;
import com.alternativagame.type.RGB;
import com.alternativagame.type.Vector;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
use namespace engine3d;
public class HelperSkin extends ObjectSkin {
use namespace engine3d;
private var tf:TextField = null;
private var link:Shape;
protected var gfx:Shape;
public function HelperSkin(object:SkinObject3D) {
super(object);
link = new Shape();
addChild(link);
gfx = new Shape();
addChild(gfx);
}
override engine3d function position():void {
super.position();
drawLink();
}
override engine3d function draw():void {
super.draw();
var material:HelperMaterial = HelperMaterial(this.material);
// Если в материале есть текст
if (material.text) {
// Создаём текстовое поле если надо
if (tf == null) {
tf = new TextField();
var f:TextFormat = new TextFormat("Courier", 11);
f.align = "center";
tf.defaultTextFormat = f;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.selectable = false;
tf.mouseEnabled = false;
addChild(tf);
}
// Обновляем данные текстового поля
tf.text = object.name;
tf.textColor = material.textColor.toInt();
tf.x = -tf.width/2;
} else {
// Удаляем текстовое поле если оно не нужно
if (tf != null) {
removeChild(tf);
tf = null;
}
}
drawLink();
}
// Рисуем связь с родителем
private function drawLink():void {
link.graphics.clear();
if (HelperMaterial(material).link && object.parent != null) {
var px:Number = object.parent.transform.d - x;
var py:Number = - object.parent.transform.l - y;
with (link.graphics) {
moveTo(0,0);
lineStyle(1, 0xFFFFFF, 0.3);
lineTo(px, py);
}
}
}
override protected function drawDefaultHit():void {
with (graphics) {
drawCircle(0, 0, 3);
}
}
}
}