| [1114] | 1 | using System;
|
|---|
| 2 | using System.Xml;
|
|---|
| 3 | using Oni.Metadata;
|
|---|
| 4 |
|
|---|
| 5 | namespace Oni.Objects
|
|---|
| 6 | {
|
|---|
| 7 | internal class Console : GunkObject
|
|---|
| 8 | {
|
|---|
| 9 | public int ScriptId;
|
|---|
| 10 | public ConsoleFlags Flags;
|
|---|
| 11 | public string InactiveTexture;
|
|---|
| 12 | public string ActiveTexture;
|
|---|
| 13 | public string TriggeredTexture;
|
|---|
| 14 | public ObjectEvent[] Events;
|
|---|
| 15 |
|
|---|
| 16 | public Console()
|
|---|
| 17 | {
|
|---|
| 18 | TypeId = ObjectType.Console;
|
|---|
| 19 | }
|
|---|
| 20 |
|
|---|
| 21 | protected override void WriteOsd(BinaryWriter writer)
|
|---|
| 22 | {
|
|---|
| 23 | writer.Write(ClassName, 63);
|
|---|
| 24 | writer.WriteUInt16(ScriptId);
|
|---|
| 25 | writer.WriteUInt16((ushort)Flags);
|
|---|
| 26 | writer.Write(InactiveTexture, 63);
|
|---|
| 27 | writer.Write(ActiveTexture, 63);
|
|---|
| 28 | writer.Write(TriggeredTexture, 63);
|
|---|
| 29 | ObjectEvent.WriteEventList(writer, Events);
|
|---|
| 30 | }
|
|---|
| 31 |
|
|---|
| 32 | protected override void ReadOsd(BinaryReader reader)
|
|---|
| 33 | {
|
|---|
| 34 | ClassName = reader.ReadString(63);
|
|---|
| 35 | ScriptId = reader.ReadUInt16();
|
|---|
| 36 | Flags = (ConsoleFlags)reader.ReadInt16();
|
|---|
| 37 | InactiveTexture = reader.ReadString(63);
|
|---|
| 38 | ActiveTexture = reader.ReadString(63);
|
|---|
| 39 | TriggeredTexture = reader.ReadString(63);
|
|---|
| 40 | Events = ObjectEvent.ReadEventList(reader);
|
|---|
| 41 | }
|
|---|
| 42 |
|
|---|
| 43 | protected override void WriteOsd(XmlWriter xml)
|
|---|
| 44 | {
|
|---|
| 45 | throw new NotImplementedException();
|
|---|
| 46 | }
|
|---|
| 47 |
|
|---|
| 48 | protected override void ReadOsd(XmlReader xml, ObjectLoadContext context)
|
|---|
| 49 | {
|
|---|
| 50 | string className = null;
|
|---|
| 51 |
|
|---|
| 52 | while (xml.IsStartElement())
|
|---|
| 53 | {
|
|---|
| 54 | switch (xml.LocalName)
|
|---|
| 55 | {
|
|---|
| 56 | case "Class":
|
|---|
| 57 | className = xml.ReadElementContentAsString();
|
|---|
| 58 | break;
|
|---|
| 59 | case "ConsoleId":
|
|---|
| 60 | ScriptId = xml.ReadElementContentAsInt();
|
|---|
| 61 | break;
|
|---|
| 62 | case "Flags":
|
|---|
| 63 | Flags = xml.ReadElementContentAsEnum<ConsoleFlags>();
|
|---|
| 64 | break;
|
|---|
| 65 | case "DisabledTexture":
|
|---|
| 66 | case "InactiveTexture":
|
|---|
| 67 | InactiveTexture = xml.ReadElementContentAsString();
|
|---|
| 68 | break;
|
|---|
| 69 | case "EnabledTexture":
|
|---|
| 70 | case "ActiveTexture":
|
|---|
| 71 | ActiveTexture = xml.ReadElementContentAsString();
|
|---|
| 72 | break;
|
|---|
| 73 | case "UsedTexture":
|
|---|
| 74 | case "TrigerredTexture":
|
|---|
| 75 | TriggeredTexture = xml.ReadElementContentAsString();
|
|---|
| 76 | break;
|
|---|
| 77 | case "Events":
|
|---|
| 78 | Events = ObjectEvent.ReadEventList(xml);
|
|---|
| 79 | break;
|
|---|
| 80 | default:
|
|---|
| 81 | xml.Skip();
|
|---|
| 82 | break;
|
|---|
| 83 | }
|
|---|
| 84 | }
|
|---|
| 85 |
|
|---|
| 86 | GunkClass = context.GetClass(TemplateTag.CONS, className, ConsoleClass.Read);
|
|---|
| 87 | }
|
|---|
| 88 | }
|
|---|
| 89 | }
|
|---|