PageRenderTime 56ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/WorldView/Structures/WorldHeader.cs

#
C# | 1071 lines | 988 code | 81 blank | 2 comment | 1 complexity | 07aeaedeaca97bf13563b3e75653d7b3 MD5 | raw file
  1. namespace MoreTerra.Structures
  2. {
  3. using System;
  4. using System.ComponentModel;
  5. using System.Drawing;
  6. using System.Runtime.InteropServices;
  7. using MoreTerra;
  8. public struct WorldHeader
  9. {
  10. private int releaseNumber;
  11. private string name;
  12. private int id;
  13. private Rect worldCoords;
  14. private Point maxTiles;
  15. private byte moonType;
  16. private int[] treeX;
  17. private int[] treeStyle;
  18. private int[] caveBackX;
  19. private int[] caveBackStyle;
  20. private int iceBackStyle;
  21. private int jungleBackStyle;
  22. private int hellBackStyle;
  23. private Point spawnPoint;
  24. private double surfaceLevel;
  25. private double rockLayer;
  26. private double temporaryTime;
  27. private bool isDayTime;
  28. private int moonPhase;
  29. private bool isBloodMoon;
  30. private bool isEclipse;
  31. private Point dungeonPoint;
  32. private bool crimson; // What is this?
  33. private bool isBoss1Dead;
  34. private bool isBoss2Dead;
  35. private bool isBoss3Dead;
  36. private bool isQueenBeeDead;
  37. private bool isMechBoss1Dead;
  38. private bool isMechBoss2Dead;
  39. private bool isMechBoss3Dead;
  40. private bool isMechBossAnyDead;
  41. private bool isPlantBossDead;
  42. private bool isGolemBossDead;
  43. private bool isGoblinSaved;
  44. private bool isWizardSaved;
  45. private bool isMechanicSaved;
  46. private bool isGoblinArmyDefeated;
  47. private bool isClownDefeated;
  48. private bool isFrostDefeated;
  49. private bool isPiratesDefeated;
  50. private bool isShadowOrbSmashed;
  51. private bool isMeteorSpawned;
  52. private byte shadowOrbsSmashed;
  53. private int altarsDestroyed;
  54. private bool hardMode;
  55. private int invasionDelay;
  56. private int invasionSize;
  57. private int invasionType;
  58. private double invasionPointX;
  59. private bool isRaining;
  60. private int rainTime;
  61. private Single maxRain;
  62. private int[] oreTiers;
  63. private byte[] styles;
  64. private int cloudsActive;
  65. private short numClouds;
  66. private Single windSpeed;
  67. private String merchantsName; //0x11
  68. private String nursesName; //0x12
  69. private String armsDealersName; //0x13
  70. private String dryadsName; //0x14
  71. private String guidesName; //0x16
  72. private String clothiersName; //0x36
  73. private String demolitionistsName; //0x26
  74. private String tinkerersName; //0x6B
  75. private String wizardsName; //0x6C
  76. private String mechanicsName; //0x7C
  77. private String trufflesName; //160
  78. private String steampunkersName; // 178
  79. private String dyetradersName; // 207
  80. private String partygirlsName; // 208
  81. private String cyborgsName; // 209
  82. private String paintersName; // 227
  83. private String witchdoctorsName; // 228
  84. private String piratesName; // 229
  85. private String stylistName;
  86. public int[] sectionPointers;
  87. [CategoryAttribute("General"), ReadOnlyAttribute(true)]
  88. public int ReleaseNumber
  89. {
  90. get
  91. {
  92. return this.releaseNumber;
  93. }
  94. set
  95. {
  96. this.releaseNumber = value;
  97. }
  98. }
  99. [CategoryAttribute("General"), ReadOnlyAttribute(true)]
  100. public string Name
  101. {
  102. get
  103. {
  104. return this.name;
  105. }
  106. set
  107. {
  108. this.name = value;
  109. }
  110. }
  111. [CategoryAttribute("General"), ReadOnlyAttribute(true)]
  112. public int Id
  113. {
  114. get
  115. {
  116. return this.id;
  117. }
  118. set
  119. {
  120. this.id = value;
  121. }
  122. }
  123. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  124. public Rect WorldCoords
  125. {
  126. get
  127. {
  128. return this.worldCoords;
  129. }
  130. set
  131. {
  132. this.worldCoords = value;
  133. }
  134. }
  135. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  136. public Point MaxTiles
  137. {
  138. get
  139. {
  140. return this.maxTiles;
  141. }
  142. set
  143. {
  144. // For some very odd reason the Y coord on the map is stored first.
  145. // Maps are always longer than tall so we flip it if it's the other way around.
  146. if (value.X < value.Y)
  147. {
  148. int t = value.X;
  149. value.X = value.Y;
  150. value.Y = t;
  151. }
  152. this.maxTiles = value;
  153. }
  154. }
  155. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  156. public byte MoonType
  157. {
  158. get
  159. {
  160. return this.moonType;
  161. }
  162. set
  163. {
  164. this.moonType = value;
  165. }
  166. }
  167. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  168. public int[] TreeX
  169. {
  170. get
  171. {
  172. return this.treeX;
  173. }
  174. set
  175. {
  176. this.treeX = value;
  177. }
  178. }
  179. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  180. public int[] TreeStyle
  181. {
  182. get
  183. {
  184. return this.treeStyle;
  185. }
  186. set
  187. {
  188. this.treeStyle = value;
  189. }
  190. }
  191. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  192. public int[] CaveBackX
  193. {
  194. get
  195. {
  196. return this.caveBackX;
  197. }
  198. set
  199. {
  200. this.caveBackX = value;
  201. }
  202. }
  203. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  204. public int[] CaveBackStyle
  205. {
  206. get
  207. {
  208. return this.caveBackStyle;
  209. }
  210. set
  211. {
  212. this.caveBackStyle = value;
  213. }
  214. }
  215. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  216. public int IceBackStyle
  217. {
  218. get
  219. {
  220. return this.iceBackStyle;
  221. }
  222. set
  223. {
  224. this.iceBackStyle = value;
  225. }
  226. }
  227. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  228. public int JungleBackStyle
  229. {
  230. get
  231. {
  232. return this.jungleBackStyle;
  233. }
  234. set
  235. {
  236. this.jungleBackStyle = value;
  237. }
  238. }
  239. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  240. public int HellBackStyle
  241. {
  242. get
  243. {
  244. return this.hellBackStyle;
  245. }
  246. set
  247. {
  248. this.hellBackStyle = value;
  249. }
  250. }
  251. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  252. public Point SpawnPoint
  253. {
  254. get
  255. {
  256. return this.spawnPoint;
  257. }
  258. set
  259. {
  260. this.spawnPoint = value;
  261. }
  262. }
  263. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  264. public double SurfaceLevel
  265. {
  266. get
  267. {
  268. return this.surfaceLevel;
  269. }
  270. set
  271. {
  272. this.surfaceLevel = value;
  273. }
  274. }
  275. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  276. public double RockLayer
  277. {
  278. get
  279. {
  280. return this.rockLayer;
  281. }
  282. set
  283. {
  284. this.rockLayer = value;
  285. }
  286. }
  287. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  288. public double TemporaryTime
  289. {
  290. get
  291. {
  292. return this.temporaryTime;
  293. }
  294. set
  295. {
  296. this.temporaryTime = value;
  297. }
  298. }
  299. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  300. public bool IsDayTime
  301. {
  302. get
  303. {
  304. return this.isDayTime;
  305. }
  306. set
  307. {
  308. this.isDayTime = value;
  309. }
  310. }
  311. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  312. public int MoonPhase
  313. {
  314. get
  315. {
  316. return this.moonPhase;
  317. }
  318. set
  319. {
  320. this.moonPhase = value;
  321. }
  322. }
  323. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  324. public bool IsBloodMoon
  325. {
  326. get
  327. {
  328. return this.isBloodMoon;
  329. }
  330. set
  331. {
  332. this.isBloodMoon = value;
  333. }
  334. }
  335. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  336. public bool IsEclipse
  337. {
  338. get
  339. {
  340. return this.isEclipse;
  341. }
  342. set
  343. {
  344. this.isEclipse = value;
  345. }
  346. }
  347. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  348. public Point DungeonPoint
  349. {
  350. get
  351. {
  352. return this.dungeonPoint;
  353. }
  354. set
  355. {
  356. this.dungeonPoint = value;
  357. }
  358. }
  359. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  360. public bool Crimson
  361. {
  362. get
  363. {
  364. return this.crimson;
  365. }
  366. set
  367. {
  368. this.crimson = value;
  369. }
  370. }
  371. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  372. public bool IsBoss1Dead
  373. {
  374. get
  375. {
  376. return this.isBoss1Dead;
  377. }
  378. set
  379. {
  380. this.isBoss1Dead = value;
  381. }
  382. }
  383. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  384. public bool IsBoss2Dead
  385. {
  386. get
  387. {
  388. return this.isBoss2Dead;
  389. }
  390. set
  391. {
  392. this.isBoss2Dead = value;
  393. }
  394. }
  395. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  396. public bool IsBoss3Dead
  397. {
  398. get
  399. {
  400. return this.isBoss3Dead;
  401. }
  402. set
  403. {
  404. this.isBoss3Dead = value;
  405. }
  406. }
  407. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  408. public bool IsQueenBeeDead
  409. {
  410. get
  411. {
  412. return this.isQueenBeeDead;
  413. }
  414. set
  415. {
  416. this.isQueenBeeDead = value;
  417. }
  418. }
  419. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  420. public bool IsMechBoss1Dead
  421. {
  422. get
  423. {
  424. return this.isMechBoss1Dead;
  425. }
  426. set
  427. {
  428. this.isMechBoss1Dead = value;
  429. }
  430. }
  431. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  432. public bool IsMechBoss2Dead
  433. {
  434. get
  435. {
  436. return this.isMechBoss2Dead;
  437. }
  438. set
  439. {
  440. this.isMechBoss2Dead = value;
  441. }
  442. }
  443. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  444. public bool IsMechBoss3Dead
  445. {
  446. get
  447. {
  448. return this.isMechBoss3Dead;
  449. }
  450. set
  451. {
  452. this.isMechBoss3Dead = value;
  453. }
  454. }
  455. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  456. public bool IsMechBossAnyDead
  457. {
  458. get
  459. {
  460. return this.isMechBossAnyDead;
  461. }
  462. set
  463. {
  464. this.isMechBossAnyDead = value;
  465. }
  466. }
  467. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  468. public bool IsPlantBossDead
  469. {
  470. get
  471. {
  472. return this.isPlantBossDead;
  473. }
  474. set
  475. {
  476. this.isPlantBossDead = value;
  477. }
  478. }
  479. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  480. public bool IsGolemBossDead
  481. {
  482. get
  483. {
  484. return this.isGolemBossDead;
  485. }
  486. set
  487. {
  488. this.isGolemBossDead = value;
  489. }
  490. }
  491. [CategoryAttribute("NPC Information"), ReadOnlyAttribute(true)]
  492. public Boolean IsGoblinSaved
  493. {
  494. get
  495. {
  496. return this.isGoblinSaved;
  497. }
  498. set
  499. {
  500. this.isGoblinSaved = value;
  501. }
  502. }
  503. [CategoryAttribute("NPC Information"), ReadOnlyAttribute(true)]
  504. public Boolean IsWizardSaved
  505. {
  506. get
  507. {
  508. return this.isWizardSaved;
  509. }
  510. set
  511. {
  512. this.isWizardSaved = value;
  513. }
  514. }
  515. [CategoryAttribute("NPC Information"), ReadOnlyAttribute(true)]
  516. public Boolean IsMechanicSaved
  517. {
  518. get
  519. {
  520. return this.isMechanicSaved;
  521. }
  522. set
  523. {
  524. this.isMechanicSaved = value;
  525. }
  526. }
  527. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  528. public Boolean IsClownDefeated
  529. {
  530. get
  531. {
  532. return this.isClownDefeated;
  533. }
  534. set
  535. {
  536. this.isClownDefeated = value;
  537. }
  538. }
  539. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  540. public Boolean IsFrostDefeated
  541. {
  542. get
  543. {
  544. return this.isFrostDefeated;
  545. }
  546. set
  547. {
  548. this.isFrostDefeated = value;
  549. }
  550. }
  551. [CategoryAttribute("Boss Information"), ReadOnlyAttribute(true)]
  552. public Boolean IsPiratesDefeated
  553. {
  554. get
  555. {
  556. return this.isPiratesDefeated;
  557. }
  558. set
  559. {
  560. this.isPiratesDefeated = value;
  561. }
  562. }
  563. [CategoryAttribute("Meteor Information"), ReadOnlyAttribute(true)]
  564. public bool IsShadowOrbSmashed
  565. {
  566. get
  567. {
  568. return this.isShadowOrbSmashed;
  569. }
  570. set
  571. {
  572. this.isShadowOrbSmashed = value;
  573. }
  574. }
  575. [CategoryAttribute("Meteor Information"), ReadOnlyAttribute(true)]
  576. public bool IsMeteorSpawned
  577. {
  578. get
  579. {
  580. return this.isMeteorSpawned;
  581. }
  582. set
  583. {
  584. this.isMeteorSpawned = value;
  585. }
  586. }
  587. [CategoryAttribute("Meteor Information"), ReadOnlyAttribute(true)]
  588. public byte ShadowOrbsSmashed
  589. {
  590. get
  591. {
  592. return this.shadowOrbsSmashed;
  593. }
  594. set
  595. {
  596. this.shadowOrbsSmashed = value;
  597. }
  598. }
  599. [CategoryAttribute("Hard Mode Information"), ReadOnlyAttribute(true)]
  600. public Int32 AltarsDestroyed
  601. {
  602. get
  603. {
  604. return this.altarsDestroyed;
  605. }
  606. set
  607. {
  608. this.altarsDestroyed = value;
  609. }
  610. }
  611. [CategoryAttribute("Hard Mode Information"), ReadOnlyAttribute(true)]
  612. public Boolean HardMode
  613. {
  614. get
  615. {
  616. return this.hardMode;
  617. }
  618. set
  619. {
  620. this.hardMode = value;
  621. }
  622. }
  623. [CategoryAttribute("Invasion Information"), ReadOnlyAttribute(true)]
  624. public int InvasionDelay
  625. {
  626. get
  627. {
  628. return this.invasionDelay;
  629. }
  630. set
  631. {
  632. this.invasionDelay = value;
  633. }
  634. }
  635. [CategoryAttribute("Invasion Information"), ReadOnlyAttribute(true)]
  636. public int InvasionSize
  637. {
  638. get
  639. {
  640. return this.invasionSize;
  641. }
  642. set
  643. {
  644. this.invasionSize = value;
  645. }
  646. }
  647. [CategoryAttribute("Invasion Information"), ReadOnlyAttribute(true)]
  648. public int InvasionType
  649. {
  650. get
  651. {
  652. return this.invasionType;
  653. }
  654. set
  655. {
  656. this.invasionType = value;
  657. }
  658. }
  659. [CategoryAttribute("Invasion Information"), ReadOnlyAttribute(true)]
  660. public double InvasionPointX
  661. {
  662. get
  663. {
  664. return this.invasionPointX;
  665. }
  666. set
  667. {
  668. this.invasionPointX = value;
  669. }
  670. }
  671. [CategoryAttribute("Invasion Information"), ReadOnlyAttribute(true)]
  672. public Boolean IsGoblinArmyDefeated
  673. {
  674. get
  675. {
  676. return isGoblinArmyDefeated;
  677. }
  678. set
  679. {
  680. isGoblinArmyDefeated = value;
  681. }
  682. }
  683. [CategoryAttribute("Weather Information"), ReadOnlyAttribute(true)]
  684. public bool IsRaining
  685. {
  686. get
  687. {
  688. return this.isRaining;
  689. }
  690. set
  691. {
  692. this.isRaining = value;
  693. }
  694. }
  695. [CategoryAttribute("Weather Information"), ReadOnlyAttribute(true)]
  696. public int RainTime
  697. {
  698. get
  699. {
  700. return this.rainTime;
  701. }
  702. set
  703. {
  704. this.rainTime = value;
  705. }
  706. }
  707. [CategoryAttribute("Weather Information"), ReadOnlyAttribute(true)]
  708. public Single MaxRain
  709. {
  710. get
  711. {
  712. return this.maxRain;
  713. }
  714. set
  715. {
  716. this.maxRain = value;
  717. }
  718. }
  719. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  720. public int[] OreTiers
  721. {
  722. get
  723. {
  724. return this.oreTiers;
  725. }
  726. set
  727. {
  728. this.oreTiers = value;
  729. }
  730. }
  731. [CategoryAttribute("World Information"), ReadOnlyAttribute(true)]
  732. public byte[] Styles
  733. {
  734. get
  735. {
  736. return this.styles;
  737. }
  738. set
  739. {
  740. this.styles = value;
  741. }
  742. }
  743. [CategoryAttribute("Weather Information"), ReadOnlyAttribute(true)]
  744. public int CloudsActive
  745. {
  746. get
  747. {
  748. return this.cloudsActive;
  749. }
  750. set
  751. {
  752. this.cloudsActive = value;
  753. }
  754. }
  755. [CategoryAttribute("Weather Information"), ReadOnlyAttribute(true)]
  756. public short NumClouds
  757. {
  758. get
  759. {
  760. return this.numClouds;
  761. }
  762. set
  763. {
  764. this.numClouds = value;
  765. }
  766. }
  767. [CategoryAttribute("Weather Information"), ReadOnlyAttribute(true)]
  768. public Single WindSpeed
  769. {
  770. get
  771. {
  772. return this.windSpeed;
  773. }
  774. set
  775. {
  776. this.windSpeed = value;
  777. }
  778. }
  779. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  780. public String MerchantsName
  781. {
  782. get {
  783. return merchantsName;
  784. }
  785. set {
  786. merchantsName = value;
  787. }
  788. }
  789. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  790. public String NursesName
  791. {
  792. get {
  793. return nursesName;
  794. }
  795. set {
  796. nursesName = value;
  797. }
  798. }
  799. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  800. public String ArmsDealersName
  801. {
  802. get {
  803. return armsDealersName;
  804. }
  805. set {
  806. armsDealersName = value;
  807. }
  808. }
  809. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  810. public String DryadsName
  811. {
  812. get {
  813. return dryadsName;
  814. }
  815. set {
  816. dryadsName = value;
  817. }
  818. }
  819. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  820. public String GuidesName
  821. {
  822. get {
  823. return guidesName;
  824. }
  825. set {
  826. guidesName = value;
  827. }
  828. }
  829. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  830. public String ClothiersName
  831. {
  832. get {
  833. return clothiersName;
  834. }
  835. set {
  836. clothiersName = value;
  837. }
  838. }
  839. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  840. public String DemolitionistsName
  841. {
  842. get {
  843. return demolitionistsName;
  844. }
  845. set {
  846. demolitionistsName = value;
  847. }
  848. }
  849. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  850. public String TinkerersName
  851. {
  852. get {
  853. return tinkerersName;
  854. }
  855. set {
  856. tinkerersName = value;
  857. }
  858. }
  859. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  860. public String WizardsName
  861. {
  862. get {
  863. return wizardsName;
  864. }
  865. set {
  866. wizardsName = value;
  867. }
  868. }
  869. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  870. public String MechanicsName
  871. {
  872. get
  873. {
  874. return mechanicsName;
  875. }
  876. set
  877. {
  878. mechanicsName = value;
  879. }
  880. }
  881. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  882. public String TrufflesName
  883. {
  884. get
  885. {
  886. return trufflesName;
  887. }
  888. set
  889. {
  890. trufflesName = value;
  891. }
  892. }
  893. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  894. public String SteamPunkersName
  895. {
  896. get
  897. {
  898. return steampunkersName;
  899. }
  900. set
  901. {
  902. steampunkersName = value;
  903. }
  904. }
  905. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  906. public String DyeTradersName
  907. {
  908. get
  909. {
  910. return dyetradersName;
  911. }
  912. set
  913. {
  914. dyetradersName = value;
  915. }
  916. }
  917. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  918. public String PartyGirlsName
  919. {
  920. get
  921. {
  922. return partygirlsName;
  923. }
  924. set
  925. {
  926. partygirlsName = value;
  927. }
  928. }
  929. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  930. public String CyborgsName
  931. {
  932. get
  933. {
  934. return cyborgsName;
  935. }
  936. set
  937. {
  938. cyborgsName = value;
  939. }
  940. }
  941. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  942. public String PaintersName
  943. {
  944. get
  945. {
  946. return paintersName;
  947. }
  948. set
  949. {
  950. paintersName = value;
  951. }
  952. }
  953. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  954. public String WitchDoctorsName
  955. {
  956. get
  957. {
  958. return witchdoctorsName;
  959. }
  960. set
  961. {
  962. witchdoctorsName = value;
  963. }
  964. }
  965. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  966. public String PiratesName
  967. {
  968. get
  969. {
  970. return piratesName;
  971. }
  972. set
  973. {
  974. piratesName = value;
  975. }
  976. }
  977. [CategoryAttribute("NPC Names"), ReadOnlyAttribute(true)]
  978. public String StylistName
  979. {
  980. get
  981. {
  982. return stylistName;
  983. }
  984. set
  985. {
  986. stylistName = value;
  987. }
  988. }
  989. }
  990. }