Update GaCy-GO

This commit is contained in:
CAtlas0784 committed 2026-10-28 18:54:43 +07:00
1 parent da8a32f60d
commit 0cbe460e49
345 files changed
+98202 -77559

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
package common
import (
"encoding/json"
"fmt"
)
// FaceCamSettings is shared by the SDK and the game heartbeat. Distance is in
// world units; changing this setting never changes the Freecam enabled state.
type FaceCamSettings struct {
Mode string `json:"mode"`
Distance float64 `json:"distance"`
}
func ReadFaceCamSettings() (FaceCamSettings, error) {
settings := FaceCamSettings{Mode: "freecam", Distance: 2}
root, err := readCurrencyWarsPersistentRoot()
if err != nil {
return settings, err
}
if raw, ok := root["camera_settings"]; ok {
if err := json.Unmarshal(raw, &settings); err != nil {
return settings, err
}
}
return settings, settings.Validate()
}
func (s FaceCamSettings) Validate() error {
if (s.Mode != "freecam" && s.Mode != "facecam") || !(s.Distance >= 0.5 && s.Distance <= 5) {
return fmt.Errorf("invalid camera mode or distance")
}
return nil
}
func SaveFaceCamSettings(settings FaceCamSettings) error {
if err := settings.Validate(); err != nil {
return err
}
persistentWriteMu.Lock()
defer persistentWriteMu.Unlock()
unlock, err := lockPersistentFile()
if err != nil {
return err
}
defer unlock()
root, err := readCurrencyWarsPersistentRoot()
if err != nil {
return err
}
root["camera_settings"], err = json.Marshal(settings)
if err != nil {
return err
}
return writeJSONAtomic("persistent", root)
}