Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.41 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.kodiak] = { 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" }
  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