Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.43 KB | None | 0 0
  1. --[[
  2. Copyright (C) 2013-2016 - DiamondGamers.net
  3.  
  4. Unauthorized copying of this file, via any medium is strictly prohibited
  5. Proprietary and confidential
  6.  
  7. Written by GhoulofGSG9 (GhoulofGSG9@gmail.com) and Rusty01 <vanfenix1@gmail.com>
  8. ]]
  9.  
  10. DMDSkinHandler = {}
  11.  
  12. local function JoinTableWithEnum( tbl, tb2 )
  13.  
  14. local maxVal = 0
  15. for i, _ in ipairs(tbl) do
  16. maxVal = i
  17. end
  18.  
  19. for i, v in ipairs(tb2) do
  20. rawset( tbl, v, maxVal + i )
  21. rawset( tbl, maxVal + i, v )
  22. end
  23.  
  24. return maxVal
  25. end
  26.  
  27. local VarianDataQueue = {}
  28. local function JoinTwoTablesWithIds( t1, t2 )
  29. for i, t in pairs( t2 ) do
  30. if not rawget(t1, i) then
  31. rawset(t1, i, t)
  32. end
  33. end
  34.  
  35. VarianDataQueue[#VarianDataQueue + 1] = t1
  36. end
  37.  
  38. local Checks = {}
  39. function DMDSkinHandler.AddOptionCheck( Option, maxNum )
  40. Checks[Option] = maxNum
  41. end
  42.  
  43. function DMDSkinHandler.GetOptionCheck()
  44. return Checks
  45. end
  46.  
  47. function DMDSkinHandler:InitialiseMarineSkins()
  48. local DMDVariants = { "medic", "hev", "guns2", "red", "hellokitty", "hudson", "bluefire", "ghost", "rainbow", "redeclipse", "tundra", "kodiak", "assault" }
  49.  
  50. local NumVannilaVariants = JoinTableWithEnum( kMarineVariant, DMDVariants )
  51.  
  52. self.AddOptionCheck("marineVariant", NumVannilaVariants )
  53.  
  54. kMedicProductId = 4939
  55. kHevProductId = 4938
  56. kGunsv2ProductId = 4937
  57. kRedProductId = 4936
  58. kHelloKittyProductId = 4935
  59. kHudsonProductId = 49350
  60. kBluefireProductId = 49351
  61. kGhostProductId = 49352
  62. kRainbowProductID = 49353
  63. kRedeclipseProductID = 49354
  64. kTundraArmorItemId = 101
  65. kKodiakArmorItemId = 201
  66. kAssaultArmorItemId = 502
  67.  
  68. local kDmdVariantData =
  69. {
  70. [kMarineVariant.medic] = { productId = kMedicProductId, displayName = "DMD-Anarchist Medic", modelFilePart = "_medic", viewModelFilePart = "" },
  71. [kMarineVariant.hev] = { productId = kHevProductId, displayName = "DMD-Gordon", modelFilePart = "_hev", viewModelFilePart = "" },
  72. [kMarineVariant.guns2] = { productId = kGunsv2ProductId, displayName = "DMD-Gunslinger", modelFilePart = "_gunsv2", viewModelFilePart = "" },
  73. [kMarineVariant.red] = { productId = kRedProductId, displayName = "DMD-Ferrari", modelFilePart = "_red", viewModelFilePart = "" },
  74. [kMarineVariant.hellokitty] = { productId = kHelloKittyProductId, displayName = "DMD-Barbi", modelFilePart = "_hellokitty", viewModelFilePart = "" },
  75. [kMarineVariant.hudson] = { productId = kHudsonProductId, displayName = "DMD-Hudson", modelFilePart = "_hudson", viewModelFilePart = "" },
  76. [kMarineVariant.bluefire] = { productId = kBluefireProductId, displayName = "DMD-Bluefire", modelFilePart = "_bluefire", viewModelFilePart = "" },
  77. [kMarineVariant.ghost] = { productId = kGhostProductId, displayName = "DMD-Ghost", modelFilePart = "_ghost", viewModelFilePart = "" },
  78. [kMarineVariant.rainbow] = { productId = kRainbowProductID, displayName = "DMD-Slick", modelFilePart = "_rainbow", viewModelFilePart = "" },
  79. [kMarineVariant.redeclipse] = { productId = kRedeclipseProductID, displayName = "DMD-Redfox", modelFilePart = "_redeclipse", viewModelFilePart = "" },
  80. [kMarineVariant.tundra] = { productId = kTundraArmorItemId, displayName = "Tundra", modelFilePart = "_tundra", viewModelFilePart = "" },
  81. [kMarineVariant.kodiak] = { productId = kKodiakArmorItemId, displayName = "Kodiak", modelFilePart = "_kodiak", viewModelFilePart = "" },
  82. [kMarineVariant.assault] = { productId = kAssaultArmorItemId, displayName = "Assault", modelFilePart = "_assault", viewModelFilePart = "" }
  83. }
  84. JoinTwoTablesWithIds( kMarineVariantData, kDmdVariantData )
  85. end
  86.  
  87. function DMDSkinHandler:InitialiseExoSkins()
  88. local DMDVariants = { "camo", "catalyst", "explorer", "warmonger", "eclipse", "bluewater", "tundra", "kodiak" }
  89.  
  90. local NumVannilaVariants = JoinTableWithEnum( kExoVariant, DMDVariants )
  91.  
  92. self.AddOptionCheck("exoVariant", NumVannilaVariants )
  93.  
  94. kCamoExoProductId = 49450
  95. kCatalystExoProductId = 49451
  96. kExplorerExoProductId = 49452
  97. kWarmongerExoProductId = 49453
  98. kEclipseExoProductId = 49454
  99. kBluewaterExoProductId = 49455
  100. kTundraExosuitItemId = 102
  101. kKodiakExosuitItemId = 202
  102.  
  103. local kDmdVariantData =
  104. {
  105. [kExoVariant.camo] = { productId = kCamoExoProductId, displayName = "DMD-Camo", modelFilePart = "", viewModelFilePart = "" },
  106. [kExoVariant.catalyst] = { productId = kCatalystExoProductId, displayName = "DMD-Catalyst", modelFilePart = "", viewModelFilePart = "" },
  107. [kExoVariant.explorer] = { productId = kExplorerExoProductId, displayName = "DMD-Explorer", modelFilePart = "_2", viewModelFilePart = "" },
  108. [kExoVariant.warmonger] = { productId = kWarmongerExoProductId, displayName = "DMD-WarMonger", modelFilePart = "", viewModelFilePart = "" },
  109. [kExoVariant.eclipse] = { productId = kEclipseExoProductId, displayName = "DMD-Eclipse", modelFilePart = "", viewModelFilePart = "" },
  110. [kExoVariant.bluewater] = { productId = kBluewaterExoProductId, displayName = "DMD-Bluewater", modelFilePart = "", viewModelFilePart = "" },
  111. [kExoVariant.tundra] = { productId = kTundraExosuitItemId, displayName = "Tundra", modelFilePart = "", viewModelFilePart = "" },
  112. [kExoVariant.kodiak] = { productId = kKodiakExosuitItemId, displayName = "Kodiak", modelFilePart = "", viewModelFilePart = "" }
  113.  
  114. }
  115. JoinTwoTablesWithIds( kExoVariantData, kDmdVariantData )
  116. end
  117.  
  118. function DMDSkinHandler:InitialiseSkulkSkins()
  119. local DMDVariants = { "classic","tron", "dread", "alien", "reaper", "kodiak", "shadow" }
  120.  
  121. local NumVannilaVariants = JoinTableWithEnum( kSkulkVariant, DMDVariants )
  122.  
  123. self.AddOptionCheck("skulkVariant", NumVannilaVariants )
  124.  
  125. kTronProductId = 49301
  126. kskulkalienProductId = 49311
  127. kskulkdreadProductId = 49321
  128. kskulkclassicProductId = 49331
  129. kReaperSkulkItemId = 302
  130. kKodiakSkulkItemId = 205
  131. kShadowSkulkItemId = 403
  132.  
  133. local kDmdVariantData =
  134. {
  135. [kSkulkVariant.classic] = { productId = kskulkclassicProductId, displayName = "DMD-Jungle", modelFilePart = "_classic", viewModelFilePart = "" },
  136. [kSkulkVariant.tron] = { productId = kTronProductId, displayName = "DMD-Recognizer", modelFilePart = "_tron", viewModelFilePart = "" },
  137. [kSkulkVariant.dread] = { productId = kskulkdreadProductId, displayName = "DMD-Tank", modelFilePart = "_dread", viewModelFilePart = "" },
  138. [kSkulkVariant.alien] = { productId = kskulkalienProductId, displayName = "DMD-Skeletor", modelFilePart = "_alien", viewModelFilePart = "" },
  139. [kSkulkVariant.reaper] = { productId = kReaperSkulkItemId, displayName = "reaper", modelFilePart = "_reaper", viewModelFilePart = "" },
  140. [kSkulkVariant.kodiak] = { productId = kKodiakSkulkItemId, displayName = "reaper", modelFilePart = "_kodiak", viewModelFilePart = "" },
  141. [kSkulkVariant.shadow] = { productId = kShadowSkulkItemId, displayName = "shadow", modelFilePart = "_shadow", viewModelFilePart = "" }
  142.  
  143. }
  144. JoinTwoTablesWithIds( kSkulkVariantData, kDmdVariantData )
  145. end
  146. function DMDSkinHandler:InitialiseOnosSkins()
  147. local DMDVariants = { "reaper" }
  148.  
  149. local NumVannilaVariants = JoinTableWithEnum( kReaperVariant, DMDVariants )
  150.  
  151. self.AddOptionCheck("reaperVariant", NumVannilaVariants )
  152.  
  153. kReaperOnosItemId=306
  154.  
  155.  
  156. local kDmdVariantData =
  157. {
  158. [kOnosVariant.reaper] = { productId = kReaperOnosItemId, displayName = "Reaper", modelFilePart = "_reaper", viewModelFilePart = "" }
  159.  
  160. }
  161. JoinTwoTablesWithIds( kReaperVariantData, kDmdVariantData )
  162. end
  163.  
  164.  
  165.  
  166. function DMDSkinHandler:InitialiseGorgeSkins()
  167. local DMDVariants = { "dread","purple","classic","alien", "reaper", "shadow" }
  168.  
  169. local NumVannilaVariants = JoinTableWithEnum( kGorgeVariant, DMDVariants )
  170.  
  171. self.AddOptionCheck("gorgeVariant", NumVannilaVariants )
  172.  
  173. kgorgedreadProductId = 49322
  174. kgorgepurpleProductId = 49324
  175. kgorgeclassicProductId = 49332
  176. kgorgealienProductId = 49312
  177. kReaperGorgeItemId = 303
  178. kShadowGorgeItemId = 404
  179.  
  180.  
  181. local kDmdVariantData =
  182. {
  183. [kGorgeVariant.dread] = { productId = kgorgedreadProductId, displayName = "DMD-Tank", modelFilePart = "_dread", viewModelFilePart = "" },
  184. [kGorgeVariant.purple] = { productId = kgorgepurpleProductId, displayName = "DMD-Purple", modelFilePart = "_purple", viewModelFilePart = "" },
  185. [kGorgeVariant.classic] = { productId = kgorgeclassicProductId, displayName = "DMD-Jungle", modelFilePart = "_classic", viewModelFilePart = "" },
  186. [kGorgeVariant.alien] = { productId = kgorgealienProductId, displayName = "DMD-Skeletor", modelFilePart = "_alien", viewModelFilePart = "" },
  187. [kGorgeVariant.alien] = { productId = kReaperGorgeItemId, displayName = "Reaper", modelFilePart = "_reaper", viewModelFilePart = "" },
  188. [kGorgeVariant.alien] = { productId = kShadowGorgeItemId, displayName = "Shadow", modelFilePart = "_shadow", viewModelFilePart = "" }
  189. }
  190. JoinTwoTablesWithIds( kGorgeVariantData, kDmdVariantData )
  191. end
  192.  
  193. function DMDSkinHandler:InitialiseFadeSkins()
  194. local DMDVariants = { "purple", "predator", "reaper" }
  195.  
  196. local NumVannilaVariants = JoinTableWithEnum( kFadeVariant, DMDVariants )
  197.  
  198. self.AddOptionCheck("fadeVariant", NumVannilaVariants )
  199.  
  200. kfadepurpleProductId = 49420
  201. kfadepredatorProductId = 49421
  202. kReaperFadeItemId = 305
  203.  
  204. local kDmdVariantData =
  205. {
  206. [kFadeVariant.purple] = { productId = kfadepurpleProductId, displayName = "DMD-Purpler", modelFilePart = "_purple", viewModelFilePart = "" },
  207. [kFadeVariant.predator] = { productId = kfadepredatorProductId, displayName = "DMD-Predator", modelFilePart = "_predator", viewModelFilePart = "" },
  208. [kFadeVariant.reaper] = { productId = kReaperFadeItemId, displayName = "Reaper", modelFilePart = "_reaper", viewModelFilePart = "" }
  209.  
  210. }
  211. JoinTwoTablesWithIds( kFadeVariantData, kDmdVariantData )
  212. end
  213.  
  214. function DMDSkinHandler:InitialiseShotgunSkins()
  215. local DMDVariants = { "tundra" }
  216.  
  217. local NumVannilaVariants = JoinTableWithEnum( kShotgunVariant, DMDVariants )
  218.  
  219. self.AddOptionCheck("shotgunVariant", NumVannilaVariants )
  220.  
  221. kTundraShotgunItemId=104
  222.  
  223.  
  224. local kDmdVariantData =
  225. {
  226. [kShotgunVariant.tundra] = { productId = kTundraShotgunItemId, displayName = "Tundra", modelFilePart = "_tundra", viewModelFilePart = "" }
  227.  
  228.  
  229. }
  230. JoinTwoTablesWithIds( kshotgunVariantData, kDmdVariantData )
  231. end
  232.  
  233. function DMDSkinHandler:InitialiseRifleSkins()
  234. local DMDVariants = { "tundra", "kodiak" }
  235.  
  236. local NumVannilaVariants = JoinTableWithEnum( kLerkVariant, DMDVariants )
  237.  
  238. self.AddOptionCheck("rifleVariant", NumVannilaVariants )
  239.  
  240. kTundraRifleItemId = 103
  241. kKodiakRifleItemId = 203
  242.  
  243.  
  244. local kDmdVariantData =
  245. {
  246. [kRifleVariant.tundra] = { productId = klerkalienProductId, displayName = "Tundra", modelFilePart = "_tundra", viewModelFilePart = "" },
  247. [kRifleVariant.kodiak] = { productId = klerkdreadProductId, displayName = "Kodiak", modelFilePart = "_kodiak", viewModelFilePart = "" }
  248.  
  249. }
  250. JoinTwoTablesWithIds( kRifleVariantData, kDmdVariantData )
  251. end
  252.  
  253. function DMDSkinHandler:InitialiseLerkSkins()
  254. local DMDVariants = { "alien", "dread", "purple", "classic", "reaper", "shadow" }
  255.  
  256. local NumVannilaVariants = JoinTableWithEnum( kLerkVariant, DMDVariants )
  257.  
  258. self.AddOptionCheck("lerkVariant", NumVannilaVariants )
  259.  
  260. klerkalienProductId = 49313
  261. klerkdreadProductId = 49323
  262. klerkpurpleProductId = 49343
  263. klerkclassicProductId = 49333
  264. kReaperLerkItemId = 304
  265. kShadowLerkItemId = 405
  266.  
  267. local kDmdVariantData =
  268. {
  269. [kLerkVariant.alien] = { productId = klerkalienProductId, displayName = "DMD-Skeletor", modelFilePart = "_alien", viewModelFilePart = "" },
  270. [kLerkVariant.dread] = { productId = klerkdreadProductId, displayName = "DMD-Tank", modelFilePart = "_dread", viewModelFilePart = "" },
  271. [kLerkVariant.purple] = { productId = klerkpurpleProductId, displayName = "DMD-Purple", modelFilePart = "_purple", viewModelFilePart = "" },
  272. [kLerkVariant.classic] = { productId = klerkclassicProductId, displayName = "DMD-Jungle", modelFilePart = "_classic", viewModelFilePart = "" },
  273. [kLerkVariant.reaper] = { productId = kReaperLerkItemId, displayName = "Reaper", modelFilePart = "_reaper", viewModelFilePart = "" },
  274. [kLerkVariant.shadow] = { productId = kShadowLerkItemId, displayName = "Shadow", modelFilePart = "_shadow", viewModelFilePart = "" }
  275. }
  276. JoinTwoTablesWithIds( kLerkVariantData, kDmdVariantData )
  277. end
  278.  
  279. function DMDSkinHandler:IntialiseDLCIds()
  280. local DLCIds = {}
  281. local i = 1
  282. for _, variants in ipairs(VarianDataQueue) do
  283. for _, data in pairs(variants) do
  284.  
  285. --some skins have mutliple ids so we have to treat all productId entries as table
  286. local ids = data.productId
  287. if type(ids) ~= "table" then
  288. ids = { ids }
  289. end
  290.  
  291. for _, id in ipairs( ids ) do
  292. if not DLCIds[id] then
  293. DLCIds[i] = id
  294. DLCIds[id] = i
  295. i = i + 1
  296. end
  297. end
  298. end
  299. end
  300. self.DLCIds = DLCIds
  301. end
  302.  
  303. function DMDSkinHandler:GetDLCIds()
  304. return self.DLCIds
  305. end
  306.  
  307. function DMDSkinHandler:InitialiseShoulderPad()
  308. kDMDPadProductId = 49401
  309.  
  310. kShoulderPad2ItemId[#kShoulderPad2ItemId + 1] = kDMDPadProductId
  311. kShoulderPadNames[#kShoulderPadNames + 1] = "DMD"
  312.  
  313. --As usual ns2 has no real system model consistency so we have to work around by faking a table for the pads
  314. VarianDataQueue[#VarianDataQueue + 1] = {{productId = kDMDPadProductId}}
  315. end
  316.  
  317. function DMDSkinHandler:InitialiseSkins()
  318. --Pad Stuff
  319.  
  320. --Todo Exo and Shoulder Skins need art atlasing fixed
  321. --self:InitialiseShoulderPad()
  322. --self:InitialiseExoSkins()
  323. self:InitialiseFadeSkins()
  324. self:InitialiseGorgeSkins()
  325. self:InitialiseLerkSkins()
  326. self:InitialiseMarineSkins()
  327. self:InitialiseSkulkSkins()
  328.  
  329. self:IntialiseDLCIds()
  330. end
  331.  
  332. do
  333. DMDSkinHandler:InitialiseSkins()
  334. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement