public virtual void Initialise(VoxelTypeManager voxelTypeManager, IChunkManager chunkManager, FrameworkEventManager eventManager) { this.voxelTypeManager = voxelTypeManager; this.chunkManager = chunkManager; directionRotator = DirectionRotatorExtensions.Create(); this.eventManager = eventManager; }
public static NativeDirectionRotator Create() { NativeDirectionRotator native = new NativeDirectionRotator(); native.DirectionVectors = new NativeArray <int3>(DirectionExtensions.numDirections, Allocator.Persistent); for (int i = 0; i < DirectionExtensions.numDirections; i++) { var vec = DirectionExtensions.Vectors[i]; native.DirectionVectors[i] = vec.ToNative(); } native.DirectionOpposites = DirectionExtensions.Opposite.ToNative(Allocator.Persistent); var xArr = new Direction[DirectionExtensions.numDirections]; var yArr = new Direction[DirectionExtensions.numDirections]; var zArr = new Direction[DirectionExtensions.numDirections]; for (int i = 0; i < xArr.Length; i++) { xArr[i] = CardinalRotateX((Direction)i); } for (int i = 0; i < yArr.Length; i++) { yArr[i] = CardinalRotateY((Direction)i); } for (int i = 0; i < zArr.Length; i++) { zArr[i] = CardinalRotateZ((Direction)i); } native.XRotationMatix = xArr.ToNative(Allocator.Persistent); native.YRotationMatix = yArr.ToNative(Allocator.Persistent); native.ZRotationMatix = zArr.ToNative(Allocator.Persistent); return(native); }