diff --git a/icons/mob/in-hand/README.md b/icons/mob/in-hand/README.md new file mode 100644 index 00000000000..b18cc841711 --- /dev/null +++ b/icons/mob/in-hand/README.md @@ -0,0 +1,43 @@ +In-Hand DMI Compile System +========================== + +A shitty hack by N3X15 + +WHY THE FUCK? +------------- + +BYOND 499 limited the number of icon states that can be +added to a DMI to 512 states. Why? Who fucking knows. +Magically, DM can't edit them but the server doesn't +care how big they are, so it's probably a shitty hack +so they don't have to change the array's index type. + +Whatever the case, we ran into this wall. You cannot edit +items_lefthand and items_righthand with BYOND anymore. We +filed a bug report: http://www.byond.com/forum/?post=1507331 + +They closed it with "Not a Bug". + +So, here we are. The only way to edit DMIs that big +is with third-party tools like OpenBYOND. + +How to Compile +-------------- + +Simply dump your DMIs into the appropriate folder and run +compile.py from within this folder. It'll build the DMIs +and jam everything into a single meta-DMI for you. + +Simple. + +Adding More Output Targets +-------------------------- + +If you've run into the problem mentioned above with another +DMI, have no fear: Just edit compile.py and add the new +output target to the ToBuild dict as shown in the comments. + +License +------- + +MIT \ No newline at end of file diff --git a/icons/mob/in-hand/compile.py b/icons/mob/in-hand/compile.py new file mode 100644 index 00000000000..5849530ce33 --- /dev/null +++ b/icons/mob/in-hand/compile.py @@ -0,0 +1,48 @@ +''' +Created on Feb 28, 2014 + +@author: Rob +''' +import os, sys, logging + +ToBuild={ +# ' file to build': 'directory to pull from/', + '../items_lefthand.dmi': 'left/', + '../items_righthand.dmi': 'right/' +} + +# Tell Python where to find OpenBYOND. +# Assuming we're in icons/mob/in-hand +sys.path.append('../../../tools/OpenBYOND/src') + +from com.byond.DMI import DMI +from DMITool import compare_all + +def buildDMI(directory, output): + dmi = DMI(output) + logging.info('Creating {0}...'.format(output)) + for root, _, files in os.walk(directory): + for filename in files: + if filename.endswith('.dmi') and not filename.endswith('.new.dmi'): + filepath = os.path.join(root,filename) + logging.info('Adding {0}...'.format(filename,output)) + subdmi = DMI(filepath) + subdmi.loadAll() + if subdmi.icon_height!=32 or subdmi.icon_width!=32: + logging.warn('Skipping {0} - Invalid icon size.'.format(filepath)) + changes = 0 + for state_name in subdmi.states: + if state_name in dmi.states: + logging.warn('Skipping state {0}:{1} - State exists.'.format(filepath,state_name)) + continue + dmi.states[state_name]=subdmi.states[state_name] + changes += 1 + logging.info('Added {0} states.'.format(changes)) + #save + logging.info('Saving {0} states to {1}...'.format(len(dmi.states),output)) + dmi.save(output) +if __name__ == '__main__': + # Cheating, but useful for checking for unsync'd stuff + compare_all('left/','right/','in-hand_sync_report.txt',None,newfile_theirs=False,newfile_mine=False) + for output, input_dir in ToBuild.items(): + buildDMI(input_dir,output) \ No newline at end of file diff --git a/icons/mob/in-hand/in-hand_sync_report.txt b/icons/mob/in-hand/in-hand_sync_report.txt new file mode 100644 index 00000000000..4229f734db7 --- /dev/null +++ b/icons/mob/in-hand/in-hand_sync_report.txt @@ -0,0 +1,549 @@ +# DMITool Difference Report: C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right +--- C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left\cable_stuff.dmi ++++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right\cable_stuff.dmi + + cuff_cyan + + cuff_orange + + cuff_pink + + cuff_white +--- C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left\guns.dmi ++++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right\guns.dmi + + scythe0 +--- C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left\rpd.dmi ++++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right\rpd.dmi + + rpd +--- C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left\swords_axes.dmi ++++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right\swords_axes.dmi + + axe0 + + axe1 + - dualsaber0 + - dualsaber1 + - fireaxe0 + - fireaxe1 + - katana + - scythe0 + - unathiknife +--- C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left\vox_civvie.dmi ++++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right\vox_civvie.dmi + + vox-pressure-security +--- C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\left\zz_old_items_lefthand.dmi ++++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\in-hand\right\zz_old_items_lefthand.dmi + + DONGS + + Gibtonite ore + + altair_locket + + an_tank + + analyzer + + armor + + armor_reflec + + assembly + + atmos_gold_hardsuit + + atmos_gold_helm + + atmos_hardsuit + + atmos_helm + + atmos_suit + + atoxinbottle + + autoinjector + + axe0 + + axe1 + + b_mask + + b_shoes + + b_shoesold + + b_suit + + ba_suit + + backpack + + balloon + + balloon-empty + + banana_peel + + basketball + + baton + + beachball + + beaker + + bedsheet + + beer + + bgloves + + bible + + bike_horn + + bio_hood + + bio_orange + + bio_suit + + bl_shoes + + bl_shoesold + + bl_suit + + blackskirt + + blade + + blindfold + + blueprints + + bombvest + + brain2 + + brick + + briefcase + + broken_beer + + broom + + browncane + + brutepack + + bucket + + buckler + + bucklerOLD + + buildpipe + + burger + + butch + + butcher_knife + + c20r + + c_tube + + cakehat0 + + cakehat1 + + candy + + canister + + caphat + + capspacehelmet + + capspacesuit + + captainpack + + card-id + + cardborg + + cardborg_h + + carton + + caution + + ce_hardsuit + + ce_helm + + cell + + centcom + + centhat + + cespace_helmet + + cespace_suit + + chain + + chainmail + + chef + + chefhat + + chickensuit + + chips + + cigoff + + cigon + + cigpacket + + classic_baton + + claymore + + cleaner + + clipboard + + clown + + clown_hat + + clown_shoes + + clownpack + + coffee + + coil + + coil_blue + + coil_cyan + + coil_green + + coil_orange + + coil_pink + + coil_red + + coil_white + + coil_yellow + + cola + + contliquid + + contsolid + + contvapour + + coolant-c + + crossbow + + crossbow-solid + + crowbar + + crowbar_red + + cueball + + cuff_blue + + cuff_cyan + + cuff_green + + cuff_orange + + cuff_pink + + cuff_red + + cuff_white + + cuff_yellow + + cultblade + + culthood + + cultpack + + cultrobes + + cutlass0 + + cutlass1 + + cutters + + cutters_yellow + + daederic + + deagleg + + death_commando_mask + + death_commando_suit + + deathnettle + + det + + det_hat + + det_suit + + dg_suit + + dnainjector + + donut1 + + donut2 + + dpickaxe + + dr_gibb + + dropper + + dualsaber0 + + dualsaber1 + + dualsaberblue1 + + dualsabergreen1 + + dualsaberpurple1 + + dualsaberrainbow1 + + dualsaberred1 + + earmuffs + + egg + + egg1 + + egg2 + + egg3 + + egg4 + + egg5 + + electronic + + electropack + + emergency + + emergency_double + + emergency_engi + + emp + + energy_drink + + energykill + + energykill0 + + energykill100 + + energykill25 + + energykill50 + + energykill75 + + energystun + + energystun0 + + energystun100 + + energystun25 + + energystun50 + + energystun75 + + eng_hardsuit + + eng_helm + + engi_suit + + engiepack + + engspace_helmet + + engspace_suit + + eshield0 + + eshield1 + + faggot + + fire_extinguisher + + fire_suit + + fireaxe0 + + fireaxe1 + + firefighter + + firstaid + + firstaid-advanced + + firstaid-ointment + + firstaid-toxin + + flamethrower_0 + + flamethrower_1 + + flare + + flashlight + + foamcrossbow + + focus + + fr_jacket + + g_suit + + galoshes + + gas_alt + + gas_mask + + gift + + giftbag + + glasses + + gold_id + + gpickaxe + + greatcoat + + greenbandana + + gun + + gy_suit + + handcuff + + harpoon + + hatchet + + headset + + healthanalyzer + + helm-command + + helm-orange + + helmet + + hfrequency0 + + hfrequency1 + + hoe + + holidaypriest + + ice_tea_can + + imperium_monk + + implantcase + + ithaqua + + jackboots + + jackhammer + + janitor + + jensencoat + + jensensuit + + jetpack + + jetpack-black + + jetpack-void + + johnny + + johnny_coat + + judge + + katana + + kilt + + kineticgun + + kingyellow + + knife + + kobskull + + koran + + l6closedmag + + l6closednomag + + l6openmag + + l6opennomag + + labcoat + + lamp + + lampgreen + + laser + + latexballon + + lawyer_black + + lawyer_blue + + lawyer_red + + lb_suit + + lemon-lime + + lgloves + + lipstick + + lipstickopen + + m_mask + + magboots + + medibottle + + medical_hardsuit + + medical_helm + + medicalpack + + melted + + miniFE + + mining_hardsuit + + mining_helm + + mop + + mousetrap + + multitool + + muzzle + + nazi1 + + necronomicon + + nettle + + newspaper + + nothing + + nucgun + + nucgun0 + + nucgun100 + + nucgun25 + + nucgun50 + + nucgun75 + + nullrod + + nun + + nursesuit + + o_shoes + + o_shoes1 + + o_suit + + ointment + + overalls + + owl + + owl_mask + + oxygen + + oxygen-c + + oxygen_f + + oxygen_fr + + p_suit + + paintcan + + paper + + pen + + pickaxe + + pie + + pill + + pizzabox1 + + plantbgone + + plasma + + plasma-c + + plasticbag + + plasticx + + pneumatic + + pneumatic-tank + + ppickaxe + + prod + + psyche + + pulse + + pulse0 + + pulse100 + + pulse25 + + pulse50 + + pulse75 + + purple_can + + pwig + + quarrel + + r_feet + + r_hands + + r_head + + r_shoes + + r_suit + + rack_parts + + rad_suit + + radio + + rainbow + + rcd + + rcdammo + + rejuvbottle + + rev_headballoon + + revballoon + + rig_helm + + rig_suit + + riot + + riotgun + + ro_suit + + rods + + rolling_pin + + roman_shield + + rpd + + rubberducky + + s-ninja_mask + + s-ninja_suit + + s_helmet + + s_mask + + s_suit + + santa + + santahat + + saw3 + + scalpel + + scientology + + scrapbook + + scratch + + screwdriver + + screwdriver_blue + + screwdriver_brown + + screwdriver_cyan + + screwdriver_green + + screwdriver_purple + + screwdriver_yellow + + scythe0 + + sec-case + + sec_hardsuit + + sec_helm + + secsoft + + securitypack + + shard-glass + + sheet-card + + sheet-glass + + sheet-metal + + sheet-rglass + + shotgun + + shovel + + signaler + + silver_id + + sl_suit + + sodawater + + sord + + space-up + + space_helmet_syndicate + + space_mountain_wind + + space_suit_syndicate + + spade + + spearglass0 + + spearglass1 + + speargun + + spickaxe + + spoon + + spraycan + + staff + + staffofchange + + stamp + + starkist + + stick + + stool + + straight_jacket + + suit-command + + suit-orange + + sunflower + + sunglasses + + swat_gl + + swat_hel + + swat_sh + + swat_suit + + sword0 + + swordblue + + swordchain + + swordgreen + + swordpurple + + swordrainbow + + swordred + + syndballoon + + syndicate-black + + syndicate-black-blue + + syndicate-black-green + + syndicate-black-red + + syndicate-green + + syndicate-green-dark + + syndicate-helm-black + + syndicate-helm-black-blue + + syndicate-helm-black-green + + syndicate-helm-black-red + + syndicate-helm-green + + syndicate-helm-green-dark + + syndie_hardsuit + + syndie_helm + + syringe_0 + + syringe_1 + + syringe_10 + + syringe_15 + + syringe_5 + + syringe_kit + + syringegun + + table_parts + + taser + + taser0 + + taser100 + + taser25 + + taser50 + + taser75 + + tdgreen + + tdhelm + + tdred + + template + + that + + thirteen_loko + + tile + + tonic + + toolbox_blue + + toolbox_red + + toolbox_syndi + + toolbox_yellow + + toxinbottle + + toysword0 + + toysword1 + + trashbag + + ty_necklace + + unathiknife + + upickaxe + + vhammer + + vhelmet + + vialblue + + vialgreen + + violin + + vox-helmet-engineer + + vox-helmet-medical + + vox-helmet-normal + + vox-helmet-science + + vox-helmet-security + + vox-helmet-specops + + vox-pressure-engineer + + vox-pressure-medical + + vox-pressure-normal + + vox-pressure-science + + vox-pressure-security + + vox-pressure-specops + + w_shoes + + w_suit + + waiter + + warden + + wcoat + + welder + + welder1 + + welding + + welding-g + + weldingoff + + wiz_hardsuit + + wiz_helm + + wizhat + + wizrobe + + wizshoe + + wrap_paper + + wrench + + xenos_helm + + xenos_suit + + y_suit + + ygloves + + zippo + + zippoon \ No newline at end of file diff --git a/icons/mob/in-hand/left/cable_stuff.dmi b/icons/mob/in-hand/left/cable_stuff.dmi new file mode 100644 index 00000000000..9740e45aef6 Binary files /dev/null and b/icons/mob/in-hand/left/cable_stuff.dmi differ diff --git a/icons/mob/in-hand/left/guns.dmi b/icons/mob/in-hand/left/guns.dmi new file mode 100644 index 00000000000..ee67b16079e Binary files /dev/null and b/icons/mob/in-hand/left/guns.dmi differ diff --git a/icons/mob/in-hand/left/rpd.dmi b/icons/mob/in-hand/left/rpd.dmi new file mode 100644 index 00000000000..52a669782f7 Binary files /dev/null and b/icons/mob/in-hand/left/rpd.dmi differ diff --git a/icons/mob/in-hand/left/sheets.dmi b/icons/mob/in-hand/left/sheets.dmi new file mode 100644 index 00000000000..2438bcecfbb Binary files /dev/null and b/icons/mob/in-hand/left/sheets.dmi differ diff --git a/icons/mob/in-hand/left/swords_axes.dmi b/icons/mob/in-hand/left/swords_axes.dmi new file mode 100644 index 00000000000..87e689a4129 Binary files /dev/null and b/icons/mob/in-hand/left/swords_axes.dmi differ diff --git a/icons/mob/in-hand/left/vox_civvie.dmi b/icons/mob/in-hand/left/vox_civvie.dmi new file mode 100644 index 00000000000..92bd09cb949 Binary files /dev/null and b/icons/mob/in-hand/left/vox_civvie.dmi differ diff --git a/icons/mob/in-hand/left/zz_old_items_lefthand.dmi b/icons/mob/in-hand/left/zz_old_items_lefthand.dmi new file mode 100644 index 00000000000..e6e6cf33f76 Binary files /dev/null and b/icons/mob/in-hand/left/zz_old_items_lefthand.dmi differ diff --git a/icons/mob/in-hand/right/cable_stuff.dmi b/icons/mob/in-hand/right/cable_stuff.dmi new file mode 100644 index 00000000000..61e7d8d99f1 Binary files /dev/null and b/icons/mob/in-hand/right/cable_stuff.dmi differ diff --git a/icons/mob/in-hand/right/guns.dmi b/icons/mob/in-hand/right/guns.dmi new file mode 100644 index 00000000000..988c56442ca Binary files /dev/null and b/icons/mob/in-hand/right/guns.dmi differ diff --git a/icons/mob/in-hand/right/sheets.dmi b/icons/mob/in-hand/right/sheets.dmi new file mode 100644 index 00000000000..bf5955d7f8b Binary files /dev/null and b/icons/mob/in-hand/right/sheets.dmi differ diff --git a/icons/mob/in-hand/right/swords_axes.dmi b/icons/mob/in-hand/right/swords_axes.dmi new file mode 100644 index 00000000000..dcdf81c1f3e Binary files /dev/null and b/icons/mob/in-hand/right/swords_axes.dmi differ diff --git a/icons/mob/in-hand/right/vox_civvie.dmi b/icons/mob/in-hand/right/vox_civvie.dmi new file mode 100644 index 00000000000..efbe096f3be Binary files /dev/null and b/icons/mob/in-hand/right/vox_civvie.dmi differ diff --git a/icons/mob/in-hand/right/zz_old_items_righthand.dmi b/icons/mob/in-hand/right/zz_old_items_righthand.dmi new file mode 100644 index 00000000000..30b01b63d4a Binary files /dev/null and b/icons/mob/in-hand/right/zz_old_items_righthand.dmi differ