Created
March 30, 2024 23:18
-
-
Save nooitaf/86ef1b13ae3579cafccc96eacfcc7e73 to your computer and use it in GitHub Desktop.
Road to Vostok Public Demo 2 - Shelter.tres generator script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"strings" | |
) | |
var WeaponPaths = []string{ | |
"res://Scripts/SlotData.gd", | |
"res://Items/Ammunition/Ammo/Ammo.tres", | |
"res://Items/Attachments/ACOG/ACOG.tres", | |
"res://Items/Attachments/EXPS/EXPS.tres", | |
"res://Items/Attachments/HMR/HMR.tres", | |
"res://Items/Attachments/Hybrid/Hybrid.tres", | |
"res://Items/Attachments/Micro/Micro.tres", | |
"res://Items/Attachments/Monster/Monster.tres", | |
"res://Items/Attachments/PBS/PBS.tres", | |
"res://Items/Attachments/POSP/POSP.tres", | |
"res://Items/Attachments/PRO/PRO.tres", | |
"res://Items/Attachments/PU/PU.tres", | |
"res://Items/Attachments/Salvo/Salvo.tres", | |
"res://Items/Attachments/SOCOM/SOCOM.tres", | |
"res://Items/Attachments/Thor/Thor.tres", | |
"res://Items/Attachments/Vudu/Vudu.tres", | |
"res://Items/Backpack/Backpack_Patrol.tres", | |
"res://Items/Books/Book_Children.tres", | |
"res://Items/Books/Book_Cooking.tres", | |
"res://Items/Books/Book_Fishing.tres", | |
"res://Items/Books/Book_Religion.tres", | |
"res://Items/Consumables/Canned_Meatballs/Canned_Meatballs.tres", | |
"res://Items/Consumables/Canned_Meat/Canned_Meat.tres", | |
"res://Items/Consumables/Canned_Peaches/Canned_Peaches.tres", | |
"res://Items/Consumables/Canned_Peas/Canned_Peas.tres", | |
"res://Items/Consumables/Canned_Pea_Soup/Canned_Pea_Soup.tres", | |
"res://Items/Consumables/Canned_Pineapple/Canned_Pineapple.tres", | |
"res://Items/Consumables/Canned_Tomatoes/Canned_Tomatoes.tres", | |
"res://Items/Consumables/Canned_Tuna/Canned_Tuna.tres", | |
"res://Items/Consumables/Field_Ration/Field_Ration.tres", | |
"res://Items/Consumables/Soda_Lemonade/Soda_Lemonade.tres", | |
"res://Items/Electronics/Battery/Battery.tres", | |
"res://Items/Electronics/Hotplate/Hotplate.tres", | |
"res://Items/Feet/Boots_Combat.tres", | |
"res://Items/Hands/Gloves_Leather.tres", | |
"res://Items/Hands/Gloves_Work.tres", | |
"res://Items/Head/Sauna_Hat.tres", | |
"res://Items/Legs/Jeans_Black.tres", | |
"res://Items/Legs/Pants_Hiking.tres", | |
"res://Items/Medical/Antibiotics.tres", | |
"res://Items/Medical/Bandage.tres", | |
"res://Items/Medical/Cold_Medicine.tres", | |
"res://Items/Medical/Medkit.tres", | |
"res://Items/Medical/Painkillers.tres", | |
"res://Items/Medical/Splint.tres", | |
"res://Items/Medical/Tourniquet.tres", | |
"res://Items/Misc/Board_Game/Board_Game.tres", | |
"res://Items/Misc/Cigar_Box/Cigar_Box.tres", | |
"res://Items/Misc/Coffee/Coffee.tres", | |
"res://Items/Misc/Duct_Tape/Duct_Tape.tres", | |
"res://Items/Misc/Matches/Matches.tres", | |
"res://Items/Misc/Snus/Snus_Licorice.tres", | |
"res://Items/Misc/Snus/Snus_Mint.tres", | |
"res://Items/Misc/Snus/Snus_Original.tres", | |
"res://Items/Misc/Snus/Snus_Strong.tres", | |
"res://Items/Misc/Toilet_Paper/Toilet_Paper.tres", | |
// "res://Items/Physics/Item_Physics.tres", | |
"res://Items/Rig/Plate_Carrier.tres", | |
"res://Items/Special/Guitar/Guitar.tres", | |
"res://Items/Special/Harmonica/Harmonica.tres", | |
"res://Items/Torso/Fleece_Tactical_Brown/Fleece_Tactical_Brown.tres", | |
"res://Items/Torso/Fleece_Tactical_Green/Fleece_Tactical_Green.tres", | |
"res://Items/Torso/Hoodie_Border_Zone/Hoodie_Border_Zone.tres", | |
"res://Items/Torso/Hoodie_Gray/Hoodie_Gray.tres", | |
"res://Items/Torso/Jacket_Military_M62/Jacket_Military_M62.tres", | |
"res://Items/Torso/Jacket_Santa/Jacket_Santa.tres", | |
"res://Items/Torso/Jacket_Winter_Blue/Jacket_Winter_Blue.tres", | |
"res://Items/Torso/Jacket_Winter_Red/Jacket_Winter_Red.tres", | |
"res://Items/Torso/Windbreaker_Black/Windbreaker_Black.tres", | |
"res://Items/Torso/Windbreaker_Green/Windbreaker_Green.tres", | |
"res://Items/Weapons/AK-12/AK-12.tres", | |
"res://Items/Weapons/AKS-74U/AKS-74U.tres", | |
"res://Items/Weapons/Colt_1911/Colt_1911.tres", | |
"res://Items/Weapons/Glock_17/Glock_17.tres", | |
"res://Items/Weapons/KAR-21/KAR-21_223.tres", | |
"res://Items/Weapons/KAR-21/KAR-21_308.tres", | |
"res://Items/Weapons/KAR-21/KAR-21_Barrel.tres", | |
"res://Items/Weapons/KP-31/KP-31.tres", | |
"res://Items/Weapons/Makarov/Makarov.tres", | |
"res://Items/Weapons/MK18/MK18.tres", | |
"res://Items/Weapons/Mosin/Mosin.tres", | |
"res://Items/Weapons/MP5/MP5.tres", | |
"res://Items/Weapons/MP7/MP7.tres", | |
"res://Items/Weapons/Remington_870/Remington_870.tres", | |
"res://Items/Weapons/RK-95/RK-95.tres", | |
"res://Items/Weapons/SVD/SVD.tres", | |
"res://Items/Weapons/VSS/VSS.tres", | |
"res://Scripts/ContainerSave.gd", | |
"res://Scripts/ItemSave.gd", | |
"res://Scripts/ShelterSave.gd", | |
} | |
type Resource struct { | |
Path string | |
Id string | |
Type string | |
} | |
type SubResource struct { | |
Id string | |
Type string | |
Script string | |
ItemData string | |
Condition float32 | |
Index int | |
Ammo int | |
Chamber int | |
Firemode int | |
Optic Resource | |
Muzzle Resource | |
Name string | |
Items string | |
SlotData string | |
Position []float32 | |
Rotation []float32 | |
} | |
var L1 = `[gd_resource type="Resource" script_class="ShelterSave" load_steps=159 format=3]` | |
func main() { | |
// first line | |
fmt.Println(L1) | |
fmt.Println("") | |
resources := []Resource{} | |
for i, path := range WeaponPaths { | |
idx := i + 1 | |
t := "Resource" | |
if strings.Contains(path, "Script") { | |
t = "Script" | |
} | |
res := Resource{ | |
Id: fmt.Sprintf(`%v`, idx), | |
Path: path, | |
Type: t, | |
} | |
resources = append(resources, res) | |
} | |
for _, r := range resources { | |
fmt.Printf("[ext_resource type=\"%s\" path=\"%s\" id=\"%s\"]\n", r.Type, r.Path, r.Id) | |
} | |
fmt.Println() | |
subresources := []SubResource{} | |
for i, r := range resources { | |
if r.Type == "Resource" { | |
id := fmt.Sprintf(`Resource_r%v`, i) | |
subres := SubResource{ | |
Id: id, | |
Type: r.Type, | |
Script: fmt.Sprintf(`ExtResource("%v")`, 1), | |
ItemData: fmt.Sprintf(`ExtResource("%v")`, r.Id), | |
Condition: 100.0, | |
Index: i - 1, | |
Ammo: 0, | |
Chamber: 0, | |
Firemode: 1, | |
} | |
subresources = append(subresources, subres) | |
} | |
} | |
for _, sr := range subresources { | |
fmt.Printf("[sub_resource type=\"%s\" id=\"%s\"]\n", sr.Type, sr.Id) | |
fmt.Printf("script = %v\n", sr.Script) | |
fmt.Printf("itemData = %v\n", sr.ItemData) | |
fmt.Printf("condition = %.1f\n", sr.Condition) | |
fmt.Printf("index = %v\n", sr.Index) | |
fmt.Printf("ammo = %v\n", sr.Ammo) | |
fmt.Printf("chamber = %v\n", sr.Chamber) | |
fmt.Printf("firemode = %v\n", sr.Firemode) | |
fmt.Println("") | |
} | |
fmt.Println(`[sub_resource type="Resource" id="Resource_ContainerSave"]`) | |
fmt.Println(`script = ExtResource("87")`) | |
fmt.Println(`name = "Crate_Wood_Covered"`) | |
fmt.Print("items = Array[ExtResource(\"1\")]([") | |
for idx, sr := range subresources { | |
fmt.Printf("SubResource(\"%v\")", sr.Id) | |
if idx < len(subresources)-1 { | |
fmt.Print(", ") | |
} | |
} | |
fmt.Println("])") | |
fmt.Println("") | |
fmt.Println(`[resource]`) | |
fmt.Println(`script = ExtResource("89")`) | |
fmt.Println(`containers = Array[ExtResource("87")]([SubResource("Resource_ContainerSave")])`) | |
fmt.Println(`items = Array[ExtResource("88")]([])`) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment