private static void saveRegion(River river, StructureRegion region) { uint time = Provider.time; ushort num = 0; ushort num2 = 0; while ((int)num2 < region.structures.Count) { StructureData structureData = region.structures[(int)num2]; if ((!Dedicator.isDedicated || Provider.modeConfigData.Structures.Decay_Time == 0u || time < structureData.objActiveDate || time - structureData.objActiveDate < Provider.modeConfigData.Structures.Decay_Time) && structureData.structure.asset.isSaveable) { num += 1; } num2 += 1; } river.writeUInt16(num); ushort num3 = 0; while ((int)num3 < region.structures.Count) { StructureData structureData2 = region.structures[(int)num3]; if ((!Dedicator.isDedicated || Provider.modeConfigData.Structures.Decay_Time == 0u || time < structureData2.objActiveDate || time - structureData2.objActiveDate < Provider.modeConfigData.Structures.Decay_Time) && structureData2.structure.asset.isSaveable) { river.writeUInt16(structureData2.structure.id); river.writeUInt16(structureData2.structure.health); river.writeSingleVector3(structureData2.point); river.writeByte(structureData2.angle_x); river.writeByte(structureData2.angle_y); river.writeByte(structureData2.angle_z); river.writeUInt64(structureData2.owner); river.writeUInt64(structureData2.group); river.writeUInt32(structureData2.objActiveDate); } num3 += 1; } }