mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-22 16:12:19 +00:00
Loads custom synths from json or SQL as opposed to a txt file. Adds support for multiple borg sprites, ai chassis and custom ai hologram sprites as opposed to one sprite per player. Adds the ability to use custom pai sprites
66 lines
2.2 KiB
Plaintext
66 lines
2.2 KiB
Plaintext
|
|
/*
|
|
|
|
Just some quick documentation about how this works
|
|
|
|
Synthckey is the players ckey which is represented under the synths name in the json, this is required to have
|
|
synthicon is just the sprites name in the dmi
|
|
aichassisicon is the ai chassis icon sprite name
|
|
aiholoicon is the ai hologram icon sprite name
|
|
paiicon is the pai icon sprite name
|
|
|
|
*/
|
|
|
|
|
|
|
|
/datum/custom_synth
|
|
var/synthname = ""
|
|
var/synthckey = ""
|
|
var/synthicon = "robot"
|
|
var/aichassisicon = ""
|
|
var/aiholoicon = ""
|
|
var/paiicon = ""
|
|
|
|
|
|
|
|
/proc/loadsynths_from_json()
|
|
var/list/customsynthsprites = list()
|
|
try
|
|
customsynthsprites = json_decode(return_file_text("config/customsynths.json"))
|
|
catch(var/exception/ej)
|
|
log_debug("Error: Warning: Could not load custom synth config, as customsynths.json is missing - [ej]")
|
|
return
|
|
|
|
robot_custom_icons = list()
|
|
customsynthsprites = customsynthsprites["synths"]
|
|
for (var/synthsprite in customsynthsprites)
|
|
var/datum/custom_synth/synth = new()
|
|
synth.synthname = synthsprite
|
|
synth.synthckey = customsynthsprites[synthsprite]["ckey"]
|
|
synth.synthicon = customsynthsprites[synthsprite]["synthicon"]
|
|
synth.aichassisicon = customsynthsprites[synthsprite]["aichassisicon"]
|
|
synth.aiholoicon = customsynthsprites[synthsprite]["aiholoicon"]
|
|
synth.paiicon = customsynthsprites[synthsprite]["paiicon"]
|
|
robot_custom_icons[synthsprite] = synth
|
|
|
|
/proc/loadsynths_from_sql()
|
|
if(!establish_db_connection(dbcon))
|
|
log_debug("SQL ERROR - Failed to connect. - Falling back to JSON")
|
|
loadsynths_from_json()
|
|
return
|
|
else
|
|
|
|
var/DBQuery/customsynthsprites = dbcon.NewQuery("SELECT synthname, synthckey, synthicon, aichassisicon, aiholoicon, paiicon FROM ss13_customsynths WHERE deleted_at IS NULL ORDER BY synthckey ASC")
|
|
customsynthsprites.Execute()
|
|
while(customsynthsprites.NextRow())
|
|
CHECK_TICK
|
|
|
|
var/datum/custom_synth/synth = new()
|
|
synth.synthname = customsynthsprites.item[1]
|
|
synth.synthckey = customsynthsprites.item[2]
|
|
synth.synthicon = customsynthsprites.item[3]
|
|
synth.aichassisicon = customsynthsprites.item[4]
|
|
synth.aiholoicon = customsynthsprites.item[5]
|
|
synth.paiicon = customsynthsprites.item[6]
|
|
robot_custom_icons[synth.synthname] = synth
|