public void read(Reader reader, List <string> objectNames = null, List <string> variableNames = null) { // Load scene if (!reader.readBytes(4).SequenceEqual(signature)) { reader.Close(); throw new Exception("Invalid Scene v5 signature"); } editorMetadata = new SceneEditorMetadata(reader); byte layerCount = reader.ReadByte(); layers.Clear(); for (int i = 0; i < layerCount; ++i) { layers.Add(new SceneLayer(reader)); } byte objectCount = reader.ReadByte(); objects.Clear(); for (int i = 0; i < objectCount; ++i) { objects.Add(new SceneObject(reader, objectNames, variableNames)); } reader.Close(); }
private Scene(Reader reader) { if (readTilesOnly == false) { // Load scene if (!reader.ReadBytes(4).SequenceEqual(MAGIC)) { throw new Exception("Invalid scene file header magic"); } EditorMetadata = new SceneEditorMetadata(reader); byte layers_count = reader.ReadByte(); for (int i = 0; i < layers_count; ++i) { Layers.Add(new SceneLayer(reader)); } byte objects_count = reader.ReadByte(); for (int i = 0; i < objects_count; ++i) { Objects.Add(new SceneObject(reader)); } } else { // Load scene if (!reader.ReadBytes(4).SequenceEqual(MAGIC)) { throw new Exception("Invalid scene file header magic"); } EditorMetadata = new SceneEditorMetadata(reader); byte layers_count = reader.ReadByte(); for (int i = 0; i < layers_count; ++i) { Layers.Add(new SceneLayer(reader)); } /*byte objects_count = reader.ReadByte(); * for (int i = 0; i < objects_count; ++i) * Objects.Add(new SceneObject(reader));*/ } }
public Scene() { EditorMetadata = new SceneEditorMetadata(); }