mirror of
https://github.com/MapMakersAndProgrammers/alternativa-editor-mod.git
synced 2025-10-26 01:49:05 -07:00
collision import fix
This commit is contained in:
@@ -20,16 +20,16 @@ package alternativa.editor.mapexport
|
|||||||
{
|
{
|
||||||
var loc8:Vertex = null;
|
var loc8:Vertex = null;
|
||||||
var loc9:Point3D = null;
|
var loc9:Point3D = null;
|
||||||
var loc10:Point3D = null;
|
var loc10:Point3D = new Point3D();
|
||||||
var loc2:Number = Number.MAX_VALUE;
|
var loc2:Number = Number.MAX_VALUE;
|
||||||
var loc3:Number = -Number.MAX_VALUE;
|
var loc3:Number = -Number.MAX_VALUE;
|
||||||
var loc4:Number = Number.MAX_VALUE;
|
var loc4:Number = Number.MAX_VALUE;
|
||||||
var loc5:Number = -Number.MAX_VALUE;
|
var loc5:Number = -Number.MAX_VALUE;
|
||||||
var loc6:Number = Number.MAX_VALUE;
|
var loc6:Number = Number.MAX_VALUE;
|
||||||
var loc7:Number = -Number.MAX_VALUE;
|
var loc7:Number = -Number.MAX_VALUE;
|
||||||
for each(loc8 in param1.alternativa3d::_vertices)
|
for each(loc8 in param1.vertices)
|
||||||
{
|
{
|
||||||
loc10 = loc8.alternativa3d::_coords;
|
loc10.copyFromVertex(loc8);
|
||||||
if(loc10.x < loc2)
|
if(loc10.x < loc2)
|
||||||
{
|
{
|
||||||
loc2 = loc10.x;
|
loc2 = loc10.x;
|
||||||
|
|||||||
@@ -5,9 +5,13 @@ package alternativa.editor.mapexport
|
|||||||
import alternativa.engine3d.objects.Mesh;
|
import alternativa.engine3d.objects.Mesh;
|
||||||
import alternativa.types.Matrix4;
|
import alternativa.types.Matrix4;
|
||||||
import alternativa.types.Point3D;
|
import alternativa.types.Point3D;
|
||||||
|
import alternativa.engine3d.core.Vertex;
|
||||||
|
|
||||||
public class CollisionRect extends CollisionPrimitive
|
public class CollisionRect extends CollisionPrimitive
|
||||||
{
|
{
|
||||||
|
private static const p1:Point3D = new Point3D();
|
||||||
|
private static const p2:Point3D = new Point3D();
|
||||||
|
|
||||||
public var width:Number = 0;
|
public var width:Number = 0;
|
||||||
|
|
||||||
public var length:Number = 0;
|
public var length:Number = 0;
|
||||||
@@ -22,7 +26,8 @@ package alternativa.editor.mapexport
|
|||||||
var loc2:int = 0;
|
var loc2:int = 0;
|
||||||
var loc14:Point3D = null;
|
var loc14:Point3D = null;
|
||||||
var loc15:Number = NaN;
|
var loc15:Number = NaN;
|
||||||
var loc3:Face = param1.alternativa3d::_faces.peek() as Face;
|
var loc3:Face = param1.faceList;
|
||||||
|
var vertices:Vector.<Vertex> = loc3.vertices;
|
||||||
var loc4:Number = -1;
|
var loc4:Number = -1;
|
||||||
var loc5:int = 0;
|
var loc5:int = 0;
|
||||||
var loc6:Vector.<Point3D> = Vector.<Point3D>([new Point3D(),new Point3D(),new Point3D()]);
|
var loc6:Vector.<Point3D> = Vector.<Point3D>([new Point3D(),new Point3D(),new Point3D()]);
|
||||||
@@ -31,7 +36,7 @@ package alternativa.editor.mapexport
|
|||||||
while(loc2 < 3)
|
while(loc2 < 3)
|
||||||
{
|
{
|
||||||
loc14 = loc6[loc2];
|
loc14 = loc6[loc2];
|
||||||
loc14.difference(loc3.vertices[(loc2 + 1) % 3].alternativa3d::_coords,loc3.vertices[loc2].alternativa3d::_coords);
|
loc14.difference(p1.copyFromVertex(vertices[(loc2 + 1) % 3]),p2.copyFromVertex(vertices[loc2]));
|
||||||
loc15 = loc7[loc2] = loc14.length;
|
loc15 = loc7[loc2] = loc14.length;
|
||||||
if(loc15 > loc4)
|
if(loc15 > loc4)
|
||||||
{
|
{
|
||||||
@@ -47,7 +52,7 @@ package alternativa.editor.mapexport
|
|||||||
loc11.invert();
|
loc11.invert();
|
||||||
this.width = loc7[loc8];
|
this.width = loc7[loc8];
|
||||||
this.length = loc7[loc9];
|
this.length = loc7[loc9];
|
||||||
var loc12:Point3D = loc3.vertices[(loc5 + 2) % 3].alternativa3d::_coords.clone();
|
var loc12:Point3D = new Point3D().copyFromVertex(vertices[(loc5 + 2) % 3]);
|
||||||
loc12.x += 0.5 * (loc10.x + loc11.x);
|
loc12.x += 0.5 * (loc10.x + loc11.x);
|
||||||
loc12.y += 0.5 * (loc10.y + loc11.y);
|
loc12.y += 0.5 * (loc10.y + loc11.y);
|
||||||
loc12.z += 0.5 * (loc10.z + loc11.z);
|
loc12.z += 0.5 * (loc10.z + loc11.z);
|
||||||
@@ -55,8 +60,8 @@ package alternativa.editor.mapexport
|
|||||||
loc11.normalize();
|
loc11.normalize();
|
||||||
var loc13:Point3D = Point3D.cross(loc10,loc11);
|
var loc13:Point3D = Point3D.cross(loc10,loc11);
|
||||||
transform.setVectors(loc10,loc11,loc13,loc12);
|
transform.setVectors(loc10,loc11,loc13,loc12);
|
||||||
transform.rotate(param1.alternativa3d::_rotationX,param1.alternativa3d::_rotationY,param1.alternativa3d::_rotationZ);
|
transform.rotate(param1.rotationX,param1.rotationY,param1.rotationZ);
|
||||||
transform.translate(param1.alternativa3d::_coords.x,param1.alternativa3d::_coords.y,param1.alternativa3d::_coords.z);
|
transform.translate(param1.x,param1.y,param1.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
override public function getXml(param1:Matrix4) : XML
|
override public function getXml(param1:Matrix4) : XML
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ package alternativa.editor.mapexport
|
|||||||
override public function parse(param1:Mesh) : void
|
override public function parse(param1:Mesh) : void
|
||||||
{
|
{
|
||||||
var loc2:Vector.<Vertex> = param1.faceList.vertices;
|
var loc2:Vector.<Vertex> = param1.faceList.vertices;
|
||||||
this.v0.copy((loc2[0]).alternativa3d::_coords);
|
this.v0.copyFromVertex((loc2[0]));
|
||||||
this.v1.copy((loc2[1]).alternativa3d::_coords);
|
this.v1.copyFromVertex((loc2[1]));
|
||||||
this.v2.copy((loc2[2]).alternativa3d::_coords);
|
this.v2.copyFromVertex((loc2[2]));
|
||||||
var loc3:Point3D = new Point3D();
|
var loc3:Point3D = new Point3D();
|
||||||
loc3.x = (this.v0.x + this.v1.x + this.v2.x) / 3;
|
loc3.x = (this.v0.x + this.v1.x + this.v2.x) / 3;
|
||||||
loc3.y = (this.v0.y + this.v1.y + this.v2.y) / 3;
|
loc3.y = (this.v0.y + this.v1.y + this.v2.y) / 3;
|
||||||
@@ -48,8 +48,8 @@ package alternativa.editor.mapexport
|
|||||||
loc5.cross2(loc8,loc4);
|
loc5.cross2(loc8,loc4);
|
||||||
loc5.normalize();
|
loc5.normalize();
|
||||||
transform.setVectors(loc4,loc5,loc8,loc3);
|
transform.setVectors(loc4,loc5,loc8,loc3);
|
||||||
transform.rotate(param1.alternativa3d::_rotationX,param1.alternativa3d::_rotationY,param1.alternativa3d::_rotationZ);
|
transform.rotate(param1.rotationX,param1.rotationY,param1.rotationZ);
|
||||||
transform.translate(param1.alternativa3d::_coords.x,param1.alternativa3d::_coords.y,param1.alternativa3d::_coords.z);
|
transform.translate(param1.x,param1.y,param1.z);
|
||||||
loc6 = (this.v1.x + this.v2.x) / 3;
|
loc6 = (this.v1.x + this.v2.x) / 3;
|
||||||
loc7 = (this.v1.y + this.v2.y) / 3;
|
loc7 = (this.v1.y + this.v2.y) / 3;
|
||||||
this.v0.reset(-loc6,-loc7,0);
|
this.v0.reset(-loc6,-loc7,0);
|
||||||
|
|||||||
Reference in New Issue
Block a user