// Token: 0x06001F6D RID: 8045 RVA: 0x000AE1C8 File Offset: 0x000AC5C8 public Guid readGUID() { GuidBuffer guidBuffer = default(GuidBuffer); guidBuffer.Read(this.readByteArray(), 0); return(guidBuffer.GUID); }
public void writeGUID(Guid GUID) { GuidBuffer guidBuffer = new GuidBuffer(GUID); guidBuffer.Write(GuidBuffer.GUID_BUFFER, 0); this.writeBytes(GuidBuffer.GUID_BUFFER); }
public static void Write(this BinaryWriter writer, Guid guid) { var buffer = new GuidBuffer(guid); buffer.CopyTo(s_GuidBytes, 0); writer.Write(s_GuidBytes, 0, 16); }
// Token: 0x06000CE4 RID: 3300 RVA: 0x0005EE24 File Offset: 0x0005D224 public virtual void writeInstances() { string path = string.Concat(new object[] { Level.info.path, "/Foliage/Tile_", this.coord.x, "_", this.coord.y, ".foliage" }); string directoryName = Path.GetDirectoryName(path); if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } using (FileStream fileStream = new FileStream(path, FileMode.OpenOrCreate)) { BinaryWriter binaryWriter = new BinaryWriter(fileStream); binaryWriter.Write(FoliageTile.FOLIAGE_FILE_VERSION); binaryWriter.Write(this.instances.Count); foreach (KeyValuePair <AssetReference <FoliageInstancedMeshInfoAsset>, FoliageInstanceList> keyValuePair in this.instances) { GuidBuffer guidBuffer = new GuidBuffer(keyValuePair.Key.GUID); object guid_BUFFER = GuidBuffer.GUID_BUFFER; lock (guid_BUFFER) { guidBuffer.Write(GuidBuffer.GUID_BUFFER, 0); fileStream.Write(GuidBuffer.GUID_BUFFER, 0, 16); } int num = 0; foreach (List <Matrix4x4> list in keyValuePair.Value.matrices) { num += list.Count; } binaryWriter.Write(num); for (int i = 0; i < keyValuePair.Value.matrices.Count; i++) { List <Matrix4x4> list2 = keyValuePair.Value.matrices[i]; List <bool> list3 = keyValuePair.Value.clearWhenBaked[i]; for (int j = 0; j < list2.Count; j++) { Matrix4x4 matrix4x = list2[j]; for (int k = 0; k < 16; k++) { binaryWriter.Write(matrix4x[k]); } bool value = list3[j]; binaryWriter.Write(value); } } } } this.canSafelyClear = true; }
public Guid readGUID() { if (this.block != null) { return(this.block.readGUID()); } GuidBuffer guidBuffer = default(GuidBuffer); guidBuffer.Read(this.readBytes(), 0); return(guidBuffer.GUID); }
// Token: 0x060021F0 RID: 8688 RVA: 0x000BB624 File Offset: 0x000B9A24 public override void updateState(Asset asset, byte[] state) { if (!Dedicator.isDedicated) { this.audioSource = base.transform.FindChild("Audio").GetComponent <AudioSource>(); } GuidBuffer guidBuffer = default(GuidBuffer); guidBuffer.Read(state, 0); this.updateTrack(guidBuffer.GUID); this.compressedVolume = state[16]; }
private static unsafe string MakeStringRepresentation(Guid id) { // Convert Guid to bytes GuidBuffer buffer = new GuidBuffer(id); byte * bytes = buffer.buffer; // Target string int size = sizeof(Guid) * 2; char *result = stackalloc char[size + 1 /* \0 terminator */]; char *start = result; for (int i = 0; i < sizeof(Guid); i++) { byte src = *bytes; int carry = 0; { int index = src % Chars.Length; char current = Chars[index]; *result = current; result++; carry = ((src - index) / Chars.Length) - 1; } if (carry > 0) { int index = carry % Chars.Length; char current = Chars[index]; *result = current; result++; } bytes++; } return(new string(start)); }
// Token: 0x06000CE2 RID: 3298 RVA: 0x0005EBB4 File Offset: 0x0005CFB4 protected virtual void readInstances(object stateInfo) { Dictionary <AssetReference <FoliageInstancedMeshInfoAsset>, FoliageInstanceList> source = new Dictionary <AssetReference <FoliageInstancedMeshInfoAsset>, FoliageInstanceList>(); string path = string.Concat(new object[] { Level.info.path, "/Foliage/Tile_", this.coord.x, "_", this.coord.y, ".foliage" }); if (File.Exists(path)) { using (FileStream fileStream = new FileStream(path, FileMode.Open)) { BinaryReader binaryReader = new BinaryReader(fileStream); int num = binaryReader.ReadInt32(); int num2 = binaryReader.ReadInt32(); for (int i = 0; i < num2; i++) { GuidBuffer guidBuffer = default(GuidBuffer); object guid_BUFFER = GuidBuffer.GUID_BUFFER; lock (guid_BUFFER) { fileStream.Read(GuidBuffer.GUID_BUFFER, 0, 16); guidBuffer.Read(GuidBuffer.GUID_BUFFER, 0); } AssetReference <FoliageInstancedMeshInfoAsset> assetReference = new AssetReference <FoliageInstancedMeshInfoAsset>(guidBuffer.GUID); FoliageInstanceList orAddList = this.getOrAddList(source, assetReference); int num3 = binaryReader.ReadInt32(); for (int j = 0; j < num3; j++) { Matrix4x4 matrix4x = default(Matrix4x4); for (int k = 0; k < 16; k++) { matrix4x[k] = binaryReader.ReadSingle(); } bool newClearWhenBaked = num <= 2 || binaryReader.ReadBoolean(); if (!this.isInstanceCut(matrix4x.GetPosition())) { orAddList.addInstanceAppend(new FoliageInstanceGroup(assetReference, matrix4x, newClearWhenBaked)); } } } } } object obj = this.thisLock; lock (obj) { if (!this.hasInstances) { this.instances = source; this.updateBounds(); this.hasInstances = true; this.isReadingInstances = false; } } }