mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-08-20 00:49:25 +08:00
* - Add ability to edit/add ytyp files to project. - Add ability to edit/add ytyp archetype files to ytyp. - Add ability to add/remove entities from mlo archetype defs. - Add ability to save ytyp files. - Add dialog popup before optimizing grass batches. - Fix grass batches not being selected when chaning selection in project explorer. - Merged with upstream/master. - Squashed last 4 commits for PR cleanliness. * Fixed windows forms reference error. * - Added error checking to deleting mlo entities. - Fixed various bugs with deleting mlo entities. - Fixed edit archetype panel Asset Type box. - Removed redundant/unnecessary. - Removed backwards references between MCEntityDef and YmapEntityDef. All ymap entity to mcentity references are grabbed using indecies in the MloInstanceData class. - Fixed "YmapMenu" not showing when selecting entities/mlo entities in project form. Current bugs: - Loading a ytyp file -- mlo entities are not editiable, and are created in the world. - entitysets are not editable (properly). - Removing an mloinstancedef from a ymap does not delete the mlo instance's gizmo from the world, and it's still selectable. (Although all references are lost, and I believe collected by the GC?) * - Moved archetype initialization methods YmapFile.InitYmapEntityArchetypes(GameFileCache gfc) and MloInstanceData.InitYmapEntityArchetypes(GameFileCache gfc) - Added ability to load mlo instance defs through ymap files. - Fixed add method for mlo archetypes. * - Removed SetOrientationInv. - Removed unreachable code + updated comment. - Renamed CreateEntity to CreateYmapEntity, and renamed params for consistency. * Split calls to CreateYmapEntity() and MloArchetype.AddEntity(). * Fixed redundant rotation inversions. * - Added ability to select rooms. - Changed tree view grouping for mlo entities. - Fixed projectexplorer selection bugs. - Added ability to toggle mlo entity sets. - Fixed some change events when editing archetypes.
68 lines
1.5 KiB
C#
68 lines
1.5 KiB
C#
using SharpDX;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using CodeWalker.GameFiles;
|
|
|
|
namespace CodeWalker
|
|
{
|
|
public static class Vectors
|
|
{
|
|
public static Vector3 XYZ(this Vector4 v)
|
|
{
|
|
return new Vector3(v.X, v.Y, v.Z);
|
|
}
|
|
|
|
public static Vector3 Round(this Vector3 v)
|
|
{
|
|
return new Vector3((float)Math.Round(v.X), (float)Math.Round(v.Y), (float)Math.Round(v.Z));
|
|
}
|
|
|
|
public static Vector4 Floor(this Vector4 v)
|
|
{
|
|
return new Vector4((float)Math.Floor(v.X), (float)Math.Floor(v.Y), (float)Math.Floor(v.Z), (float)Math.Floor(v.W));
|
|
}
|
|
|
|
public static Quaternion ToQuaternion(this Vector4 v)
|
|
{
|
|
return new Quaternion(v);
|
|
}
|
|
}
|
|
|
|
|
|
public struct Vector2I
|
|
{
|
|
public int X;
|
|
public int Y;
|
|
|
|
public Vector2I(int x, int y)
|
|
{
|
|
X = x;
|
|
Y = y;
|
|
}
|
|
public Vector2I(Vector2 v)
|
|
{
|
|
X = (int)Math.Floor(v.X);
|
|
Y = (int)Math.Floor(v.Y);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return X.ToString() + ", " + Y.ToString();
|
|
}
|
|
|
|
|
|
public static Vector2I operator +(Vector2I a, Vector2I b)
|
|
{
|
|
return new Vector2I(a.X + b.X, a.Y + b.Y);
|
|
}
|
|
|
|
public static Vector2I operator -(Vector2I a, Vector2I b)
|
|
{
|
|
return new Vector2I(a.X - b.X, a.Y - b.Y);
|
|
}
|
|
|
|
}
|
|
} |